<!doctype html>
  
<!--<!doctype html>-->
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9" lang=""> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang=""> <!--<![endif]-->
   <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<!-- PAGE INFORMATION (start): -->
<!-- Client IP = 128.173.49.87 -->
<!-- page_id = 17380 -->
<!-- title = Donating to Hurricane Harvey Relief Efforts -->
<!-- url = /article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html -->
<!-- Page served = 66 -->
<!-- Partner Page = No -->
<!-- Page type = 2 -->
<!-- Page type sub = 4 -->
<!-- topic_id =  -->
<!-- primary_topic_id = 65 -->
<!-- category_id = 10 -->
<!-- chars = 6392 -->
<!-- rr_count_modules = 7 -->
<!-- rr_preset = 0 -->
<!-- PAGE INFORMATION (end): -->

      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><script src="//cdn.blueconic.net/kiplinger.js" async></script>      <meta property="og:title" content="Donating to Hurricane Harvey Relief Efforts">
      <meta property="og:type" content="article">
      <meta property="og:url" content="http://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html">
      <meta property="og:image" content="http://www.kiplinger.com/kipimages/pages/17380.jpg">
      <meta property="og:description" content="Plenty of organizations are raising money to help the victims of Hurricane Harvey. Check out these groups before you donate to be sure your gift goes to those who need it -- and not to scam artists.">
      <meta property="og:site_name" content="www.kiplinger.com">
      <meta property="article:publisher" content="https://www.facebook.com/KiplingerPersonalFinance">
      <meta name="msvalidate.01" content="C204E96E4F07E7367B1370285CE0AAA7" />
      <meta name="p:domain_verify" content="ccd59796995ca775c0f9ea05f08779c3"/>
      <meta property="og:locale" content="en_US" />
      <meta name="google-site-verification" content="SBz3uRNFEW9t5sCggrEou9QJ65yihdOnouLIt-myupg" />
      <meta name="google-site-verification" content="Rruu8_jftJLaLPeuv9Ta8_AJLhlGsX0nWnA1cqF6_JU" />    
      <meta name="ir-site-verification-token" value="874989680" /><!-- added for Phil on 9/21/17 -->
      <meta property="fb:pages" content="65904782836">  <!-- added 12/13/2017 for Ben D -->
      <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
      <meta name="ID" content="17380">
<meta name="description" content="Plenty of organizations are raising money to help the victims of Hurricane Harvey. Check out these groups before you donate to be sure your gift goes to those who need it -- and not to scam artists." /> <meta name="news_keywords" content="Kiplinger, personal finance news, Hurricane Harvey, Hurricane Harvey donations, donating to Hurricane Harvey relief, Hurricane Harvey relief donations, Houston, Hurricane Harvey victims">
<script type="application/ld+json">
{ 
    "@context": "http://schema.org",
    "@type": "NewsArticle",
    "mainEntityofPage": {
		"@type":"WebPage",
		"@id":"https://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html"
	},
    "headline": "Donating to Hurricane Harvey Relief Efforts",
    "datePublished": "2017-08-31T00:00:01-04:00",
    "dateModified": "2017-09-12T11:48:09-04:00",
    "keywords": "Personal Finance News, Investing Advice, Business Forecasts, Kiplinger, personal finance news, Hurricane Harvey, Hurricane Harvey donations, donating to Hurricane Harvey relief, Hurricane Harvey relief donations, Houston, Hurricane Harvey victims",
		
	"image": {
        "@type": "ImageObject",
        "url": "https://www.kiplinger.com/kipimages/pages/17380.jpg",
        "width": 1280,
        "height": 842
    },"author": {
        "@type": "Person",
        "name": "Kimberly Lankford"
    },  
    "publisher": {
        "@type": "Organization",
        "name": "Kiplingers Personal Finance",
        "logo": {
            "@type": "ImageObject",
            "url": "https://www.kiplinger.com/kipimages/logos/kiplinger_600.png",
            "width": 172,
            "height": 60
        }
    }
    
  }
</script>



<!--  blueconic meta tags below here -->

      <meta name="primary_topic_id" content="65">
      <meta name="primary_topic_name" content="Family Finances">



      <meta name="kipad_id" content="FamilyFinancesArticles">

      <meta name="FAcontributor" content="false">
      <meta name="page_id" content="17380">
      <meta name="title" content="Donating to Hurricane Harvey Relief Efforts">
      <meta name="overline" content="Ask Kim">
      <meta name="theyear" content="2017">
      <meta name="themonth" content="8">
      <meta name="theday" content="31">
      <meta name="byline_name" content="Kimberly Lankford">
      <meta name="pagetype_name" content="Article">
      <meta name="category_name" content="Spending">



        
<!--  blueconic meta tags above here -->
        
            <title>Donating to Hurricane Harvey Relief Efforts</title>
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="apple-touch-icon" href="apple-touch-icon.png">
      <link rel="shortcut icon" href="//www.kiplinger.com/favicon.ico">
      <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico">
<style>
@media print {
    .at-win-mask, .at-expanded-menu, 
    .at-branding-logo, .at-expanded-menu-fade,
    .at-expanded-menu-close
        {
        display: none !important;
        border: none !important;
        }
}
</style>
<script>
    var adblock = "yes";
        
        console.log("adblock first called at top: " + adblock);
</script>
<!-- ad block Check -->
<script type="text/javascript" src="/js/adblock.js"></script>
<!-- End ad block Check -->        
<script>

        
        console.log("adblock after call to adblock.js: " + adblock);
</script>
                     <style>
                      .dropdown-menu.pubs {

                          overflow: hidden !important;
                          
                      }
                      .kip-sub-inactive {
                      color: #cccccc !important;
                      }
                  </style>
<link rel="amphtml" href="http://amp.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html">
<link rel="stylesheet" href="/css/bootstrap.min.css">
<style>
		body {
            padding-top: 50px;
         }
</style>
<link rel="stylesheet" href="/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Oswald:300,400,700|Open+Sans:300,400,700|Merriweather:400,700' rel='stylesheet' type='text/css'>      
<link rel="stylesheet" type="text/css" href="/css/Column.css">
      <script src="/js/vendor/modernizr-2.8.3-respond-1.4.2.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
      <script>window.jQuery || document.write('<script src="/js/vendor/jquery-1.11.2.min.js"><\/script>')</script>
      <script type="text/javascript" src="/js/vendor/bootstrap.min.js"></script>
      <script type="text/javascript" src="/js/main.js"></script>
      <script type="text/javascript" src="/js/ScrollMagic.js"></script>
      <script type="text/javascript" src="/js/debug.addIndicators.js"></script>
      <script type="text/javascript" src="/js/gsap/minified/TweenMax.min.js"></script>
      <script type="text/javascript" src="/js/js.cookie.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.3/plugins/animation.gsap.js"></script>
      <script type="text/javascript" src="/js/jquery.accordion.2.0.js" charset="utf-8"></script> 

<link href="/about/rss/kiplinger.rss" rel="alternate" type="application/rss_xml" title="Kiplinger.com" /><!--top_article.html-->
            
    <!-- because headers_sent() == TRUE; -->        
    <script>
//       console.log("json_encode(array([17380]))");
       document.cookie = "kipArticlesRead=[17380]; path=/;";
    </script>
                    <!-- nextarticle_suggestions above here -->

      <script src="/js/kipScroll.js"></script>

      <!--<script type="text/javascript" async="async" src="//widgets.outbrain.com/outbrain.js"></script>    -->

        <script type="text/javascript">
        var kipArticleScroll;
        kipArticleScroll.articleRef = [];
        kipArticleScroll.articleRef[0] = {};
        kipArticleScroll.articleRef[0].id = 17380;
        kipArticleScroll.articleRef[0].title = 'Donating to Hurricane Harvey Relief Efforts';
        kipArticleScroll.articleRef[0].url = '/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html';
        kipArticleScroll.articleRef[1] = {};
        kipArticleScroll.articleRef[1].id = 6734;
        kipArticleScroll.articleRef[1].title = '15 Web Sites for Finding Shopping Deals Online';
        kipArticleScroll.articleRef[1].url = '/article/spending/T050-C000-S001-15-web-sites-for-finding-deals-online.html';
        kipArticleScroll.articleRef[2] = {};
        kipArticleScroll.articleRef[2].id = 7656;
        kipArticleScroll.articleRef[2].title = '31 Best Travel Sites to Save You Money';
        kipArticleScroll.articleRef[2].url = '/article/spending/T059-C000-S001-23-best-travel-sites-to-save-you-money.html';
        </script>
    <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-571509c53ecd5552"></script>
      <script>
         var addthis_share = {
            url_transforms : {
               add: {
                  rid : 'SOC-' + '{{code}}'
               }
            } 
         }
      </script>
      <!-- Go to www.addthis.com/dashboard to customize your tools -->

<script>/* observer-7.0.2 */eval(atob("IWZ1bmN0aW9uIHQoZSxuLG8pe2Z1bmN0aW9uIHIoYSxzKXtpZighblthXSl7aWYoIWVbYV0pe3ZhciB1PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFzJiZ1KXJldHVybiB1KGEsITApO2lmKGkpcmV0dXJuIGkoYSwhMCk7dmFyIGQ9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrYSsiJyIpO3Rocm93IGQuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsZH12YXIgYz1uW2FdPXtleHBvcnRzOnt9fTtlW2FdWzBdLmNhbGwoYy5leHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciBuPWVbYV1bMV1bdF07cmV0dXJuIHIobj9uOnQpfSxjLGMuZXhwb3J0cyx0LGUsbixvKX1yZXR1cm4gblthXS5leHBvcnRzfWZvcih2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxhPTA7YTxvLmxlbmd0aDthKyspcihvW2FdKTtyZXR1cm4gcn0oezE6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyh0KXt2YXIgZT0iTkVXX1NDUklQVF9FVkVOVCIsbj1uZXcgcihlLHtkZXRhaWw6e319KTt0LmRpc3BhdGNoRXZlbnQobil9dmFyIHI9dCgzKTtlLmV4cG9ydHM9b30sezM6M31dLDI6W2Z1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyh0KXt0LmFkb25pcz10LmFkb25pc3x8e30sdC5hZG9uaXMuc2NyaXB0U3RhdHVzZXM9e30sdC5hZG9uaXMucmVxdWVzdFN0YXR1c2VzPXt9O3ZhciBlPXQuWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47dC5YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbihuLG8pe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKGUpezA9PT10aGlzLnN0YXR1cz90LmFkb25pcy5zY3JpcHRTdGF0dXNlc1tvXT0iZXJyb3IiOnQuYWRvbmlzLnNjcmlwdFN0YXR1c2VzW29dPSJsb2FkIn0pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oZSl7dC5hZG9uaXMuc2NyaXB0U3RhdHVzZXNbb109ImxvYWQifSksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixmdW5jdGlvbihlKXt0LmFkb25pcy5yZXF1ZXN0U3RhdHVzZXNbb109dGhpcy5zdGF0dXMscih0KX0pO3ZhciBpPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiBlLmFwcGx5KHRoaXMsaSl9fXZhciByPXQoMSk7ZS5leHBvcnRzPXt3cmFwWE1MSHR0cFJlcXVlc3Q6b319LHsxOjF9XSwzOltmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXt0cnl7dmFyIHQ9bmV3IG8oImNhdCIse2RldGFpbDp7Zm9vOiJiYXIifX0pO3JldHVybiJjYXQiPT09dC50eXBlJiYiYmFyIj09PXQuZGV0YWlsLmZvb31jYXRjaChlKXt9cmV0dXJuITF9dmFyIG89dC5DdXN0b21FdmVudDtlLmV4cG9ydHM9bigpP286InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmImZ1bmN0aW9uIj09dHlwZW9mIGRvY3VtZW50LmNyZWF0ZUV2ZW50P2Z1bmN0aW9uKHQsZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkN1c3RvbUV2ZW50Iik7cmV0dXJuIGU/bi5pbml0Q3VzdG9tRXZlbnQodCxlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlLGUuZGV0YWlsKTpuLmluaXRDdXN0b21FdmVudCh0LCExLCExLHZvaWQgMCksbn06ZnVuY3Rpb24odCxlKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudE9iamVjdCgpO3JldHVybiBuLnR5cGU9dCxlPyhuLmJ1YmJsZXM9Qm9vbGVhbihlLmJ1YmJsZXMpLG4uY2FuY2VsYWJsZT1Cb29sZWFuKGUuY2FuY2VsYWJsZSksbi5kZXRhaWw9ZS5kZXRhaWwpOihuLmJ1YmJsZXM9ITEsbi5jYW5jZWxhYmxlPSExLG4uZGV0YWlsPXZvaWQgMCksbn19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSw0OltmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8odCxlLG4sbyl7ImFkZEV2ZW50TGlzdGVuZXIiaW4gdD90LmFkZEV2ZW50TGlzdGVuZXIoZSxuLG8pOiJhdHRhY2hFdmVudCJpbiB0JiZ0LmF0dGFjaEV2ZW50KCJvbiIrZSxuKX12YXIgcj10KDIpLGk9dCgxKTshZnVuY3Rpb24oKXt3aW5kb3cuYWRvbmlzPXdpbmRvdy5hZG9uaXN8fHt9LHdpbmRvdy5hZG9uaXMuc2NyaXB0U3RhdHVzZXM9e30sci53cmFwWE1MSHR0cFJlcXVlc3Qod2luZG93KSxvKGRvY3VtZW50LCJsb2FkIixmdW5jdGlvbih0KXt0LnRhcmdldCYmIlNDUklQVCI9PT10LnRhcmdldC5ub2RlTmFtZSYmKHdpbmRvdy5hZG9uaXMuc2NyaXB0U3RhdHVzZXNbdC50YXJnZXQuc3JjXT0ibG9hZCIsaSh3aW5kb3cpKX0sITApLG8oZG9jdW1lbnQsImVycm9yIixmdW5jdGlvbih0KXt0LnRhcmdldCYmIlNDUklQVCI9PT10LnRhcmdldC5ub2RlTmFtZSYmKHdpbmRvdy5hZG9uaXMuc2NyaXB0U3RhdHVzZXNbdC50YXJnZXQuc3JjXT0iZXJyb3IiLGkod2luZG93KSl9LCEwKX0oKX0sezE6MSwyOjJ9XX0se30sWzRdKTs="));</script><script async src="//js-sec.indexww.com/ht/p/184615-91645247871175.js"></script>

<script type="text/javascript">
    window.headertag = window.headertag || {};
</script>



<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>

<script type='text/javascript'>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];

var apstagSlots = [];
googletag.cmd.push(function() {

//if (!apstag._Q) {
    googletag.pubads().disableInitialLoad();
    googletag.pubads().enableSingleRequest();
    //console.log("Disabling Initial Load ::" +apstag._Q);
    //} else {
    //console.log("NOT Disabling Initial Load ::" +apstag._Q); 
    //}

googletag.enableServices();

});


// amazon apstag code
!function(a9,a,p,s,t,A,g){if(a[a9])return;function q(c,r){a[a9]._Q.push([c,r])}a[a9]={init:function(){q("i",arguments)},fetchBids:function()
{q("f",arguments)},setDisplayBids:function(){},_Q:[]};A=p.createElement(s);A.async=!0;A.src=t;g=p.getElementsByTagName(s)[0];g.parentNode.insertBefore(
A,g)}("apstag",window,document,"script","//c.amazon-adsystem.com/aax2/apstag.js");

// initialize apstag and have apstag set bids on the googletag slots when they are returned to the page
apstag.init({
pubID: '3341',
adServer: 'googletag',
bidTimeout: 2e3
});


var sclick=0;

var gptAdSlots = [];

/* Lets remove this if commenting out doesn't break anything
function resetAds(vmode,gptAdSlots){

  for(var ci=1;ci < gptAdSlots.length;ci++)
   {
    var addiv="div-gpt-ad-17380-"+ci;
    var adelement = document.getElementById(addiv);
    adelement.style.display="none";
    var adcontdiv="div-gpt-ad-"+ci;
    var adcontelement = document.getElementById(adcontdiv);
    if(adcontelement){
    adcontelement.style.display="none";
    }
   }
}
*/
 

function loadAds(vmode,gptAdSlots,slide,pageID)
{
    
if ($('#div-gpt-ad-'+pageID+'-99').length){
//alert("Trying to call blueconic interstitial ad slot");
//googletag.display('div-gpt-ad-'+pageID+'-99');
CallAd('div-gpt-ad-'+pageID+'-99', 0, vmode);
 }

var temp=gptAdSlots.length;
var si_interval=7;
console.log("number of elements in gptAdSlots[] = " + temp);
console.dir(gptAdSlots);
//for(var ci=1;ci < gptAdSlots.length;ci++)
for(var ci=1;ci < gptAdSlots.length;ci++)
 {
 





    var addiv="div-gpt-ad-"+pageID+"-"+ci;
    var adtype=gptAdSlots[ci].get('adType');
    console.log("%cadd slot #" + ci + ", ", "background:#00f; color:#ff0;");
if ($('#' + addiv).length == 0)
        {
        console.log(addiv + " skip this one");
        }
    else
        {
        
        
 if(vmode===1)
    {
    switch(adtype)
       {
        case "1":
        case "2":
        case "3":

                 CallAd(addiv, ci, vmode);

         break;

        case "4":

                 CallInterstitial(addiv, ci, slide);

         break;



        default:

                 CallAd(addiv, ci, vmode);

        break;
       }
   

    }
else if(vmode===2)
    {
    switch(adtype)
        {
         case "1":
         case "2":
         case "3":

                  CallAd(addiv, ci, vmode);

          break;

         case "4":

                  CallInterstitial(addiv, ci, slide);

          break;



         default:

                  CallAd(addiv, ci, vmode);

         break;
        }
    }
else if(vmode===3)
    {
    switch(adtype)
        {
         case "1":
         case "2":
         case "3":

                  CallAd(addiv, ci, vmode);

          break;

         case "4":

                  CallInterstitial(addiv, ci, slide);

          break;



         default:

                  CallAd(addiv, ci, vmode);

         break;

        }
    }
else if(vmode===4)
    {
    switch(adtype)
        {
         case "1":
         case "2":
         case "3":

                  CallAd(addiv, ci, vmode);

          break;

         case "4":

                  CallInterstitial(addiv, ci, slide);

          break;



         default:

                  CallAd(addiv, ci, vmode);

         break;
        }

    }
else if(vmode===5)
    {
    switch(adtype)
        {
         case "1":
         case "2":
         case "3":

                  CallAd(addiv, ci, vmode);

          break;

         case "4":

                  CallInterstitial(addiv, ci, slide);

          break;



         default:

                  CallAd(addiv, ci, vmode);

         break;
        }

    }
else
    {// just in case we somehow get a bad value, or for a default value, so something will happen
       CallAd(addiv, ci, vmode);    
    }
    
    
       // console.log(addiv + " load this one");            
        }

 }
}


function CallAd (addiv, ci, vmode) {



//if($('#' + addiv).is(':visible')) 
if( !isHiddenResponsive(addiv) )
    {
    console.log("**id" + addiv);
    // for infinite scroll pages, remove adonis-marker from previous page addiv
    if($('#' + addiv).length == 0) {
        var addivPrevious="div-gpt-ad-"+kipArticleScroll.articles[ar - 1].id+"-"+ci;
            console.log("this ad div doesn't exist " + addiv + " Previous article id:" + kipArticleScroll.articles[ar - 1].id);
        $('#' + addivPrevious).removeAttr( "adonis-marker" );
            console.log("removing adonis-marker from " + addivPrevious);
    }
    
    var adPos=gptAdSlots[ci].getTargeting('pos');        
    if (adPos == 'interstitial' || adPos == 'graphiq') {
    //if (adPos == 'graphiq') {
        console.log("Ad pos = " + adPos);

    } else {
        $('#' + addiv).attr('adonis-marker', '');
        console.log('Ad Div: ' + addiv + ' -- Pos:' + adPos + ' Adding #adonis-marker.');
    }
    var isLoaded=gptAdSlots[ci].get('loaded');
    
    if(typeof isLoaded && isLoaded =="0")
        {
        // call googletag.display for this position and set loaded to 1
        //addiv.createAttribute('adonis-marker');
        gptAdSlots[ci].set("loaded","1");
        
                // add data for this ad position to apstagSlots[];
                if (typeof apstagSlots[ci] === "undefined") {
                        window.apstagSlots[ci] = {};
                    }
	            // Get apstag ad slot data from gptAdSlots and load the 
	            // slots into apstagSlots which should be loaded or refreshed
                    apstagSlots[ci].slotID = gptAdSlots[ci].get('apstagSlotID');
                    apstagSlots[ci].slotName = gptAdSlots[ci].get('apstagSlotName');
                    apstagSlots[ci].sizes = gptAdSlots[ci].get('apstagSlotSizes');      
                    
                    
        // if adblock is enabled apstag.targetingKeys should not be defined
        // so fire google's ad call so PageFair can detect
        if (typeof apstag.targetingKeys !== 'function') {
        googletag.display(addiv);
        }
        
        alert_msg += 'DISPLAYING AD '+ci+': '+addiv+', vmode '+vmode+', pos ' +adPos + ' ' + isLoaded + '\n';

        }
    else
        {
        if(adPos == 'interstitial' || adPos == 'graphiq'){
        alert_msg += 'NOT REFRESHING AD '+ci+': '+addiv+', vmode '+vmode+', pos ' +adPos + '\n';                    
                }
        else
                {
            // Get apstag ad slot data from gptAdSlots and load the 
            // slots into apstagSlots which should be loaded or refreshed
                var slotID = gptAdSlots[ci].get('apstagSlotID');
                var slotName = gptAdSlots[ci].get('apstagSlotName');
                var slotSizes = [];
                slotSizes = gptAdSlots[ci].get('apstagSlotSizes');


                // add data for this ad position to apstagSlots[];
                if (typeof apstagSlots[ci] === "undefined") {
                        window.apstagSlots[ci] = {};
                    }

                    apstagSlots[ci].slotID = slotID;
                    apstagSlots[ci].slotName = slotName;
                    apstagSlots[ci].sizes = slotSizes;         

                

        // if adblock is enabled apstag.targetingKeys should not be defined
        // so fire google's ad call so PageFair can detect
        if (typeof apstag.targetingKeys !== 'function') {
        googletag.pubads().refresh([gptAdSlots[ci]]);
        }

        
        alert_msg += 'REFRESHING AD '+ci+': '+addiv+', vmode '+vmode+', pos ' +adPos + '\n';                }
        }
    } // end if ad slot is visible
else
    {
    // ad slot is not visible, so do not load or refresh the ad
    // but alert or report to console.log for debug
        var isLoaded=gptAdSlots[ci].get('loaded');
        if(typeof isLoaded && isLoaded =="0")
            {
            var loadstate = "DISPLAYING";
            }
        else
            {
            var loadstate = "REFRESHING";
            }
        alert_msg += 'NOT '+loadstate+' AD '+ci+': '+addiv+', vmode '+vmode+', pos ' +adPos + '\n';
    }
}
function CallInterstitial (addiv, ci, slide) {
        if( slide > 1)
            {
            var tmp=slide-1;
            if(tmp%6==0)
              {

                  CallAd(addiv, ci);


                        alert_msg += 'INTERSTITIAL AD '+ci+': '+addiv+'\n';

              }
            }
      //if($('#' + addiv).is(':visible')) 
      if( !isHiddenResponsive(addiv) )
           {  

           var adcontdiv="div-gpt-ad-17380-"+ci;
           var adcontelement = document.getElementById(adcontdiv);
           var addiv="div-gpt-ad-17380-"+ci;
           var adelement = document.getElementById(addiv);
           var adelement2 = document.getElementById('kip-slideshow-interstitial');
           //adcontelement.createAttribute('adonis-marker');
           if(typeof adelement && adelement != null)
             {
              adelement.style.display="block";
             }
        
            if(typeof adelement2 && adelement2 != null)
             {
              //adelement2.style.display="block";
             }
            if(typeof adcontelement && adcontelement != null)
             {
             adcontelement.style.display="block";
             }
         }
}


// attempt to detect ad slots that
// are hidden by responsive design 
// breakpoints, not ad blocking software
var isHiddenResponsive = function(divId) {
    var adDiv = $('#' + divId);
     

     
    // Check if any parents have responsive classes
    var responsiveParents = adDiv.parents('[class*="hidden"],[class*="visible"]');
    var found = false;
    responsiveParents.each(function(index, parent) {
        // grab the last class name in this parent and use it
        // to check visibility of the divs at the bottom of the page
        // by ID.
        var parentClass = $(parent).attr('class').split(' ').pop();
        var slideparent = $(parent).closest("[id^='kip-slide']")
        
        if (($("#pf-" + parentClass).is(':hidden')) || (slideparent.is(':hidden')) ) {        
            found = true;
        } else {

        }
    });
    return found;  
}
</script>

<script>

// get only gpt div id's that match slotIDs passed in fetchBids request
function _getGPTSlots(apstagSlots) {
    // get all of the slot IDs that were requested
    var slotIDs = apstagSlots.map(function(slot) { return slot.slotID; });
    // return the slot objects corresponding to the gpt slotIDs
    return googletag.pubads().getSlots().filter(function(slot) {
        // return true if the ID of the slot object is in the gpt slotIDs array
        return slotIDs.indexOf(slot.getSlotElementId()) > -1;
    });
}


//call refreshBids() to make a request for specific ad slots then call googletag refresh in our callback for only those div ids
function refreshBids() {

Object.keys(apstagSlots).forEach(function(key) {console.log("refreshBids() " +key, apstagSlots[key]);});


    apstag.fetchBids({
        slots: apstagSlots,
        timeout: 2e3
    }, function(bids) {
        // set apstag targeting on googletag, then trigger the the refresh call to dfp 
        googletag.cmd.push(function() {

            apstag.setDisplayBids();

            googletag.pubads().refresh(_getGPTSlots(apstagSlots));
            
        });
    });
    
}

                                                                
                                                                
                                                                
function refreshAds(slide, pageID){


// getScreen is located in /js/main.js
// returns 1 through 5 based on screen size
var vmode = getScreen();
var sw = screen.height;
var sh = screen.width;

var vmodetext=[];
vmodetext[1]="Desktop";
vmodetext[2]="Tablet Landscape";
vmodetext[3]="Tablet Portrait";
vmodetext[4]="Mobile Landscape";
vmodetext[5]="Mobile Portrait";

                                                                    
apstagSlots.length = 0;

loadAds(vmode,gptAdSlots,slide,pageID);

// if apstag object is defined, trigger amazon fetchBids()
if (typeof apstag.targetingKeys == 'function') {
    refreshBids();
    console.log("Trigger apstag refreshBids(), apstag.targetingKeys is "+apstag.targetingKeys);
    } else { 
    console.log("Trigger googletag ad call, apstag.targetingKeys is "+apstag.targetingKeys); 
    //pagefairLoader();
    }


    // print rendered ad slots to the console log in a collapsed tree.
      console.groupCollapsed('Ad slot data');  
      console.dir(gptAdSlots);
      console.groupEnd();

// .debugmodal should only exist 
// for a specific logged in user
if ($(".debugmodal").length) {
$(".debugmodal").append("<pre>" + alert_msg + "</pre>");
alert_msg = '';

}

}
// this is called by kipScroll.js so it can pass
// the $ad_seq PHP value to nextarticle.php
function getlastSlot() {
    var adSeq = gptAdSlots.length - 1;
    return adSeq;
}
</script>
    <!--<script src="http://mediacdn.disqus.com/1378851429/build/next/lounge.load.js"></script>-->
      <script>

        function hideDisqus(id, url, title) {
            if (($("disqus.btn#" + id).attr('data-buttonstate') == "Hide comments") && ($(".disqusbtn#" + id).html() == "Show comments")) {
                //console.log("ran hideDisqus but disqus already hidden");
                infiniteDisqus(id, url, title);
                }
            else
                {
                $("#collapseComments-" + id).collapse('hide');
                $(".disqusbtn#"+id).html("Show comments");
                $(".disqusbtn#" + id).attr('onClick','infiniteDisqus("'+id+'", "'+url+'", "'+title+'")');
                $(".disqusbtn#" + id).attr('data-buttonstate','Show comments');
                //console.log($(".disqusbtn#" + id).attr('data-buttonstate'));
                }
        }
        function infiniteDisqus(id, url, title) {
            console.log("called infiniteDisqus, " + id + ", " +location.protocol+"//"+location.host+url+", " +title);

            // remove all the class=disqus_thread divs from anywhere on the page
            $(".disquscollapse").empty();
            $(".disqusbtn").html("Show comments");
            $("#collapseComments-" + id).html('                        <div id="disqus_thread"></div>');
            // reset disqus
            DISQUS.reset({
                reload: true,
                config: function () {  
                this.page.identifier = id;  
                this.page.url = location.protocol+"//"+location.host+url;
                this.page.title = title;
                }


            });
            $("#collapseComments-" + id).collapse('show');
            $(".disqusbtn#" + id).html("Hide comments");
            $(".disqusbtn#" + id).attr('onClick','hideDisqus("'+id+'", "'+url+'", "'+title+'")');
            $(".disqusbtn#" + id).attr('data-buttonstate','Hide comments');
            //console.log($(".disqusbtn#" + id).attr('data-buttonstate'));
        }
        
         
         (function() { // DON'T EDIT BELOW THIS LINE
            var d = document, sD = d.createElement('script');

            sD.src = '//kiplinger.disqus.com/embed.js';

            sD.setAttribute('data-timestamp', +new Date());
		console.log(sD);
            (d.head || d.body).appendChild(sD);
	
         })();
      </script>
      <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
      <script>
          //var gptAdSlots = [];
      </script>
<link rel="canonical" href="https://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html" />
<!-- ComScore tracking code (start) -->
    <script type="text/javascript">
    var _comscore = _comscore || [];
    _comscore.push({ c1: "2", c2: "13258294" });
    (function() {
    var sC = document.createElement("script"), el = document.getElementsByTagName("script")[0]; sC.async = true;
    sC.src = (document.location.protocol == "https:" ? "https://sb" : "https://sb") + ".scorecardresearch.com/beacon.js";
    el.parentNode.insertBefore(sC, el);
    })();
    </script>
    <noscript>
    <img src="//b.scorecardresearch.com/p?c1=2&c2=13258294&cv=2.0&cj=1" />
    </noscript>
    <!-- ComScore tracking code (end) -->
<!-- Start Magnet Code -->
<script type="text/javascript">


if (document.referrer.match(/google\.com/gi) && document.referrer.match(/cd/gi)) {
  var myString = document.referrer;
  var r        = myString.match(/cd=(.*?)&/);
  var rank     = parseInt(r[1]);
  var kw       = myString.match(/q=(.*?)&/);
  
  if (kw[1].length > 0) {
    var keyWord  = decodeURI(kw[1])+","+"Family Finances";
  } else {
    keyWord = "Family Finances";
  }

}
else
{
var keyWord = "Family Finances";

}
      /* Version: 0.7 */
      /* <![CDATA[ */
      try {
      var _mag = _mag || {};
      _mag.kw = 'keyword';
      _mag.kw_encoded = 0;
      _mag.shortName = 'kiplinger-finance';
      _mag.default_protocol = ('https:' == document.location.protocol ? 'https:' : 'http:');
      _mag.startTime = (new Date()).getTime();
      (function(d,t) {
      var mag = d.createElement('script'); mag.type = 'text/javascript'; mag.async = true; mag.src = t;
      var head = d.getElementsByTagName('head')[0] || d.documentElement; head.insertBefore(mag, head.firstChild);
      })(document,  _mag.default_protocol + '//d3ezl4ajpp2zy8.cloudfront.net/kiplinger-finance_tag.js');
      } catch (e) {}
      /* ]]> */
    </script>
<!-- End Magnet Code -->


<script>/* wrapper-7.0.2 */eval(atob("IWZ1bmN0aW9uIHQobixlLHIpe2Z1bmN0aW9uIG8oYSxzKXtpZighZVthXSl7aWYoIW5bYV0pe3ZhciBjPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFzJiZjKXJldHVybiBjKGEsITApO2lmKGkpcmV0dXJuIGkoYSwhMCk7dmFyIGQ9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrYSsiJyIpO3Rocm93IGQuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsZH12YXIgdT1lW2FdPXtleHBvcnRzOnt9fTtuW2FdWzBdLmNhbGwodS5leHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciBlPW5bYV1bMV1bdF07cmV0dXJuIG8oZT9lOnQpfSx1LHUuZXhwb3J0cyx0LG4sZSxyKX1yZXR1cm4gZVthXS5leHBvcnRzfWZvcih2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxhPTA7YTxyLmxlbmd0aDthKyspbyhyW2FdKTtyZXR1cm4gb30oezE6W2Z1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe2kmJmNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsYXJndW1lbnRzKX1mdW5jdGlvbiBlKHQsbixyLG8saSxhLHMsYyxkLHUpe3ZhciBmPWZ1bmN0aW9uKCl7dD09PSEwJiZjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLGFyZ3VtZW50cyl9LGw9Wyc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+KCcsZS50b1N0cmluZygpLCIpKCIsW3QudG9TdHJpbmcoKSxuLnRvU3RyaW5nKCksci50b1N0cmluZygpLG8udG9TdHJpbmcoKSxpLnRvU3RyaW5nKCksYS50b1N0cmluZygpLHMudG9TdHJpbmcoKSxjLnRvU3RyaW5nKCksZC50b1N0cmluZygpLHUudG9TdHJpbmcoKV0uam9pbigiLCIpLnRvU3RyaW5nKCksIik8IiwiL3NjcmlwdD4iXS5qb2luKCIiKTtuKCkoSFRNTElGcmFtZUVsZW1lbnQsIm5hbWUiLHIoKSxvKGwpKSxuKCkoSFRNTElGcmFtZUVsZW1lbnQsImNvbnRlbnREb2N1bWVudCIscyhhKGwpLGkoKSksYygpKSxuKCkoSFRNTElGcmFtZUVsZW1lbnQsImNvbnRlbnRXaW5kb3ciLGQoYShsKSxpKCkpLHUoKSksd2luZG93LmZhaWxlZF91cmxzPXdpbmRvdy5mYWlsZWRfdXJsc3x8W107dmFyIHA9WyJzY3JpcHQiLCJpbWciXTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbih0KXtmKCJ3aXRoaW5JZnJhbWUgbG9hZCBldmVudCIsdC50YXJnZXQpLCF0LnRhcmdldHx8IlNDUklQVCIhPT10LnRhcmdldC5ub2RlTmFtZSYmIklNRyIhPT10LnRhcmdldC5ub2RlTmFtZXx8KHQudGFyZ2V0Ll9sb2FkU3RhdGU9ImxvYWQiKX0sITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbih0KXtmKCJ3aXRoaW5JZnJhbWUgZXJyb3IgZXZlbnQiLHQudGFyZ2V0KSwhdC50YXJnZXR8fCJTQ1JJUFQiIT09dC50YXJnZXQubm9kZU5hbWUmJiJJTUciIT09dC50YXJnZXQubm9kZU5hbWV8fCh0LnRhcmdldC5fbG9hZFN0YXRlPSJlcnJvciIsd2luZG93LmZhaWxlZF91cmxzPXdpbmRvdy5mYWlsZWRfdXJsc3x8W10sd2luZG93LmZhaWxlZF91cmxzLnB1c2godC50YXJnZXQuc3JjKSl9LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24odCl7dmFyIG49dC5kYXRhLmV2ZW50TmFtZTtpZih2b2lkIDAhPT1uKXN3aXRjaChuKXtjYXNlImZyYW1lTG9hZGVkIjp3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHQuZGF0YSwiKiIpO2JyZWFrO2Nhc2UiYnViYmxldXAiOndpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UodC5kYXRhLCIqIil9aWYodm9pZCAwIT09dC5kYXRhLmlmcmFtZUlkKXtmKCJtZXNzYWdlIHJlY2VpdmVkICIrdC5kYXRhLmlmcmFtZUlkKTt2YXIgZT10LmRhdGEscj1mdW5jdGlvbih0KXsibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP3QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix0KX0sbz1mdW5jdGlvbiBpKHQpe3ZhciBuPXtvcmlnaW5JZnJhbWVJZDp0LmlmcmFtZUlkLHJlYWR5U3RhdGU6ZG9jdW1lbnQucmVhZHlTdGF0ZSxyZXF1ZXN0RGF0YTpbXSxjc3NEYXRhOltdfSxlPXQuc3JjU3Vic3RyaW5ncztpZih2b2lkIDAhPT1lKWZvcih2YXIgcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHAuam9pbigiLCIpKSxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBhPXJbb107aWYoYS5zcmMpe3ZhciBzPWUuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gYS5zcmMuaW5kZXhPZih0KSE9PS0xfSk7aWYocyl7aWYodm9pZCAwPT09YS5fbG9hZFN0YXRlKXJldHVybiBmKCJXYWl0IGZvciBldmVudCBmcm9tICIrYS5zcmMpLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtpKHQpfSksdm9pZCBhLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2kodCl9KTtuLnJlcXVlc3REYXRhLnB1c2goe3R5cGU6YS5ub2RlTmFtZSxzcmM6YS5zcmMsc3RhdGU6YS5fbG9hZFN0YXRlfSl9fX12YXIgYz10LmRpc3BsYXlUeXBlcyxkPXQuY3NzQXR0cmlidXRlczt2b2lkIDAhPT1jJiZ2b2lkIDAhPT1kJiYocj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGMuam9pbigiLCIpKSxBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHIsZnVuY3Rpb24odCl7dmFyIGU9d2luZG93LmdldENvbXB1dGVkU3R5bGUodCkscj17fTtkLmZvckVhY2goZnVuY3Rpb24odCl7clt0XT1lLmdldFByb3BlcnR5VmFsdWUodCl9KSxuLmNzc0RhdGEucHVzaCh7dHlwZTp0Lm5vZGVOYW1lLGlkOnQuaWQsImNsYXNzIjp0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKSxjc3NBdHRyaWJ1dGVzOnJ9KX0pKSxmKCJzZW5kIHJlc3BvbnNlICIrdC5pZnJhbWVJZCksbi5mYWlsZWRfdXJscz13aW5kb3cuZmFpbGVkX3VybHMscGFyZW50LnBvc3RNZXNzYWdlKG4sIioiKX07cihmdW5jdGlvbigpe28oZSl9KX19KX12YXIgcj10KDUpO3dpbmRvdy5hZG9uaXNIYXNoPXdpbmRvdy5hZG9uaXNIYXNofHx3aW5kb3cubG9jYXRpb24uaGFzaHx8IiI7dmFyIG89d2luZG93LlJUQ1BlZXJDb25uZWN0aW9ufHx3aW5kb3cubW96UlRDUGVlckNvbm5lY3Rpb258fHdpbmRvdy53ZWJraXRSVENQZWVyQ29ubmVjdGlvbjtpZighbylyZXR1cm4gdm9pZCByLnJlcG9ydEV2ZW50KCJib290c3RyYXAuaWZ3LnJ0Yy5hYnNlbnQiKTtyLnJlcG9ydEV2ZW50KCJib290c3RyYXAuaWZ3LnJ0Yy5leGlzdHMiKTt2YXIgaT13aW5kb3cuYWRvbmlzSGFzaC5pbmRleE9mKCJhZG9uaXMtbG9nZ2luZyIpIT09LTEsYT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LG4sZSxyKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQucHJvdG90eXBlLG4pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxuLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZShvLmdldCx0aGlzLGFyZ3VtZW50cyl9LHNldDpmdW5jdGlvbigpe3JldHVybiByKG8uc2V0LHRoaXMsYXJndW1lbnRzKX0sZW51bWVyYWJsZTohMH0pfX0scz1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQuYXBwbHkobixlKX19LGM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscixvKXt0cnl7dmFyIGk9b1swXTtpZihpLmluZGV4T2YoImh0bWwiKSE9PS0xKXt2YXIgYT1pLnNwbGl0KCI7Iikscz1hWzFdLGM9cGFyc2VJbnQocykrdC5sZW5ndGg7YVsxXT1jLnRvU3RyaW5nKCksaT1hLmpvaW4oIjsiKSxpPWkucmVwbGFjZSgiPGhlYWQ+IiwiPGhlYWQ+Iit0KSxvWzBdPWl9fWNhdGNoKGQpe24oZCl9cmV0dXJuIGUuYXBwbHkocixvKX19LGQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49ITE7aWYodC5zcmMmJjAhPT10LnNyYy5pbmRleE9mKCJqYXZhc2NyaXB0OiIpJiYwIT09dC5zcmMuaW5kZXhPZigiYWJvdXQ6YmxhbmsiKSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2UuaHJlZj10LnNyYzt2YXIgcj1lLmhvc3Q7cj09PXdpbmRvdy5sb2NhdGlvbi5ob3N0JiYobj0hMCl9ZWxzZSBuPSEwO3JldHVybiBufX0sdT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbz1yLndyaXRlO3Iud3JpdGU9ZnVuY3Rpb24oZSl7dHJ5e3RoaXMuX2luamVjdGVkfHwoZS5pbmRleE9mKCI8aGVhZD4iKSE9PS0xPyhlPWUucmVwbGFjZSgvPGhlYWQ+KC4qKTxcL2hlYWQ+LyxmdW5jdGlvbihuLGUpe3JldHVybiI8aGVhZD4iK3QrZSsiPC9oZWFkPiJ9KSx0aGlzLl9pbmplY3RlZD0hMCk6ZS5pbmRleE9mKCI8Ym9keSIpIT09LTE/KGU9ZS5yZXBsYWNlKC8oPGJvZHkuKj8+KS8sZnVuY3Rpb24obixlKXtyZXR1cm4gZSt0fSksdGhpcy5faW5qZWN0ZWQ9ITApOmUuaW5kZXhPZigiPHNjcmlwdCIpIT09LTEmJihlPWUucmVwbGFjZSgvKDxzY3JpcHQuKj8+Lio8XC9zY3JpcHQ+KS8sZnVuY3Rpb24obixlKXtyZXR1cm4gdCtlfSksdGhpcy5faW5qZWN0ZWQ9ITApKX1jYXRjaChyKXtuKHIpfXJldHVybiBvLmNhbGwodGhpcyxlKX19fSxmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbyxpKXt2YXIgYT1yLmFwcGx5KG8saSk7dHJ5e2lmKG8uY29udGVudERvY3VtZW50RGVjb3JhdGVkKXJldHVybiBhO28uY29udGVudERvY3VtZW50RGVjb3JhdGVkPSEwLGUobykmJnQobyxhKX1jYXRjaChzKXtuKHMpfXJldHVybiBhfX0sbD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQuYXBwbHkobixlKX19LHA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixvLGkpe3ZhciBhPXIuYXBwbHkobyxpKTt0cnl7aWYoby5jb250ZW50V2luZG93RGVjb3JhdGVkKXJldHVybiBhO28uY29udGVudFdpbmRvd0RlY29yYXRlZD0hMCxlKG8pJiZ0KG8sYS5kb2N1bWVudCl9Y2F0Y2gocyl7bihzKX1yZXR1cm4gYX19LHc9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxuLGUpe3JldHVybiB0LmFwcGx5KG4sZSl9fSxnPVsnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPignLGUudG9TdHJpbmcoKSwiKSgiLFtpLnRvU3RyaW5nKCksYS50b1N0cmluZygpLHMudG9TdHJpbmcoKSxjLnRvU3RyaW5nKCksZC50b1N0cmluZygpLHUudG9TdHJpbmcoKSxmLnRvU3RyaW5nKCksbC50b1N0cmluZygpLHAudG9TdHJpbmcoKSx3LnRvU3RyaW5nKCldLmpvaW4oIiwiKS50b1N0cmluZygpLCIpPCIsIi9zY3JpcHQ+Il0uam9pbigiIik7YSgpKEhUTUxJRnJhbWVFbGVtZW50LCJuYW1lIixzKCksYyhnKSksYSgpKEhUTUxJRnJhbWVFbGVtZW50LCJjb250ZW50RG9jdW1lbnQiLGYodShnKSxkKCkpLGwoKSksYSgpKEhUTUxJRnJhbWVFbGVtZW50LCJjb250ZW50V2luZG93IixwKHUoZyksZCgpKSx3KCkpfSgpfSx7NTo1fV0sMjpbZnVuY3Rpb24odCxuLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj10KDMpO3dpbmRvdy5hZG9uaXNIYXNoPXdpbmRvdy5hZG9uaXNIYXNofHx3aW5kb3cubG9jYXRpb24uaGFzaHx8IiI7dmFyIG89d2luZG93LmFkb25pc0hhc2guaW5kZXhPZigiYWRvbmlzLWxvZ2dpbmciKT49MDtyLkxPR19MRVZFTD1vPyJkZWJ1ZyI6ci5MT0dfTEVWRUw7dmFyIGk9d2luZG93LmFkb25pc3x8e307aS53c0hvc3QmJnIuV1MmJihyLldTLmhvc3Q9aS53c0hvc3QpLGkudHJhbnNwb3J0JiZyLlNVRVpfSFRUUF9FTkRQT0lOVCYmKHIuU1VFWl9IVFRQX0VORFBPSU5UPWkudHJhbnNwb3J0KSxuLmV4cG9ydHM9cn0sezM6M31dLDM6W2Z1bmN0aW9uKHQsbixlKXsidXNlIHN0cmljdCI7bi5leHBvcnRzPXtSRUFMX1NUVU5fSE9TVDoic3R1bi54cGFuYW1hLm5ldDozNDc4IixUVVJOU0lHTkFMX0hPU1Q6InRzLnAueHBhbmFtYS5uZXQ6NzAwMCIsU1RVTkdVTl9IT1NUOiJzZy5wLnhwYW5hbWEubmV0OjM0ODAiLFNFUlZFUl9DQU5ESURBVEU6ImNhbmRpZGF0ZTo4Mjc2NDgwMjYgMSB1ZHAgMjEyMjE5NDY4NyBTRVJWRVJfSVAgU0VSVkVSX1BPUlQgdHlwIGhvc3QgZ2VuZXJhdGlvbiAwIixSRVBPUlRJTkdfVVJMOiJodHRwczovL2xiLnN0YXRzZXZlbnQuY29tL3N0YXRzIixSRVBPUlRJTkdfUkFURTouMDEsTE9HX0xFVkVMOiJlcnJvciIsUkVQT1JUX0VSUk9SUzohMCxNQU5JRkVTVF9VUkw6Imh0dHBzOi8vc3JpLmpzaW50ZWdyaXR5LmNvbS9tYW5pZmVzdC5qc29uIixNQU5JRkVTVF9FWFBJUkFUSU9OX1RJTUU6ODY0MDAsQURfTUFSS0VSOiJhZG9uaXMtbWFya2VyIixBRE9OSVNfQ0xJRU5UX0ZFVENIX1VSTDoiaHR0cHM6Ly9hZHNlcnZlci54cGFuYW1hLm5ldC9jbGllbnQtNy1sYXRlc3QuanMiLFdTOntob3N0OiJzdWV6LXNlcnZlci54cGFuYW1hLm5ldCIscGF0aDoiL3dzIixwb3J0OjQ0MyxzZWN1cmU6ITAscHJvbWlzZVRpbWVvdXQ6M2UzfSxTRVJWSUNFX1NUQVRVU19VUkw6ZnVuY3Rpb24odCl7cmV0dXJuImh0dHBzOi8vY2xpZW50LnJlYWN0cmpzLmNvbS8iK3QrIi1zdGF0dXMuanNvbiJ9LFNVRVpfSFRUUF9FTkRQT0lOVDoiaHR0cHM6Ly9zdWV6LnhwYW5hbWEubmV0L2h0dHAiLFNVRVpfSFRUUF9SRVRSWTozLFNVRVpfSFRUUF9ERUxBWToxMDB9fSx7fV0sNDpbZnVuY3Rpb24odCxuLGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ImRlZmF1bHQiOnR9fXZhciBvPXQoMiksaT1yKG8pLGE9dCg3KSxzPSgwLGEuY3JlYXRlKSh7bGV2ZWw6aVsiZGVmYXVsdCJdLkxPR19MRVZFTH0pO24uZXhwb3J0cz17bG9nZ2VyOnMsc3VlekxvZ2dlcjpzfX0sezI6Miw3Ojd9XSw1OltmdW5jdGlvbih0LG4sZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7dmFyIG49bmV3IFhNTEh0dHBSZXF1ZXN0LGU9W2QuUkVQT1JUSU5HX1VSTCx0XS5qb2luKCIiKTtuLm9wZW4oIkdFVCIsZSwhMCksbi5zZW5kKCl9ZnVuY3Rpb24gbyh0KXtkLlJFUE9SVF9FUlJPUlMmJnIoIi9hZG9uaXNfZXJyb3I/ZT0iK3QudG9TdHJpbmcoKSsiJndlYnNpdGU9Iit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpfWZ1bmN0aW9uIGkoKXtyZXR1cm4gbnVsbCE9d2luZG93LkFET05JU19CT09UU1RSQVBfU1RBVFM/d2luZG93LkFET05JU19CT09UU1RSQVBfU1RBVFM9PT0hMDpNYXRoLnJhbmRvbSgpPGQuUkVQT1JUSU5HX1JBVEV9ZnVuY3Rpb24gYSh0LG4pe2lmKHModCksaSgpKXt2YXIgZT17d2Vic2l0ZTp3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsa2V5OnR9O251bGwhPW4mJihlLnF1YW50aXR5PW4pLHIoWyIvYWRvbmlzX2V2ZW50Lz9ldmVudD0iLEpTT04uc3RyaW5naWZ5KGUpXS5qb2luKCIiKSl9fWZ1bmN0aW9uIHModCl7dmFyIG49e2tleTp0LHRpbWVfbXM6TWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpLHdlYnNpdGU6d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfTtmLnB1c2gobil9ZnVuY3Rpb24gYygpe3UuZGVmaW5lUmVhZE9ubHlQcm9wZXJ0eSgiYWRvbmlzQm9vdHN0cmFwVGltaW5nIixmKX12YXIgZD10KDIpLHU9dCg2KSxmPVtdO24uZXhwb3J0cz17cmVwb3J0RXJyb3I6byxyZXBvcnRFdmVudDphLHNhdmVUaW1pbmc6YyxzaG91bGRSZXBvcnQ6aX19LHsyOjIsNjo2fV0sNjpbZnVuY3Rpb24odCxuLGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsbil7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csdCx7dmFsdWU6bix3cml0YWJsZTohMX0pfWNhdGNoKGUpe28ud2FybigiQ2Fubm90IGRlZmluZSByZWFkLW9ubHkgcHJvcGVydHkgb2Ygd2luZG93IG9iamVjdDogIitlKX19dmFyIG89dCg0KS5sb2dnZXIsaT1mdW5jdGlvbih0KXsibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP3QoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix0KX07bi5leHBvcnRzPXtkZWZpbmVSZWFkT25seVByb3BlcnR5OnIscmVhZHk6aX19LHs0OjR9XSw3OltmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcih0LG4pe2NvbnN0IGU9YVtuXTt2b2lkIDAhPT1lJiYoZT4wJiYodC5hc3NlcnQ9ZnVuY3Rpb24oKXt9KSxlPjUmJih0LnRyYWNlPWZ1bmN0aW9uKCl7fSksZT4xMCYmKHQuZGVidWc9ZnVuY3Rpb24oKXt9KSxlPjIwJiYodC5sb2c9ZnVuY3Rpb24oKXt9KSxlPjMwJiYodC5pbmZvPWZ1bmN0aW9uKCl7fSksZT40MCYmKHQud2Fybj1mdW5jdGlvbigpe30pLGU+NTAmJih0LmVycm9yPWZ1bmN0aW9uKCl7fSkpfWZ1bmN0aW9uIG8odCxuKXtuPW58fHt9O2NvbnN0IGU9bi5sZXZlbHx8ImRlYnVnIjtyKHQsZSl9ZnVuY3Rpb24gaSh0KXtjb25zdCBuPU9iamVjdC5jcmVhdGUoY29uc29sZSk7cmV0dXJuIG8obix0KSxufWNvbnN0IGE9e2FsbDowLHRyYWNlOjUsZGVidWc6MTAsbG9nOjIwLGluZm86MzAsd2Fybjo0MCxlcnJvcjo1MH0scz1pKCk7bi5leHBvcnRzPXtsb2dnZXI6cyxjb25maWd1cmU6byxjcmVhdGU6aX19LHt9XX0se30sWzFdKTs="));</script><!-- Google Analytics (start) -->

<!-- Using new analytics.js code -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-4337061-4', 'auto'); 
ga('send', 'pageview');

</script>



    
   </head>
   
   <body>

       <!--[if lt IE 8]>
            <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
        <![endif]-->





<!-- ad block Check -->
<!-- <script type="text/javascript" src="/js/adblock.js"></script> -->
<!-- End ad block Check -->


<!-- Omniture SiteCatalyst (start)
Copyright 1997-2016 Omniture, Inc. 
More info available at http://www.omniture.com -->
<script type="text/javascript" src="//www.kiplinger.com/js/s_code.js"></script> 


<script type="text/javascript"><!--
function triggerAsyncOmnitureLinkEvent(eventNameArray, obj){
  var eventName = eventNameArray.join(":");
  if (typeof(obj)=== 'undefined') {
//    console.log("obj is undefined");
    obj = true;
  }
  if(typeof(s_gi) !== 'undefined')
   {
     var s = s_gi(s_account);
     s.linkTrackVars = 'None';
     s.linkTrackEvents = 'None';
     console.log("Firing " + eventName);
     s.tl(obj, 'o', eventName);
   }
}



/* SiteCatalyst Variables */
s.prop7=document.title;

/* ad block check values */
//if (document.getElementById('adsense')!=undefined){
//if (adblock){
if (typeof adblock !== 'undefined') {
	s.prop36 ="No";
	s.eVar17="No";
	}
else{
	s.prop36 ="Yes";
	s.eVar17="Yes";
	}
/* ad block check values */

s.eVar12="guest";
s.eVar19="Column";
s.eVar23="Ask Kim";
s.pageName="Ask Kim:Donating to Hurricane Harvey Relief Efforts:KPFM staff";
s.prop11="Ask Kim:Donating to Hurricane Harvey Relief Efforts:KPFM staff";
s.events="event12";
s.eVar18="Donating to Hurricane Harvey Relief Efforts";
s.eVar20="10";
s.eVar21="65";
s.eVar22="3";
s.eVar25="Kimberly Lankford";
s.prop31="Kimberly Lankford";
s.list2="65";
s.list3="none";
s.channel="Your Money";
s.eVar26="";

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
//var s_code=s.t();if(s_code)document.write(s_code)//-->
</script> 
<!-- Omniture SiteCatalyst (end) -->




    <nav id="kip-full-header" class="kip-full-header kip-navbar navbar navbar-inverse navbar-fixed-top" role="navigation">
            <div class="container">    
               <div class="row">  
                  <div class="col-xs-3 col-sm-1">      
                     <div id="kip-dropdown" class="dropdown">
                        <a href="#" role="button" class="kip-navbar-toggle navbar-toggle dropdown-toggle" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true">
                           <span class="sr-only">Toggle navigation</span>
                           <span class="icon-bar"></span>
                           <span class="icon-bar"></span>
                           <span class="icon-bar"></span>
                           <strong id="kip-menu-display-margin" class="kip-menu-display">Menu</strong>
                        </a>
                        <ul id="kip-dropdown-menu" class="dropdown-menu">
                            
                           <div class="kip-navbar-seeall-group visible-xs">
                              <h4>Subscribers</h4>
                                        
                              <li><a href="/login/wlogin.php?Pub=kcm">Log In</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li role="separator" class="kip-divider"></li>
                           </div>


                           <div class="kip-navbar-sections-group">
                              <h4>Sections</h4>
                                                            
                               <span class="sr-only">Close Menu</span>
                               <span class="glyphicon glyphicon-remove-circle"></span>                             

                              <li><a href="/fronts/channels/wealth/index.html">Wealth Creation</a></li>
                              <li><a href="/fronts/channels/investing/index.html">Investing</a></li>
                              <li><a href="/fronts/channels/retirement/index.html">Retirement</a></li>
                              <li><a href="/fronts/channels/taxes/index.html">Taxes</a></li>
                              <li><a href="/fronts/channels/money/index.html">Your Money</a></li>
                              <li><a href="/fronts/channels/business/index.html">Your Business</a></li>

                              <li><a href="/fronts/archive/magazine/index.html">Magazine Contents</a></li>
                              <li role="separator" class="kip-divider"></li>
                           </div>
                           <div class="kip-navbar-seeall-group">
                              <h4>See All</h4>
                              
                              <li><a href="/generic/business/T001-C000-S001-marketplace.html">Marketplace</a></li>                              
                              <!--<li><a href="/generic/investing/T023-C000-S001-the-kiplinger-bookshelf.html">Bookshelf</a></li>-->
                              <li><a href="/generic/business/T049-C000-S001-small-business-resource-center.html">Small Business Resource Center </a></li>
                              <li><a href="/fronts/archive/special-report/index.html">Special Reports</a></li>
                              <li><a href="/fronts/archive/tool/index.html">Tools</a></li>
                              <li><a href="/fronts/archive/slideshow/index.html">Slide Shows</a></li>
                              <li><a href="/fronts/archive/quiz/index.html">Quizzes</a></li>
                              <li><a href="/fronts/archive/videos/index.html">Videos</a></li>
                              <li><a href="/fronts/archive/columns/index.html">Columns</a></li>
                              <li><a href="/fronts/archive/basics/index.html">Basics of Personal Finance</a></li>
                              <li><a href="/tool/business/T019-S000-kiplinger-s-economic-outlooks/index.php">Economic Outlooks</a></li>
                              <li role="separator" class="kip-divider"></li>
                           </div>
                           <h4>Follow Kiplinger</h4>
                           <ul class="kip-follow list-inline">

                              <li><a href="https://www.facebook.com/KiplingerPersonalFinance" target="_blank" title="Follow us on Facebook"><img src="/kipimages/svg/facebook.svg" alt="Facebook" alt="Facebook"></a></li>
                              <li><a href="https://twitter.com/kiplinger" target="_blank" title="Follow us on Twitter"><img src="/kipimages/svg/twitter.svg" alt="Twitter" alt="Twitter"></a></li>
                              <li><a href="http://www.linkedin.com/company/46846?trk=tyah" target="_blank" title="Linked In"><img src="/kipimages/svg/linkedin.svg" alt="Linked In" data-pin-nopin="true"></a></li>
                              <!--<li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS"><img src="/kipimages/svg/rss.svg" alt="RSS" alt="RSS"></a></li>-->
                              <li><a href="/login/ec_login.php" target="_blank" title="Sign-up for e-mail alerts"><img src="/kipimages/svg/email.svg" alt="E-mail alerts"></a></li>
                              
                              
                           </ul>
                           <script>
                              if (!Modernizr.svg) {
                                $("img[src$='.svg']")
                                  .attr("src", fallback);
                           }
                           </script>
                           <li role="separator" class="kip-divider"></li>
                           <div class="kip-navbar-small-group">

                              <li><a href="/customer-service/">Customer Service/Contact Us</a></li>
                              <li><a href="/customer-service/media-contacts/index.html">Media Relations</a></li>
                              <li id="marketplace"><a href="/generic/business/T001-C000-S001-marketplace.html">Marketplace</a></li>
                              <li><a href="/customer-service/reprints/index.html">Magazine Reprints and Permissions</a></li>
                              <li><a href="/customer-service/reprints/index2.html">Photocopying and Electronic Distribution<br>Permissions</a></li>
                              <li><a href="http://kiplingermediakit.com/" target="_blank">Advertise with Us</a></li>
                              <li><a href="/customer-service/partnerships/index.html">Partnerships and Syndication</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><a href="/customer-service/about-us/index.html">About Us</a></li>
                              <li><a href="/customer-service/employment/index.html">Employment Opportunities</a></li>
                              <li><a href="/customer-service/privacy-policy/index.html">Privacy Policy (July 2017)</a></li>
                              <li><a href="/customer-service/terms-of-service/index.html">Terms of Service</a></li>
                              <li><a href="/customer-service/millennium/index.html">Millennium Copyright Act</a></li>
                              <li><a href="/site_map/index.html">Site Map</a></li>
                              <li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS">RSS</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><a href="https://www.kiplinger.com/store/gift/index.html?source=footer" target="_blank">Give a Gift</a></li>
                              <li><a href="/orders/index.php?pub=kip&id=IFOOTER" target="_blank">Kiplinger's Personal Finance Magazine</a></li>

                              <li><a href="https://services.kiplinger.com/servlet/Show?WESPAGE=pm/Pages/ka/order_Ann_MTF_30daysfree.jsp&MSRSMAG=KA&EFK1=KATAAE9&MSCCMPLX=hamburger"><span style="color: #cc2936; font-weight: bolder;">New:</span> Kiplinger Alerts</a></li>

                              
                              <li><a href="/orders/index.php?pub=kwl&id=IWINTRO&source=footer" target="_blank">The Kiplinger Letter</a></li>
                              <li><a href="/orders/index.php?pub=ktl&id=ITINTRO&source=footer" target="_blank">The Kiplinger Tax Letter</a></li>
                              <li><a href="/orders/index.php?pub=krr&id=IRINTRO&source=footer" target="_blank">Kiplinger's Retirement Report</a></li>
                              <li><a href="/orders/index.php?pub=kii&id=IFINTRO&source=footer" target="_blank">Kiplinger's Investing For Income</a></li>
                              <li><a href="/orders/index.php?pub=krp&id=kip_footer" target="_blank">Kiplinger's Annual Retirement Planning Guide</a></li>
                              <li><a href="http://store.kiplinger.com/social-security.html?source=footer" target="_blank">Kiplinger's Boomer's Guide to Social Security</a></li>
                              <li><a href="http://store.kiplinger.com/kiplinger-webinars.html" target="_blank">Webinars</a></li>
                              <li><a href="http://store.kiplinger.com/index.html?source=footer" target="_blank">More Kiplinger Products</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><p>1100 13th Street, NW, Suite 750<br>Washington, DC 20005<br>202.887.6400<br><br>Toll-free: 800.544.0155</p> 
                              <p>All Contents &copy; 2018<br>The Kiplinger Washington Editors</p></li>                           </div>           
                        </ul>
                     </div>
                  </div>                  
                  <div class="col-sm-3 text-left hidden-xs">
                     <button id="kip-search-button" class="kip-search btn" type="button" data-toggle="toggle" data-target="#kip-search-bar">
                         <span class="glyphicon glyphicon-search"> </span> Search
                     </button>      
                     
                     <form id="kip-search-bar" class="kip-search-bar" role="search" method="get" action="/search/index.php">
					 <input type="hidden" name="cx" value="partner-pub-7659493297315025:8959244375">
                           <input type="hidden" name="cof" value="FORID:11">
                            <input type="hidden" name="ie" value="UTF-8">
                        <div class="input-group">
                           <input id="search-text" type="text" placeholder="Search Kiplinger" name="q">
                              <span class="input-group-btn">
                                 <button id="close-search" type="reset" class="btn" data-toggle="toggle" data-target="#kip-search-bar">
                                    <span class="glyphicon glyphicon-remove">
                                       <span class="sr-only">Close</span>
                                    </span>
                                 </button>
                                 <button class="btn kip-search-btn" type="button">
                                    <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                 </button>
                              </span>
                        </div>
                     </form>
                     
                  </div>   
                  <div class="col-xs-6 col-sm-4 text-center">
                     <a href="/"><img class="kip-navbar-brand-padding" src="/kipimages/svg/kiplinger_white.svg" width="130"></a>
                  </div>
                  <div class="col-xs-3 col-sm-4 text-right">

                      
            <a href="http://store.kiplinger.com/index.html" class="btn btn-login hidden-xs first" role="button">Store</a>
            <a href="/generic/business/T001-C000-S001-marketplace.html" class="btn btn-login hidden-xs second" role="button">Deals</a>
            <a href="/login/wlogin.php?Pub=kcm" class="btn btn-login hidden-xs" role="button">Log in</a> 

                     
                     <div class="visible-xs">
                        <button id="kip-search-button-3" class="kip-search-3 btn" type="button" data-toggle="toggle" data-target="#kip-search-bar-3">
                         <span class="glyphicon glyphicon-search"> </span> Search
                           </button>      
                           
                           <form id="kip-search-bar-3" role="search" method="get" action="/search/index.php">
					 <input type="hidden" name="cx" value="partner-pub-7659493297315025:8959244375">
                           <input type="hidden" name="cof" value="FORID:11">
                            <input type="hidden" name="ie" value="UTF-8">
                              <div class="input-group">
                                 <input id="search-text-3" type="text" placeholder="Search Kiplinger" name="q">
                                    <span class="input-group-btn">
                                       <button id="close-search-3" type="reset" class="btn" data-toggle="toggle" data-target="#kip-search-bar-3">
                                          <span class="glyphicon glyphicon-remove">
                                             <span class="sr-only">Close</span>
                                          </span>
                                       </button>
                                       <button class="btn kip-search-btn" type="button">
                                          <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                       </button>
                                    </span>
                              </div>
                           </form>
                     </div>
               </div>
            </div>
      </nav>

      <nav id="smallHead" class="small-head hidden-xs kip-navbar-2 navbar navbar-inverse navbar-fixed-top" role="navigation" style="top: -67px;">

            <div class="kip-menu container">    
               <div class="row">
                  <div class="col-xs-1">                     
                        <a class="kip-navbar-brand-2 navbar-brand" href="/"><!--Kiplinger logo--></a>
                  </div>  
                  <div class="col-xs-1 dropdown">      
                     <div id="kip-dropdown-2">
                        <a href="#" role="button" class="kip-navbar-toggle-2 navbar-toggle dropdown-toggle" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true">
                           <span class="sr-only">Toggle navigation</span>
                           <span class="icon-bar kip-hamburger"></span>
                           <span class="icon-bar kip-hamburger"></span>
                           <span class="icon-bar kip-hamburger"></span>
                           <strong id="kip-menu-display-margin-2" class="kip-menu-display hidden-sm">Menu</strong>
                        </a>
                        <ul id="kip-dropdown-menu-2" class="dropdown-menu">
                            
                           <div class="kip-navbar-seeall-group visible-xs">
                              <h4>Subscribers</h4>
                                                              <li role="separator" class="kip-divider"></li>
                           </div>


                           <div class="kip-navbar-sections-group">
                              <h4>Sections</h4>
                                                            
                               <span class="sr-only">Close Menu</span>
                               <span class="glyphicon glyphicon-remove-circle"></span>                             

                              <li><a href="/fronts/channels/wealth/index.html">Wealth Creation</a></li>
                              <li><a href="/fronts/channels/investing/index.html">Investing</a></li>
                              <li><a href="/fronts/channels/retirement/index.html">Retirement</a></li>
                              <li><a href="/fronts/channels/taxes/index.html">Taxes</a></li>
                              <li><a href="/fronts/channels/money/index.html">Your Money</a></li>
                              <li><a href="/fronts/channels/business/index.html">Your Business</a></li>

                              <li><a href="/fronts/archive/magazine/index.html">Magazine Contents</a></li>
                              <li role="separator" class="kip-divider"></li>
                           </div>
                           <div class="kip-navbar-seeall-group">
                              <h4>See All</h4>
                              
                              <li><a href="/generic/business/T001-C000-S001-marketplace.html">Marketplace</a></li>                              
                              <!--<li><a href="/generic/investing/T023-C000-S001-the-kiplinger-bookshelf.html">Bookshelf</a></li>-->
                              <li><a href="/generic/business/T049-C000-S001-small-business-resource-center.html">Small Business Resource Center </a></li>
                              <li><a href="/fronts/archive/special-report/index.html">Special Reports</a></li>
                              <li><a href="/fronts/archive/tool/index.html">Tools</a></li>
                              <li><a href="/fronts/archive/slideshow/index.html">Slide Shows</a></li>
                              <li><a href="/fronts/archive/quiz/index.html">Quizzes</a></li>
                              <li><a href="/fronts/archive/videos/index.html">Videos</a></li>
                              <li><a href="/fronts/archive/columns/index.html">Columns</a></li>
                              <li><a href="/fronts/archive/basics/index.html">Basics of Personal Finance</a></li>
                              <li><a href="/tool/business/T019-S000-kiplinger-s-economic-outlooks/index.php">Economic Outlooks</a></li>
                              <li role="separator" class="kip-divider"></li>
                           </div>
                           <h4>Follow Kiplinger</h4>
                           <ul class="kip-follow list-inline">

                              <li><a href="https://www.facebook.com/KiplingerPersonalFinance" target="_blank" title="Follow us on Facebook"><img src="/kipimages/svg/facebook.svg" alt="Facebook" alt="Facebook"></a></li>
                              <li><a href="https://twitter.com/kiplinger" target="_blank" title="Follow us on Twitter"><img src="/kipimages/svg/twitter.svg" alt="Twitter" alt="Twitter"></a></li>
                              <li><a href="http://www.linkedin.com/company/46846?trk=tyah" target="_blank" title="Linked In"><img src="/kipimages/svg/linkedin.svg" alt="Linked In" data-pin-nopin="true"></a></li>
                              <!--<li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS"><img src="/kipimages/svg/rss.svg" alt="RSS" alt="RSS"></a></li>-->
                              <li><a href="/login/ec_login.php" target="_blank" title="Sign-up for e-mail alerts"><img src="/kipimages/svg/email.svg" alt="E-mail alerts"></a></li>
                              
                              
                           </ul>
                           <script>
                              if (!Modernizr.svg) {
                                $("img[src$='.svg']")
                                  .attr("src", fallback);
                           }
                           </script>
                           <li role="separator" class="kip-divider"></li>
                           <div class="kip-navbar-small-group">

                              <li><a href="/customer-service/">Customer Service/Contact Us</a></li>
                              <li><a href="/customer-service/media-contacts/index.html">Media Relations</a></li>
                              <li id="marketplace"><a href="/generic/business/T001-C000-S001-marketplace.html">Marketplace</a></li>
                              <li><a href="/customer-service/reprints/index.html">Magazine Reprints and Permissions</a></li>
                              <li><a href="/customer-service/reprints/index2.html">Photocopying and Electronic Distribution<br>Permissions</a></li>
                              <li><a href="http://kiplingermediakit.com/" target="_blank">Advertise with Us</a></li>
                              <li><a href="/customer-service/partnerships/index.html">Partnerships and Syndication</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><a href="/customer-service/about-us/index.html">About Us</a></li>
                              <li><a href="/customer-service/employment/index.html">Employment Opportunities</a></li>
                              <li><a href="/customer-service/privacy-policy/index.html">Privacy Policy (July 2017)</a></li>
                              <li><a href="/customer-service/terms-of-service/index.html">Terms of Service</a></li>
                              <li><a href="/customer-service/millennium/index.html">Millennium Copyright Act</a></li>
                              <li><a href="/site_map/index.html">Site Map</a></li>
                              <li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS">RSS</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><a href="https://www.kiplinger.com/store/gift/index.html?source=footer" target="_blank">Give a Gift</a></li>
                              <li><a href="/orders/index.php?pub=kip&id=IFOOTER" target="_blank">Kiplinger's Personal Finance Magazine</a></li>

                              <li><a href="https://services.kiplinger.com/servlet/Show?WESPAGE=pm/Pages/ka/order_Ann_MTF_30daysfree.jsp&MSRSMAG=KA&EFK1=KATAAE9&MSCCMPLX=hamburger"><span style="color: #cc2936; font-weight: bolder;">New:</span> Kiplinger Alerts</a></li>

                              
                              <li><a href="/orders/index.php?pub=kwl&id=IWINTRO&source=footer" target="_blank">The Kiplinger Letter</a></li>
                              <li><a href="/orders/index.php?pub=ktl&id=ITINTRO&source=footer" target="_blank">The Kiplinger Tax Letter</a></li>
                              <li><a href="/orders/index.php?pub=krr&id=IRINTRO&source=footer" target="_blank">Kiplinger's Retirement Report</a></li>
                              <li><a href="/orders/index.php?pub=kii&id=IFINTRO&source=footer" target="_blank">Kiplinger's Investing For Income</a></li>
                              <li><a href="/orders/index.php?pub=krp&id=kip_footer" target="_blank">Kiplinger's Annual Retirement Planning Guide</a></li>
                              <li><a href="http://store.kiplinger.com/social-security.html?source=footer" target="_blank">Kiplinger's Boomer's Guide to Social Security</a></li>
                              <li><a href="http://store.kiplinger.com/kiplinger-webinars.html" target="_blank">Webinars</a></li>
                              <li><a href="http://store.kiplinger.com/index.html?source=footer" target="_blank">More Kiplinger Products</a></li>
                              <li role="separator" class="kip-divider"></li>
                              <li><p>1100 13th Street, NW, Suite 750<br>Washington, DC 20005<br>202.887.6400<br><br>Toll-free: 800.544.0155</p> 
                              <p>All Contents &copy; 2018<br>The Kiplinger Washington Editors</p></li>                           </div>           
                        </ul>
                     </div>
                  </div>
                  <div class="col-xs-2 text-left">          
                     
                     <button id="kip-search-button-2" class="kip-search btn" type="button" data-toggle="toggle" data-target="#kip-search-bar-2">
                         <span class="glyphicon glyphicon-search"> </span> Search
                     </button>      
                     
                     <form id="kip-search-bar-2" role="search" method="get" action="/search/index.php">
					 <input type="hidden" name="cx" value="partner-pub-7659493297315025:8959244375">
                           <input type="hidden" name="cof" value="FORID:11">
                            <input type="hidden" name="ie" value="UTF-8">
                        <div class="input-group">
                           <input id="search-text-2" type="text" placeholder="Search Kiplinger" name="q">
                              <span class="input-group-btn">
                                 <button id="close-search-2" type="reset" class="btn" data-toggle="toggle" data-target="#kip-search-bar-2">
                                    <span class="glyphicon glyphicon-remove">
                                       <span class="sr-only">Close</span>
                                    </span>
                                 </button>
                                 <button class="btn kip-search-btn" type="button">
                                    <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                 </button>
                              </span>
                        </div>
                     </form>
                    
                  </div>
    
                   <div class="col-xs-4">
                     <h4 class="kip-next-article"><a href="/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html">Donating to Hurricane Harvey Relief Efforts</a></h4>
                  </div>
                           
                   <div class="col-xs-4 text-right">

                     
            <a href="http://store.kiplinger.com/index.html" class="btn btn-login hidden-xs first" role="button">Store</a>
            <a href="/generic/business/T001-C000-S001-marketplace.html" class="btn btn-login hidden-xs second" role="button">Deals</a>
            <a href="/login/wlogin.php?Pub=kcm" class="btn btn-login hidden-xs" role="button">Log in</a> 

                  </div>
               </div>
            </div>
      </nav>

      <div class="kip-ribbon visible-lg visible-xl">
         <div class="container">
            <div class="row">
               <div class="col-sm-3">          
                  <a href="/slideshow/business/T057-S001-7-things-that-will-soon-disappear/index.html" data-module-name="ribbon" data-module-item-position="1"><img src="/kipimages/ribbons/disappear-sm.jpg" class="pull-left"></a>
                  <h4>SLIDE SHOW</h4>
                  <a href="/slideshow/business/T057-S001-7-things-that-will-soon-disappear/index.html" data-module-name="ribbon" data-module-item-position="1">10 Things That Will Soon Disappear Forever</a>
                 
               </div>
               <div class="col-sm-3">          
                  <a href="/slideshow/retirement/T006-S001-most-friendly-states-for-retirees-taxes/index.html" data-module-name="ribbon" data-module-item-position="2"><img src="/kipimages/ribbons/retiree-tax-map-thumb.jpg" class="pull-left"></a>
                  <h4>SLIDE SHOW</h4>
                  <a href="/slideshow/retirement/T006-S001-most-friendly-states-for-retirees-taxes/index.html" data-module-name="ribbon" data-module-item-position="2">10 Most Tax-Friendly States for Retirees</a>
               </div>
               <div class="col-sm-3">          
                  <a href="/quiz/credit/T048-S001-is-your-identity-at-risk-quiz/index.html" data-module-name="ribbon" data-module-item-position="3"><img src="/kipimages/ribbons/id-theft-70x46.jpg" class="pull-left"></a>
                  <h4>QUIZ</h4>
                  <a href="/quiz/credit/T048-S001-is-your-identity-at-risk-quiz/index.html" data-module-name="ribbon" data-module-item-position="3">Is Your Identity at Risk?</a>
               </div>
               <div class="col-sm-3">          
                  <a href="/fronts/special-report/tax-reform/index.html" data-module-name="ribbon" data-module-item-position="4"><img src="/kipimages/ribbons/capitol-thumb.jpg" class="pull-left"></a>
                  <h4>SPECIAL REPORT</h4>
                  <a href="/fronts/special-report/tax-reform/index.html" data-module-name="ribbon" data-module-item-position="4">Planning for New Tax Rates, Tax Brackets and Deductions</a>
               </div>       
            </div>
         </div>
      </div>
         <div class="kip-wrap2">
<!-- End of top.html -->
    <script type="text/javascript">
        var ar = kipArticleScroll.articles.length; 
        kipArticleScroll.idlist.push(17380);
        kipArticleScroll.articles[ar] = {};
        kipArticleScroll.articles[ar].id = 17380;        
        kipArticleScroll.articles[ar].hed = 'Donating to Hurricane Harvey Relief Efforts';
        kipArticleScroll.articles[ar].url = '/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html';
        kipArticleScroll.articles[ar].category = '10';
        kipArticleScroll.articles[ar].title = 'Donating to Hurricane Harvey Relief Efforts';
        /*
	console.log("%c\nFrom jsinfo.php\n\n" + kipArticleScroll.articles[ar] +"\n" +
        kipArticleScroll.articles[ar].id + "\n" +
        kipArticleScroll.articles[ar].hed + "\n" +
        kipArticleScroll.articles[ar].url + "\n" +
        kipArticleScroll.articles[ar].category + "\n" +
        kipArticleScroll.articles[ar].title + "\n", "background: #f00; color: #00f;");
	*/
    </script>




        <script>
         $(function() {
             

             
             
            var controllerUp = new ScrollMagic.Controller();

            // bottom of <article> trigger point SCROLLING UP
            var upScene1 = new ScrollMagic.Scene({
            triggerElement: "#pushStateUp-17380", 
            duration: $(window).height() + 0, // pin element for the window height - 1
            triggerHook: .1,})
            .on("leave", function(e) {
                if (e.target.controller().info("scrollDirection") == "REVERSE") {
                //console.log("%cupScene1 "+e.target.controller().info("scrollDirection"), "padding: 3px; background: #f00; color: #bada55");
                    /*
                     * Set anything here that needs to change as the user
                     * scrolls up the page, triggered at the bottom of each
                     * article.
                     * 
                     * Have fun figuring out where to use javascript vars and
                     * where to use php vars.
                     */
                    $(".kip-next-article a").text("Donating to Hurricane Harvey Relief Efforts");
                if (kipArticleScroll.articles[ar].hed) {
                        $(".kip-next-article a").text("Donating to Hurricane Harvey Relief Efforts");
                        }
                else {
                        $(".kip-next-article a").text("Donating to Hurricane Harvey Relief Efforts");
                        }
                    
                    $(".kip-next-article a").attr("href", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");
                    currid = 17380;
                    //console.log("current id changed to "+currid+ " 17380");                    

                    history.replaceState(null, null, "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");
                    $(document).attr("title", "Donating to Hurricane Harvey Relief Efforts");
                    
                    // addThis sharing toolbox data
                    addthis.update('share', 'url', "http://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");
                    addthis.update('share', 'title', "Donating to Hurricane Harvey Relief Efforts");
                    addthis.toolbox(".addthis_sharing_toolbox");
                    }
            })
            .addTo(controllerUp);

            // bottom of <article> trigger point SCROLLING DOWN
            var downScene1 = new ScrollMagic.Scene({
            triggerElement: "#pushStateDown-17380", 
            duration: $(window).height() + 0, // pin element for the window height - 1
            triggerHook: .1,})
            .on("enter", function(e) {
                if (e.target.controller().info("scrollDirection") == "FORWARD") { 
                //console.log("%cdownScene1 "+e.target.controller().info("scrollDirection"), "padding: 3px; background: #00f; color: #bada55");
                    /*
                     * Set anything here that needs to change as the user scrolls
                     * back down the page after a new article has already been loaded.
                     * 
                     * Have fun figuring out where to use javascript vars and
                     * where to use php vars.
                     */
                        // Get the next article data. The +1 index of articles() will be empty 
                        // when this is the first article.  This should fix itself when the next
                        // article is loaded, before this scene can be triggered.
                        for(var i=0; i<kipArticleScroll.articleRef.length; i++) {
                                if ((kipArticleScroll.articleRef[i].id == 17380) && (kipArticleScroll.articleRef.length !== (i + 1)))
                                    {
                                    var url = kipArticleScroll.articleRef[i + 1].url;
                                    var title = kipArticleScroll.articleRef[i + 1].title;
                                    var id = kipArticleScroll.articleRef[i + 1].id;
                                    }
                                }
                    if ((title) && (url) && (id)) 
                            {
                            $(".kip-next-article a").text(title);
                            $(".kip-next-article a").attr("href", url);

                            currid = id;
                            //console.log("current id changed to "+currid+ " "+id);
                            }
//                    history.pushState(null, null, url);
                    history.replaceState(null, null, url);
                    $(document).attr("title", title);
                    
                    // addThis sharing toolbox data
                    addthis.update('share', 'url', 'http://www.kiplinger.com' +url);
                    addthis.update('share', 'title', title);
                    //addthis.toolbox(".addthis_sharing_toolbox");
                    addthis.layers.refresh();
                    
                    }
            })
            .addTo(controllerUp);


            // right_rail box 1 trigger point SCROLLING UP
            
            var upScene2 = new ScrollMagic.Scene({
            triggerElement: "#nextArticleUrlTrigger-17380", 
            duration: $(window).height() + 0, // pin element for the window height - 1
            triggerHook: .1,})
            .on("enter", function(e) {
                // for some reason hidden divs still trigger scrolling up, so test for not hidden.
                if (($("#nextArticleUrlTrigger-17380").is(":hidden") == false) && (e.target.controller().info("scrollDirection") == "REVERSE")) {
                //if (e.target.controller().info("scrollDirection") == "REVERSE") {
                //console.log("%cupScene2 "+e.target.controller().info("scrollDirection") + " -17380-"+$("#nextArticleUrlTrigger-17380").is(":hidden"), "padding: 3px; background: #f00; color: #bada55");                    
                    /*
                     * Set anything here that needs to change as the user
                     * scrolls up the page, triggered at the first right_rail
                     * box.
                     * 
                     * Have fun figuring out where to use javascript vars and
                     * where to use php vars.  
                     */
                    }
            })
            .addTo(controllerUp);

            // right_rail box 1 trigger point SCROLLING DOWN
            
            var downScene2 = new ScrollMagic.Scene({
            triggerElement: "#nextArticleUrlTrigger-17380", 
            duration: $(window).height() + 0, // pin element for the window height - 1
            triggerHook: .1,})
            .on("leave", function(e) {
                if (e.target.controller().info("scrollDirection") == "FORWARD") { 
                //console.log("%cdownScene2 " +e.target.controller().info("scrollDirection"), "padding: 3px; background: #00f; color: #bada55");
                    /*
                     * Set anything here that needs to change as the user
                     * scrolls down the page, triggered at the first right_rail
                     * box.
                     * 
                     * Have fun figuring out where to use javascript vars and
                     * where to use php vars.
                     */
                        // Get the next article data. The +1 index of articles() will be empty 
                        // when this is the first article.
                        for(var i=0; i<kipArticleScroll.articleRef.length; i++) {
                            //console.log("%c" +i, "padding: 3px; background: #00f; color: #bada55");
                                if ((kipArticleScroll.articleRef[i].id == 17380) && (kipArticleScroll.articleRef.length !== (i + 1)))
                                    {
                                    //console.log("%c" +kipArticleScroll.articleRef.length+","+(i), "padding: 3px; background: #00f; color: #bada55");
                                    var url = kipArticleScroll.articleRef[i + 1].url;
                                    var title = kipArticleScroll.articleRef[i + 1].title;
                                    }

                                }
                    if ((title) && (url)) 
                            {
                            $(".kip-next-article a").text("Next: "+title);
                            $(".kip-next-article a").attr("href", url);
                            //console.log("Set next article text to: " +title);
                            }
                    //history.pushState(null, null, url);
                    //$(document).attr("title", title);
                    }
            })
            .addTo(controllerUp);


         });
	</script>
 <div class="kip-wrap"> 
	<div class="container">
             <div class="row">
               <div class="kip-banner col-sm-12 hidden-xs">

<h5>Advertisement</h5>                      <center>
                           <div id="div-gpt-ad-17380-1">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[1] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[728,90],[970,90],[970,250]],'div-gpt-ad-17380-1')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "top")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "1")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "6")
                                    .set('adType', "6")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-1")
                                    .set('apstagSlotName', "top")
                                    .set('apstagSlotSizes', [[728,90],[970,90],[970,250]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");


                                  var mapping = googletag.sizeMapping().
                                  addSize([1199, 1], [[728,90],[970,90],[970,250]]).
                                  addSize([780, 1], [[728,90],[970,90],[970,250]]).
                                  addSize([0, 0], [[728,90]]).
                                  build();
                                  gptAdSlots[1].defineSizeMapping(mapping);
        
                                
        
                                });

                            </script>
                            </div>
                      </center>
               </div>
            </div>
            <div class="kip-head row">
               <div class="kip-article col-md-11 col-md-offset-1 col-sm-12">
                  <h3 class="kip-overline">
                  <a href="/fronts/archive/column/index.html?column_id=1">Ask Kim</a>
                  </h3>
                  <h1>Donating to Hurricane Harvey Relief Efforts</h1>
               </div>
            </div>
            <div class="row">
               <div id="trigger-sharebar">
                  <div id="sharebar" class="pw-server-widget kip-social visible-lg" data-id="wid-hs5aoeu3"></div>
               </div>
               <article id="article-17380" class="kip-article col-md-7 col-md-offset-1 col-sm-12">
  
      <p class="kip-teaser">Plenty of organizations are raising money to help the victims of Hurricane Harvey. Check out these groups before you donate to be sure your gift goes to those who need it -- and not to scam artists.</p>
      
                      <!-- Go to www.addthis.com/dashboard to customize your tools -->
                  <div class="addthis_sharing_toolbox"
                       addthis:url="http://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html"
                       addthis:title="Donating to Hurricane Harvey Relief Efforts">
                      <!-- <script src="//i.po.st/static/v3/post-widget.js#publisherKey=8qlk9ncsdm0gggstp4fd&retina=true" type="text/javascript"></script> -->
                  </div>
	
                  
                  <div class="pw-server-widget horizontal-sharebar kip-social visible-xs visible-sm visible-md" data-id="wid-hs5aoeu3"></div>
      
    <div class="kip-story-image">
      <img class="img-responsive" src="/kipimages/pages/17380.jpg"/>
      <p class="kip-caption">
Cars sit along the street in an apartment complex after it was inundated with water following Hurricane Harvey.    	<span class="kip-image-credit">Getty Images</span>
	  </p>
</div>		
      <p class="kip-byline clearfix">
   
			<!-- byline1_id; 10 -->
<!-- byline2_id; 0 -->
<!-- byline3_id; 0 -->
<img src="/kipimages/staff/10.jpg" class="kip-hed pull-left" >By <a href="/fronts/archive/bios/index.html?bylineID=10">Kimberly Lankford</a>, Contributing Editor
            <script src="//platform.twitter.com/widgets.js"></script>
            <a href="//twitter.com/intent/follow?screen_name=@Kiplinger"><img src="/kipimages/social/follow.png" class="kip-twitter-follow"></a>
              <br/>August 31, 2017      </p>


  <div class="kip-content">
	<p>
		
					<p><span class="kip-cap">Q</span><em>I'd like to help a charity that supports Hurricane Harvey victims. What's the best way to give?</em></p><p><span class="kip-cap">A</span>There are many opportunities to support disaster-recovery efforts and help people whose lives have been upended by the hurricane, but you should be careful. It's also prime time for scam artists to take advantage of your generosity and steal your money or even your identity. Take these steps to help you choose a charity and get the biggest tax break -- which can help you afford to give even more.</p>

<h3 class="kip-md-see-also inline">SEE ALSO: <a href="/article/real-estate/T028-C001-S001-homeowners-insurance-in-hurricane-prone-states.html">What to Know About Homeowners Insurance in Hurricane-Prone States</a></h3>

<p><strong>Check out the charity</strong>. Many organizations that analyze charities are compiling lists of top-rated organizations that are helping hurricane victims. The <a href="http://www.give.org/" target="_blank">Better Business Bureau's Wise Giving Alliance</a> frequently updates its list of <a href="https://www.bbb.org/council/news-events/news-releases/2017/08/bbb-and-give.org-offer-tips-on-helping-texas-in-the-aftermath-of-hurricane-harvey/" target="_blank">BBB-accredited charities</a> that are raising funds to aid victims of Hurricane Harvey. The list includes some large charities that have established funds specifically for Harvey relief efforts, such as the <a href="http://www.redcross.org/" target="_blank">Red Cross</a>, the <a href="http://www.salvationarmyusa.org/" target="_blank">Salvation Army</a> and the <a href="https://www.unitedwayhouston.org/" target="_blank">United Way of Greater Houston</a>. <a href="https://www.charitynavigator.org/index.cfm?bay=content.view&cpid=489" target="_blank">Charity Navigator</a> is also posting the names of reputable charities that are helping hurricane victims.</p>

<p><strong>Learn about local organizations</strong>. Besides national charities, many lesser-known, local groups are raising funds. The Greater Houston Community Foundation, for example, is collecting donations to the <a href="https://ghcf.org" target="_blank">Hurricane Harvey Relief Fund</a>, established by Mayor Sylvester Turner. The community foundation will work with officials from Houston and Harris County, business and community leaders, and area nonprofits to decide how to distribute the money to help with immediate relief needs and longer-term recovery. The community foundation administered a similar fund after previous disasters. A lot of the money went to local nonprofits to help move people out of shelters, provide housing and clothing, assist  with federal disaster aid applications, and rebuild destroyed properties. Some of the grants even went to pay hotels to provide temporary housing. The needs will be much larger this time.</p><!-- strlen = 7939 --><!-- offset = 2897 --><!-- remaining_chars = 3936 --><div class="kip-advertisement article-rect">
<h5>Advertisement</h5>
<center>
                           <div id="div-gpt-ad-17380-2">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[2] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[728,90],[728,250],[300,250]],'div-gpt-ad-17380-2')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "content1")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "2")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "6")
                                    .set('adType', "6")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-2")
                                    .set('apstagSlotName', "content1")
                                    .set('apstagSlotSizes', [[728,90],[728,250],[300,250]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");


                                  var mapping = googletag.sizeMapping().
                                  addSize([1199, 1], [[728,90],[728,250],[300,250]]).
                                  addSize([780, 1], [[300,250]]).
                                  addSize([0, 0], [[300,250]]).
                                  build();
                                  gptAdSlots[2].defineSizeMapping(mapping);
        
                                
        
                                });

                            </script>
                            </div>
              </center></div>


<p>"The magnitude of this is unprecedented," says Steve Maislin, president of the Greater Houston Community Foundation. "We think there will be tens of thousands of people whose homes will not be repairable. It will probably be another couple of weeks before we understand the full scope of what has happened. The distribution process will depend on where the needs are." He expects the first grants will be disbursed in two to four weeks.</p>

<p>The <a href="http://www.houstonfoodbank.org/" target="_blank">Houston Food Bank</a> and the <a href="http://www.houstonhumane.org/" target="_blank">Houston Humane Society</a> have also been active in relief efforts. The <a href="http://www.texasagriculture.gov/Home/ProductionAgriculture/DisasterAssistance/STARFund.aspx" target="_blank">Texas Department of Agriculture's STAR Fund</a> helps Texas farmers and ranchers recover from disaster. A frequently updated list from <a href="http://www.texasmonthly.com/the-daily-post/ways-can-help-people-hurricane-harvey/" target="_blank">Texas Monthly magazine</a> provides more information about local charities that are leading disaster relief efforts and other ways you can help. You can also find local community foundations in other areas affected by the hurricane at the <a href="https://www.cof.org/community-foundation-locator" target="_blank">Community Foundation Locator</a>.</p>

<h3 class="kip-md-see-also inline">SEE ALSO: <a href="/article/insurance/T028-C001-S000-how-to-protect-your-home-from-summer-storms.html">5 Ways to Protect Your Home From Summer Storms</a></h3>

<p><strong>Give appreciated stock or set up a donor-advised fund</strong>. People are usually quick to write a check to support a charity after a disaster, but you may get a bigger tax benefit by giving appreciated stock or mutual funds instead. That way, you'll get a tax deduction for your donation but avoid paying capital-gains taxes on the increased value of the stock over time.</p>

<p>Some smaller charities don't accept stock or mutual funds. The Greater Houston Community Foundation will accept larger gifts of appreciated stock to support the Hurricane Harvey Relief Fund, but contact them first to ask about specifics. Another way that smaller charities can benefit from your appreciated investments is if you open a donor-advised fund with a bank, brokerage or community foundation. You can usually donate a wide variety of assets -- from real estate to privately held stock -- to the fund. You'll get a tax break for the value of the property you donate this year, but you will have an unlimited amount of time to decide which charities to support with the money in your fund account. Keep in mind that Harvey relief efforts will probably continue for quite a while. The minimum investment to open a donor-advised fund is $5,000 at Fidelity Charitable and Schwab Charitable, $10,000 at the Greater Houston Community Foundation, and $25,000 with Vanguard Charitable. See <a href="/article/taxes/T055-C001-S003-smarter-ways-to-give-to-charity.html">Smarter Ways to Give to Charity</a> and <a href="/article/taxes/T054-C000-S002-donor-advised-funds-contribute-now-donate-later.html">Donor-Advised Funds: Contribute Now, Donate Later</a> for more information.</p><!-- strlen = 7939 --><!-- offset = 6159 --><!-- remaining_chars = 1384 --><div class="kip-advertisement article-rect">
<h5>Advertisement</h5>
<center>
                           <div id="div-gpt-ad-17380-3">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[3] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[728,90],[728,250],[300,250]],'div-gpt-ad-17380-3')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "content2")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "3")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "6")
                                    .set('adType', "6")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-3")
                                    .set('apstagSlotName', "content2")
                                    .set('apstagSlotSizes', [[728,90],[728,250],[300,250]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");


                                  var mapping = googletag.sizeMapping().
                                  addSize([1199, 1], [[728,90],[728,250],[300,250]]).
                                  addSize([780, 1], [[300,250]]).
                                  addSize([0, 0], [[300,250]]).
                                  build();
                                  gptAdSlots[3].defineSizeMapping(mapping);
        
                                
        
                                });

                            </script>
                            </div>
              </center></div>


<p><strong>Give from an IRA</strong>. If you're 70½ or older, you can give up to $100,000 per year tax-free from your IRA to charity (although you can't give this money to a donor-advised fund). The gift counts as your required minimum distribution but doesn't increase your adjusted gross income. See <a href="/article/retirement/T032-C001-S001-making-tax-free-charitable-donations-from-an-ira.html">How to Ensure Your IRA Donation to Charity is Tax-Free</a> for more information about the procedure and benefits.</p>

<p><strong>Providing a place to stay</strong>. So many people were displaced by the storm that many are having a hard time finding shelter. Airbnb is making it easy for people with available property nearby to offer temporary accommodations free. Many of these donated properties are in Austin, Dallas and San Antonio (see <a href="https://www.airbnb.com/disaster/hurricaneharveyevacuees" target="_blank">Airbnb's urgent accommodations page</a>). The <a href="https://www.spca.org/" target="_blank">SPCA of Texas</a> is also collecting donations and looking for foster homes for animals.</p>

<p><strong>Beware of scams</strong>. Don't respond to an e-mail or call asking for donations to help hurricane victims. Instead, take the time to look up the charity on your own before donating. Scam artists use disasters as a way to take advantage of people's generosity and sense of urgency to steal their money or their personal information. For more information, see the <a href="https://www.consumer.ftc.gov/articles/0074-giving-charity" target="_blank">Federal Trade Commission's Signs of a Charity Scam page</a>.</p>

<h3 class="kip-md-see-also">TAKE OUR QUIZ: <a href="/quiz/insurance/T065-S001-are-you-covered/index.html">Are You Covered?</a></h3>
			
    <p class="kip-highlight">Got a question? Ask Kim at <a href="mailto:askkim@kiplinger.com">askkim@kiplinger.com</a>.</p>
    
 
    
  </div>
  
                  <div class="row">
                     <a class="btn btn-default disqusbtn" style="color: #000;" id="28680" role="button" data-buttonstate="Show comments" href="javascript:;" onclick="infiniteDisqus(28680, '/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html', 'Donating to Hurricane Harvey Relief Efforts')">
                     <!--Show <span id="commentcount-28680" class="disqus-comment-count" data-disqus-url="http://www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html"><span> comments -->
                        Show <!--<span id="commentcount-28680" class="disqus-comment-count" data-disqus-identifier="28680"><span>--> comments 
                      </a>
                     <div class="collapse disquscollapse" id="collapseComments-28680">
                        <div id="disqus_thread"></div>
                     </div>
                  </div>

<script>
//DISQUSWIDGETS.getCount({reset: true});        
</script>       

        
                <span id="pushStateUp-17380"></span>
                <span id="pushStateDown-17380"></span>
               </article>



                <div class="kip-sidebar col-md-4 hidden-sm hidden-xs">
                    <div id="nextArticleUrlTrigger-17380"></div>


                  <section id="trigger-17380-1" class="kip-advertisement rect1">
                     <div id="sticky-rect-17380-1">
                         <h5>Advertisement</h5>                         
<center>
                           <div id="div-gpt-ad-17380-4">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[4] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[300,600],[300,250],[160,600]],'div-gpt-ad-17380-4')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "top")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "4")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "1")
                                    .set('adType', "1")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-4")
                                    .set('apstagSlotName', "top")
                                    .set('apstagSlotSizes', [[300,600],[300,250],[160,600]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");



        
                                
        
                                });

                            </script>
                            </div>
</center>
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-1").is(":visible"))) {
                            //console.log("Duration of stickybox 1 using $(window).height(): "+$(window).height());
                               $(function() {
                                var controller173801 = new ScrollMagic.Controller();
                                
                                var scene173801 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-1",
                                duration: $(window).height(),
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-1")
                                .addTo(controller173801);
                                getDuration = scene173801.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-1").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 1 using $(window).height(): "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[1] = 

 -->


                  <section id="trigger-17380-2" class="kip-morningstar rect1">
                     <div id="sticky-rect-17380-2">
                                                  
<script type="text/javascript" src="//quotespeed.morningstar.com/apis/common/apimanager.js"></script>
  <script type="text/javascript">
  QSAPI.init('KIPL',{
		//env:'stage',
		//proxyurl:'http://newkipstage.kiplinger.com/partners/morningstar/qsapi_proxy.html',
		//profileurl:'http://newkipstage.kiplinger.com/partners/morningstar/profile.xml',
		 proxyurl:'http://www.kiplinger.com/partners/morningstar/qsapi_proxy.html',
		 profileurl:'http://www.kiplinger.com/partners/morningstar/profile.xml',
		// sessionKey:'BUFX9G6KAAUUEEIPGF4R9P1525450897_1',
		email:'dwebster@kiplinger.com'
	},function(){
		//You can create the widget here.
		QSAPI.createWidget(
			document.getElementById('kip-morningstar-widget1'),
			'//quotespeed.morningstar.com/apis/api.jsp?instid=KIPL&module=market&submodule=marketindex&clickOnSymbol=true&width=300&height=200&showTab=false&menuList=us&context=%7B%22us%22:%7Btxt:%22US%22,ticker:%7B%2230:10:!DJI%22:%22DJIA%22,%22111:10:SPX%22:%22S%26P%20500%22,%2229:10:@CCO%22:%22NASDAQ%22%7D%7D%7D',
			{
			  fixHeight: true,
			  width: 300,
			  height: 150

			},{
			  onLoad:'onloadCallback',
			  onHeightChange:'onHeightChangeCallback'
			}
		);


	}
  );
  </script>
  <script type="text/javascript">
  function onloadCallback(para)
  {
    if ( typeof para == 'string' )
    {
      para = eval('('+para+')');
    }
  }
	
  function onHeightChangeCallback(para)
  {
    if ( typeof para == 'string' )
    {
      para = eval('('+para+')');
    }
  }
  </script>
<style>
.kip-morningstar-search
{
  float: left; 
  margin-top: 0px; 
  margin-bottom: 0px; 
  width: 300px; 
  overflow: hidden;
}
.kip-morningstar-search input
{
  float: left;
  margin: 2px 0 5px;
}
.kip-morningstar-search input.kip-text
{
  height: 20px;
  width: 137px;
}
.kip-morningstar-search input.kip-submit
{
  height: 24px;
  line-height: 20px;
  font-size: 10px;
  width: 58px;  
  text-align: center;
  padding: 0px;
  padding-bottom: 3px;
  margin-right: 10px;
}
#mstarAutoCompleteDropDown
{
  font-family: Arial,Helvetica,sans-serif;
  color: #000;
  font-size: 10px
}

#mstarAutoCompleteDropDown td
{
  border-style: none;
  padding: 2px;
  white-space: nowrap
}
#mstarAutoCompleteDropDown table {
                margin: 0;
                text-align: left;
}

</style>
<div class="kip-widget kip-market hidden-sm hidden-xs">
    <h2>Market Update</h2>
    <a href="http://www.morningstar.com/" target="_blank" class="kip-ms-logo pull-right"><img src="/kipimages/morningstar_logo2.png" alt="Powered by Morningstar"></a>
    <div id="kip-morningstar-widget1"></div>
  
    <div class="kip-market-search">

        <input type="text" value="" class="kip-text" id="mstarAutoCompleteBox" onblur="ResetSearchBox()" onclick="ClearSearchBox()">
        <!--<input type="submit" class="kip-submit" value="Get Quote" onclick="javascript:HeaderBox.trySubmit();" id="mstarSubmitQuote">-->
        <input type="submit" class="kip-submit" value="Get Quote" onclick="javascript:HeaderBox.trySubmit();" id="mstarSubmitQuote">
    <div style="background: #fff; top: 230px; float: right; z-index: 999; position: absolute;">
        <div id="mstarAutoCompleteDropDown"></div>
    </div>
    </div>
</div>
<script type="text/javascript" src="//quicktake.morningstar.com/kiplinger/ASHX/MarketModule.ashx"></script>
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-2").is(":visible"))) {
                            //console.log("Duration of stickybox 2 using 1: "+1);
                               $(function() {
                                var controller173802 = new ScrollMagic.Controller();
                                
                                var scene173802 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-2",
                                duration: 1,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-2")
                                .addTo(controller173802);
                                getDuration = scene173802.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-2").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 2 using 1: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[2] = 

 -->


                  <section id="trigger-17380-3" class="kip-nerdwallet rect1">
                     <div id="sticky-rect-17380-3">
                                                  

<style>
    .kip-nerdwallet {
    margin-bottom: 3em;
    }
</style>

<!--
<iframe src="https://www.nerdwallet.com/widgets/embed/find-a-credit-card?utm_campaign=cc_mktg_cconramp001&utm_source=kip&utm_medium=widg&utm_term=rs" width="300" height="368" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe> 
-->
<iframe src="https://www.nerdwallet.com/widgets/embed/find-a-credit-card?utm_campaign=cc_mktg_cconramp001&utm_source=kip&utm_medium=widg&utm_term=rs" width="300" height="275" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-3").is(":visible"))) {
                            //console.log("Duration of stickybox 3 using 1: "+1);
                               $(function() {
                                var controller173803 = new ScrollMagic.Controller();
                                
                                var scene173803 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-3",
                                duration: 1,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-3")
                                .addTo(controller173803);
                                getDuration = scene173803.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-3").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 3 using 1: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[3] = 

 -->


                  <section id="trigger-17380-4" class="kip-bankrate rect1">
                     <div id="sticky-rect-17380-4">
                                                  
<div class="kip-widget kip-bank hidden-sm hidden-xs" style="max-height: 550px; overflow: hidden;">
    <h2>Rate Info</h2>
    <section id="kip-bankrate-info">
    <div class="bankrateWidget" app="oa" kind="tabbed" tabs="mortgage,cd,creditcard,refinance,auto" defaulttab="mortgage" widgetwidth="300" pkey="K12THui7r" fontfamily="Tahoma, Geneva, sans-serif" pid="kip">
    </div>
    <script src="//widgets.bankrate.com/booter.js"></script>
    </section>
</div>
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-4").is(":visible"))) {
                            //console.log("Duration of stickybox 4 using 1: "+1);
                               $(function() {
                                var controller173804 = new ScrollMagic.Controller();
                                
                                var scene173804 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-4",
                                duration: 1,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-4")
                                .addTo(controller173804);
                                getDuration = scene173804.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-4").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 4 using 1: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[4] = 

 -->


                  <section id="trigger-17380-5" class="kip-motley_fool rect1">
                     <div id="sticky-rect-17380-5">
                                                  
 
     <h4 style="color:#cc2936; text-transform:uppercase; font-size:14px; margin-bottom:.125em;">Check Out</h4>
     <h3 style="margin:0 0 .75em; font-size:18.5px;"><a href="/slideshow/investing/T023-S002-best-online-brokers-2017/index.html" font-size:18px; style="color:#000;">Kiplinger's Latest Online Broker Rankings</a></h3>
     <div class="clearfix">
      <div class="pull-left">
                           <div id="div-gpt-ad-17380-5">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[5] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[120,60],[1,1]],'div-gpt-ad-17380-5')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "left")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "5")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "1")
                                    .set('adType', "1")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-5")
                                    .set('apstagSlotName', "left")
                                    .set('apstagSlotSizes', [[120,60],[1,1]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");



        
                                
        
                                });

                            </script>
                            </div>
      </div>
      <div class="pull-right">
                           <div id="div-gpt-ad-17380-6">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[6] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[120,60],[1,1]],'div-gpt-ad-17380-6')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "right")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "6")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "1")
                                    .set('adType', "1")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-6")
                                    .set('apstagSlotName', "right")
                                    .set('apstagSlotSizes', [[120,60],[1,1]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");



        
                                
        
                                });

                            </script>
                            </div>
         </div>
    </div>
    <div class="row" style="height:60px;"></div>
    
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-5").is(":visible"))) {
                            //console.log("Duration of stickybox 5 using 1: "+1);
                               $(function() {
                                var controller173805 = new ScrollMagic.Controller();
                                
                                var scene173805 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-5",
                                duration: 1,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-5")
                                .addTo(controller173805);
                                getDuration = scene173805.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-5").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 5 using 1: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[5] = 

 -->


                  <section id="trigger-17380-6" class="kip-advertisement rect1">
                     <div id="sticky-rect-17380-6">
                         <h5>Advertisement</h5>                         
<center>
                           <div id="div-gpt-ad-17380-7">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[7] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[300,250]],'div-gpt-ad-17380-7')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "bottom")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "7")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "1")
                                    .set('adType', "1")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-7")
                                    .set('apstagSlotName', "bottom")
                                    .set('apstagSlotSizes', [[300,250]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");



        
                                
        
                                });

                            </script>
                            </div>
              </center>
                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-6").is(":visible"))) {
                            //console.log("Duration of stickybox 6 using $(window).height() + 0: "+$(window).height() + 0);
                               $(function() {
                                var controller173806 = new ScrollMagic.Controller();
                                
                                var scene173806 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-6",
                                duration: $(window).height() + 0,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-6")
                                .addTo(controller173806);
                                getDuration = scene173806.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-6").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 6 using $(window).height() + 0: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[6] = 

 -->


                  <section id="trigger-17380-7" class="kip-dianomi_rr rect1">
                     <div id="sticky-rect-17380-7">
                                                  
<iframe valign="middle" 
        width="300" 
        height="350" 
        marginheight=0 
        marginwidth=0 
        frameborder=0 
        vspace=0 
        hspace=0 
        scrolling=NO  
    src="//www.dianomi.com/smartads.epl?id=2743">
            
</iframe>

                     </div>
                  </section>



                        <script>
                            // added if trigger id is visible for PageFair adblocker ad restoration
                            if (($( window ).width() > 1025) && ($("#trigger-17380-7").is(":visible"))) {
                            //console.log("Duration of stickybox 7 using 1: "+1);
                               $(function() {
                                var controller173807 = new ScrollMagic.Controller();
                                
                                var scene173807 = new ScrollMagic.Scene({
                                triggerElement: "#trigger-17380-7",
                                duration: 1,
                                //loglevel: 3,
                                triggerHook: .1,})
                                .setPin("#sticky-rect-17380-7")
                                .addTo(controller173807);
                                getDuration = scene173807.duration();
                                });

                            //delete document.SMDuration;
                            //$("#sticky-rect-17380-7").css("border", "1px red solid");
                            //$("#article-17380").css("border", "1px blue solid");
                            
                            //console.log("Final duration of stickybox 7 using 1: "+getDuration);
                            }
                            
                        </script>
<!-- 
  $boxSet[7] = 

 -->


                


               </div> <!-- kip-sidebar col-md-4 hidden-sm hidden-xs -->
            </div>
         </div> <!-- /container --> 
      </div>
<section class="kip-stationbreak container">
            <div class="row">
               <div class="col-xs-12">
    <!-- Dianomi (start) -->
 <iframe valign="middle" width="1140" height="325" marginheight=0 marginwidth=0 frameborder=0 vspace=0 hspace=0 scrolling=NO  src="//www.dianomi.com/smartads.epl?id=2706" style="width: 100%;"></iframe>
 <!-- Dianomi (end) -->
 

               </div>
            </div>
      </section> 

</div>
</div>
  
          
      
      <footer>
         <div class="container marketing hidden-front">
            <div class="row kip-top-row">
               <div class="col-sm-6 marketing-left hidden-xs">
                  <div class="kpfm-promo"><a href="/orders/index.php?pub=kip&id=IFOOTER" title="Subscribe to Kiplinger's Personal Finance"><img src="//www.kiplinger.com/kipimages/marketing/kpfm_footer.jpg" alt="Subscribe to Kiplinger's Personal Finance" class="img-responsive"></a></div>
               </div>
               <div class="col-sm-6 col-xs-12 marketing-right">
                  <div class="ktoday-promo">
                     <img src="/kipimages/marketing/ktoday_footer.png" alt="Subscribe to Kiplinger's Personal Finance" class="img-responsive">

                     <script>
                     function onBlur(el) {
                        if (el.value == '') {
                            el.value = el.defaultValue;
                        }
                     }
                     function onFocus(el) {
                        if (el.value == el.defaultValue) {
                            el.value = '';
                        }
                     }
                     </script>
                     <form action="/login/ec_login.php" methhod="POST">
                     <input type="hidden" name="ec_column_id" value="33">                  
                     <input type="text" name="ec_email" value="Enter E-mail" onblur="onBlur(this)" onfocus="onFocus(this)"><input type="image" src="/kipimages/marketing/ktoday_arrow.png" name="submit" value="Submit" alt="Submit">
                     </form>
                      </div>
               </div>
            </div>       
            <div class="row kip-bottom-row">
               <div class="col-sm-3 follow">
                  <h4>Follow Kiplinger</h4>
                  <ul class="kip-follow list-inline">

                              <li><a href="https://www.facebook.com/KiplingerPersonalFinance" target="_blank" title="Follow us on Facebook"><img src="/kipimages/svg/facebook.svg" alt="Facebook" alt="Facebook"></a></li>
                              <li><a href="https://twitter.com/kiplinger" target="_blank" title="Follow us on Twitter"><img src="/kipimages/svg/twitter.svg" alt="Twitter" alt="Twitter"></a></li>
                              <li><a href="http://www.linkedin.com/company/46846?trk=tyah" target="_blank" title="Linked In"><img src="/kipimages/svg/linkedin.svg" alt="Linked In" data-pin-nopin="true"></a></li>
                              <!--<li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS"><img src="/kipimages/svg/rss.svg" alt="RSS" alt="RSS"></a></li>-->
                              <li><a href="/login/ec_login.php" target="_blank" title="Sign-up for e-mail alerts"><img src="/kipimages/svg/email.svg" alt="E-mail alerts"></a></li>
                              
                              
                  </ul>
                  <p>1100 13th Street, NW, Suite 750<br>
                  Washington, DC 20005<br>
                  202.887.6400</p>

                  <p>Toll-free: 800.544.0155</p>
               </div>
               <div class="middle col-sm-5 col-xs-6 hidden-xs">
                  <ul class="list-unstyled">
                              <li><a href="/customer-service/">Customer Service/Contact Us</a></li>
                              <li><a href="/customer-service/media-contacts/index.html">Media Relations</a></li>
                              <li id="marketplace"><a href="/generic/business/T001-C000-S001-marketplace.html">Marketplace</a></li>
                              <li><a href="/customer-service/reprints/index.html">Magazine Reprints and Permissions</a></li>
                              <li><a href="/customer-service/reprints/index2.html">Photocopying and Electronic Distribution<br>Permissions</a></li>
                              <li><a href="http://kiplingermediakit.com/" target="_blank">Advertise with Us</a></li>
                              <li><a href="/customer-service/partnerships/index.html">Partnerships and Syndication</a></li>
                  </ul>
               </div>
               <div class="right col-sm-4 col-xs-6 hidden-xs">
                  <ul class="list-unstyled">
                              <li><a href="/customer-service/about-us/index.html">About Us</a></li>
                              <li><a href="/customer-service/employment/index.html">Employment Opportunities</a></li>
                              <li><a href="/customer-service/privacy-policy/index.html">Privacy Policy (July 2017)</a></li>
                              <li><a href="/customer-service/terms-of-service/index.html">Terms of Service</a></li>
                              <li><a href="/customer-service/millennium/index.html">Millennium Copyright Act</a></li>
                              <li><a href="/site_map/index.html">Site Map</a></li>
                              <li><a href="/about/rss/kiplinger.rss" target="_blank" title="RSS">RSS</a></li>
                  </ul>
               </div>
            </div>
         </div>
         <p class="kip-copyright">All Contents &copy; 2018, The Kiplinger Washington Editors</p>
      </footer>


<!-- /article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html -->
            <div class="kip-advertisement-fixed visible-xs">

                           <div id="div-gpt-ad-17380-8">
                           <script type='text/javascript'>
                                googletag.cmd.push(function() {   
                                gptAdSlots[8] =  googletag.defineSlot('/309122/site182.tmus/FamilyFinancesArticles', [[320,50]],'div-gpt-ad-17380-8')
                                    .addService(googletag.pubads())
                                    
                                    .setTargeting("pos", "top")
                                    .setTargeting("articlepage", "1")
                                    .setTargeting("page", "/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html")
                                    .setTargeting("tile", "8")
                                    .setTargeting("fpdata", [""])                                   
                                    .setTargeting('FAcontributor', "false")
                                    .setTargeting('adType', "1")
                                    .set('adType', "1")
                                    .set('loaded', "0")
                                    .set('apstagSlotID', "div-gpt-ad-17380-8")
                                    .set('apstagSlotName', "top")
                                    .set('apstagSlotSizes', [[320,50]]);

 
                                googletag.pubads().set("page_url", "//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html");



        
                                
        
                                });

                            </script>
                            </div>
      </div>





<script>

   
    var alert_msg = '\n';
    var currid = 17380;
    onload = function() {
        
        
        var s_code=s.t();if(s_code)document.write(s_code);
        googletag.enableServices();
        refreshAds(null, 17380);

                          alert_msg = '';
    };


    $(window).on("orientationchange",function(){
            console.log("Orientation change called");
        refreshAds(null, currid);
        
                          alert_msg = '';
                                                                    
    });
    
</script>


 

       <script>
         $("[data-toggle='toggle']").click(function() {
            var selector = $(this).data("target");
            $(selector).toggleClass('in');
         });

         $("#close-search").click(function() {
            if($("#kip-search-bar").hasClass("")){
               $("#search-text").attr("placeholder", "");
            }
         });

         $("#close-search-2").click(function() {
            if($("#kip-search-bar-2").hasClass("")){
               $("#search-text-2").attr("placeholder", "");
            }
         });

         $("#close-search-3").click(function() {
            if($("#kip-search-bar-3").hasClass("")){
               $("#search-text-3").attr("placeholder", "");
            }
         });

         $("#kip-search-button").click(function() {
            $("#search-text").focus();
            if($("#kip-search-bar").hasClass("in")){
               $("#search-text").attr("placeholder", "Search Kiplinger");
            }
         });

         $("#kip-search-button-2").click(function() {
            $("#search-text-2").focus();
            if($("#kip-search-bar-2").hasClass("in")){
               $("#search-text-2").attr("placeholder", "Search Kiplinger");
            }
         });

         $("#kip-search-button-3").click(function() {
            $("#search-text-3").focus();
            if($("#kip-search-bar-3").hasClass("in")){
               $("#search-text-3").attr("placeholder", "Search Kiplinger");
            }
         });

         $("#kip-search-button-home").click(function() {
            $("#search-text-home").focus();
            if($("#kip-search-bar-home").hasClass("in")){
               $("#search-text-home").attr("placeholder", "Search Kiplinger");
            }
         });

	$(".kip-search-btn").click(function() { this.form.submit(); });
      </script>

      <script>

        
         $(function() {
            var controller = new ScrollMagic.Controller();

            var headerTween = new TweenMax.to('#smallHead', .15, {
               top: '0',
            });

            var containerScene = new ScrollMagic.Scene({
//            triggerElement: '#triggerHead',
            offset: 350 /* offset the trigger 150px below #scene's top */})
            .setTween(headerTween)
            .addTo(controller);

            var headerMenu = new TweenMax.to('#kip-dropdown-menu-2', .15, {
               top: '0',
            });

            var containerScene = new ScrollMagic.Scene({
//            triggerElement: '#triggerHead',
            offset: 0 /* offset the trigger 150px below #scene's top */})
            .setTween(headerMenu)
            .addTo(controller);


         });
         
function getDimensions() {
                        
                    //$("article#article-17380").css("border", "1px dashed #aaa");
                    //$(".kip-sidebar").css("border", "1px dotted #aaa");                    
                    var articleHeight = $("article#article-17380").height();
                    //console.log("%c<article> height:" + articleHeight, "border: 1px solid red;cellpadding: 10px; background: #ccc; color: #666;");
                    var railHeight = $(".kip-sidebar").height();
                    //console.log("%cright rail height:" + railHeight, "border: 1px solid red;cellpadding: 10px; background: #ccc; color: #666;");
                    //$("article#article-17380").append("<span style=\"font-size: 0.7em; color: #888\">article height: "+articleHeight+"px<br>rail height: "+railHeight+"px</span>");
                    
}


      </script>


      <script>
            var pageSeq = 1;
             $(function() {
            var controllerFs = new ScrollMagic.Controller();


        
        
			//footer for loading next article
			kipArticleScroll.kipNext = new ScrollMagic.Scene({
			triggerElement: "footer",
			triggerHook: "1.0",
			offset: -300})
			.addTo(controllerFs)
			.on("enter", function(e) {
                        //console.log("We hit rock bottom");
                        if (kipArticleScroll.pending === false && kipArticleScroll.articles.length < kipArticleScroll.maxArticles) {
                            
                                        //console.log("Satisfied criteria to load article");
					//kipArticleScroll.loadArticle(kipArticleScroll.articles[kipArticleScroll.articles.length-1].category);
                                        adSeq = getlastSlot();

                                        var currid = kipArticleScroll.articleRef[kipArticleScroll.articles.length].id;
                                        //console.log(kipArticleScroll.articleRef);
                                        //console.log(kipArticleScroll.articles);
                                        //console.log("Requesting " + currid);
                                        kipArticleScroll.loadArticle(currid,adSeq,pageSeq);
                                        pageSeq++;
                                        //console.log("current article id: "+currid);
                         }

			});
             });
    
    
$(document).ready( function () {
    
        if (kipArticleScroll.idlist[kipArticleScroll.idlist.length-1] != null) {
        getDimensions()
        }

        //console.log("Triggering document ready");
        if (Cookies.get('kipArticlesRead')) {
            var cookieIds = JSON.parse(Cookies.get('kipArticlesRead'));
            cookieIds.forEach(function(element, index, array) {
                if (kipArticleScroll.idlist.indexOf(element) === -1) {
                    kipArticleScroll.idlist.push(element);
                }
            });
            kipArticleScroll.idlist = JSON.parse(Cookies.get('kipArticlesRead'));
        }
        kipArticleScroll.updateRead();
        
        //console.log("current article: " + kipArticleScroll.idlist[kipArticleScroll.idlist.length-1]);
	});
</script><script type="text/javascript">

$(function(){
	if (typeof(s) !== 'undefined') {
	$("div.kip-ribbon div.container div.row div.col-sm-3").each(function() {
		var mylink = $("a", this);
		mylink.click(function() {
			var mydata = [s.eVar19,s.prop1,s.eVar21,mylink.attr("data-module-name"),mylink.attr("data-module-item-position")];
			triggerAsyncOmnitureLinkEvent(mydata, this);
		});
	});
	}
});

</script>

      
            <div class="row">
      

<!-- Outbrain for page: 17380 (start) -->
<div class="OUTBRAIN" data-src="//www.kiplinger.com/article/spending/T065-C001-S003-donating-to-hurricane-harvey-relief-efforts.html" data-widget-id="AR_10" data-ob-template="Kiplinger"></div>
<script type="text/javascript" src="//widgets.outbrain.com/outbrain.js"></script>
<script type="text/javascript">
    OBR.extern.researchWidget();
</script>
<!-- Outbrain for page: 17380 (end) -->
      
            </div>
      


<!-- Captify code starts here -->

<script>
// DEFINE YOUR KEYWORDS WITHIN QUOTES
var captify_kw_query_11952 = "";
// DO NOT MODIFY CODE BELOW
(function(c,a,p,t,i,f,y){i=c.createElement(a);t=c.getElementsByTagName(a)[0];i.type='text/javascript';i.async=true;i.src=p;t.parentNode.insertBefore(i,t);})(document,'script','https://p.cpx.to/p/11952/px.js');
</script>

<!-- Captify code ends here -->



<!-- keywee -->
<script src="//dc8xl0ndzn2cb.cloudfront.net/js/kiplinger/v0/keywee.min.js" type="text/javascript" async></script>



<!-- Quantcast (start) -->
<script type="text/javascript">
var _qevents = _qevents || [];

(function() {
var elem = document.createElement('script');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript";
var scpt = document.getElementsByTagName('script')[0];
scpt.parentNode.insertBefore(elem, scpt); })();

_qevents.push({
qacct:"p-d1r-YOBiI91NE"
});
</script>
<noscript>
<a href="http://www.quantcast.com/p-d1r-YOBiI91NE" target="_blank"><img src="//pixel.quantserve.com/pixel/p-d1r-YOBiI91NE.gif" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/></a>
</noscript>
<!-- Quantcast (end) -->
<!-- Start Quantcast Tag -->
<script type="text/javascript"> 
var _qevents = _qevents || [];

(function() {
var elem = document.createElement('script');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
elem.async = true;
elem.type = "text/javascript";
var scpt = document.getElementsByTagName('script')[0];
scpt.parentNode.insertBefore(elem, scpt);
})();

_qevents.push(
{qacct:"p-3c9pJh23it7XE",labels:"_fp.event.Generic Pixel"}
);
</script>
<noscript>
<img src="//pixel.quantserve.com/pixel/p-3c9pJh23it7XE.gif?labels=_fp.event.Generic+Pixel" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/>
</noscript>
<!-- End Quantcast tag -->
  

 
<script>
    /*
    var adonis = adonis || {};
    adonis.conditionalAdRendering = true;
    var adonis = adonis || {};
    adonis.scriptResources = ['amazon-adsystem.com/aax2/amzn_ads.js','openx.net/w/1.0/jstag'];
    adonis.ENABLE_SLOT_CACHE = true;
    */

  var adonis = adonis || {};
  adonis.transport = 'https://uy81rb.wraug5vv72b28fch.pro/http';

   
   
</script>
<script>/* loader-7.0.2 */eval(atob("IWZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIG8oYSxjKXtpZighblthXSl7aWYoIXRbYV0pe3ZhciB1PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFjJiZ1KXJldHVybiB1KGEsITApO2lmKGkpcmV0dXJuIGkoYSwhMCk7dmFyIHM9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrYSsiJyIpO3Rocm93IHMuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsc312YXIgbD1uW2FdPXtleHBvcnRzOnt9fTt0W2FdWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbYV1bMV1bZV07cmV0dXJuIG8obj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gblthXS5leHBvcnRzfWZvcih2YXIgaT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxhPTA7YTxyLmxlbmd0aDthKyspbyhyW2FdKTtyZXR1cm4gb30oezE6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9ZSgxMiksbz1lKDcpO2UoMjIpLHdpbmRvdy5hZG9uaXNDb25uVHlwZT0iaHR0cCIsci5sb2dnZXIuaW5mbygiW2h0dHBMb2FkZXJdOiBTdGFydGluZyBib290c3RyYXAiKSwoMCxvLnJ1bikoKX0sezEyOjEyLDIyOjIyLDc6N31dLDI6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3JldHVybiBpKHdpbmRvdykmJmMod2luZG93KSYmdSh3aW5kb3cpJiZhKHdpbmRvdykmJnMod2luZG93KX1mdW5jdGlvbiBvKCl7cmV0dXJuIGkod2luZG93KSYmdSh3aW5kb3cpJiZhKHdpbmRvdykmJnMod2luZG93KX1mdW5jdGlvbiBpKGUpe3ZhciB0PSJfX3h5el9fIjt0cnl7cmV0dXJuIGUubG9jYWxTdG9yYWdlLnNldEl0ZW0odCx0KSxlLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHQpLCEwfWNhdGNoKG4pe3JldHVybiExfX1mdW5jdGlvbiBhKGUpe3RyeXtyZXR1cm4hIW5ldyBlLkJsb2J9Y2F0Y2godCl7cmV0dXJuITF9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdCBpbiBlfSl9LG49WyJSVENQZWVyQ29ubmVjdGlvbiIsIm1velJUQ1BlZXJDb25uZWN0aW9uIiwid2Via2l0UlRDUGVlckNvbm5lY3Rpb24iXSxyPVsiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIiwibW96UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIiwid2Via2l0UlRDU2Vzc2lvbkRlc2NyaXB0aW9uIl0sbz1bIlJUQ0ljZUNhbmRpZGF0ZSIsIm1velJUQ0ljZUNhbmRpZGF0ZSIsIndlYmtpdFJUQ0ljZUNhbmRpZGF0ZSJdO3JldHVybiB0KG4pJiZ0KHIpJiZ0KG8pfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIlByb21pc2UiaW4gZSYmInJlc29sdmUiaW4gZS5Qcm9taXNlJiYicmVqZWN0ImluIGUuUHJvbWlzZSYmImFsbCJpbiBlLlByb21pc2UmJiJyYWNlImluIGUuUHJvbWlzZX1mdW5jdGlvbiBzKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlLk9iamVjdC5hc3NpZ259dC5leHBvcnRzPXtpc1N1cHBvcnRlZEJyb3dzZXJSdGM6cixpc1N1cHBvcnRlZEJyb3dzZXI6byxpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZDppLGlzUnRjU3VwcG9ydGVkOmMsaXNCbG9iU3VwcG9ydGVkOmEsaXNPYmplY3RBc3NpZ25TdXBwb3J0ZWQ6cyxpc1Byb21pc2VTdXBwb3J0ZWQ6dX19LHt9XSwzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXt2YXIgbj0iY2FjaGUvc3RvcmVBZG9uaXNDbGllbnRSZXNwb25zZSIscj10WyJhZG9uaXMtY2xpZW50LXZlcnNpb24iXSxhPXRbImNhY2hlLWNvbnRyb2wiXSxjPWEmJmEuc3RhcnRzV2l0aCgibWF4LWFnZSIpLHU9dC5leHBpcnlNaWxsaXN8fDA7aWYoYyl7aS5sb2dnZXIuZGVidWcoYSk7dmFyIHM9cGFyc2VJbnQoYS5zcGxpdCgiPSIpWzFdLDEwKTtpc05hTihzKXx8KHU9KG5ldyBEYXRlKS5nZXRUaW1lKCkrMWUzKnMpfXImJihpLmxvZ2dlci5pbmZvKCJbIituKyJdOiBuZXcgZXhwaXJ5ICIrdSsiID0gIituZXcgRGF0ZSh1KSksbyhlLHIsdSkpfWZ1bmN0aW9uIG8oZSx0LG4pe3dpbmRvdy5sb2NhbFN0b3JhZ2UuYWRvbmlzQ2FjaGVTcmM9ZSx3aW5kb3cubG9jYWxTdG9yYWdlLmFkb25pc0NhY2hlRXhwaXJ5TWlsbGlzPW4sd2luZG93LmxvY2FsU3RvcmFnZS5hZG9uaXNDbGllbnRWZXJzaW9uPXR9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uc3RvcmVBZG9uaXNDbGllbnRSZXNwb25zZT1yLG4uY2FjaGVBZG9uaXNDbGllbnQ9bzt2YXIgaT1lKDEyKX0sezEyOjEyfV0sNDpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lKDUpO3dpbmRvdy5hZG9uaXNIYXNoPXdpbmRvdy5hZG9uaXNIYXNofHx3aW5kb3cubG9jYXRpb24uaGFzaHx8IiI7dmFyIG89d2luZG93LmFkb25pc0hhc2guaW5kZXhPZigiYWRvbmlzLWxvZ2dpbmciKT49MDtyLkxPR19MRVZFTD1vPyJkZWJ1ZyI6ci5MT0dfTEVWRUw7dmFyIGk9d2luZG93LmFkb25pc3x8e307aS53c0hvc3QmJnIuV1MmJihyLldTLmhvc3Q9aS53c0hvc3QpLGkudHJhbnNwb3J0JiZyLlNVRVpfSFRUUF9FTkRQT0lOVCYmKHIuU1VFWl9IVFRQX0VORFBPSU5UPWkudHJhbnNwb3J0KSx0LmV4cG9ydHM9cn0sezU6NX1dLDU6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPXtSRUFMX1NUVU5fSE9TVDoic3R1bi54cGFuYW1hLm5ldDozNDc4IixUVVJOU0lHTkFMX0hPU1Q6InRzLnAueHBhbmFtYS5uZXQ6NzAwMCIsU1RVTkdVTl9IT1NUOiJzZy5wLnhwYW5hbWEubmV0OjM0ODAiLFNFUlZFUl9DQU5ESURBVEU6ImNhbmRpZGF0ZTo4Mjc2NDgwMjYgMSB1ZHAgMjEyMjE5NDY4NyBTRVJWRVJfSVAgU0VSVkVSX1BPUlQgdHlwIGhvc3QgZ2VuZXJhdGlvbiAwIixSRVBPUlRJTkdfVVJMOiJodHRwczovL2xiLnN0YXRzZXZlbnQuY29tL3N0YXRzIixSRVBPUlRJTkdfUkFURTouMDEsTE9HX0xFVkVMOiJlcnJvciIsUkVQT1JUX0VSUk9SUzohMCxNQU5JRkVTVF9VUkw6Imh0dHBzOi8vc3JpLmpzaW50ZWdyaXR5LmNvbS9tYW5pZmVzdC5qc29uIixNQU5JRkVTVF9FWFBJUkFUSU9OX1RJTUU6ODY0MDAsQURfTUFSS0VSOiJhZG9uaXMtbWFya2VyIixBRE9OSVNfQ0xJRU5UX0ZFVENIX1VSTDoiaHR0cHM6Ly9hZHNlcnZlci54cGFuYW1hLm5ldC9jbGllbnQtNy1sYXRlc3QuanMiLFdTOntob3N0OiJzdWV6LXNlcnZlci54cGFuYW1hLm5ldCIscGF0aDoiL3dzIixwb3J0OjQ0MyxzZWN1cmU6ITAscHJvbWlzZVRpbWVvdXQ6M2UzfSxTRVJWSUNFX1NUQVRVU19VUkw6ZnVuY3Rpb24oZSl7cmV0dXJuImh0dHBzOi8vY2xpZW50LnJlYWN0cmpzLmNvbS8iK2UrIi1zdGF0dXMuanNvbiJ9LFNVRVpfSFRUUF9FTkRQT0lOVDoiaHR0cHM6Ly9zdWV6LnhwYW5hbWEubmV0L2h0dHAiLFNVRVpfSFRUUF9SRVRSWTozLFNVRVpfSFRUUF9ERUxBWToxMDB9fSx7fV0sNjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ImRlZmF1bHQiOmV9fWZ1bmN0aW9uIG8oKXt2YXIgZT0iY29udHJvbC1zZXJ2ZXIvY2hlY2siO2YubG9nZ2VyLmluZm8oIlsiK2UrIl06IENoZWNraW5nIHNlcnZpY2Ugc3RhdHVzIik7dmFyIHQ9aSh3aW5kb3cpO3JldHVybigwLHUucmVxdWVzdCkodCkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gZi5sb2dnZXIuZGVidWcoIlsiK2UrIl06IFN0YXR1cyBjaGVjayBmZXRjaGVkIHdpdGggc3RhdHVzLWNvZGUgPCIrdC5zdGF0dXMrIj4iKSxKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX0pWyJjYXRjaCJdKGZ1bmN0aW9uKHQpe2YubG9nZ2VyLmluZm8oIlsiK2UrIl06IEZhaWxlZCB0byBjaGVjayBjb250cm9sIHNlcnZlciBzdGF0dXMgPCIrdCsiPiIpO3ZhciBuPXZvaWQgMCE9PXQucmVxP3QucmVxLnN0YXR1czpudWxsO3Rocm93IDA9PT1uP25ldyBzLlhockJsb2NrRXJyb3I6bmV3IEVycm9yKCJVbmV4cGVjdGVkIHN0YXR1cyBjb2RlIHdoaWxlIHBlcmZvcm1pbmcgY29udHJvbCBzZXJ2ZXIgY2hlY2ssIHN0YXR1cy1jb2RlID0gPCIrbisiPiIpfSl9ZnVuY3Rpb24gaShlKXtyZXR1cm4gZFsiZGVmYXVsdCJdLlNFUlZJQ0VfU1RBVFVTX1VSTChjWyJkZWZhdWx0Il0uZ2V0KGUubG9jYXRpb24uaG9zdCkpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmNoZWNrPW8sbi5nZXRTZXJ2aWNlU3RhdHVzVXJsPWk7dmFyIGE9ZSgyNCksYz1yKGEpLHU9ZSgxOCkscz1lKDkpLGw9ZSg0KSxkPXIobCksZj1lKDEyKX0sezEyOjEyLDE4OjE4LDI0OjI0LDQ6NCw5Ojl9XSw3OltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0WyJkZWZhdWx0Il09ZSx0fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOnsiZGVmYXVsdCI6ZX19ZnVuY3Rpb24gaSgpe3ZhciBlPSJodHRwLWFkb25pcy1jbGllbnQtbG9hZGVyL3J1biI7cmV0dXJuIHBbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAucGFnZXZpZXciKSxnWyJkZWZhdWx0Il0uaXNTdXBwb3J0ZWRCcm93c2VyKCk/KHkubG9nZ2VyLmluZm8oIlsiK2UrIl06IEJyb3dzZXIgaXMgY29tcGF0aWJsZSIpLHBbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAuc3VwcG9ydGVkIiksYSgpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHkubG9nZ2VyLmluZm8oIlsiK2UrIl06IFJ1bm5pbmcgYW5kIGNhY2hpbmcgYWRvbmlzQ2xpZW50IHNvdXJjZSIpLHBbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAucnVuY2xpZW50c2NyaXB0IikscFsiZGVmYXVsdCJdLnNhdmVUaW1pbmcoKSxkWyJkZWZhdWx0Il0uZGVmaW5lUmVhZE9ubHlQcm9wZXJ0eSgiYWRvbmlzQ29uZmlnIixzWyJkZWZhdWx0Il0pLCgwLG0uc3RvcmVBZG9uaXNDbGllbnRSZXNwb25zZSkodC5zb3VyY2UsdC5tZXRhKSx2WyJkZWZhdWx0Il0uaW5zZXJ0SW5saW5lU2NyaXB0KHQuc291cmNlKSxudWxsfSlbImNhdGNoIl0oZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBMLlhockJsb2NrRXJyb3I/KHkubG9nZ2VyLmluZm8oIlsiK2UrIl06IEZhaWxlZCB0byBmZXRjaCBhZG9uaXMtY2xpZW50IHVzaW5nIFN1ZXoiKSx5LmxvZ2dlci5pbmZvKCJbIitlKyJdOiBBbGwgbG9hZGVycyBmYWlsZWQgdG8gZmV0Y2ggYWRvbmlzLWNsaWVudCwgY2hlY2tpbmcgY29udHJvbCBzZXJ2ZXIiKSxiLmNoZWNrKCkpOih5LmxvZ2dlci53YXJuKCJbIitlKyJdOiBVbmV4cGVjdGVkIGVycm9yIHdoZW4gdHJ5aW5nIHRvIGZldGNoIGFkb25pcy1jbGllbnQgb3ZlciBTdWV6OiA8Iit0KyI+IikscFsiZGVmYXVsdCJdLnJlcG9ydEVycm9yKHQpLG51bGwpfSlbImNhdGNoIl0oZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBMLlhockJsb2NrRXJyb3I/KHBbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAuc3RhdHVzX2Jsb2NrZWQiKSx5LmxvZ2dlci5pbmZvKCJbIitlKyJdOiBDb250cm9sIHNlcnZlciBjaGVjayBmYWlsZWQsIHByb2JhYmx5IGFuIGFkYmxvY2tlciIpLHtzdGF0dXM6ITB9KTooeS5sb2dnZXIud2FybigiWyIrZSsiXTogVW5leHBlY3RlZCBlcnJvciBmcm9tIGNvbnRyb2wgc2VydmVyIGNoZWNrOiA8Iit0KyI+IikscFsiZGVmYXVsdCJdLnJlcG9ydEVycm9yKHQpLG51bGwpfSkudGhlbihmdW5jdGlvbih0KXsoMCxTWyJkZWZhdWx0Il0pKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSYmdCYmInN0YXR1cyJpbiB0JiZ0LnN0YXR1cz8ocFsiZGVmYXVsdCJdLnJlcG9ydEV2ZW50KCJib290c3RyYXAuaHR0cC50cmlnZ2VkIikseS5sb2dnZXIuaW5mbygiWyIrZSsiXTogQ29udHJvbCBzZXJ2ZXIgcmVwb3J0ZWQgc3RhdHVzIGlzIGhlYWx0aHkgb3Igd2FzIGJsb2NrZWQsIHRyaWdnZXJpbmcgb3BwZW5oZWltZXIiKSwoMCxjLnJlcGxhY2VDb250ZW50KSh3aW5kb3cuZG9jdW1lbnQpKTp0JiYic3RhdHVzImluIHQmJnQuc3RhdHVzPT09ITEmJihwWyJkZWZhdWx0Il0ucmVwb3J0RXZlbnQoImJvb3RzdHJhcC5odHRwLm5vdF90cmlnZ2VkIikseS5sb2dnZXIud2FybigiWyIrZSsiXTogQ29udHJvbCBzZXJ2ZXIgcmVwb3J0ZWQgc3RhdHVzIGlzIHVuaGVhbHRoeSwgbm90IHRyaWdnZXJpbmcgb3BwZW5oZWltZXIiKSl9KSk6dm9pZCB5LmxvZ2dlci5pbmZvKCJbIitlKyJdOiBJbmNvbXBhdGlibGUgYnJvd3Nlciwgbm90IGNvbnRpbnVpbmciKX1mdW5jdGlvbiBhKCl7dmFyIGU9Imh0dHAtYWRvbmlzLWNsaWVudC1sb2FkZXIvbG9hZEFkb25pc0NsaWVudCI7cmV0dXJuIHkubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBUcnlpbmcgdG8gbG9hZCBhZG9uaXMtY2xpZW50IHdpdGggWEhSIGxvYWRlciAoZnJvbSBDRE4pIiksVC5sb2FkKClbImNhdGNoIl0oZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBMLlhockJsb2NrRXJyb3I/eS5sb2dnZXIuaW5mbygiWyIrZSsiXTogRmFpbGVkIHRvIGZldGNoIGFkb25pcy1jbGllbnQgb3ZlciBYSFIsIHRyeWluZyB0byBsb2FkIGZyb20gY2FjaGUiKTooeS5sb2dnZXIud2FybigiWyIrZSsiXTogVW5leHBlY3RlZCBlcnJvciB3aGVuIHRyeWluZyBmZXRjaCBhZG9uaXMtY2xpZW50IG92ZXIgWEhSLCB0cnlpbmcgdG8gbG9hZCBmcm9tIGNhY2hlOiA8Iit0KyI+IikscFsiZGVmYXVsdCJdLnJlcG9ydEVycm9yKHQpKSxQLmxvYWQoKX0pWyJjYXRjaCJdKGZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgTC5DYWNoZUxvYWRFcnJvcj95LmxvZ2dlci5pbmZvKCJbIitlKyJdOiBGYWlsZWQgdG8gZmV0Y2ggYWRvbmlzLWNsaWVudCBmcm9tIGNhY2hlLCB0cnlpbmcgdG8gbG9hZCBmcm9tIFN1ZXoiKTooeS5sb2dnZXIud2FybigiWyIrZSsiXTogVW5leHBlY3RlZCBlcnJvciB3aGVuIHRyeWluZyBmZXRjaCBhZG9uaXMtY2xpZW50IGZyb20gY2FjaGUsIHRyeWluZyB0byBsb2FkIGZyb20gU3VlejogPCIrdCsiPiIpLHBbImRlZmF1bHQiXS5yZXBvcnRFcnJvcih0KSksQy5sb2FkKCl9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5ydW49aSxuLmxvYWRBZG9uaXNDbGllbnQ9YTt2YXIgYz1lKDIwKSx1PWUoNCkscz1vKHUpLGw9ZSgxNyksZD1vKGwpLGY9ZSgxNSkscD1vKGYpLGg9ZSgyKSxnPW8oaCksdz1lKDE0KSx2PW8odyksXz1lKDYpLGI9cihfKSxtPWUoMykseT1lKDEyKSxFPWUoMTYpLFM9byhFKSxPPWUoMTEpLFQ9cihPKSxSPWUoMTApLEM9cihSKSxBPWUoOCksUD1yKEEpLEw9ZSg5KX0sezEwOjEwLDExOjExLDEyOjEyLDE0OjE0LDE1OjE1LDE2OjE2LDE3OjE3LDI6MiwyMDoyMCwzOjMsNDo0LDY6Niw4OjgsOTo5fV0sODpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7dmFyIGU9ImxvYWRlcnMvY2FjaGUvbG9hZCI7YS5sb2dnZXIuZGVidWcoIlsiK2UrIl06IFN0YXJ0aW5nIGNhY2hlIGxvYWRlciIpLHdpbmRvdy5sb2NhbFN0b3JhZ2UuYWRvbmlzQ2FjaGVFeHBpcnkmJndpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiYWRvbmlzQ2FjaGVFeHBpcnkiKTt2YXIgdD1wYXJzZUludCh3aW5kb3cubG9jYWxTdG9yYWdlLmFkb25pc0NhY2hlRXhwaXJ5TWlsbGlzLDEwKTtpc05hTih0KSYmKHQ9MCk7dmFyIG49d2luZG93LmxvY2FsU3RvcmFnZS5hZG9uaXNDbGllbnRWZXJzaW9uLHI9d2luZG93LmxvY2FsU3RvcmFnZS5hZG9uaXNDYWNoZVNyYyxvPShuZXcgRGF0ZSkuZ2V0VGltZSgpPj10LGM9eyJhZG9uaXMtY2xpZW50LXZlcnNpb24iOm4sZXhwaXJ5TWlsbGlzOnQsY2FjaGVkU291cmNlOnJ9O3JldHVybiByP28/KGEubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBDYWNoZWQgdmVyc2lvbiBvZiBhZG9uaXMtY2xpZW50IGlzIGV4cGlyZWQiKSxQcm9taXNlLnJlamVjdChuZXcgaS5DYWNoZUxvYWRFcnJvcihudWxsLGMpKSk6KGEubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBGb3VuZCBhIHZhbGlkIGNhY2hlZCB2ZXJzaW9uIG9mIGFkb25pcy1jbGllbnQiKSxQcm9taXNlLnJlc29sdmUoe3NvdXJjZTpyLG1ldGE6Y30pKTooYS5sb2dnZXIuZGVidWcoIlsiK2UrIl06IE5vIGNhY2hlZCB2ZXJzaW9uIG9mIGFkb25pcy1jbGllbnQgZm91bmQgaW4gdGhlIGxvY2FsU3RvcmFnZSIpLFByb21pc2UucmVqZWN0KG5ldyBpLkNhY2hlTG9hZEVycm9yKG51bGwsYykpKX1mdW5jdGlvbiBvKCl7cmV0dXJuIHIoKVsiY2F0Y2giXShmdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgaS5DYWNoZUxvYWRFcnJvcilyZXR1cm57c291cmNlOmUuc291cmNlLG1ldGE6ZS5tZXRhfX0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmxvYWQ9cixuLmxvYWRJZ25vcmluZ0Vycm9ycz1vO3ZhciBpPWUoOSksYT1lKDEyKX0sezEyOjEyLDk6OX1dLDk6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6eyJkZWZhdWx0IjplfX1mdW5jdGlvbiBvKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaShlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIXR8fCJvYmplY3QiIT10eXBlb2YgdCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIGEoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLkNhY2hlTG9hZEVycm9yPW4uV3NCbG9ja0Vycm9yPW4uWGhyQmxvY2tFcnJvcj12b2lkIDA7dmFyIGM9ZSgxOSksdT1yKGMpO24uWGhyQmxvY2tFcnJvcj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7cmV0dXJuIG8odGhpcyx0KSxpKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9cmV0dXJuIGEodCxlKSx0fSh1WyJkZWZhdWx0Il0pLG4uV3NCbG9ja0Vycm9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtyZXR1cm4gbyh0aGlzLHQpLGkodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1yZXR1cm4gYSh0LGUpLHR9KHVbImRlZmF1bHQiXSksbi5DYWNoZUxvYWRFcnJvcj1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUsbil7byh0aGlzLHQpO3ZhciByPWkodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzKSk7cmV0dXJuIHIuc291cmNlPWUsci5tZXRhPW4scn1yZXR1cm4gYSh0LGUpLHR9KHVbImRlZmF1bHQiXSl9LHsxOToxOX1dLDEwOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOnsiZGVmYXVsdCI6ZX19ZnVuY3Rpb24gbygpe3ZhciBlPSJsb2FkZXJzL3N1ZXotaHR0cCI7ZC5sb2dnZXIuZGVidWcoIlsiK2UrIl06IFN0YXJ0aW5nIFN1ZXogSFRUUCBsb2FkZXIiKTt2YXIgdD1KU09OLnN0cmluZ2lmeSh7aG9zdDoiYXNzZXRzIixwYXRoOiJjbGllbnQiLHBhcmFtczp7fSxoZWFkZXJzOnthZG9uaXNfY2xpZW50X2FwaToiNy4wLjAifX0pO3JldHVybigwLGwucmVxdWVzdCkoY1siZGVmYXVsdCJdLlNVRVpfSFRUUF9FTkRQT0lOVCwiUE9TVCIsdCkudGhlbihmdW5jdGlvbih0KXtkLmxvZ2dlci5kZWJ1ZygiWyIrZSsiXTogU3VjY2Vzc2Z1bGx5IGZldGNoZWQgYWRvbmlzLWNsaWVudCBvdmVyIFhIUiIpO3ZhciBuPXt9O3RyeXtuWyJhZG9uaXMtY2xpZW50LXZlcnNpb24iXT10LmdldFJlc3BvbnNlSGVhZGVyKCJhZG9uaXMtY2xpZW50LXZlcnNpb24iKX1jYXRjaChyKXt9dHJ5e25bImNhY2hlLWNvbnRyb2wiXT10LmdldFJlc3BvbnNlSGVhZGVyKCJjYWNoZS1jb250cm9sIil9Y2F0Y2gocil7fXJldHVybntzb3VyY2U6dC5yZXNwb25zZVRleHQsbWV0YTpufX0pWyJjYXRjaCJdKGZ1bmN0aW9uKHQpe3Rocm93IGQubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBGYWlsZWQgdG8gZmV0Y2ggYWRvbmlzLWNsaWVudCBmcm9tIFN1ZXogb3ZlciBYSFIgPCIrdCsiPiIpLDA9PT10LnJlcS5zdGF0dXM/bmV3IGYuWGhyQmxvY2tFcnJvcjpuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgZXJyb3IgZmV0Y2hpbiBhZG9uaXMtY2xpZW50LCBzdGF0dXMtY29kZSA9IDwiK3QucmVxLnN0YXR1cysiPiIpfSl9ZnVuY3Rpb24gaSgpe3ZhciBlPWNbImRlZmF1bHQiXS5TVUVaX0hUVFBfUkVUUll8fDEsdD1jWyJkZWZhdWx0Il0uU1VFWl9IVFRQX0RFTEFZfHwwLG49QXJyYXkuYXBwbHkoMCxBcnJheShlKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBvfSk7cmV0dXJuIHNbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAuc3Vlel9vcGVuaW5nIiksKDAscC5jaGFpbikobix0KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBzWyJkZWZhdWx0Il0ucmVwb3J0RXZlbnQoImJvb3RzdHJhcC5odHRwLnN1ZXpfb3BlbmVkIiksZX0pWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe3Rocm93IGUgaW5zdGFuY2VvZiBmLlhockJsb2NrRXJyb3ImJnNbImRlZmF1bHQiXS5yZXBvcnRFdmVudCgiYm9vdHN0cmFwLmh0dHAuc3Vlel9ibG9ja2VkIiksZX0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmxvYWRPbmNlPW8sbi5sb2FkPWk7dmFyIGE9ZSg0KSxjPXIoYSksdT1lKDE1KSxzPXIodSksbD1lKDE4KSxkPWUoMTIpLGY9ZSg5KSxwPWUoMTMpfSx7MTI6MTIsMTM6MTMsMTU6MTUsMTg6MTgsNDo0LDk6OX1dLDExOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOnsiZGVmYXVsdCI6ZX19ZnVuY3Rpb24gbygpe3ZhciBlPSJsb2FkZXJzL2NhY2hlL3hociI7cmV0dXJuIGQubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBTdGFydGluZyBYSFIgbG9hZGVyIiksKDAsbC5yZXF1ZXN0KShjWyJkZWZhdWx0Il0uQURPTklTX0NMSUVOVF9GRVRDSF9VUkwpLnRoZW4oZnVuY3Rpb24odCl7ZC5sb2dnZXIuZGVidWcoIlsiK2UrIl06IFN1Y2Nlc3NmdWxseSBmZXRjaGVkIGFkb25pcy1jbGllbnQgb3ZlciBYSFIiKTt2YXIgbj17ImFkb25pcy1jbGllbnQtdmVyc2lvbiI6bnVsbH07dHJ5e25bImNhY2hlLWNvbnRyb2wiXT10LmdldFJlc3BvbnNlSGVhZGVyKCJjYWNoZS1jb250cm9sIil9Y2F0Y2gocil7fXJldHVybntzb3VyY2U6dC5yZXNwb25zZVRleHQsbWV0YTpufX0pWyJjYXRjaCJdKGZ1bmN0aW9uKHQpe3Rocm93IGQubG9nZ2VyLmRlYnVnKCJbIitlKyJdOiBGYWlsZWQgdG8gZmV0Y2ggYWRvbmlzLWNsaWVudCBvdmVyIFhIUiA8Iit0KyI+IiksMD09PXQucmVxLnN0YXR1cz9uZXcgZi5YaHJCbG9ja0Vycm9yOm5ldyBFcnJvcigiVW5leHBlY3RlZCBlcnJvciBwZXJmb3JtaW5nIHN0YXR1cyBjaGVjayByZXF1ZXN0LCBzdGF0dXMtY29kZSA9IDwiK3QucmVxLnN0YXR1cysiPiIpfSl9ZnVuY3Rpb24gaSgpe3JldHVybiBvKClbImNhdGNoIl0oZnVuY3Rpb24oZSl7cmV0dXJuIGQubG9nZ2VyLmRlYnVnKCJmYWlsZWQgdG8gbG9hZCBhZG9uaXMtY2xpZW50IG92ZXIgaHR0cCIsZSksc1siZGVmYXVsdCJdLnJlcG9ydEV2ZW50KCJib290c3RyYXAuY2xpZW50X2h0dHBfZmV0Y2hfZXJyb3IiKSx7c291cmNlOm51bGwsbWV0YTp7fX19KX1PYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5sb2FkPW8sbi5sb2FkSWdub3JpbmdFcnJvcnM9aTt2YXIgYT1lKDQpLGM9cihhKSx1PWUoMTUpLHM9cih1KSxsPWUoMTgpLGQ9ZSgxMiksZj1lKDkpfSx7MTI6MTIsMTU6MTUsMTg6MTgsNDo0LDk6OX1dLDEyOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOnsiZGVmYXVsdCI6ZX19dmFyIG89ZSg0KSxpPXIobyksYT1lKDI2KSxjPSgwLGEuY3JlYXRlKSh7bGV2ZWw6aVsiZGVmYXVsdCJdLkxPR19MRVZFTH0pO3QuZXhwb3J0cz17bG9nZ2VyOmMsc3VlekxvZ2dlcjpjfX0sezI2OjI2LDQ6NH1dLDEzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkmJjA9PT1lLmxlbmd0aClyZXR1cm4gUHJvbWlzZS5yZWplY3Qobik7dD10fHwwO3ZhciBpPWVbMF07cmV0dXJuIGU9ZS5zbGljZSgxKSxpKClbImNhdGNoIl0oZnVuY3Rpb24obil7cmV0dXJuIG8odCkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gcihlLHQsbil9KX0pfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsbil7c2V0VGltZW91dChmdW5jdGlvbihlKXtyZXR1cm4gdCgpfSxlKX0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmNoYWluPXJ9LHt9XSwxNDpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7YS5kZWJ1ZygiaW5zZXJpbmcgYmxvYiIpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO24uc3JjPWUsdCYmKG4uaW50ZWdyaXR5PXQpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPW5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7dHJ5e24ub3BlbigiR0VUIixlLCEwKSxuLmFkZEV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKGUpezQ9PT1uLnJlYWR5U3RhdGUmJjA9PT1uLnN0YXR1cyYmaSh0KX0pLG4uc2VuZCgpfWNhdGNoKHIpe2Eud2FybigiRmFsbGluZyBiYWNrIHRvIGluc2VydGluZyBpbmxpbmUgc2NyaXB0IiksaSh0KX19ZnVuY3Rpb24gaShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTt0LmlubmVySFRNTD1lLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodCl9dmFyIGE9ZSgxMikubG9nZ2VyO3QuZXhwb3J0cz17aW5zZXJ0QmxvYlNjcmlwdDpyLHRlc3RCbG9iQW5kSW5zZXJ0RmFsbGJhY2s6byxpbnNlcnRJbmxpbmVTY3JpcHQ6aX19LHsxMjoxMn1dLDE1OltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dmFyIHQ9bmV3IFhNTEh0dHBSZXF1ZXN0LG49W3MuUkVQT1JUSU5HX1VSTCxlXS5qb2luKCIiKTt0Lm9wZW4oIkdFVCIsbiwhMCksdC5zZW5kKCl9ZnVuY3Rpb24gbyhlKXtzLlJFUE9SVF9FUlJPUlMmJnIoIi9hZG9uaXNfZXJyb3I/ZT0iK2UudG9TdHJpbmcoKSsiJndlYnNpdGU9Iit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpfWZ1bmN0aW9uIGkoKXtyZXR1cm4gbnVsbCE9d2luZG93LkFET05JU19CT09UU1RSQVBfU1RBVFM/d2luZG93LkFET05JU19CT09UU1RSQVBfU1RBVFM9PT0hMDpNYXRoLnJhbmRvbSgpPHMuUkVQT1JUSU5HX1JBVEV9ZnVuY3Rpb24gYShlLHQpe2lmKGMoZSksaSgpKXt2YXIgbj17d2Vic2l0ZTp3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsa2V5OmV9O251bGwhPXQmJihuLnF1YW50aXR5PXQpLHIoWyIvYWRvbmlzX2V2ZW50Lz9ldmVudD0iLEpTT04uc3RyaW5naWZ5KG4pXS5qb2luKCIiKSl9fWZ1bmN0aW9uIGMoZSl7dmFyIHQ9e2tleTplLHRpbWVfbXM6TWF0aC5yb3VuZCh3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpLHdlYnNpdGU6d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfTtkLnB1c2godCl9ZnVuY3Rpb24gdSgpe2wuZGVmaW5lUmVhZE9ubHlQcm9wZXJ0eSgiYWRvbmlzQm9vdHN0cmFwVGltaW5nIixkKX12YXIgcz1lKDQpLGw9ZSgxNyksZD1bXTt0LmV4cG9ydHM9e3JlcG9ydEVycm9yOm8scmVwb3J0RXZlbnQ6YSxzYXZlVGltaW5nOnUsc2hvdWxkUmVwb3J0Oml9fSx7MTc6MTcsNDo0fV0sMTY6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXt2YXIgdD0vYW5kcm9pZHxpcGhvbmUvZ2ksbj0vQ2hyb21lXC8oXFMpKyBTYWZhcmlcLyhcUykrJC9naSxyPS9cKSBHZWNrb1wvKFxTKSsgRmlyZWZveFwvKFxTKSskL2dpLG89L2xpa2UgR2Vja28uP1wpIFZlcnNpb25cLyhcUykrIFNhZmFyaVwvKFxTKSskL2dpO3JldHVybiBlLnNlYXJjaCh0KT09PS0xJiYoZS5zZWFyY2gobik+LTF8fGUuc2VhcmNoKHIpPi0xfHxlLnNlYXJjaChvKT4tMSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG5bImRlZmF1bHQiXT1yfSx7fV0sMTc6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LGUse3ZhbHVlOnQsd3JpdGFibGU6ITF9KX1jYXRjaChuKXtvLndhcm4oIkNhbm5vdCBkZWZpbmUgcmVhZC1vbmx5IHByb3BlcnR5IG9mIHdpbmRvdyBvYmplY3Q6ICIrbil9fXZhciBvPWUoMTIpLmxvZ2dlcixpPWZ1bmN0aW9uKGUpeyJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/ZSgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGUpfTt0LmV4cG9ydHM9e2RlZmluZVJlYWRPbmx5UHJvcGVydHk6cixyZWFkeTppfX0sezEyOjEyfV0sMTg6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6eyJkZWZhdWx0IjplfX1mdW5jdGlvbiBvKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaShlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIXR8fCJvYmplY3QiIT10eXBlb2YgdCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIGEoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJHRVQiLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwscj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e307cmV0dXJuIG5ldyB3aW5kb3cuUHJvbWlzZShmdW5jdGlvbihvLGkpe3ZhciBhPW5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7YS5vcGVuKHQsZSwhMCk7Zm9yKHZhciBjIGluIHIpe3ZhciB1PXJbY107YS5zZXRSZXF1ZXN0SGVhZGVyKGMsdSl9YS5vbmxvYWQ9ZnVuY3Rpb24oKXthLnN0YXR1cz49NDAwP2kobmV3IGwoYSwiVW5leHBlY3RlZCBzdGF0dXMgY29kZSIpKTpvKGEpfSxhLm9uZXJyb3I9ZnVuY3Rpb24oKXtpKG5ldyBsKGEsIkVycm9yIGVzdGFibGlzaGluZyBjb25uZWN0aW9uIikpfSxhLnNlbmQobil9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5YaHJSZXF1ZXN0RXJyb3I9dm9pZCAwLG4ucmVxdWVzdD1jO3ZhciB1PWUoMTkpLHM9cih1KSxsPW4uWGhyUmVxdWVzdEVycm9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSxuKXtvKHRoaXMsdCk7dmFyIHI9aSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsbikpO3JldHVybiByLnJlcT1lLHJ9cmV0dXJuIGEodCxlKSx0fShzWyJkZWZhdWx0Il0pfSx7MTk6MTl9XSwxOTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbyhlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIXR8fCJvYmplY3QiIT10eXBlb2YgdCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIGkoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfWZ1bmN0aW9uIGEoZSl7ZnVuY3Rpb24gdCgpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSx0fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiO3IodGhpcyx0KTt2YXIgbj1vKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcyxlKSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJtZXNzYWdlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6ZSx3cml0YWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJuYW1lIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6bi5jb25zdHJ1Y3Rvci5uYW1lLHdyaXRhYmxlOiEwfSksRXJyb3IuaGFzT3duUHJvcGVydHkoImNhcHR1cmVTdGFja1RyYWNlIik/KEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKG4sbi5jb25zdHJ1Y3RvciksbyhuKSk6KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJzdGFjayIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOm5ldyBFcnJvcihlKS5zdGFjayx3cml0YWJsZTohMH0pLG4pfXJldHVybiBpKHQsZSksdH0oYShFcnJvcikpO25bImRlZmF1bHQiXT1jLHQuZXhwb3J0cz1uWyJkZWZhdWx0Il19LHt9XSwyMDpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ImRlZmF1bHQiOmV9fWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGNbImRlZmF1bHQiXS5yZXBsYWNlKCJ7e1RJVExFfX0iLGUudGl0bGUpfWZ1bmN0aW9uIGkoZSl7ZS5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MPW8oZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGlzcGxheU1lc3NhZ2U9byxuLnJlcGxhY2VDb250ZW50PWk7dmFyIGE9ZSgyMSksYz1yKGEpfSx7MjE6MjF9XSwyMTpbZnVuY3Rpb24oZSx0LG4pe3QuZXhwb3J0cz0nPGhlYWQ+XG4gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPlxuICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vIj5cbiAgICA8dGl0bGU+e3tUSVRMRX19PC90aXRsZT5cbiAgICA8c3R5bGU+XG4gICAgICBodG1sLCBib2R5IHtcbiAgICAgICAgYmFja2dyb3VuZDogI0VGRUZFRjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICJIZWx2ZXRpY2EgTmV1ZSIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGhlaWdodDogMTAwJVxuICAgICAgfVxuXG4gICAgICAjbWFpbi1jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAjbWFpbi1jb250ZW50ID4gZGl2ICB7XG4gICAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG5cbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cbiAgICA8L3N0eWxlPlxuPC9oZWFkPlxuPGJvZHk+XG5cdFx0PGRpdiBpZD0ibWFpbi1jb250ZW50Ij5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHRcdDxoMT5Tb21ldGhpbmcgaW50ZXJmZXJlZCB3aXRoIHRoaXMgd2Vic2l0ZSBsb2FkaW5nPC9oMT5cblx0XHRcdFx0XHRcdDxwPlRoaXMgY291bGQgYmUgYSB0ZW1wb3JhcnkgcHJvYmxlbSB3aXRoIHlvdXIgbmV0d29yaywgb3IgZHVlIHRvIHlvdXIgYWRibG9ja2VyPC9wPlxuXHRcdFx0XHRcdFx0PHA+VHJ5OjwvcD5cblx0XHRcdFx0XHRcdDx1bD5cblx0XHRcdFx0XHRcdFx0XHQ8bGk+Q2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIGFuZCByZWxvYWQgdGhlIHBhZ2U8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdDxsaT5JZiB5b3UgYXJlIHVzaW5nIGFuIGFkYmxvY2tlciBkaXNhYmxlIGl0IGJ5IGNsaWNraW5nIG9uIHRoZSBhZGJsb2NrIGljb24gaW4geW91ciBicm93c2VyIHRvb2xiYXI8L2xpPlxuXHRcdFx0XHRcdFx0XHRcdDxsaT5JZiB0aGUgcHJvYmxlbSBwZXJzaXN0cywgY29uc2lkZXIgbGVhdmluZyBhIG1lc3NhZ2Ugb24gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZm9ydW1zLmxhbmlrLnVzLyIgdGFyZ2V0PSJfQkxBTksiPmFkYmxvY2sgdXNlciBmb3J1bXM8L2E+XG5cdFx0XHRcdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuPC9ib2R5PlxuJ30se31dLDIyOltmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gcihlKXsicGVyZm9ybWFuY2UiaW4gZXx8KGUucGVyZm9ybWFuY2U9e30pO3ZhciB0PWUucGVyZm9ybWFuY2U7ZS5wZXJmb3JtYW5jZS5ub3c9dC5ub3d8fHQubW96Tm93fHx0Lm1zTm93fHx0Lm9Ob3d8fHQud2Via2l0Tm93fHxEYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX19cihzZWxmKX0se31dLDIzOltmdW5jdGlvbihlLHQsbil7dC5leHBvcnRzPVsiY29tIiwibmV0IiwiZnIiLCJjby51ayIsImRlIiwidHYiLCJ0b2RheSIsIm9yZyIsImluZm8iLCJpZSIsImJhIiwiZ2ciXX0se31dLDI0OltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPWUoMjUpLG89e307by5ydWxlcz1lKDIzKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue3J1bGU6ZSxzdWZmaXg6ZS5yZXBsYWNlKC9eKFwqXC58XCEpLywiIiksd2lsZGNhcmQ6IioiPT09ZS5jaGFyQXQoMCksZXhjZXB0aW9uOiIhIj09PWUuY2hhckF0KDApfX0pLG8uZW5kc1dpdGg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5pbmRleE9mKHQsZS5sZW5ndGgtdC5sZW5ndGgpIT09LTF9LG8uZmluZFJ1bGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ci50b0FTQ0lJKGUpO3JldHVybiBvLnJ1bGVzLnJlZHVjZShmdW5jdGlvbihlLG4pe3ZhciBpPXIudG9BU0NJSShuLnN1ZmZpeCk7cmV0dXJuIG8uZW5kc1dpdGgodCwiLiIraSl8fHQ9PT1pP246ZX0sbnVsbCl9LG4uZXJyb3JDb2Rlcz17RE9NQUlOX1RPT19TSE9SVDoiRG9tYWluIG5hbWUgdG9vIHNob3J0LiIsRE9NQUlOX1RPT19MT05HOiJEb21haW4gbmFtZSB0b28gbG9uZy4gSXQgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiAyNTUgY2hhcnMuIixMQUJFTF9TVEFSVFNfV0lUSF9EQVNIOiJEb21haW4gbmFtZSBsYWJlbCBjYW4gbm90IHN0YXJ0IHdpdGggYSBkYXNoLiIsTEFCRUxfRU5EU19XSVRIX0RBU0g6IkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBub3QgZW5kIHdpdGggYSBkYXNoLiIsTEFCRUxfVE9PX0xPTkc6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBtb3N0IDYzIGNoYXJzIGxvbmcuIixMQUJFTF9UT09fU0hPUlQ6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBsZWFzdCAxIGNoYXJhY3RlciBsb25nLiIsTEFCRUxfSU5WQUxJRF9DSEFSUzoiRG9tYWluIG5hbWUgbGFiZWwgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciBkYXNoZXMuIn0sby52YWxpZGF0ZT1mdW5jdGlvbihlKXt2YXIgdD1yLnRvQVNDSUkoZSk7aWYodC5sZW5ndGg8MSlyZXR1cm4iRE9NQUlOX1RPT19TSE9SVCI7aWYodC5sZW5ndGg+MjU1KXJldHVybiJET01BSU5fVE9PX0xPTkciO2Zvcih2YXIgbixvPXQuc3BsaXQoIi4iKSxpPTA7aTxvLmxlbmd0aDsrK2kpe2lmKG49b1tpXSwhbi5sZW5ndGgpcmV0dXJuIkxBQkVMX1RPT19TSE9SVCI7aWYobi5sZW5ndGg+NjMpcmV0dXJuIkxBQkVMX1RPT19MT05HIjtpZigiLSI9PT1uLmNoYXJBdCgwKSlyZXR1cm4iTEFCRUxfU1RBUlRTX1dJVEhfREFTSCI7aWYoIi0iPT09bi5jaGFyQXQobi5sZW5ndGgtMSkpcmV0dXJuIkxBQkVMX0VORFNfV0lUSF9EQVNIIjtpZighL15bYS16MC05XC1dKyQvLnRlc3QobikpcmV0dXJuIkxBQkVMX0lOVkFMSURfQ0hBUlMifX0sbi5wYXJzZT1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRG9tYWluIG5hbWUgbXVzdCBiZSBhIHN0cmluZy4iKTt2YXIgdD1lLnNsaWNlKDApLnRvTG93ZXJDYXNlKCk7Ii4iPT09dC5jaGFyQXQodC5sZW5ndGgtMSkmJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSk7dmFyIGk9by52YWxpZGF0ZSh0KTtpZihpKXJldHVybntpbnB1dDplLGVycm9yOnttZXNzYWdlOm4uZXJyb3JDb2Rlc1tpXSxjb2RlOml9fTt2YXIgYT17aW5wdXQ6ZSx0bGQ6bnVsbCxzbGQ6bnVsbCxkb21haW46bnVsbCxzdWJkb21haW46bnVsbCxsaXN0ZWQ6ITF9LGM9dC5zcGxpdCgiLiIpO2lmKCJsb2NhbCI9PT1jW2MubGVuZ3RoLTFdKXJldHVybiBhO3ZhciB1PWZ1bmN0aW9uKCl7cmV0dXJuL3huLS0vLnRlc3QodCk/KGEuZG9tYWluJiYoYS5kb21haW49ci50b0FTQ0lJKGEuZG9tYWluKSksYS5zdWJkb21haW4mJihhLnN1YmRvbWFpbj1yLnRvQVNDSUkoYS5zdWJkb21haW4pKSxhKTphfSxzPW8uZmluZFJ1bGUodCk7aWYoIXMpcmV0dXJuIGMubGVuZ3RoPDI/YTooYS50bGQ9Yy5wb3AoKSxhLnNsZD1jLnBvcCgpLGEuZG9tYWluPVthLnNsZCxhLnRsZF0uam9pbigiLiIpLGMubGVuZ3RoJiYoYS5zdWJkb21haW49Yy5wb3AoKSksdSgpKTthLmxpc3RlZD0hMDt2YXIgbD1zLnN1ZmZpeC5zcGxpdCgiLiIpLGQ9Yy5zbGljZSgwLGMubGVuZ3RoLWwubGVuZ3RoKTtyZXR1cm4gcy5leGNlcHRpb24mJmQucHVzaChsLnNoaWZ0KCkpLGQubGVuZ3RoPyhzLndpbGRjYXJkJiZsLnVuc2hpZnQoZC5wb3AoKSksZC5sZW5ndGg/KGEudGxkPWwuam9pbigiLiIpLGEuc2xkPWQucG9wKCksYS5kb21haW49W2Euc2xkLGEudGxkXS5qb2luKCIuIiksZC5sZW5ndGgmJihhLnN1YmRvbWFpbj1kLmpvaW4oIi4iKSksdSgpKTp1KCkpOnUoKX0sbi5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU/bi5wYXJzZShlKS5kb21haW58fG51bGw6bnVsbH0sbi5pc1ZhbGlkPWZ1bmN0aW9uKGUpe3ZhciB0PW4ucGFyc2UoZSk7cmV0dXJuIEJvb2xlYW4odC5kb21haW4mJnQubGlzdGVkKX19LHsyMzoyMywyNToyNX1dLDI1OltmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihyKXtmdW5jdGlvbiBvKGUpe3Rocm93IG5ldyBSYW5nZUVycm9yKGpbZV0pfWZ1bmN0aW9uIGkoZSx0KXtmb3IodmFyIG49ZS5sZW5ndGgscj1bXTtuLS07KXJbbl09dChlW25dKTtyZXR1cm4gcn1mdW5jdGlvbiBhKGUsdCl7dmFyIG49ZS5zcGxpdCgiQCIpLHI9IiI7bi5sZW5ndGg+MSYmKHI9blswXSsiQCIsZT1uWzFdKSxlPWUucmVwbGFjZSh4LCIuIik7dmFyIG89ZS5zcGxpdCgiLiIpLGE9aShvLHQpLmpvaW4oIi4iKTtyZXR1cm4gcithfWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0LG4scj1bXSxvPTAsaT1lLmxlbmd0aDtvPGk7KXQ9ZS5jaGFyQ29kZUF0KG8rKyksdD49NTUyOTYmJnQ8PTU2MzE5JiZvPGk/KG49ZS5jaGFyQ29kZUF0KG8rKyksNTYzMjA9PSg2NDUxMiZuKT9yLnB1c2goKCgxMDIzJnQpPDwxMCkrKDEwMjMmbikrNjU1MzYpOihyLnB1c2godCksby0tKSk6ci5wdXNoKHQpO3JldHVybiByfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGkoZSxmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZT42NTUzNSYmKGUtPTY1NTM2LHQrPUgoZT4+PjEwJjEwMjN8NTUyOTYpLGU9NTYzMjB8MTAyMyZlKSx0Kz1IKGUpfSkuam9pbigiIil9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS00ODwxMD9lLTIyOmUtNjU8MjY/ZS02NTplLTk3PDI2P2UtOTc6RX1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuIGUrMjIrNzUqKGU8MjYpLSgoMCE9dCk8PDUpfWZ1bmN0aW9uIGQoZSx0LG4pe3ZhciByPTA7Zm9yKGU9bj9rKGUvUik6ZT4+MSxlKz1rKGUvdCk7ZT5OKk8+PjE7cis9RSllPWsoZS9OKTtyZXR1cm4gayhyKyhOKzEpKmUvKGUrVCkpfWZ1bmN0aW9uIGYoZSl7dmFyIHQsbixyLGksYSxjLGwsZixwLGgsZz1bXSx3PWUubGVuZ3RoLHY9MCxfPUEsYj1DO2ZvcihuPWUubGFzdEluZGV4T2YoUCksbjwwJiYobj0wKSxyPTA7cjxuOysrcillLmNoYXJDb2RlQXQocik+PTEyOCYmbygibm90LWJhc2ljIiksZy5wdXNoKGUuY2hhckNvZGVBdChyKSk7Zm9yKGk9bj4wP24rMTowO2k8dzspe2ZvcihhPXYsYz0xLGw9RTtpPj13JiZvKCJpbnZhbGlkLWlucHV0IiksZj1zKGUuY2hhckNvZGVBdChpKyspKSwoZj49RXx8Zj5rKCh5LXYpL2MpKSYmbygib3ZlcmZsb3ciKSx2Kz1mKmMscD1sPD1iP1M6bD49YitPP086bC1iLCEoZjxwKTtsKz1FKWg9RS1wLGM+ayh5L2gpJiZvKCJvdmVyZmxvdyIpLGMqPWg7dD1nLmxlbmd0aCsxLGI9ZCh2LWEsdCwwPT1hKSxrKHYvdCk+eS1fJiZvKCJvdmVyZmxvdyIpLF8rPWsodi90KSx2JT10LGcuc3BsaWNlKHYrKywwLF8pfXJldHVybiB1KGcpfWZ1bmN0aW9uIHAoZSl7dmFyIHQsbixyLGksYSx1LHMsZixwLGgsZyx3LHYsXyxiLG09W107Zm9yKGU9YyhlKSx3PWUubGVuZ3RoLHQ9QSxuPTAsYT1DLHU9MDt1PHc7Kyt1KWc9ZVt1XSxnPDEyOCYmbS5wdXNoKEgoZykpO2ZvcihyPWk9bS5sZW5ndGgsaSYmbS5wdXNoKFApO3I8dzspe2ZvcihzPXksdT0wO3U8dzsrK3UpZz1lW3VdLGc+PXQmJmc8cyYmKHM9Zyk7Zm9yKHY9cisxLHMtdD5rKCh5LW4pL3YpJiZvKCJvdmVyZmxvdyIpLG4rPShzLXQpKnYsdD1zLHU9MDt1PHc7Kyt1KWlmKGc9ZVt1XSxnPHQmJisrbj55JiZvKCJvdmVyZmxvdyIpLGc9PXQpe2ZvcihmPW4scD1FO2g9cDw9YT9TOnA+PWErTz9POnAtYSwhKGY8aCk7cCs9RSliPWYtaCxfPUUtaCxtLnB1c2goSChsKGgrYiVfLDApKSksZj1rKGIvXyk7bS5wdXNoKEgobChmLDApKSksYT1kKG4sdixyPT1pKSxuPTAsKytyfSsrbiwrK3R9cmV0dXJuIG0uam9pbigiIil9ZnVuY3Rpb24gaChlKXtyZXR1cm4gYShlLGZ1bmN0aW9uKGUpe3JldHVybiBMLnRlc3QoZSk/ZihlLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOmV9KX1mdW5jdGlvbiBnKGUpe3JldHVybiBhKGUsZnVuY3Rpb24oZSl7cmV0dXJuIEkudGVzdChlKT8ieG4tLSIrcChlKTplfSl9dmFyIHc9Im9iamVjdCI9PXR5cGVvZiBuJiZuJiYhbi5ub2RlVHlwZSYmbix2PSJvYmplY3QiPT10eXBlb2YgdCYmdCYmIXQubm9kZVR5cGUmJnQsXz0ib2JqZWN0Ij09dHlwZW9mIGUmJmU7Xy5nbG9iYWwhPT1fJiZfLndpbmRvdyE9PV8mJl8uc2VsZiE9PV98fChyPV8pO3ZhciBiLG0seT0yMTQ3NDgzNjQ3LEU9MzYsUz0xLE89MjYsVD0zOCxSPTcwMCxDPTcyLEE9MTI4LFA9Ii0iLEw9L154bi0tLyxJPS9bXlx4MjAtXHg3RV0vLHg9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLGo9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LE49RS1TLGs9TWF0aC5mbG9vcixIPVN0cmluZy5mcm9tQ2hhckNvZGU7aWYoYj17dmVyc2lvbjoiMS40LjEiLHVjczI6e2RlY29kZTpjLGVuY29kZTp1fSxkZWNvZGU6ZixlbmNvZGU6cCx0b0FTQ0lJOmcsdG9Vbmljb2RlOmh9LCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJiJvYmplY3QiPT10eXBlb2YgZGVmaW5lLmFtZCYmZGVmaW5lLmFtZClkZWZpbmUoInB1bnljb2RlIixmdW5jdGlvbigpe3JldHVybiBifSk7ZWxzZSBpZih3JiZ2KWlmKHQuZXhwb3J0cz09dyl2LmV4cG9ydHM9YjtlbHNlIGZvcihtIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShtKSYmKHdbbV09YlttXSk7ZWxzZSByLnB1bnljb2RlPWJ9KHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7fV0sMjY6W2Z1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiByKGUsdCl7Y29uc3Qgbj1hW3RdO3ZvaWQgMCE9PW4mJihuPjAmJihlLmFzc2VydD1mdW5jdGlvbigpe30pLG4+NSYmKGUudHJhY2U9ZnVuY3Rpb24oKXt9KSxuPjEwJiYoZS5kZWJ1Zz1mdW5jdGlvbigpe30pLG4+MjAmJihlLmxvZz1mdW5jdGlvbigpe30pLG4+MzAmJihlLmluZm89ZnVuY3Rpb24oKXt9KSxuPjQwJiYoZS53YXJuPWZ1bmN0aW9uKCl7fSksbj41MCYmKGUuZXJyb3I9ZnVuY3Rpb24oKXt9KSl9ZnVuY3Rpb24gbyhlLHQpe3Q9dHx8e307Y29uc3Qgbj10LmxldmVsfHwiZGVidWciO3IoZSxuKX1mdW5jdGlvbiBpKGUpe2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShjb25zb2xlKTtyZXR1cm4gbyh0LGUpLHR9Y29uc3QgYT17YWxsOjAsdHJhY2U6NSxkZWJ1ZzoxMCxsb2c6MjAsaW5mbzozMCx3YXJuOjQwLGVycm9yOjUwfSxjPWkoKTt0LmV4cG9ydHM9e2xvZ2dlcjpjLGNvbmZpZ3VyZTpvLGNyZWF0ZTppfX0se31dfSx7fSxbMV0pOw=="));</script>

<script type="text/javascript">
    (function() {
        function async_load(script_url){
            var protocol = ('https:' == document.location.protocol ? 'https://' : 'http://');
            var s = document.createElement('script'); s.src = protocol + script_url;
            var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
        }
        bm_website_code = 'DD9D977B7A8944F7';
        jQuery(document).ready(function(){async_load('asset.pagefair.com/measure.min.js')});
       
    })();
    
    
      var adonis = adonis || {};
  adonis.transport = 'https://uy81rb.wraug5vv72b28fch.pro/http';
</script><!--linkscraper -->

<div id="pf-hidden-xs" class="hidden-xs"></div>
<div id="pf-hidden-sm" class="hidden-sm"></div>
<div id="pf-hidden-md" class="hidden-md"></div>
<div id="pf-hidden-lg" class="hidden-lg"></div>
<div id="pf-visible-xs" class="visible-xs"></div>
<div id="pf-visible-sm" class="visible-sm"></div>
<div id="pf-visible-md" class="visible-md"></div>
<div id="pf-visible-lg" class="visible-lg"></div>
    
   </body>
</html>
