Archive | Featured

What are your two most favorite verses and beliefs?

I am developing a new curriculum and book on the importance of memorizing scripture and the four most important beliefs. I would greatly appreciate you all sharing with me what your two favorite verses are. What verses have most comforted you throughout your life? I hate to do this to you, but you have to pick your top two favorite verses.

Secondly, what are your top two beliefs or truths that you think everyone should have inside themselves or hold onto with great respect? I will pick some winners to receive my latest book, signed of course, As Long As You Both Shall Live.

Thanks for helping me with this new project, and I can’t wait to utilize your input!

Posted in Featured, Marriage, ParentingView Comments

How can you handle difficult people?

There are times in every person’s life when people feel difficult.  They hurt your feelings, let you down, frustrate you, and simply mess with you.  What do you do?  How do you respond?  What’s the best way to handle a difficult person?  Check out 2 Timothy 2:23-26:

23 Again I say, don’t get involved in foolish, ignorant arguments that only start fights.24 A servant of the Lord must not quarrel but must be kind to everyone, be able to teach, and be patient with difficult people.25 Gently instruct those who oppose the truth. Perhaps God will change those people’s hearts, and they will learn the truth.26 Then they will come to their senses and escape from the devil’s trap. For they have been held captive by him to do whatever he wants.

The bible is full of brilliant advice on how to handle your relationships, the difficult part is following through and being obedient to the word!  I am truly convinced, after 15 years of working with couples in conflict, that the best thing you can do when frustrated with your spouse is be patient and loving.  Unless you are being abused emotionally or physically, of course.

How could you live 2 Timothy 2:24 this week with your spouse?  Leave a comment and let us know what you want to do this week to love your spouse like you are challenged in 2 Timothy.

Posted in Communication, Conflict Resolution, Featured, Forgiveness, MarriageView Comments

About a Girl: a guide on how a man can love his wife!

I just started a men’s study at our church, WoodsEdge, titled “About a Girl”.  Sixty four guys signed up to take part in the class! I’m not sure if that is so much because they want to love their wives better or if it’s their wives telling them they need to learn how to love better (just kidding).  This is going to be a four week series and the first week went really well.  I figured it might be fun to include what I’m teaching to the rest of our online community as well.

So thus begins a four part series on how men can better love their wives.  I want to encourage everyone reading this that the series is not going to be a male bashing experience.  Frankly, I’m tired of men continually getting picked on because we love differently than woman do.  It feels at times that the socially acceptable way to love someone is how a woman loves.  Men want to love and be loved just as much as women, we just tend to do it differently.

But the reality is that men marry women, so we need to learn how to love a woman better.  My dad, brother, and I wrote a book titled “The Men’s Relational Toolbox“.  We addressed this in the book, that men need to add certain skills to their relational toolbox in order to love their wives and daughters better.  This series is teaching four fundamentally important things that men can do to better love their wives!

The first week we learned how to truly “fix it” with our wives by learning how to better listen.  Men often get accused of trying to “fix it” too often by their wives.  The good news is that men care enough about their wives to want to fix it, but the bad news is that most men go about fixing it in an ineffective manner.  Usually the best course of action is to simply shut our mouths and listen.

James 1:19-21 teaches us, ”Understand this, my dear brothers and sisters: You must all be quick to listen, slow to speak, and slow to get angry. Human angers does not produce the righteousness God desires.So get rid of all the filth and evil in your lives, and humbly accept the word God has planted in your hearts, for it has the power to save your souls.”

Listening is important because it’s important to our wives and it reflects a godly character (because we’re being obedient to James 1:19-21). But listening also helps increase our emotional and physical intimacy with our wife. When our wife feels loved and listened to, she will also feel more excited about the physical part of our relationship. Now let me be very clear, we do not listen because we want more sex, we listen because it’s the right way to love our wives better (more sex is just an awesome natural result of a close relationship).

Often times we read verses like the ones in James, and we thing, “That sounds great, but how do I do that practically?” Here’s the answer: you need to LUV your wife if you are going to be a better listener. LUV stands for Listen, Understand, and Validate. LUV is the main tenant to our communication method we teach couples at our Marriage Restoration Intensive program.

Listening is all about body language, eye contact, and intention…yes…whether or not we really want to listen.

Understanding comes when we ask questions of our wives when we feel confused or need further clarification. You want your wife to melt at your words, then just say something like, “Honey, I hear that you want to spend more time together, could you let me know what spending time together would look like to you?”  Proverbs 15:23; 28 23 “Everyone enjoys a fitting reply; it is wonderful to say the right thing at the right time! The heart of the godly thinks carefully before speaking; the mouth of the wicked overflows with evil words.”

Validating is saying things like, “Yes, I totally hear what you’re saying. Is there anything you need from me?” Validation is the art of allowing your wife the freedom of her own feelings and needs. Proverbs 13:3, “Those who control their tongue will have a long life; opening your mouth can ruin everything.”

This first week is about LUV, which is one of the most powerful ways you can “fix” anything for your wife.  Most wives just want to be heard and validated.  All you’ve been missing is how to accomplish this, and now you have some simply ways to listen effectively so you can have the kind of marriage you dreamt about during your engagement!

Posted in Communication, Conflict Resolution, Featured, MarriageView Comments

Johnny and Chachi and Gary Smalley doing the robot dance!

Many of our readers are probably unfamiliar with the genius comedy team of Johnny and Chachi (aka Rob Thomas and Braun Brown).  I’ve used their videos for years as a pastor and speaker.  Their comedy and creativity help make sermons and sessions better and just plain fun to experience.  If I’m honest, I’ve been a ridiculously huge fan of theirs for a long time, not that I’m stalking them (but I’d be open to the possibility), it’s just that I love their humor and approach to ministry.

So as you can imagine, when I heard that my own father was guest appearing on one of their newest videos, I couldn’t believe my ears!  My own father, THE GARY SMALLEY, on a video with my comedy heroes.  Then I heard what they talked him in to doing at the end of the video, and I couldn’t wait to see it personally!  Following below is my interview with Johnny and Chachi, but I’d recommend that all of you CLICK HERE to watch the actual video of my dad and the 6 Killer Marriage Tips.  You will want to watch the whole thing because you won’t believe what happens at the end of the video! It will be something you’ve never seen before from Gary Smalley, and I believe you will love it! [As a side note, I do want to apologize for my abnormally large head in this interview! It was my first Skype interview, and I now understand that I need to back off the camera a little bit =]

Posted in Expert Interviews, Featured, Video PodcastsView Comments

The greatest Valentine’s Day celebration ever! And win a DNA of Relationships DVD Series!

Amy and I celebrated Valentine’s Day on Saturday evening, and I must say, it was one of the best Valentine’s Day nights of our 15 years of marriage!  Jen and Phillip Ragain, friends of ours, booked the back room at Taqueria Arandas, which is not exactly known for its high class atmosphere (which is why I loved it so much).  But apparently, as Phillip explained to me, if you just purchase a group buffet of fajitas, they throw in the back room, Karaoke, and a DJ for free!  How do you pass that up?

We ended up dancing the night away and had one of the funnest nights ever!  Which I will say again, simply going out and having fun together is one of the most powerful things you can do to improve the level of happiness and joy in your marriage.  Even if you are stressed out with each other, do not give up having fun.  I know this sounds strange, because, how can you have fun with each other if you are stressed out with each other?  Easy.  Make a choice.  We are not victims of our emotions, our emotions are victims of our choices.

So have a Lover’s Day celebration in memory of ours from Saturday night! (you’ll have to watch the video to understand that one)

And by the way, what did you do for Valentine’s Day? Leave us a comment on the post and we’ll pick the best one of the group and send you a free DNA of Relationships DVD series!

Posted in Featured, Funny Videos, Great Date IdeasView Comments

A live interview with Renee Johnson – author of Faithbook of Jesus

Watch the interview with Renee Johnson on her new book “Faithbook of Jesus” specifically written for 20-somethings!

smalley on livestream.com. Broadcast Live Free

If you want to preorder Faithbook of Jesus now, please click on the Amazon.com link below:

Posted in Devotionals, Expert Interviews, FeaturedView Comments

advert

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzIwMF9hZHNlbnNlPC9zdHJvbmc+IC0gPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguMi1yYzI1ICovLS0+DQoNCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWw0KICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7DQogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7DQogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiPHNjclwiK1wiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCdcIittM191KTsNCiAgIGRvY3VtZW50LndyaXRlIChcIj96b25laWQ9ODM4OTYmYW1wO3RhcmdldD1fdG9wXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48XFwvc2NyXCIrXCJpcHQ+XCIpOw0KLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTdmOTg4ZTAmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRVwnIHRhcmdldD1cJ190b3BcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9ODM4OTYmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRSZuPWE3Zjk4OGUwXCcgYm9yZGVyPVwnMFwnIGFsdD1cJ1wnIC8+PC9hPjwvbm9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL0FzTG9uZ0FzV2VCb3RoLTI1MHgyNTAuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL2FzbG9uZ2Fzd2Vib3Roc2hhbGxsaXZlLmFzcHg8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC41IChSaWNoIE1lZGlhIC0gT3BlblgpICovLS0+Cgo8IS0tLyoKICAqIFRoZSBiYWNrdXAgaW1hZ2Ugc2VjdGlvbiBvZiB0aGlzIHRhZyBoYXMgYmVlbiBnZW5lcmF0ZWQgZm9yIHVzZSBvbiBhCiAgKiBub24tU1NMIHBhZ2UuIElmIHRoaXMgdGFnIGlzIHRvIGJlIHBsYWNlZCBvbiBhbiBTU0wgcGFnZSwgY2hhbmdlIHRoZQogICogICBcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvLi4uXCcKICAqIHRvCiAgKiAgIFwnaHR0cHM6Ly9kMS5vcGVueC5vcmcvLi4uXCcKICAqCiAgKiBUaGlzIG5vc2NyaXB0IHNlY3Rpb24gb2YgdGhpcyB0YWcgb25seSBzaG93cyBpbWFnZSBiYW5uZXJzLiBUaGVyZQogICogaXMgbm8gd2lkdGggb3IgaGVpZ2h0IGluIHRoZXNlIGJhbm5lcnMsIHNvIGlmIHlvdSB3YW50IHRoZXNlIHRhZ3MgdG8KICAqIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgYWQgYmVmb3JlIGl0IHNob3dzLCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGlzCiAgKiBpbmZvcm1hdGlvbiB0byB0aGUgPGltZz4gdGFnLgogICoKICAqIElmIHlvdSBkbyBub3Qgd2FudCB0byBkZWFsIHdpdGggdGhlIGludHJpY2l0aWVzIG9mIHRoZSBub3NjcmlwdAogICogc2VjdGlvbiwgZGVsZXRlIHRoZSB0YWcgKGZyb20gPG5vc2NyaXB0Pi4uLiB0byA8L25vc2NyaXB0PikuIE9uCiAgKiBhdmVyYWdlLCB0aGUgbm9zY3JpcHQgdGFnIGlzIGNhbGxlZCBmcm9tIGxlc3MgdGhhbiAxJSBvZiBpbnRlcm5ldAogICogdXNlcnMuCiAgKi8tLT4KCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWwogICBkb2N1bWVudC5NQVhfY3QwID1cJ3tjbGlja3VybH1cJzsKCiAgIHZhciBtM191ID0gKGxvY2F0aW9uLnByb3RvY29sPT1cJ2h0dHBzOlwnP1wnaHR0cHM6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnOlwnaHR0cDovL2QxLm9wZW54Lm9yZy9hanMucGhwXCcpOwogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7CiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7CiAgIGRvY3VtZW50LndyaXRlICgiPHNjciIrImlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCcgc3JjPVwnIittM191KTsKICAgZG9jdW1lbnQud3JpdGUgKCI/em9uZWlkPTExODE0OSIpOwogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7CiAgIGlmIChkb2N1bWVudC5NQVhfdXNlZCAhPSBcJyxcJykgZG9jdW1lbnQud3JpdGUgKCImYW1wO2V4Y2x1ZGU9IiArIGRvY3VtZW50Lk1BWF91c2VkKTsKICAgZG9jdW1lbnQud3JpdGUgKGRvY3VtZW50LmNoYXJzZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyc2V0IDogKGRvY3VtZW50LmNoYXJhY3RlclNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJhY3RlclNldCA6IFwnXCcpKTsKICAgZG9jdW1lbnQud3JpdGUgKCImYW1wO2xvYz0iICsgZXNjYXBlKHdpbmRvdy5sb2NhdGlvbikpOwogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlICgiJmFtcDtyZWZlcmVyPSIgKyBlc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpKTsKICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlICgiJmNvbnRleHQ9IiArIGVzY2FwZShkb2N1bWVudC5jb250ZXh0KSk7CiAgIGlmICgodHlwZW9mKGRvY3VtZW50Lk1BWF9jdDApICE9IFwndW5kZWZpbmVkXCcpICYmIChkb2N1bWVudC5NQVhfY3QwLnN1YnN0cmluZygwLDQpID09IFwnaHR0cFwnKSkgewogICAgICAgZG9jdW1lbnQud3JpdGUgKCImYW1wO2N0MD0iICsgZXNjYXBlKGRvY3VtZW50Lk1BWF9jdDApKTsKICAgfQogICBpZiAoZG9jdW1lbnQubW1tX2ZvKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7bW1tX2ZvPTEiKTsKICAgZG9jdW1lbnQud3JpdGUgKCJcJz48L3NjciIrImlwdD4iKTsKLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTU0ZWFmZmEmY2I9e3JhbmRvbX1cJyB0YXJnZXQ9XCdfYmxhbmtcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9MTE4MTQ5JmNiPXtyYW5kb219Jm49YTU0ZWFmZmEmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy00Njh4NjAtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvTmV3bHl3ZWRLaXQtMTI1eDEyNS5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8yPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL1dvcmtib29rcy0xMjV4MTI1LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRW1icmFjZS0xMjV4MTI1LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvUFlGLTEyNXgxMjUuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2Rpc2FibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9ETkEtMzAwWDI1MC5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF9tcHVfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZG5hb2ZyZWxhdGlvbnNoaXBzc2VyaWVzb25kdmQuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguNSAoUmljaCBNZWRpYSAtIE9wZW5YKSAqLy0tPg0KDQo8IS0tLyoNCiAgKiBUaGUgYmFja3VwIGltYWdlIHNlY3Rpb24gb2YgdGhpcyB0YWcgaGFzIGJlZW4gZ2VuZXJhdGVkIGZvciB1c2Ugb24gYQ0KICAqIG5vbi1TU0wgcGFnZS4gSWYgdGhpcyB0YWcgaXMgdG8gYmUgcGxhY2VkIG9uIGFuIFNTTCBwYWdlLCBjaGFuZ2UgdGhlDQogICogICBcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvLi4uXCcNCiAgKiB0bw0KICAqICAgXCdodHRwczovL2QxLm9wZW54Lm9yZy8uLi5cJw0KICAqDQogICogVGhpcyBub3NjcmlwdCBzZWN0aW9uIG9mIHRoaXMgdGFnIG9ubHkgc2hvd3MgaW1hZ2UgYmFubmVycy4gVGhlcmUNCiAgKiBpcyBubyB3aWR0aCBvciBoZWlnaHQgaW4gdGhlc2UgYmFubmVycywgc28gaWYgeW91IHdhbnQgdGhlc2UgdGFncyB0bw0KICAqIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgYWQgYmVmb3JlIGl0IHNob3dzLCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCB0aGlzDQogICogaW5mb3JtYXRpb24gdG8gdGhlIDxpbWc+IHRhZy4NCiAgKg0KICAqIElmIHlvdSBkbyBub3Qgd2FudCB0byBkZWFsIHdpdGggdGhlIGludHJpY2l0aWVzIG9mIHRoZSBub3NjcmlwdA0KICAqIHNlY3Rpb24sIGRlbGV0ZSB0aGUgdGFnIChmcm9tIDxub3NjcmlwdD4uLi4gdG8gPC9ub3NjcmlwdD4pLiBPbg0KICAqIGF2ZXJhZ2UsIHRoZSBub3NjcmlwdCB0YWcgaXMgY2FsbGVkIGZyb20gbGVzcyB0aGFuIDElIG9mIGludGVybmV0DQogICogdXNlcnMuDQogICovLS0+DQoNCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWw0KICAgZG9jdW1lbnQuTUFYX2N0MCA9XCd7Y2xpY2t1cmx9XCc7DQoNCiAgIHZhciBtM191ID0gKGxvY2F0aW9uLnByb3RvY29sPT1cJ2h0dHBzOlwnP1wnaHR0cHM6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnOlwnaHR0cDovL2QxLm9wZW54Lm9yZy9hanMucGhwXCcpOw0KICAgdmFyIG0zX3IgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OTk5OTkpOw0KICAgaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkgZG9jdW1lbnQuTUFYX3VzZWQgPSBcJyxcJzsNCiAgIGRvY3VtZW50LndyaXRlIChcIjxzY3JcIitcImlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCcgc3JjPVwnXCIrbTNfdSk7DQogICBkb2N1bWVudC53cml0ZSAoXCI/em9uZWlkPTY0NTgyXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmICgodHlwZW9mKGRvY3VtZW50Lk1BWF9jdDApICE9IFwndW5kZWZpbmVkXCcpICYmIChkb2N1bWVudC5NQVhfY3QwLnN1YnN0cmluZygwLDQpID09IFwnaHR0cFwnKSkgew0KICAgICAgIGRvY3VtZW50LndyaXRlIChcIiZhbXA7Y3QwPVwiICsgZXNjYXBlKGRvY3VtZW50Lk1BWF9jdDApKTsNCiAgIH0NCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48L3NjclwiK1wiaXB0PlwiKTsNCi8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWExZGMxZDRmJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTY0NTgyJmNiPXtyYW5kb219Jm49YTFkYzFkNGYmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfZGlzYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vdGhlbmV3bHl3ZWRraXQuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vd29ya2Jvb2tzc3R1ZHlndWlkZXMuYXNweDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8zPC9zdHJvbmc+IC0gaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZW1icmFjZS10aGVtYXJyaWFnZXNlbWluYXJhdWRpb3Nlcmllcy5hc3B4PC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzY8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGRlZmF1bHQuY3NzPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9ib3hlczwvc3Ryb25nPiAtIE9uPC9saT48bGk+PHN0cm9uZz53b29fYXJjaGl2ZV9jb250ZW50PC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dGhvcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYm94ZWRfdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gMTAwPC9saT48bGk+PHN0cm9uZz53b29fYm94ZWRfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyMzQ8L2xpPjxsaT48c3Ryb25nPndvb19icmVhZGNydW1iczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYnV5X3RoZW1lczwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19jYXJvdXNlbF9oZWlnaHQ8L3N0cm9uZz4gLSAyOTI8L2xpPjxsaT48c3Ryb25nPndvb19jYXRuYXZfZXhjbHVkZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9leDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9tZW51PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jb21tZW50X3Bvc3RzPC9zdHJvbmc+IC0gNTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRhY3Rmb3JtX2VtYWlsPC9zdHJvbmc+IC0gaW5mb0BzbWFsbGV5LmNjPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9hcmNoaXZlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY29udGVudF9mZWF0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fdXBsb2FkX3RyYWNraW5nPC9zdHJvbmc+IC0gYToxOntpOjA7YTo0OntzOjQ6ImZpbGUiO3M6NjA6Ii9ob21lcGFnZXMvMjQvZDE5MjcwNzQ1MC9odGRvY3MvR29TbWFsbGV5L2ltYWdlcy9kYXRpbmcyLmpwZyI7czozOiJ1cmwiO3M6MzY6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9kYXRpbmcyLmpwZyI7czo0OiJ0eXBlIjtzOjEwOiJpbWFnZS9qcGVnIjtzOjExOiJvcHRpb25fbmFtZSI7czo1OiJJbWFnZSI7fX08L2xpPjxsaT48c3Ryb25nPndvb19lbWJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfcG9zdHM8L3N0cm9uZz4gLSAxPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfdGFnczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfZW50cmllczwvc3Ryb25nPiAtIDE8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mb290ZXJfY3JlZGl0czwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Zvb3Rlcl9pbWFnZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZyYW1ld29ya191cGRhdGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZyYW1ld29ya192ZXJzaW9uPC9zdHJvbmc+IC0gMi41LjM8L2xpPjxsaT48c3Ryb25nPndvb19mdWxsX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX2Z1bGxfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSA1NjA8L2xpPjxsaT48c3Ryb25nPndvb19nZXRfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTQyPC9saT48bGk+PHN0cm9uZz53b29fZ2V0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTkwPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfYXJjPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2JveGVzPC9zdHJvbmc+IC0gT248L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfZmVhdHVyZWQ8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfbGlua19kZXNjPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX3RleHQ8L3N0cm9uZz4gLSBIb21lPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSA5MjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyNDc8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAyMTA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9zaW5nbGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gNTQwPC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9TSVRFLUhFQURFUjEucG5nPC9saT48bGk+PHN0cm9uZz53b29fbWFudWFsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL3N1cHBvcnQvdGhlbWUtZG9jdW1lbnRhdGlvbi9nYXpldHRlLWVkaXRpb24vPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19vcHRpb25zPC9zdHJvbmc+IC0gYToxMDc6e3M6MTQ6Indvb19hZHNfcm90YXRlIjtzOjQ6InRydWUiO3M6MTg6Indvb19hZF8yMDBfYWRzZW5zZSI7czoxMzM4OiI8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC4yLXJjMjUgKi8tLT4NCg0KPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+PCEtLS8vPCFbQ0RBVEFbDQogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsNCiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsNCiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7DQogICBkb2N1bWVudC53cml0ZSAoXCI8c2NyXCIrXCJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJ1wiK20zX3UpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiP3pvbmVpZD04Mzg5NiZhbXA7dGFyZ2V0PV90b3BcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7DQogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7ZXhjbHVkZT1cIiArIGRvY3VtZW50Lk1BWF91c2VkKTsNCiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7DQogICBkb2N1bWVudC53cml0ZSAoXCImYW1wO2xvYz1cIiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsNCiAgIGlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtyZWZlcmVyPVwiICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7DQogICBpZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKFwiJmNvbnRleHQ9XCIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOw0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDttbW1fZm89MVwiKTsNCiAgIGRvY3VtZW50LndyaXRlIChcIlwnPjxcXC9zY3JcIitcImlwdD5cIik7DQovL11dPi0tPjwvc2NyaXB0Pjxub3NjcmlwdD48YSBocmVmPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9jay5waHA/bj1hN2Y5ODhlMCZjYj1JTlNFUlRfUkFORE9NX05VTUJFUl9IRVJFXCcgdGFyZ2V0PVwnX3RvcFwnPjxpbWcgc3JjPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9hdncucGhwP3pvbmVpZD04Mzg5NiZjYj1JTlNFUlRfUkFORE9NX05VTUJFUl9IRVJFJm49YTdmOTg4ZTBcJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD4iO3M6MTY6Indvb19hZF8yMDBfaW1hZ2UiO3M6MDoiIjtzOjE0OiJ3b29fYWRfMjAwX3VybCI7czowOiIiO3M6MTg6Indvb19hZF8yNTBfYWRzZW5zZSI7czowOiIiO3M6MTY6Indvb19hZF8yNTBfaW1hZ2UiO3M6NTE6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9Bc0xvbmdBc1dlQm90aC0yNTB4MjUwLmpwZyI7czoxNDoid29vX2FkXzI1MF91cmwiO3M6NTg6Imh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL2FzbG9uZ2Fzd2Vib3Roc2hhbGxsaXZlLmFzcHgiO3M6MjI6Indvb19hZF9jb250ZW50X2Fkc2Vuc2UiO3M6MjIwODoiPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguNSAoUmljaCBNZWRpYSAtIE9wZW5YKSAqLy0tPgoKPCEtLS8qCiAgKiBUaGUgYmFja3VwIGltYWdlIHNlY3Rpb24gb2YgdGhpcyB0YWcgaGFzIGJlZW4gZ2VuZXJhdGVkIGZvciB1c2Ugb24gYQogICogbm9uLVNTTCBwYWdlLiBJZiB0aGlzIHRhZyBpcyB0byBiZSBwbGFjZWQgb24gYW4gU1NMIHBhZ2UsIGNoYW5nZSB0aGUKICAqICAgXCdodHRwOi8vZDEub3Blbngub3JnLy4uLlwnCiAgKiB0bwogICogICBcJ2h0dHBzOi8vZDEub3Blbngub3JnLy4uLlwnCiAgKgogICogVGhpcyBub3NjcmlwdCBzZWN0aW9uIG9mIHRoaXMgdGFnIG9ubHkgc2hvd3MgaW1hZ2UgYmFubmVycy4gVGhlcmUKICAqIGlzIG5vIHdpZHRoIG9yIGhlaWdodCBpbiB0aGVzZSBiYW5uZXJzLCBzbyBpZiB5b3Ugd2FudCB0aGVzZSB0YWdzIHRvCiAgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGFkIGJlZm9yZSBpdCBzaG93cywgeW91IHdpbGwgbmVlZCB0byBhZGQgdGhpcwogICogaW5mb3JtYXRpb24gdG8gdGhlIDxpbWc+IHRhZy4KICAqCiAgKiBJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBpbnRyaWNpdGllcyBvZiB0aGUgbm9zY3JpcHQKICAqIHNlY3Rpb24sIGRlbGV0ZSB0aGUgdGFnIChmcm9tIDxub3NjcmlwdD4uLi4gdG8gPC9ub3NjcmlwdD4pLiBPbgogICogYXZlcmFnZSwgdGhlIG5vc2NyaXB0IHRhZyBpcyBjYWxsZWQgZnJvbSBsZXNzIHRoYW4gMSUgb2YgaW50ZXJuZXQKICAqIHVzZXJzLgogICovLS0+Cgo8c2NyaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJz48IS0tLy88IVtDREFUQVsKICAgZG9jdW1lbnQuTUFYX2N0MCA9XCd7Y2xpY2t1cmx9XCc7CgogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsKICAgdmFyIG0zX3IgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OTk5OTkpOwogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOwogICBkb2N1bWVudC53cml0ZSAoIjxzY3IiKyJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJyIrbTNfdSk7CiAgIGRvY3VtZW50LndyaXRlICgiP3pvbmVpZD0xMTgxNDkiKTsKICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOwogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlICgiJmFtcDtleGNsdWRlPSIgKyBkb2N1bWVudC5NQVhfdXNlZCk7CiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7CiAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtsb2M9IiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsKICAgaWYgKGRvY3VtZW50LnJlZmVycmVyKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7cmVmZXJlcj0iICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7CiAgIGlmIChkb2N1bWVudC5jb250ZXh0KSBkb2N1bWVudC53cml0ZSAoIiZjb250ZXh0PSIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOwogICBpZiAoKHR5cGVvZihkb2N1bWVudC5NQVhfY3QwKSAhPSBcJ3VuZGVmaW5lZFwnKSAmJiAoZG9jdW1lbnQuTUFYX2N0MC5zdWJzdHJpbmcoMCw0KSA9PSBcJ2h0dHBcJykpIHsKICAgICAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtjdDA9IiArIGVzY2FwZShkb2N1bWVudC5NQVhfY3QwKSk7CiAgIH0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CiAgIGRvY3VtZW50LndyaXRlICgiXCc+PC9zY3IiKyJpcHQ+Iik7Ci8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWE1NGVhZmZhJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTExODE0OSZjYj17cmFuZG9tfSZuPWE1NGVhZmZhJmN0MD17Y2xpY2t1cmx9XCcgYm9yZGVyPVwnMFwnIGFsdD1cJ1wnIC8+PC9hPjwvbm9zY3JpcHQ+IjtzOjIyOiJ3b29fYWRfY29udGVudF9kaXNhYmxlIjtzOjU6ImZhbHNlIjtzOjIwOiJ3b29fYWRfY29udGVudF9pbWFnZSI7czo1MToiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmIjtzOjE4OiJ3b29fYWRfY29udGVudF91cmwiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxNDoid29vX2FkX2ltYWdlXzEiO3M6NDg6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9OZXdseXdlZEtpdC0xMjV4MTI1LnBuZyI7czoxNDoid29vX2FkX2ltYWdlXzIiO3M6NDY6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9Xb3JrYm9va3MtMTI1eDEyNS5wbmciO3M6MTQ6Indvb19hZF9pbWFnZV8zIjtzOjQ0OiJodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRW1icmFjZS0xMjV4MTI1LnBuZyI7czoxNDoid29vX2FkX2ltYWdlXzQiO3M6NDA6Imh0dHA6Ly9zbWFsbGV5LmNjL2ltYWdlcy9QWUYtMTI1eDEyNS5qcGciO3M6MTQ6Indvb19hZF9pbWFnZV81IjtzOjUyOiJodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmIjtzOjE0OiJ3b29fYWRfaW1hZ2VfNiI7czo1MjoiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZiI7czoxODoid29vX2FkX21wdV9hZHNlbnNlIjtzOjA6IiI7czoxODoid29vX2FkX21wdV9kaXNhYmxlIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fYWRfbXB1X2ltYWdlIjtzOjQwOiJodHRwOi8vc21hbGxleS5jYy9pbWFnZXMvRE5BLTMwMFgyNTAuanBnIjtzOjE0OiJ3b29fYWRfbXB1X3VybCI7czo2NDoiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vZG5hb2ZyZWxhdGlvbnNoaXBzc2VyaWVzb25kdmQuYXNweCI7czoxODoid29vX2FkX3RvcF9hZHNlbnNlIjtzOjIyMDY6IjwhLS0vKiBPcGVuWCBKYXZhc2NyaXB0IFRhZyB2Mi44LjUgKFJpY2ggTWVkaWEgLSBPcGVuWCkgKi8tLT4KCjwhLS0vKgogICogVGhlIGJhY2t1cCBpbWFnZSBzZWN0aW9uIG9mIHRoaXMgdGFnIGhhcyBiZWVuIGdlbmVyYXRlZCBmb3IgdXNlIG9uIGEKICAqIG5vbi1TU0wgcGFnZS4gSWYgdGhpcyB0YWcgaXMgdG8gYmUgcGxhY2VkIG9uIGFuIFNTTCBwYWdlLCBjaGFuZ2UgdGhlCiAgKiAgIFwnaHR0cDovL2QxLm9wZW54Lm9yZy8uLi5cJwogICogdG8KICAqICAgXCdodHRwczovL2QxLm9wZW54Lm9yZy8uLi5cJwogICoKICAqIFRoaXMgbm9zY3JpcHQgc2VjdGlvbiBvZiB0aGlzIHRhZyBvbmx5IHNob3dzIGltYWdlIGJhbm5lcnMuIFRoZXJlCiAgKiBpcyBubyB3aWR0aCBvciBoZWlnaHQgaW4gdGhlc2UgYmFubmVycywgc28gaWYgeW91IHdhbnQgdGhlc2UgdGFncyB0bwogICogYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBhZCBiZWZvcmUgaXQgc2hvd3MsIHlvdSB3aWxsIG5lZWQgdG8gYWRkIHRoaXMKICAqIGluZm9ybWF0aW9uIHRvIHRoZSA8aW1nPiB0YWcuCiAgKgogICogSWYgeW91IGRvIG5vdCB3YW50IHRvIGRlYWwgd2l0aCB0aGUgaW50cmljaXRpZXMgb2YgdGhlIG5vc2NyaXB0CiAgKiBzZWN0aW9uLCBkZWxldGUgdGhlIHRhZyAoZnJvbSA8bm9zY3JpcHQ+Li4uIHRvIDwvbm9zY3JpcHQ+KS4gT24KICAqIGF2ZXJhZ2UsIHRoZSBub3NjcmlwdCB0YWcgaXMgY2FsbGVkIGZyb20gbGVzcyB0aGFuIDElIG9mIGludGVybmV0CiAgKiB1c2Vycy4KICAqLy0tPgoKPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+PCEtLS8vPCFbQ0RBVEFbCiAgIGRvY3VtZW50Lk1BWF9jdDAgPVwne2NsaWNrdXJsfVwnOwoKICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7CiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsKICAgaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkgZG9jdW1lbnQuTUFYX3VzZWQgPSBcJyxcJzsKICAgZG9jdW1lbnQud3JpdGUgKCI8c2NyIisiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCciK20zX3UpOwogICBkb2N1bWVudC53cml0ZSAoIj96b25laWQ9NjQ1ODIiKTsKICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOwogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlICgiJmFtcDtleGNsdWRlPSIgKyBkb2N1bWVudC5NQVhfdXNlZCk7CiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7CiAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtsb2M9IiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsKICAgaWYgKGRvY3VtZW50LnJlZmVycmVyKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7cmVmZXJlcj0iICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7CiAgIGlmIChkb2N1bWVudC5jb250ZXh0KSBkb2N1bWVudC53cml0ZSAoIiZjb250ZXh0PSIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOwogICBpZiAoKHR5cGVvZihkb2N1bWVudC5NQVhfY3QwKSAhPSBcJ3VuZGVmaW5lZFwnKSAmJiAoZG9jdW1lbnQuTUFYX2N0MC5zdWJzdHJpbmcoMCw0KSA9PSBcJ2h0dHBcJykpIHsKICAgICAgIGRvY3VtZW50LndyaXRlICgiJmFtcDtjdDA9IiArIGVzY2FwZShkb2N1bWVudC5NQVhfY3QwKSk7CiAgIH0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CiAgIGRvY3VtZW50LndyaXRlICgiXCc+PC9zY3IiKyJpcHQ+Iik7Ci8vXV0+LS0+PC9zY3JpcHQ+PG5vc2NyaXB0PjxhIGhyZWY9XCdodHRwOi8vZDEub3Blbngub3JnL2NrLnBocD9uPWExZGMxZDRmJmNiPXtyYW5kb219XCcgdGFyZ2V0PVwnX2JsYW5rXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTY0NTgyJmNiPXtyYW5kb219Jm49YTFkYzFkNGYmY3QwPXtjbGlja3VybH1cJyBib3JkZXI9XCcwXCcgYWx0PVwnXCcgLz48L2E+PC9ub3NjcmlwdD4iO3M6MTg6Indvb19hZF90b3BfZGlzYWJsZSI7czo1OiJmYWxzZSI7czoxNjoid29vX2FkX3RvcF9pbWFnZSI7czo1MToiaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmIjtzOjE0OiJ3b29fYWRfdG9wX3VybCI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjEyOiJ3b29fYWRfdXJsXzEiO3M6NDk6Imh0dHA6Ly9zbWFsbGV5b25saW5lc3RvcmUuY29tL3RoZW5ld2x5d2Vka2l0LmFzcHgiO3M6MTI6Indvb19hZF91cmxfMiI7czo1NToiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20vd29ya2Jvb2tzc3R1ZHlndWlkZXMuYXNweCI7czoxMjoid29vX2FkX3VybF8zIjtzOjcyOiJodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbS9lbWJyYWNlLXRoZW1hcnJpYWdlc2VtaW5hcmF1ZGlvc2VyaWVzLmFzcHgiO3M6MTI6Indvb19hZF91cmxfNCI7czoyOToiaHR0cDovL3NtYWxsZXlvbmxpbmVzdG9yZS5jb20iO3M6MTI6Indvb19hZF91cmxfNSI7czoyNDoiaHR0cDovL3d3dy53b290aGVtZXMuY29tIjtzOjEyOiJ3b29fYWRfdXJsXzYiO3M6MjQ6Imh0dHA6Ly93d3cud29vdGhlbWVzLmNvbSI7czoxODoid29vX2FsdF9zdHlsZXNoZWV0IjtzOjExOiJza3libHVlLmNzcyI7czoxNzoid29vX2FyY2hpdmVfYm94ZXMiO3M6MjoiT24iO3M6MTk6Indvb19hcmNoaXZlX2NvbnRlbnQiO3M6NDoidHJ1ZSI7czoxMDoid29vX2F1dGhvciI7czo0OiJ0cnVlIjtzOjEyOiJ3b29fYXV0b19pbWciO3M6NToiZmFsc2UiO3M6MjI6Indvb19ib3hlZF90aHVtYl9oZWlnaHQiO3M6MzoiMTAwIjtzOjIxOiJ3b29fYm94ZWRfdGh1bWJfd2lkdGgiO3M6MzoiMjM0IjtzOjE1OiJ3b29fYnJlYWRjcnVtYnMiO3M6NToiZmFsc2UiO3M6MTQ6Indvb19idXlfdGhlbWVzIjtzOjQ6InRydWUiO3M6MTk6Indvb19jYXJvdXNlbF9oZWlnaHQiO3M6MzoiMjkyIjtzOjE4OiJ3b29fY2F0bmF2X2V4Y2x1ZGUiO3M6MDoiIjtzOjEwOiJ3b29fY2F0X2V4IjtzOjA6IiI7czoxMjoid29vX2NhdF9tZW51IjtzOjU6ImZhbHNlIjtzOjE3OiJ3b29fY29tbWVudF9wb3N0cyI7czoxOiI1IjtzOjIxOiJ3b29fY29udGFjdGZvcm1fZW1haWwiO3M6MTU6ImluZm9Ac21hbGxleS5jYyI7czoxMToid29vX2NvbnRlbnQiO3M6NToiZmFsc2UiO3M6MjA6Indvb19jb250ZW50X2FyY2hpdmVzIjtzOjU6ImZhbHNlIjtzOjE2OiJ3b29fY29udGVudF9mZWF0IjtzOjU6ImZhbHNlIjtzOjE0OiJ3b29fY3VzdG9tX2NzcyI7czowOiIiO3M6MTg6Indvb19jdXN0b21fZmF2aWNvbiI7czowOiIiO3M6MjY6Indvb19jdXN0b21fdXBsb2FkX3RyYWNraW5nIjthOjE6e2k6MDthOjQ6e3M6NDoiZmlsZSI7czo2MDoiL2hvbWVwYWdlcy8yNC9kMTkyNzA3NDUwL2h0ZG9jcy9Hb1NtYWxsZXkvaW1hZ2VzL2RhdGluZzIuanBnIjtzOjM6InVybCI7czozNjoiaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL2RhdGluZzIuanBnIjtzOjQ6InR5cGUiO3M6MTA6ImltYWdlL2pwZWciO3M6MTE6Im9wdGlvbl9uYW1lIjtzOjU6IkltYWdlIjt9fXM6OToid29vX2VtYmVkIjtzOjQ6InRydWUiO3M6MjE6Indvb19mZWF0dXJlZF9jYXRlZ29yeSI7czo4OiJGZWF0dXJlZCI7czoxODoid29vX2ZlYXR1cmVkX3Bvc3RzIjtzOjE6IjEiO3M6MTc6Indvb19mZWF0dXJlZF90YWdzIjtzOjA6IiI7czoxNjoid29vX2ZlYXRfZW50cmllcyI7czoxOiI2IjtzOjE3OiJ3b29fZmVlZGJ1cm5lcl9pZCI7czowOiIiO3M6MTg6Indvb19mZWVkYnVybmVyX3VybCI7czowOiIiO3M6MTg6Indvb19mb290ZXJfY3JlZGl0cyI7czowOiIiO3M6MTY6Indvb19mb290ZXJfaW1hZ2UiO3M6MDoiIjtzOjIwOiJ3b29fZnJhbWV3b3JrX3VwZGF0ZSI7czo1OiJmYWxzZSI7czoyMToid29vX2Z1bGxfdGh1bWJfaGVpZ2h0IjtzOjM6IjE4MCI7czoyMDoid29vX2Z1bGxfdGh1bWJfd2lkdGgiO3M6MzoiNTYwIjtzOjIwOiJ3b29fZ2V0X2ltYWdlX2hlaWdodCI7czozOiIxNDIiO3M6MTk6Indvb19nZXRfaW1hZ2Vfd2lkdGgiO3M6MzoiMTkwIjtzOjIwOiJ3b29fZ29vZ2xlX2FuYWx5dGljcyI7czowOiIiO3M6ODoid29vX2hvbWUiO3M6NToiZmFsc2UiO3M6MTI6Indvb19ob21lX2FyYyI7czo1OiJmYWxzZSI7czoxNDoid29vX2hvbWVfYm94ZXMiO3M6MjoiT24iO3M6MTY6Indvb19ob21lX2NvbnRlbnQiO3M6NToiZmFsc2UiO3M6MTc6Indvb19ob21lX2ZlYXR1cmVkIjtzOjQ6InRydWUiO3M6MTM6Indvb19ob21lX2xpbmsiO3M6NDoidHJ1ZSI7czoxODoid29vX2hvbWVfbGlua19kZXNjIjtzOjA6IiI7czoxODoid29vX2hvbWVfbGlua190ZXh0IjtzOjQ6IkhvbWUiO3M6MjE6Indvb19ob21lX3RodW1iX2hlaWdodCI7czoyOiI5MiI7czoyMDoid29vX2hvbWVfdGh1bWJfd2lkdGgiO3M6MzoiMjQ3IjtzOjE2OiJ3b29faW1hZ2VfaGVpZ2h0IjtzOjM6IjIxMCI7czoxNjoid29vX2ltYWdlX3NpbmdsZSI7czo1OiJmYWxzZSI7czoxNToid29vX2ltYWdlX3dpZHRoIjtzOjM6IjU0MCI7czo4OiJ3b29fbG9nbyI7czo0MToiaHR0cDovL3NtYWxsZXkuY2MvaW1hZ2VzL1NJVEUtSEVBREVSMS5wbmciO3M6MTU6Indvb19uYXZfZXhjbHVkZSI7czowOiIiO3M6MTc6Indvb19wb3B1bGFyX3Bvc3RzIjtzOjE6IjUiO3M6MTA6Indvb19yZXNpemUiO3M6NDoidHJ1ZSI7czoxNjoid29vX3Nob3duX3NsaWRlcyI7YToxOntpOjA7czozOiIyNDIiO31zOjE3OiJ3b29fc2hvd19jYXJvdXNlbCI7czo0OiJ0cnVlIjtzOjE2OiJ3b29fc2hvd19vcHRpb25zIjtzOjU6ImZhbHNlIjtzOjIzOiJ3b29fc2hvd190YWxraW5nX3BvaW50cyI7czo1OiJmYWxzZSI7czoxNDoid29vX3Nob3dfdmlkZW8iO3M6NDoidHJ1ZSI7czoxNzoid29vX3NpbmdsZV9oZWlnaHQiO3M6MzoiMTIwIjtzOjE2OiJ3b29fc2luZ2xlX3dpZHRoIjtzOjM6IjE4MCI7czoxNjoid29vX3NsaWRlcl9jZmFkZSI7czo1OiJmYWxzZSI7czoyNDoid29vX3NsaWRlcl9jb250ZW50X3NwZWVkIjtzOjQ6IjEwMDAiO3M6MTY6Indvb19zbGlkZXJfc2ZhZGUiO3M6NToiZmFsc2UiO3M6MTY6Indvb19zbGlkZXJfc3BlZWQiO3M6MzoiNTAwIjtzOjE4OiJ3b29fc2xpZGVyX3RpbWVvdXQiO3M6NDoiNjAwMCI7czo4OiJ3b29fdGFicyI7czo1OiJmYWxzZSI7czoyMzoid29vX3RhbGtpbmdfcG9pbnRzX3RhZ3MiO3M6MDoiIjtzOjEzOiJ3b29fdGhlbWVuYW1lIjtzOjg6IkJ1c3kgQmVlIjtzOjI1OiJ3b29fdGhlbWVfdmVyc2lvbl9jaGVja2VyIjtzOjQ6InRydWUiO3M6MTY6Indvb190aHVtYl9oZWlnaHQiO3M6MjoiODgiO3M6MTU6Indvb190aHVtYl93aWR0aCI7czoyOiI4OCI7czoxMToid29vX3R3aXR0ZXIiO3M6MDoiIjtzOjExOiJ3b29fdXBsb2FkcyI7YTo4OntpOjA7czo4MDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAtU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6MTtzOjc5OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LVNtYWxsZXlPbmxpbmUtTWFpbi1IZWFkZXIuanBnIjtpOjI7czo3OToiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aTozO3M6Nzk6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzctU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6NDtzOjcxOiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXN0b3JlLWhlYWRlci1sb2dvLnBuZyI7aTo1O3M6NzQ6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzUtU21hbGxleS1sb2dvXzJjX21haW4uanBnIjtpOjY7czo3NDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1TbWFsbGV5LWxvZ29fMmNfbWFpbi5qcGciO2k6NztzOjU4OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nIjt9czoyMjoid29vX3ZpZGVvX2Jyb3dzZXJfaW5pdCI7czoxOiIzIjtzOjE4OiJ3b29fdmlkZW9fY2F0ZWdvcnkiO3M6MTQ6IlZpZGVvIFBvZGNhc3RzIjtzOjE0OiJ3b29fdmlkZW9fdGFncyI7czowOiIiO308L2xpPjxsaT48c3Ryb25nPndvb19wb3B1bGFyX3Bvc3RzPC9zdHJvbmc+IC0gNTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb19zaG93bl9zbGlkZXM8L3N0cm9uZz4gLSBhOjE6e2k6MDtzOjM6IjI0MiI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfY2Fyb3VzZWw8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvd19vcHRpb25zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3RhbGtpbmdfcG9pbnRzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zaG93X3ZpZGVvPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV9oZWlnaHQ8L3N0cm9uZz4gLSAxMjA8L2xpPjxsaT48c3Ryb25nPndvb19zaW5nbGVfd2lkdGg8L3N0cm9uZz4gLSAxODA8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfY2ZhZGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9jb250ZW50X3NwZWVkPC9zdHJvbmc+IC0gMTAwMDwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9zZmFkZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3NwZWVkPC9zdHJvbmc+IC0gNTAwPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3RpbWVvdXQ8L3N0cm9uZz4gLSA2MDAwPC9saT48bGk+PHN0cm9uZz53b29fdGFiczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fdGFsa2luZ19wb2ludHNfdGFnczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEdhemV0dGU8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZV92ZXJzaW9uX2NoZWNrZXI8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gODg8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDg4PC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3VwbG9hZHM8L3N0cm9uZz4gLSBhOjg6e2k6MDtzOjgwOiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8xMC1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aToxO3M6Nzk6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzktU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6MjtzOjc5OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy84LVNtYWxsZXlPbmxpbmUtTWFpbi1IZWFkZXIuanBnIjtpOjM7czo3OToiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aTo0O3M6NzE6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzYtc3RvcmUtaGVhZGVyLWxvZ28ucG5nIjtpOjU7czo3NDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNS1TbWFsbGV5LWxvZ29fMmNfbWFpbi5qcGciO2k6NjtzOjc0OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy80LVNtYWxsZXktbG9nb18yY19tYWluLmpwZyI7aTo3O3M6NTg6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzMtbG9nby5wbmciO308L2xpPjxsaT48c3Ryb25nPndvb192aWRlb19icm93c2VyX2luaXQ8L3N0cm9uZz4gLSAzPC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBWaWRlbyBQb2RjYXN0czwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3RhZ3M8L3N0cm9uZz4gLSA8L2xpPjwvdWw+