Archive | Great Date Ideas

Did you ever think of this for a date night?

Michael Smalley unpacks one of the bigger complaints from couples about why they do not have a date night.

Posted in Great Date Ideas, Video PodcastsComments

‘Tyler Perry’s The Marriage Counselor’ – From Tyler Perry, Couples Therapy, for Better or Worse – NYTimes.com

Sermons and smackdowns vie for supremacy in the universe of Tyler Perry, the creative impresario who presides over an expanding kingdom of black entertainment. Movie audiences who soak up the church-scorning bile of Madea, the bad-tempered, big-boned matron who could flay you with her tongue from the other side of a football field, also bask in the lessons in Christian forgiveness and redemption that Mr. Perry deploys as sentimental buttresses to her towering irreverence.

via Theater Review – ‘Tyler Perry’s The Marriage Counselor’ – From Tyler Perry, Couples Therapy, for Better or Worse – NYTimes.com.

Posted in Great Date IdeasComments

The top 26 iPhone Apps that can help your marriage

You have seen the commercials, heard the hype, and have finally purchased your brand new 3G iPhone.  Now what?  Even though the iPhone can not actually cook the date night meal for you, it can give you the best recipe to cook.  Maybe the iPhone can not take your wife out on a date, but it can show you where to take her.

The following post contains (in my opinion of course) the top 26 iPhone Apps that can help your marriage.  That’s right.  The iPhone, if used prrly and with the correct apps, can actually make your marriage more satisfying.  The key to any healthy marriage (thus avoiding divorce because you are so happy) is your ability to have fun together, to stay organized, and to keep the lines of communication open with each other. So the following 26 iPhone Apps have been divided into three main categories: 1. Having Fun, 2. Staying Organized, and 3. Communication.

HAVING FUN

1. Urbanspoon

UrbanspoonThe first on my list of iPhone apps that can help you have more fun in your marriage is Urbanspoon.  The reason I like this app for adding more fun to your marriage is that all you have to do for a new and innovative night out at a restaurant or club is to simply shake your phone (and booty if the mood hits you right).  You can even select certain categories of food you want, price, or distance to help narrow your search to something you know the both of you will enjoy.

2. Goodrec

GoodrecOne of the easiest ways to make, find and remember recommendations for restaurants, nightlife, books, movies and more from your friend’s and sources you trust.  This is a great little app to help you plan the perfect date night with each other.  I have been able to use it to locate nearby fun spots after dinner on our own date nights.

3. Now Playing

Now PlayingThis has been my favorite move theater finder and movie listing app for the iPhone.  It searches for movie theaters near you automatically and it includes movie ratings from RottenTomatoes and Google Movie Reviews.  Going out to a movie is one of our favorite things to do on a date night, and this app makes it a click away.

4. Yelp

YelpLooking for a burrito joint open now? An Irish pub nearby? A gas station you can drive to before your tank hits empty? Yelp for your iPhone is here to help. Use Yelp to search for places to eat, shop, drink, relax and play then read reviews from an active community of locals in the know.  I have found that Yelp is one of the better “fun night” apps that has a large user ratings base and so you can truly get good feedback on a place before going to it.

5. OpenTable

opentableI have used OpenTable before through my browser, but now they have it for my iPhone! This is a great app on simply making a reservation at the hottest restaurants in town.  No hassle reservations will help you enjoy the evening even more.

6. Mobile by Citysearch

CitySearchSearching for the best dive bar open past midnight? Citysearch connects you to what’s happening in your neighborhood and beyond. If you’re at all savvy online, then you know about CitySearch.  Now all that power and knowledge of CitySearch is at the touch of your finger.  So go forth boldy and find that new hotspot in your city to take your spouse out for a great night of fun.

7. AroundMe

AroundMeAllows you to quickly find out information about your surroundings.  You can never have enough apps to help find cool new places or restaurants near you.  I’ve included this one because it is so simple, there is virtually no work involved except launching the app on your iPhone.  You can use this app spontaneously while you are driving in the car or use it to plan out your night’s activities in advance.

8. Big Oven

BigOvenOver 250,000 recipes to search by keyword! We both enjoy evenings at home for our date nights as well, but it can become both romantic and creative when you make a special meal.  Big Oven takes the guessing work out of what to cook and it is very easy to read and understand the recipes.

9. Salon & spa findrr

Salon & spa findrrThe easiest way to find the closest salon or spa. Just open and see the 8 salons and spas closest to your present location.  Is there anything better than having a couple message or spa experience? I don’t think so!

10. Superball 2

SuperBall 2SuperBall 2 is a fun and quick paced block blasting brick breaker game with unique gameplay and enhanced graphics.  This game is so addictive, but you might be asking why I’m including it on a top 26 list for marriages, because I am in charge of the list! And, if both you and your spouse have iPhones, you can actually play each other with this great little game.  It brings back the memories of Pong, but Pong on steriods.

11. Shazam

ShazamSo you’re driving down the highway or street and you hear the perfect song that you want to get for your spouse, what to do? Get the free app Shazam! All you do is launch the app and touch ‘tag now’.  It does its magic and wham, the song title, album and group pops up.

12. Target

TargetDon’t know what to get your spouse for a birthday, anniversary, or make-up gift? No more worries, just download the Target app for free and shake your worries away with the random gift generator.

13. WootWatch

Woot WatchAre you cheap? If you are, then you must download the free app WootWatch.  This is a slick and organized app that taps in to the unbelievable deals of Woot.com.  So now you can buy that expensive gift for your spouse and be cheap at the same time! But you’d better hurry, because each Woot sale only lasts for one day or until it is sold out.

14. Trailguru

TrailguruMy wife loves exercising for fun (wish I had the same idea of fun) with me.  So why not bring a little technology with you when you work out together.  Trailguru is totally cool and tracks all sorts of great things as you walk, run, or bike.

STAYING ORGANIZED

If you want to feel good about your marriage, then make sure you are organized in life.  When life feels chaotic and messy, so does your marriage.  So check out these little apps that can help you keep on track with your life.

15. EVERNOTE

EvernoteRemember everything. Evernote allows you to easily capture information in any environment using whatever device or platform you find most convenient, and makes this information accessible and searchable at any time, from anywhere. This might be my favorite app for keeping organized.  I take voice notes, picture notes, and text notes with Evernote, and it is totally free!  Amy and I even use it together to make lists for each other when we are running errands (it sinks wirelessly, so any changes she makes will be automatically synced to my phone).

16. Grocery iQ

GroceryIQGrocery shopping made sensible. This app has literally saved my life! When I want to love and serve my wife, I will ask if she wants me to go to the grocery store for her.  It used to be a nightmare for me to go grocery shopping because I was totally disorganized when checking off the items on my list.  I would head from side to side and front to back for each stinking item! Well no longer will I suffer from the effects of my ADHD grocery shopping! This app allows you to order the isles on the app to match the order of isles at your favorite grocery store! So when you add items to shop for, the app will automatically sort the items to your store’s preference.

17. iXpenseIt

iXpenseIt iXpenseIt by FYI Mobileware Inc. simplifies daily expense tracking. With iXpenseIt you can now record your expenses anywhere, anytime within seconds. Store your photo receipt is a snap. Customize your personal and business expenses with easy to understand reports. Take control of your expenses today with iXpenseIt!

18. Upcoming Events

Upcoming EventsForgot a birthday and wished someone had reminded you? Upcoming Events is a convenience utility that retrieves, consolidates and organizes events such as birthdays and anniversaries into a simple and intuitive interface so that you can quickly access this information. You will officially never have the excuse of forgetting an important date again!

COMMUNICATION

19. Facebook

picture-23I’m not sure there is any other app that brings such joy to my life! Okay, I may be over-stating this, but Facebook is so cool because it keeps you connected with friends, family, and yes, even your spouse.  You can post your fun photos together and use that as an opportunity down the road to remember the good times, especially if the current times are not so good.

20. Recorder

RecorderHave you ever been somewhere without your spouse and remembered something special or thought of something really sweet about your spouse?  But then you had no way of recording your thoughts or kind words? No more fear…Recorder is here! Simply record your thought and post that to Facebook, the computer, email, or even make a CD!

21. I Love You

I Love YouI found this app and thought it was corny at first, but then, I changed my mind because it really does have some cool quotes and lines you can speak to your spouse.  You can never have enough help to be creative and this little app can certainly get the love flowing!

22. Mood Touch

Mood TouchHappy? Sad? Stressed? Mood Touch will tell you!
It’s designed to have you interact with it to determine the mood that you’re feeling as you touch it. The process is simple, just touch the screen and let Mood Touch do the rest. Where was this little app when I was learning to understand my wife?

23. Share Your Voice

Share your voiceThis is another fun way to record your thoughts and easily send them to your spouse.  This app is quite intuitive and truly allows you to post directly to Facebook, Myspace, Twitter, and email.  I might be missing some of them, but it is easy and with this app you can let the whole world know how you feel about your spouse (only if it is positive of course).

24. My CoinFlip

Coin FlipSometimes it’s hard to decide. So why not just flip a coin. You want better communication on making decisions? This app is the key to resolving conflict.  If you come to an impasse with your spouse, just launch this app and let it be the decision maker, judge and jury.

25. Talk to the Hand

Talk to the handIs someone getting on your nerves? You don’t want to talk? Show them the hand! Start this little app and make the person talk to the hand and it will cheer them on to let it all out.

26. Holy Bible by YouVersion

Holy BibleI’d be remissed if I did not include my favorite bible app for the iPhone! They have tons of versions and you can take notes, bookmark and even email verses to your spouse for encouragement and healing.  Easily search for, bookmark and access any passage in the Bible! Choose one of many translations including the NIV, ESV, KJV, NLT, GW, NKJV, AMP, NASB, CEV, NET, WEB, NCV, TNIV, HCSB, the Message, and many more in other languages.

I hope you find these apps to be helpful in creating a marriage worth having.  The key to any great marriage is to continually keep learning new ways to love each other well and these iPhone apps can be a part of your growth together.

Posted in Great Date Ideas, MarriageComments

How to Make More Free Time for Your Spouse or Family

One of the easiest, most fun, and healthiest things you can do for your marriage is simply have fun together.  Do not think this is a “simpleton’s” idea of a healthy marriage (even though I am a simpleton), but take the advice seriously!

Why would you want to stay with someone, especially through the tough times, if you never have fun together? Think about that for a moment.  Do not let children, work, or busyness get in the way of having fun together.

I’m a happily married man and a father of 6 kids, and many readers ask me my secret to maintaining a happy marriage and a good relationship with my kids.

Well, there’s no one secret, but a huge key for me has been: finding time to spend with them on a regular basis.

How to Make More Free Time for Your Spouse or Family | Simple Marriage

Posted in Great Date IdeasComments

Date night still includes the movies

Despite the economic downturn, movie ticket sales for 2008 are expected to maintain 2007 levels. Hollywood.com analyst Paul Dergarabedian said, “The good news for Hollywood is people are going to the movies consistently over the past three months, and that isn’t going to change as long as the movies in the mix are appealing and they have great marketing.” Brandweek (01/06)

Date night still includes the movies – Related Stories – CAC SmartBrief

Posted in Great Date IdeasComments

Dreaming together: the thing of a happy marriage

Amy and I rode our bikes this evening for about 25 minutes. Let me be clear, getting me out to exercise is a miracle in and of itself! But I realized something very important for our own relationship and for the relationships of those reading this post. Dream together.

I believe making plans together, for the future, is a critical element to a happy and satisfied marriage. At one point during our ride we purposefully headed toward this fancy neighborhood in our area because Amy wanted me to see the framing job of a new house (Her dad has been a framer for over 40 years!).

When we stepped inside the home we started dreaming together on the kind of home we’d like to build some day with her dad. It was only about 10 minutes worth of exploring the newly framed house, but that 10 minutes provided a lifetime of love for each other and plans for the future.

Posted in Great Date Ideas, Marriage, The JournalsComments

Is dating just for singles?

I don’t know about most of you, but I have a very full plate. I have a husband, two children, a job and ministry responsibilities. Sometimes it gets a little rough being responsible for so much. That said, there is nothing that I love more, then having my husband take the initiative and plan a great date night. I know, I know, you’re thinking, “you’re married, how are you dating?” Believe me, a husband and a wife, NEED to date (each other of course) to keep romance alive. There are just too many pressures and time consuming tasks that can suck the romance right out of your life. Dating is a necessity.

There’s a great book by Dr. Gary Chapman titled, “The Five Love Languages”. This book talks about the different ways we feel and demonstrate love to each other. My primary love language is quality time. My secondary love language is acts of service. So if you combine the two, my husband taking the time to plan a great night for us together simply takes my breath away.

For our 10th wedding anniversary, he surprised me and took care of everything. My only responsibility was to get really dressed up. He made the babysitting arrangements (the kids were young then), rented a limo, made dinner reservations in Little Italy and took me to a Broadway musical. He even got us an overnight stay in the Millenium Hilton where he had my favorite romance foods waiting. I must tell you that it was one of the most romantic and memorable nights of my life.

Now, I know we can’t have nights like that all the time, but the idea was that he went to all that trouble because he wanted to make me happy. The food was great, the show was great and so on. But the best part was being with a man that loved me enough to plan a great evening alone with me.

Dating can be simple or extravagant. But it has to happen. And you both can take turns planning something wonderful. It can be as easy as sending the kids to grandma’s and renting a movie or as elaborate as a weekend away. It may take time and effort, but if you plan it right, you can recapture the excitement you had while you were courting. And remember why you fell in love in the first place.

Posted in Great Date Ideas, MarriageComments

Date your mate: the backyard candlelight moment

When Amy and I lived in Branson, Missouri we had a difficult time getting babysitters on a consistent basis. This meant we couldn’t go out on our weekly date as consistently, that is, until we realized how much fun the backyard can be.

In a blast of genius (if I can say that about myself) I realized that I could create a wonderful atmosphere right in our backyard. All I did was the following:

  1. Got the kids to bed early. Too many couples waste precious time at night because they don’t get their kids to bed at a decent hour. If your kids are younger than 6th grade, there is no reason you can’t get them to bed by at least 8:30 p.m. That gives you quality time to spend together before the night becomes too late and you’re tired. If your kids are older than 6th grade, you don’t need babysitting (can’t wait for those days)!
  2. Created anticipation about the evening. Let your spouse know what you have planned for the evening and be sure to include things he or she would love (candles, wine, music, movie, etc.).
  3. Kept the night light and fun. Don’t ruin the perfect date night at home (or away) by trying to bring up something that will lead to conflict. This is not your chance to confront your spouse about something that has been bothering you, it is your chance to simply enjoy your spouse and keep the time fun.

This kind of night is both fun and inexpensive; therefore you have no excuse to avoid a weekly date night with your spouse. If you are saying right now, “Yeah right, my kids are in a thousand different activities during the week and we simply don’t have the time.” Then shame on you for letting your kids be in too many different activities. My philosophy is to allow you children to be in one activity each at a time. That way you can actually have time to enjoy life and it’s little treasures (like a happy marriage).

Posted in Great Date IdeasComments


PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzIwMF9hZHNlbnNlPC9zdHJvbmc+IC0gPCEtLS8qIE9wZW5YIEphdmFzY3JpcHQgVGFnIHYyLjguMi1yYzI1ICovLS0+DQoNCjxzY3JpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnPjwhLS0vLzwhW0NEQVRBWw0KICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7DQogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7DQogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiPHNjclwiK1wiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCdcIittM191KTsNCiAgIGRvY3VtZW50LndyaXRlIChcIj96b25laWQ9ODM4OTYmYW1wO3RhcmdldD1fdG9wXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48XFwvc2NyXCIrXCJpcHQ+XCIpOw0KLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTdmOTg4ZTAmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRVwnIHRhcmdldD1cJ190b3BcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9ODM4OTYmY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRSZuPWE3Zjk4OGUwXCcgYm9yZGVyPVwnMFwnIGFsdD1cJ1wnIC8+PC9hPjwvbm9zY3JpcHQ+PC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX2ltYWdlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjAwX3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfYWRzZW5zZTwvc3Ryb25nPiAtIDwhLS0vKiBPcGVuWCBKYXZhc2NyaXB0IFRhZyB2Mi44LjEgKFJpY2ggTWVkaWEgLSBPcGVuWCkgKi8tLT4NCg0KPCEtLS8qDQogICogVGhlIGJhY2t1cCBpbWFnZSBzZWN0aW9uIG9mIHRoaXMgdGFnIGhhcyBiZWVuIGdlbmVyYXRlZCBmb3IgdXNlIG9uIGENCiAgKiBub24tU1NMIHBhZ2UuIElmIHRoaXMgdGFnIGlzIHRvIGJlIHBsYWNlZCBvbiBhbiBTU0wgcGFnZSwgY2hhbmdlIHRoZQ0KICAqICAgXCdodHRwOi8vZDEub3Blbngub3JnLy4uLlwnDQogICogdG8NCiAgKiAgIFwnaHR0cHM6Ly9kMS5vcGVueC5vcmcvLi4uXCcNCiAgKg0KICAqIFRoaXMgbm9zY3JpcHQgc2VjdGlvbiBvZiB0aGlzIHRhZyBvbmx5IHNob3dzIGltYWdlIGJhbm5lcnMuIFRoZXJlDQogICogaXMgbm8gd2lkdGggb3IgaGVpZ2h0IGluIHRoZXNlIGJhbm5lcnMsIHNvIGlmIHlvdSB3YW50IHRoZXNlIHRhZ3MgdG8NCiAgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGFkIGJlZm9yZSBpdCBzaG93cywgeW91IHdpbGwgbmVlZCB0byBhZGQgdGhpcw0KICAqIGluZm9ybWF0aW9uIHRvIHRoZSA8aW1nPiB0YWcuDQogICoNCiAgKiBJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBpbnRyaWNpdGllcyBvZiB0aGUgbm9zY3JpcHQNCiAgKiBzZWN0aW9uLCBkZWxldGUgdGhlIHRhZyAoZnJvbSA8bm9zY3JpcHQ+Li4uIHRvIDwvbm9zY3JpcHQ+KS4gT24NCiAgKiBhdmVyYWdlLCB0aGUgbm9zY3JpcHQgdGFnIGlzIGNhbGxlZCBmcm9tIGxlc3MgdGhhbiAxJSBvZiBpbnRlcm5ldA0KICAqIHVzZXJzLg0KICAqLy0tPg0KDQo8c2NyaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJz48IS0tLy88IVtDREFUQVsNCiAgIGRvY3VtZW50Lk1BWF9jdDAgPVwne2NsaWNrdXJsfVwnOw0KDQogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsNCiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsNCiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7DQogICBkb2N1bWVudC53cml0ZSAoXCI8c2NyXCIrXCJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJ1wiK20zX3UpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiP3pvbmVpZD00MTIzOSZhbXA7dGFyZ2V0PV90b3BcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7DQogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7ZXhjbHVkZT1cIiArIGRvY3VtZW50Lk1BWF91c2VkKTsNCiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7DQogICBkb2N1bWVudC53cml0ZSAoXCImYW1wO2xvYz1cIiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsNCiAgIGlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtyZWZlcmVyPVwiICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7DQogICBpZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKFwiJmNvbnRleHQ9XCIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOw0KICAgaWYgKCh0eXBlb2YoZG9jdW1lbnQuTUFYX2N0MCkgIT0gXCd1bmRlZmluZWRcJykgJiYgKGRvY3VtZW50Lk1BWF9jdDAuc3Vic3RyaW5nKDAsNCkgPT0gXCdodHRwXCcpKSB7DQogICAgICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtjdDA9XCIgKyBlc2NhcGUoZG9jdW1lbnQuTUFYX2N0MCkpOw0KICAgfQ0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDttbW1fZm89MVwiKTsNCiAgIGRvY3VtZW50LndyaXRlIChcIlwnPjxcXC9zY3JcIitcImlwdD5cIik7DQovL11dPi0tPjwvc2NyaXB0Pjxub3NjcmlwdD48YSBocmVmPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9jay5waHA/bj1hNTQ5Njg5NiZjYj17cmFuZG9tfVwnIHRhcmdldD1cJ190b3BcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9NDEyMzkmY2I9e3JhbmRvbX0mbj1hNTQ5Njg5NiZjdDA9e2NsaWNrdXJsfVwnIGJvcmRlcj1cJzBcJyBhbHQ9XCdcJyAvPjwvYT48L25vc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfZGlzYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTQ2OHg2MC0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS9pbWFnZXMvV29ya2Jvb2tzLTEyNXgxMjUucG5nPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly9nb3NtYWxsZXkuY29tL2ltYWdlcy9QQjEwSEktU21hbGxleS1XZWItQWQyLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vaW1hZ2VzL05ld2x5d2VkS2l0LTEyNXgxMjUucG5nPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNDwvc3Ryb25nPiAtIGh0dHA6Ly9nb3NtYWxsZXkuY29tL2ltYWdlcy9pcHJvbWlzZS0xMjUuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfbXB1X2Fkc2Vuc2U8L3N0cm9uZz4gLSA8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC4yLXJjMjUgKFJpY2ggTWVkaWEgLSBPcGVuWCkgKi8tLT4NCg0KPCEtLS8qDQogICogVGhlIGJhY2t1cCBpbWFnZSBzZWN0aW9uIG9mIHRoaXMgdGFnIGhhcyBiZWVuIGdlbmVyYXRlZCBmb3IgdXNlIG9uIGENCiAgKiBub24tU1NMIHBhZ2UuIElmIHRoaXMgdGFnIGlzIHRvIGJlIHBsYWNlZCBvbiBhbiBTU0wgcGFnZSwgY2hhbmdlIHRoZQ0KICAqICAgXCdodHRwOi8vZDEub3Blbngub3JnLy4uLlwnDQogICogdG8NCiAgKiAgIFwnaHR0cHM6Ly9kMS5vcGVueC5vcmcvLi4uXCcNCiAgKg0KICAqIFRoaXMgbm9zY3JpcHQgc2VjdGlvbiBvZiB0aGlzIHRhZyBvbmx5IHNob3dzIGltYWdlIGJhbm5lcnMuIFRoZXJlDQogICogaXMgbm8gd2lkdGggb3IgaGVpZ2h0IGluIHRoZXNlIGJhbm5lcnMsIHNvIGlmIHlvdSB3YW50IHRoZXNlIHRhZ3MgdG8NCiAgKiBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIGFkIGJlZm9yZSBpdCBzaG93cywgeW91IHdpbGwgbmVlZCB0byBhZGQgdGhpcw0KICAqIGluZm9ybWF0aW9uIHRvIHRoZSA8aW1nPiB0YWcuDQogICoNCiAgKiBJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVhbCB3aXRoIHRoZSBpbnRyaWNpdGllcyBvZiB0aGUgbm9zY3JpcHQNCiAgKiBzZWN0aW9uLCBkZWxldGUgdGhlIHRhZyAoZnJvbSA8bm9zY3JpcHQ+Li4uIHRvIDwvbm9zY3JpcHQ+KS4gT24NCiAgKiBhdmVyYWdlLCB0aGUgbm9zY3JpcHQgdGFnIGlzIGNhbGxlZCBmcm9tIGxlc3MgdGhhbiAxJSBvZiBpbnRlcm5ldA0KICAqIHVzZXJzLg0KICAqLy0tPg0KDQo8c2NyaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJz48IS0tLy88IVtDREFUQVsNCiAgIGRvY3VtZW50Lk1BWF9jdDAgPVwne2NsaWNrdXJsfVwnOw0KDQogICB2YXIgbTNfdSA9IChsb2NhdGlvbi5wcm90b2NvbD09XCdodHRwczpcJz9cJ2h0dHBzOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJzpcJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYWpzLnBocFwnKTsNCiAgIHZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsNCiAgIGlmICghZG9jdW1lbnQuTUFYX3VzZWQpIGRvY3VtZW50Lk1BWF91c2VkID0gXCcsXCc7DQogICBkb2N1bWVudC53cml0ZSAoXCI8c2NyXCIrXCJpcHQgdHlwZT1cJ3RleHQvamF2YXNjcmlwdFwnIHNyYz1cJ1wiK20zX3UpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiP3pvbmVpZD02NDU4MSZhbXA7dGFyZ2V0PV90b3BcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCcmYW1wO2NiPVwnICsgbTNfcik7DQogICBpZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gXCcsXCcpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7ZXhjbHVkZT1cIiArIGRvY3VtZW50Lk1BWF91c2VkKTsNCiAgIGRvY3VtZW50LndyaXRlIChkb2N1bWVudC5jaGFyc2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcnNldCA6IChkb2N1bWVudC5jaGFyYWN0ZXJTZXQgPyBcJyZhbXA7Y2hhcnNldD1cJytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiBcJ1wnKSk7DQogICBkb2N1bWVudC53cml0ZSAoXCImYW1wO2xvYz1cIiArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24pKTsNCiAgIGlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtyZWZlcmVyPVwiICsgZXNjYXBlKGRvY3VtZW50LnJlZmVycmVyKSk7DQogICBpZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKFwiJmNvbnRleHQ9XCIgKyBlc2NhcGUoZG9jdW1lbnQuY29udGV4dCkpOw0KICAgaWYgKCh0eXBlb2YoZG9jdW1lbnQuTUFYX2N0MCkgIT0gXCd1bmRlZmluZWRcJykgJiYgKGRvY3VtZW50Lk1BWF9jdDAuc3Vic3RyaW5nKDAsNCkgPT0gXCdodHRwXCcpKSB7DQogICAgICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtjdDA9XCIgKyBlc2NhcGUoZG9jdW1lbnQuTUFYX2N0MCkpOw0KICAgfQ0KICAgaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDttbW1fZm89MVwiKTsNCiAgIGRvY3VtZW50LndyaXRlIChcIlwnPjxcXC9zY3JcIitcImlwdD5cIik7DQovL11dPi0tPjwvc2NyaXB0Pjxub3NjcmlwdD48YSBocmVmPVwnaHR0cDovL2QxLm9wZW54Lm9yZy9jay5waHA/bj1hNWFkMTE3NSZjYj17cmFuZG9tfVwnIHRhcmdldD1cJ190b3BcJz48aW1nIHNyYz1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvYXZ3LnBocD96b25laWQ9NjQ1ODEmY2I9e3JhbmRvbX0mbj1hNWFkMTE3NSZjdDA9e2NsaWNrdXJsfVwnIGJvcmRlcj1cJzBcJyBhbHQ9XCdcJyAvPjwvYT48L25vc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV9kaXNhYmxlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hZF9tcHVfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzLzMwMHgyNTBhLmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX21wdV91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfYWRzZW5zZTwvc3Ryb25nPiAtICZjdDA8IS0tLyogT3BlblggSmF2YXNjcmlwdCBUYWcgdjIuOC4xIChSaWNoIE1lZGlhIC0gT3BlblgpICovLS0+DQoNCjwhLS0vKg0KICAqIFRoZSBiYWNrdXAgaW1hZ2Ugc2VjdGlvbiBvZiB0aGlzIHRhZyBoYXMgYmVlbiBnZW5lcmF0ZWQgZm9yIHVzZSBvbiBhDQogICogbm9uLVNTTCBwYWdlLiBJZiB0aGlzIHRhZyBpcyB0byBiZSBwbGFjZWQgb24gYW4gU1NMIHBhZ2UsIGNoYW5nZSB0aGUNCiAgKiAgIFwnaHR0cDovL2QxLm9wZW54Lm9yZy8uLi5cJw0KICAqIHRvDQogICogICBcJ2h0dHBzOi8vZDEub3Blbngub3JnLy4uLlwnDQogICoNCiAgKiBUaGlzIG5vc2NyaXB0IHNlY3Rpb24gb2YgdGhpcyB0YWcgb25seSBzaG93cyBpbWFnZSBiYW5uZXJzLiBUaGVyZQ0KICAqIGlzIG5vIHdpZHRoIG9yIGhlaWdodCBpbiB0aGVzZSBiYW5uZXJzLCBzbyBpZiB5b3Ugd2FudCB0aGVzZSB0YWdzIHRvDQogICogYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBhZCBiZWZvcmUgaXQgc2hvd3MsIHlvdSB3aWxsIG5lZWQgdG8gYWRkIHRoaXMNCiAgKiBpbmZvcm1hdGlvbiB0byB0aGUgPGltZz4gdGFnLg0KICAqDQogICogSWYgeW91IGRvIG5vdCB3YW50IHRvIGRlYWwgd2l0aCB0aGUgaW50cmljaXRpZXMgb2YgdGhlIG5vc2NyaXB0DQogICogc2VjdGlvbiwgZGVsZXRlIHRoZSB0YWcgKGZyb20gPG5vc2NyaXB0Pi4uLiB0byA8L25vc2NyaXB0PikuIE9uDQogICogYXZlcmFnZSwgdGhlIG5vc2NyaXB0IHRhZyBpcyBjYWxsZWQgZnJvbSBsZXNzIHRoYW4gMSUgb2YgaW50ZXJuZXQNCiAgKiB1c2Vycy4NCiAgKi8tLT4NCg0KPHNjcmlwdCB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCc+PCEtLS8vPCFbQ0RBVEFbDQogICBkb2N1bWVudC5NQVhfY3QwID1cJ3tjbGlja3VybH1cJzsNCg0KICAgdmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PVwnaHR0cHM6XCc/XCdodHRwczovL2QxLm9wZW54Lm9yZy9hanMucGhwXCc6XCdodHRwOi8vZDEub3Blbngub3JnL2Fqcy5waHBcJyk7DQogICB2YXIgbTNfciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5OTk5OTk5OTk5OSk7DQogICBpZiAoIWRvY3VtZW50Lk1BWF91c2VkKSBkb2N1bWVudC5NQVhfdXNlZCA9IFwnLFwnOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiPHNjclwiK1wiaXB0IHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyBzcmM9XCdcIittM191KTsNCiAgIGRvY3VtZW50LndyaXRlIChcIj96b25laWQ9NDEyMzkmYW1wO3RhcmdldD1fdG9wXCIpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwnJmFtcDtjYj1cJyArIG0zX3IpOw0KICAgaWYgKGRvY3VtZW50Lk1BWF91c2VkICE9IFwnLFwnKSBkb2N1bWVudC53cml0ZSAoXCImYW1wO2V4Y2x1ZGU9XCIgKyBkb2N1bWVudC5NQVhfdXNlZCk7DQogICBkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/IFwnJmFtcDtjaGFyc2V0PVwnK2RvY3VtZW50LmNoYXJzZXQgOiAoZG9jdW1lbnQuY2hhcmFjdGVyU2V0ID8gXCcmYW1wO2NoYXJzZXQ9XCcrZG9jdW1lbnQuY2hhcmFjdGVyU2V0IDogXCdcJykpOw0KICAgZG9jdW1lbnQud3JpdGUgKFwiJmFtcDtsb2M9XCIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7DQogICBpZiAoZG9jdW1lbnQucmVmZXJyZXIpIGRvY3VtZW50LndyaXRlIChcIiZhbXA7cmVmZXJlcj1cIiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOw0KICAgaWYgKGRvY3VtZW50LmNvbnRleHQpIGRvY3VtZW50LndyaXRlIChcIiZjb250ZXh0PVwiICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsNCiAgIGlmICgodHlwZW9mKGRvY3VtZW50Lk1BWF9jdDApICE9IFwndW5kZWZpbmVkXCcpICYmIChkb2N1bWVudC5NQVhfY3QwLnN1YnN0cmluZygwLDQpID09IFwnaHR0cFwnKSkgew0KICAgICAgIGRvY3VtZW50LndyaXRlIChcIiZhbXA7Y3QwPVwiICsgZXNjYXBlKGRvY3VtZW50Lk1BWF9jdDApKTsNCiAgIH0NCiAgIGlmIChkb2N1bWVudC5tbW1fZm8pIGRvY3VtZW50LndyaXRlIChcIiZhbXA7bW1tX2ZvPTFcIik7DQogICBkb2N1bWVudC53cml0ZSAoXCJcJz48XFwvc2NyXCIrXCJpcHQ+XCIpOw0KLy9dXT4tLT48L3NjcmlwdD48bm9zY3JpcHQ+PGEgaHJlZj1cJ2h0dHA6Ly9kMS5vcGVueC5vcmcvY2sucGhwP249YTU0OTY4OTYmY2I9e3JhbmRvbX1cJyB0YXJnZXQ9XCdfdG9wXCc+PGltZyBzcmM9XCdodHRwOi8vZDEub3Blbngub3JnL2F2dy5waHA/em9uZWlkPTQxMjM5JmNiPXtyYW5kb219Jm49YTU0OTY4OTY9e2NsaWNrdXJsfVwnIGJvcmRlcj1cJzBcJyBhbHQ9XCdcJyAvPjwvYT48L25vc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9kaXNhYmxlPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvNDY4eDYwYS5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF90b3BfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbS9pbmRleC5hc3A/UGFnZUFjdGlvbj1WSUVXQ0FUUyZDYXRlZ29yeT0yMDc8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuaW5zcGlyYXRpb25jcnVpc2VzLmNvbS9odG1sL3BhdF9ib29uZS5odG1sPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzM8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbS9pbmRleC5hc3A/UGFnZUFjdGlvbj1WSUVXUFJPRCZQcm9kSUQ9NDA5PC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vc21hbGxleW9ubGluZXN0b3JlLmNvbS9pcHJvbWlzZWJvb2thbmRkdmRjdXJyaWN1bHVtc3BlY2lhbC5hc3B4PC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSBkZWZhdWx0LmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVfYm94ZXM8L3N0cm9uZz4gLSBPbjwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVfY29udGVudDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hdXRob3I8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYXV0b19pbWc8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2JveGVkX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX2JveGVkX3RodW1iX3dpZHRoPC9zdHJvbmc+IC0gMjM0PC9saT48bGk+PHN0cm9uZz53b29fYnJlYWRjcnVtYnM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Nhcm91c2VsX2hlaWdodDwvc3Ryb25nPiAtIDI5MjwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdG5hdl9leGNsdWRlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21lbnU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV91cGxvYWRfdHJhY2tpbmc8L3N0cm9uZz4gLSBhOjA6e308L2xpPjxsaT48c3Ryb25nPndvb19lbWJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIEZlYXR1cmVkPC9saT48bGk+PHN0cm9uZz53b29fZmVhdHVyZWRfdGFnczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRfZW50cmllczwvc3Ryb25nPiAtIDY8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX2lkPC9zdHJvbmc+IC0gZ29zbWFsbGV5PC9saT48bGk+PHN0cm9uZz53b29fZmVlZGJ1cm5lcl91cmw8L3N0cm9uZz4gLSBodHRwOi8vZmVlZHMuZmVlZGJ1cm5lci5jb20vZ29zbWFsbGV5PC9saT48bGk+PHN0cm9uZz53b29fZm9vdGVyX2NyZWRpdHM8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mb290ZXJfaW1hZ2U8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mdWxsX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX2Z1bGxfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSA1NjA8L2xpPjxsaT48c3Ryb25nPndvb19nZXRfaW1hZ2VfaGVpZ2h0PC9zdHJvbmc+IC0gMTQyPC9saT48bGk+PHN0cm9uZz53b29fZ2V0X2ltYWdlX3dpZHRoPC9zdHJvbmc+IC0gMTkwPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfYm94ZXM8L3N0cm9uZz4gLSBPbjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfY29udGVudDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9mZWF0dXJlZDwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDU3PC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl93aWR0aDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS9pbWFnZXMvU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL2dhemV0dGUtZWRpdGlvbi88L2xpPjxsaT48c3Ryb25nPndvb19uYXZfZXhjbHVkZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb19zaG93bl9zbGlkZXM8L3N0cm9uZz4gLSBhOjE6e2k6MDtzOjM6IjI0MiI7fTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfY2Fyb3VzZWw8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfdGFsa2luZ19wb2ludHM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfdmlkZW88L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2hlaWdodDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93aWR0aDwvc3Ryb25nPiAtIDI1MDwvbGk+PGxpPjxzdHJvbmc+d29vX3NsaWRlcl9jZmFkZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX2NvbnRlbnRfc3BlZWQ8L3N0cm9uZz4gLSAxMDAwPC9saT48bGk+PHN0cm9uZz53b29fc2xpZGVyX3NmYWRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfc3BlZWQ8L3N0cm9uZz4gLSA1MDA8L2xpPjxsaT48c3Ryb25nPndvb19zbGlkZXJfdGltZW91dDwvc3Ryb25nPiAtIDYwMDA8L2xpPjxsaT48c3Ryb25nPndvb190YWJzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190YWxraW5nX3BvaW50c190YWdzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fdGhlbWVuYW1lPC9zdHJvbmc+IC0gR2F6ZXR0ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3R3aXR0ZXI8L3N0cm9uZz4gLSBNaWNoYWVsX1NtYWxsZXk8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYTo4OntpOjA7czo4MDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAtU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6MTtzOjc5OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy85LVNtYWxsZXlPbmxpbmUtTWFpbi1IZWFkZXIuanBnIjtpOjI7czo3OToiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC1TbWFsbGV5T25saW5lLU1haW4tSGVhZGVyLmpwZyI7aTozO3M6Nzk6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzctU21hbGxleU9ubGluZS1NYWluLUhlYWRlci5qcGciO2k6NDtzOjcxOiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy82LXN0b3JlLWhlYWRlci1sb2dvLnBuZyI7aTo1O3M6NzQ6Imh0dHA6Ly93d3cuZ29zbWFsbGV5LmNvbS93cC1jb250ZW50L3dvb191cGxvYWRzLzUtU21hbGxleS1sb2dvXzJjX21haW4uanBnIjtpOjY7czo3NDoiaHR0cDovL3d3dy5nb3NtYWxsZXkuY29tL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1TbWFsbGV5LWxvZ29fMmNfbWFpbi5qcGciO2k6NztzOjU4OiJodHRwOi8vd3d3Lmdvc21hbGxleS5jb20vd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWxvZ28ucG5nIjt9PC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fYnJvd3Nlcl9pbml0PC9zdHJvbmc+IC0gMzwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX2NhdGVnb3J5PC9zdHJvbmc+IC0gVmlkZW8gUG9kY2FzdHM8L2xpPjxsaT48c3Ryb25nPndvb192aWRlb190YWdzPC9zdHJvbmc+IC0gPC9saT48L3VsPg==