{"id":9563,"date":"2026-05-18T14:00:03","date_gmt":"2026-05-18T13:00:03","guid":{"rendered":"https:\/\/magazine.secretescapes.com\/?p=9563"},"modified":"2026-05-18T15:07:50","modified_gmt":"2026-05-18T14:07:50","slug":"secret-guide-to-rabat-and-casablanca","status":"publish","type":"post","link":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/","title":{"rendered":"Secret Guide to Rabat and Casablanca"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">From Art Deco gems in Casablanca to secret pirate citadels in the capital city, this is your local guide to these two iconic Moroccan cities. Most travellers treat Casablanca as a must-see, while the country\u2019s capital, Rabat, is often unfairly overlooked.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"640\" data-attachment-id=\"9568\" data-permalink=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/03-content-01\/\" data-orig-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?fit=960%2C640&amp;ssl=1\" data-orig-size=\"960,640\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"03-content-01\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?fit=960%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?resize=960%2C640&#038;ssl=1\" alt=\"\" class=\"wp-image-9568\" srcset=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-01.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Where is Casablanca Located in Morocco?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Casablanca sits centrally on the western Atlantic coastline, roughly 90 km south of the capital, Rabat. It is the largest city in the Maghreb and serves as the primary gateway for international flights. Its location makes it the perfect starting point for a road trip: you have the coastal breeze to your west and the smooth highway to the north leading straight to Rabat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Casablanca: More Than a Movie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Casablanca\u2019s beauty is somewhat of a secret, but it\u2019s absolutely worth going to look for it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Art Deco Treasures in the Downtown District<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Forget the &#8220;Old Medina&#8221; for a moment; the real soul of Casablanca is its Art Deco architecture. In the 1920s and 30s, French architects used the city as a canvas. Walk down Boulevard Mohammed V and look up. You\u2019ll see ornate balconies and &#8220;Mauresque&#8221; facades that feel reminiscent of Parisian streets. Many of the buildings, like the Hotel Lincoln or the Post Office, were built during the French Protectorate era. The white-washed facades, geometric carvings, and wrought-iron balconies are exactly what gave the city its romantic reputation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To see where the glamorous residents of 1940s Casablanca actually spent their evenings, head to Cinema Rialto. Built in 1930, this is one of the oldest Art Deco cinemas in the city. It remains largely unchanged, with a grand balcony and plush red seating.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hidden Gems in Casablanca:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Olive Market in Habous:<\/strong> Everyone goes to the Habous Quarter for the palace, but head deep into the Olive Market. It\u2019s a sensory overload of emerald-green and sun-gold olives, preserved lemons, and local oils. It\u2019s where the locals actually shop.<\/li>\n\n\n\n<li><strong>The Sacred Heart Cathedral (Sacr\u00e9-C\u0153ur):<\/strong> This de-consecrated white cathedral is a neo-Gothic masterpiece. It often hosts underground art exhibitions and offers a quiet, cool escape from the humid city heat.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"640\" data-attachment-id=\"9570\" data-permalink=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/03-content-02\/\" data-orig-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?fit=960%2C640&amp;ssl=1\" data-orig-size=\"960,640\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"03-content-02\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?fit=960%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?resize=960%2C640&#038;ssl=1\" alt=\"\" class=\"wp-image-9570\" srcset=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-02.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Where to Eat in Casablanca?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Casablanca is a city that eats well, but you have to know where to look. It\u2019s not a city of fancy signs; it\u2019s a city of hidden courtyards and market stalls where the quality of the ingredients does the talking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Here are some of the best places to eat in Casablanca:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>March\u00e9 Central (Central Market): <\/strong>this is a top lunch recommendation. It\u2019s a gorgeous Art Deco market where the seafood is as fresh as it gets. Go to the fish stalls in the centre, pick out exactly what you want (shrimp, sea bass, calamari), and buy it by weight. Then, take your bag of fish to one of the nearby small &#8220;grills&#8221; and they\u2019ll grill or fry it for you and serve it with a fresh Moroccan salad and bread.<\/li>\n\n\n\n<li><strong>Rick\u2019s Caf\u00e9: <\/strong>of course, the real \u2018Rick\u2019s Caf\u00e9\u2019 only existed on a movie set, but this is the place to go to experience a taste of 1940s glamour, live piano music and great cocktails. You must book ahead, as it does get busy.&nbsp;<\/li>\n\n\n\n<li><strong>La Sqala:<\/strong> located inside the remains of an 18th-century Portuguese fortress near the port, this is a garden oasis and the perfect spot for breakfast. Try <em>Jben<\/em> (goat cheese), <em>Amlou<\/em> (almond and argan oil spread), <em>Msemen<\/em> (flaky flatbread), and fresh eggs cooked with <em>khlii<\/em> (preserved meat).<\/li>\n\n\n\n<li><strong>Al Mounia: <\/strong>if you want white tablecloths and incredible service, this is the place. This is a historic villa with a beautiful garden terrace.<\/li>\n\n\n\n<li><strong>Le Cabestan: <\/strong>for something completely different, head to the Corniche beachfront for ocean views and Mediterranean-fusion food.<\/li>\n\n\n\n<li><strong>Habous Quarter Pastries: <\/strong>while in the Habous district (the &#8220;New Medina&#8221;), look for P\u00e2tisserie Bennis Habous, a tiny, legendary bakery. Grab a box of &#8220;Cornes de Gazelle&#8221; (Gazelle Horns) and find a spot in the nearby square to eat them with a tea from a street vendor.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"640\" data-attachment-id=\"9572\" data-permalink=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/03-content-03\/\" data-orig-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?fit=960%2C640&amp;ssl=1\" data-orig-size=\"960,640\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"03-content-03\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?fit=960%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?resize=960%2C640&#038;ssl=1\" alt=\"\" class=\"wp-image-9572\" srcset=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-03.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Exploring the Capital: Must-See Attractions in Rabat<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rabat is the elegant, chilled-out sibling to Casablanca&#8217;s frantic energy. It is remarkably green, clean and highly walkable. When checking out the top attractions in Rabat, the Hassan Tower and the Mausoleum of Mohammed V are non-negotiable. But to find the &#8220;secret&#8221; Rabat, you need to head toward the water.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"640\" data-attachment-id=\"9575\" data-permalink=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/03-content-04\/\" data-orig-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?fit=960%2C640&amp;ssl=1\" data-orig-size=\"960,640\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"03-content-04\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?fit=960%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?resize=960%2C640&#038;ssl=1\" alt=\"\" class=\"wp-image-9575\" srcset=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-04.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Local Favourites in Rabat:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Chellah Necropolis:<\/strong> this is a place where Roman ruins meet medieval Islamic history, all overgrown with wildflowers and inhabited by hundreds of storks. It is hauntingly beautiful and far quieter than the ruins in Italy.<\/li>\n\n\n\n<li><strong>Kasbah of the Udayas:<\/strong> enter through the massive stone gate and ignore the &#8220;guides&#8221; at the entrance. Wander deep into the blue-and-white residential alleys until you reach the Plateforme du S\u00e9maphore. The view of the Atlantic crashing against the rocks is the best in the city.<\/li>\n\n\n\n<li><strong>The Secret Garden of the Oudayas:<\/strong> tucked inside the Kasbah is an Andalusian garden. It\u2019s a literal oasis of orange trees and fountains, perfect for a glass of mint tea while you listen to the distant sound of the waves.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"640\" data-attachment-id=\"9578\" data-permalink=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/03-content-05\/\" data-orig-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?fit=960%2C640&amp;ssl=1\" data-orig-size=\"960,640\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"03-content-05\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?fit=960%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?resize=960%2C640&#038;ssl=1\" alt=\"\" class=\"wp-image-9578\" srcset=\"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?w=960&amp;ssl=1 960w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-content-05.jpg?resize=768%2C512&amp;ssl=1 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Secret Tip<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you have time, stop halfway between the two cities at Bouznika. It\u2019s a coastal town famous for its roadside BBQ stalls. Follow the smoke and the crowds of locals, it\u2019s the best way to break up the drive with some fresh grilled kefta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Discover Secret Escapes\u2019 Handpicked Morocco Deals<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Want to experience the Art Deco masterpieces of Casablanca and the history and green spaces of Rabat for yourself? Escape to Morocco with Secret Escapes\u2019 outrageously bookable deals.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For more travel advice and inspiration, dive further into <a href=\"https:\/\/magazine.secretescapes.com\/\">the Escapist<\/a> magazine, or <a href=\"https:\/\/www.secretescapes.com\/contact\">get in touch<\/a> for more information on outrageously bookable deals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article was written in partnership with <strong>Visit Morocco<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-20959078 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.secretescapes.com\/search\/search?travelTypes=WITH_FLIGHTS&amp;query=Morocco&amp;travellersSelection=AA&amp;utm_source=SE_media&amp;utm_medium=escapist&amp;utm_campaign=MoroccoSummer_UK_2026\" style=\"background-color:#e35205\">Morocco deals<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide explores the vibrant cities of Casablanca and Rabat, highlighting their unique attractions. Casablanca boasts Art Deco architecture and culinary hidden gems, while Rabat offers a tranquil atmosphere with historic sites like Hassan Tower. Both cities provide rich experiences, making them must-visit destinations in Morocco.<\/p>\n","protected":false},"author":201213705,"featured_media":9567,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAS582GjxWjBb+w0rUD582GjxVbygYaAQpUNIoBAQEIAkJIAJoIAQEIAhCOAeABSACAAgEBCAJCSAC4CwEBCAIQOswBSACsAQEBCAJCSACIAwEBCAIQlgHoAUgAiAIBAQgCQkgAjhEBAQgCQkgAjggBAQgASACmAQEBCABIDgJQoBABAQgCEDbIAUgAqAEBAQgCQkgAtAYBAQgCQkgAvAEBAQgASA4CAQEIAkoArA0BAQgCoAfqBwCwBwEBCAJKALYKAQEIAkoAigUBAQgCSgCuBAEBCAJK2iqeMwEBCAIQqAH6AUgAmgIBAQgCQkgAuAkBAQgASACmAQEBCABIDgKwB8AIvhgBAQgCQkgAJAEBCAJCSACoBwEBCAJCSACyAQEBCAJCSACIBgEBCAJCSACGCAEBCAKaARr2AUjMvQEEAqq+ARreyQFEjtQBEAMDklEQAwO0ILYHmCUQAwO8DhADA6QiEAMDwqcDLAK0xgGmjgIBAQgASAIECAYBAQgBAEgIXCgBAQgASEZa9AqQEbAE2OEDtgGu4gMBAQgASAgBAtq0A6y0AwEBCABICAECRgQCFlbkrAMEAgCcAZisAwEBCAJKAKIIAQEIAkr2tAMEAgEEsBqeoQMBAQgASAgBAsyiAgMDoqkCwNgBAwOI4AH2kQEDA76ZAdT4Apj5AgEBCABICAECxPsCBAIBBKABBAKA+gLA+gKS+QIEAgAGogEBAQgCSgCwBwEBCAJKAJgJAQEIAkrungEDA5itAewhsCIBAQgASAgBAvCLAQMDhpMB1FWYVgIUDsBXgFcGFAcAxIIEuoAEAhQOBhQHADbkRu7hAq6dA9Q8qEfQR5JH7i2wLdQLlgv26QKA8gLUoAKsqwLQ3QGO6AH42AG44wH6wAHUpgO4xQSYC74KgAv6wAHGpgNqAgyimgXsxAEKpsQBQgcAAvyYBUKw4gNCwJsC1L8BggJCugtCrgFCigNCigJCkBFChrUDWpYB9K0Dvq0DQqQIQowHxLwDohBCqgFCtgZCvgFCEkKuDUKqBwhCuApCjAVCsARChvcCQv7tAkKcAkKQhQPY+wKq+wLE+gKA+wLoAbIBQrIHQpoJQroPQsiDA0ImQqoHQrQBQooGQogIQraOAlAWQggOQuqPAaaVAVySyQEazr8BkC68T75LAwMAolEDAwCSTgMDANrFAabUAQMDAPDUAaT3AQMDAK6UAQECZAIUEgIUBwDK6AIArFEAnE4Alg8AviKknwGYC74KgAuYCNKFBJ7cAaaVAbcHKAAhAScCIQIoAycAKAAhACgFIQAoAyEBJwAEAAcAKAInAQQAKAAnAIcAIQAoACEAJwEBAIQAgQAhACcAhwAoAicBBAAoACcAhwAoAicBAQCEAIEAKAAnAIcAKAInAQQAKAAnAIcAKAInAQEAhACBACgAJwCHACgCJwEEACgAJwCHACgCJwEEACgAJwCHACEAKAAhACcAIQAAACEAJwCHACEAKAAhACcAIQEnAAEAAACBAAAAhwAoAicBAQCEAIEAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInACgBJwAHACgCJwEEACcAhwAoAicBBACEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQEAhACBACgAJwCHACgCJwEEACgAJwCHACEAKAAhACcAIQAAACEAJwCHACEAKAAhACcAIQEnAAEAAACBAAAAgQAAAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAKAAnAIcAKAInAQQAhAEoACcAqAEoAAAAxAGoAAQAgQWEAIEFhACBAIQAgQWEAIEFhACBBYQABAChAYcAIQAoACEAJwAhAScAqAEHACgCJwAoAScBKACHACgCJwEoACcABAAoAIQAgQCEAKgAxwAoAicAKAAnASgExwAhACgAIQAnACEBJwAhBKgBJwAEACgAqAEoAQcAKAInAQQAJwCHACgCJwEEACcAqAEoACcAKATHACgCJwAoACcBKATBBcQAwQXEAMEFxADHACEAKAAhACcAIQEnACEEqAEoACcAKASoAScABAAoAKgBKAEHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwDBBcQAxwAoAicAKAAnASgEwQXEAAEAgQMoAMEEIQDBB6EAIQIBAKgAAQCoAAEAqAABAKgAxADBAMQAwQDEAMEAxADBAagAxAShAqgAoQCoASEBqAEoAKgCIQCoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAMQAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAagAKADElKUBnaEBc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YV9qZXRwYWNrX25ld3NsZXR0ZXJfYWNjZXNzX2pldHBhY2tfZG9udF9lbWFpbF9wb3N0X3RvX3N1YnNfamV0cGFja19uZXdzbGV0dGVyX3RpZXJfaWRfamV0cGFja19tZW1iZXJzaGlwc19jb250YWluc19wYXl3YWxsZWRfY29udGVudF9qZXRwYWNrX2ZlYXR1cmVfY2xpcF9pZF9qZXRwYWNrX21lbWJlcnNoaXBzX2NvbnRhaW5zX3BhaWRfY29udGVudGZvb3Rub3Rlc2pldHBhY2tfcHVibGljaXplX21lc3NhZ2VqZXRwYWNrX3B1YmxpY2l6ZV9mZWF0dXJlX2VuYWJsZWRqZXRwYWNrX3NvY2lhbF9wb3N0X2FscmVhZHlfc2hhcmVkamV0cGFja19zb2NpYWxfb3B0aW9uc193cGFzX2N1c3RvbWl6ZV9wZXJfbmV0d29ya2pldHBhY2tfcG9zdF93YXNfZXZlcl9wdWJsaXNoZWRkb2N1bWVudGNhdGVnb3JpZXNkb2N1bWVudHRhZ3Nkb2N1bWVudGJsb2Nrc1NlY3JldCBHdWlkZSB0byBSYWJhdCBhbmQgQ2FzYWJsYW5jYWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZyb20gQXJ0IERlY28gZ2VtcyBpbiBDYXNhYmxhbmNhIHRvIHNlY3JldCBwaXJhdGUgY2l0YWRlbHMgaW4gdGhlIGNhcGl0YWwgY2l0eSwgdGhpcyBpcyB5b3VyIGxvY2FsIGd1aWRlIHRvIHRoZXNlIHR3byBpY29uaWMgTW9yb2NjYW4gY2l0aWVzLiBNb3N0IHRyYXZlbGxlcnMgdHJlYXQgQ2FzYWJsYW5jYSBhcyBhIG11c3Qtc2VlLCB3aGlsZSB0aGUgY291bnRyeeKAmXMgY2FwaXRhbCwgUmFiYXQsIGlzIG9mdGVuIHVuZmFpcmx5IG92ZXJsb29rZWQuJm5ic3A7ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50V2hlcmUgaXMgQ2FzYWJsYW5jYSBMb2NhdGVkIGluIE1vcm9jY28\/ZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q2FzYWJsYW5jYSBzaXRzIGNlbnRyYWxseSBvbiB0aGUgd2VzdGVybiBBdGxhbnRpYyBjb2FzdGxpbmUsIHJvdWdobHkgOTAga20gc291dGggb2YgdGhlIGNhcGl0YWwsIFJhYmF0LiBJdCBpcyB0aGUgbGFyZ2VzdCBjaXR5IGluIHRoZSBNYWdocmViIGFuZCBzZXJ2ZXMgYXMgdGhlIHByaW1hcnkgZ2F0ZXdheSBmb3IgaW50ZXJuYXRpb25hbCBmbGlnaHRzLiBJdHMgbG9jYXRpb24gbWFrZXMgaXQgdGhlIHBlcmZlY3Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgcm9hZCB0cmlwOiB5b3UgaGF2ZSB0aGUgY29hc3RhbCBicmVlemUgdG8geW91ciB3ZXN0IGFuZCB0aGUgc21vb3RoIGhpZ2h3YXkgdG8gdGhlIG5vcnRoIGxlYWRpbmcgc3RyYWlnaHQgdG8gUmFiYXQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q2FzYWJsYW5jYTogTW9yZSBUaGFuIGEgTW92aWVsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q2FzYWJsYW5jYeKAmXMgYmVhdXR5IGlzIHNvbWV3aGF0IG9mIGEgc2VjcmV0LCBidXQgaXTigJlzIGFic29sdXRlbHkgd29ydGggZ29pbmcgdG8gbG9vayBmb3IgaXQuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXJ0IERlY28gVHJlYXN1cmVzIGluIHRoZSBEb3dudG93biBEaXN0cmljdGxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3JnZXQgdGhlICJPbGQgTWVkaW5hIiBmb3IgYSBtb21lbnQ7IHRoZSByZWFsIHNvdWwgb2YgQ2FzYWJsYW5jYSBpcyBpdHMgQXJ0IERlY28gYXJjaGl0ZWN0dXJlLiBJbiB0aGUgMTkyMHMgYW5kIDMwcywgRnJlbmNoIGFyY2hpdGVjdHMgdXNlZCB0aGUgY2l0eSBhcyBhIGNhbnZhcy4gV2FsayBkb3duIEJvdWxldmFyZCBNb2hhbW1lZCBWIGFuZCBsb29rIHVwLiBZb3XigJlsbCBzZWUgb3JuYXRlIGJhbGNvbmllcyBhbmQgIk1hdXJlc3F1ZSIgZmFjYWRlcyB0aGF0IGZlZWwgcmVtaW5pc2NlbnQgb2YgUGFyaXNpYW4gc3RyZWV0cy4gTWFueSBvZiB0aGUgYnVpbGRpbmdzLCBsaWtlIHRoZSBIb3RlbCBMaW5jb2xuIG9yIHRoZSBQb3N0IE9mZmljZSwgd2VyZSBidWlsdCBkdXJpbmcgdGhlIEZyZW5jaCBQcm90ZWN0b3JhdGUgZXJhLiBUaGUgd2hpdGUtd2FzaGVkIGZhY2FkZXMsIGdlb21ldHJpYyBjYXJ2aW5ncywgYW5kIHdyb3VnaHQtaXJvbiBiYWxjb25pZXMgYXJlIGV4YWN0bHkgd2hhdCBnYXZlIHRoZSBjaXR5IGl0cyByb21hbnRpYyByZXB1dGF0aW9uLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRvIHNlZSB3aGVyZSB0aGUgZ2xhbW9yb3VzIHJlc2lkZW50cyBvZiAxOTQwcyBDYXNhYmxhbmNhIGFjdHVhbGx5IHNwZW50IHRoZWlyIGV2ZW5pbmdzLCBoZWFkIHRvIENpbmVtYSBSaWFsdG8uIEJ1aWx0IGluIDE5MzAsIHRoaXMgaXMgb25lIG9mIHRoZSBvbGRlc3QgQXJ0IERlY28gY2luZW1hcyBpbiB0aGUgY2l0eS4gSXQgcmVtYWlucyBsYXJnZWx5IHVuY2hhbmdlZCwgd2l0aCBhIGdyYW5kIGJhbGNvbnkgYW5kIHBsdXNoIHJlZCBzZWF0aW5nLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFdoZXJlIHRvIEVhdCBpbiBDYXNhYmxhbmNhP2xldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRDYXNhYmxhbmNhIGlzIGEgY2l0eSB0aGF0IGVhdHMgd2VsbCwgYnV0IHlvdSBoYXZlIHRvIGtub3cgd2hlcmUgdG8gbG9vay4gSXTigJlzIG5vdCBhIGNpdHkgb2YgZmFuY3kgc2lnbnM7IGl04oCZcyBhIGNpdHkgb2YgaGlkZGVuIGNvdXJ0eWFyZHMgYW5kIG1hcmtldCBzdGFsbHMgd2hlcmUgdGhlIHF1YWxpdHkgb2YgdGhlIGluZ3JlZGllbnRzIGRvZXMgdGhlIHRhbGtpbmcuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SGVyZSBhcmUgc29tZSBvZiB0aGUgYmVzdCBwbGFjZXMgdG8gZWF0IGluIENhc2FibGFuY2E6bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5NYXJjaMOpIENlbnRyYWwgKENlbnRyYWwgTWFya2V0KTogPC9zdHJvbmc+dGhpcyBpcyBhIHRvcCBsdW5jaCByZWNvbW1lbmRhdGlvbi4gSXTigJlzIGEgZ29yZ2VvdXMgQXJ0IERlY28gbWFya2V0IHdoZXJlIHRoZSBzZWFmb29kIGlzIGFzIGZyZXNoIGFzIGl0IGdldHMuIEdvIHRvIHRoZSBmaXNoIHN0YWxscyBpbiB0aGUgY2VudHJlLCBwaWNrIG91dCBleGFjdGx5IHdoYXQgeW91IHdhbnQgKHNocmltcCwgc2VhIGJhc3MsIGNhbGFtYXJpKSwgYW5kIGJ1eSBpdCBieSB3ZWlnaHQuIFRoZW4sIHRha2UgeW91ciBiYWcgb2YgZmlzaCB0byBvbmUgb2YgdGhlIG5lYXJieSBzbWFsbCAiZ3JpbGxzIiBhbmQgdGhleeKAmWxsIGdyaWxsIG9yIGZyeSBpdCBmb3IgeW91IGFuZCBzZXJ2ZSBpdCB3aXRoIGEgZnJlc2ggTW9yb2NjYW4gc2FsYWQgYW5kIGJyZWFkLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5SaWNr4oCZcyBDYWbDqTogPC9zdHJvbmc+b2YgY291cnNlLCB0aGUgcmVhbCDigJhSaWNr4oCZcyBDYWbDqeKAmSBvbmx5IGV4aXN0ZWQgb24gYSBtb3ZpZSBzZXQsIGJ1dCB0aGlzIGlzIHRoZSBwbGFjZSB0byBnbyB0byBleHBlcmllbmNlIGEgdGFzdGUgb2YgMTk0MHMgZ2xhbW91ciwgbGl2ZSBwaWFubyBtdXNpYyBhbmQgZ3JlYXQgY29ja3RhaWxzLiBZb3UgbXVzdCBib29rIGFoZWFkLCBhcyBpdCBkb2VzIGdldCBidXN5LsKgaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkxhIFNxYWxhOjwvc3Ryb25nPiBsb2NhdGVkIGluc2lkZSB0aGUgcmVtYWlucyBvZiBhbiAxOHRoLWNlbnR1cnkgUG9ydHVndWVzZSBmb3J0cmVzcyBuZWFyIHRoZSBwb3J0LCB0aGlzIGlzIGEgZ2FyZGVuIG9hc2lzIGFuZCB0aGUgcGVyZmVjdCBzcG90IGZvciBicmVha2Zhc3QuIFRyeSA8ZW0+SmJlbjwvZW0+IChnb2F0IGNoZWVzZSksIDxlbT5BbWxvdTwvZW0+IChhbG1vbmQgYW5kIGFyZ2FuIG9pbCBzcHJlYWQpLCA8ZW0+TXNlbWVuPC9lbT4gKGZsYWt5IGZsYXRicmVhZCksIGFuZCBmcmVzaCBlZ2dzIGNvb2tlZCB3aXRoIDxlbT5raGxpaTwvZW0+IChwcmVzZXJ2ZWQgbWVhdCkuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkFsIE1vdW5pYTogPC9zdHJvbmc+aWYgeW91IHdhbnQgd2hpdGUgdGFibGVjbG90aHMgYW5kIGluY3JlZGlibGUgc2VydmljZSwgdGhpcyBpcyB0aGUgcGxhY2UuIFRoaXMgaXMgYSBoaXN0b3JpYyB2aWxsYSB3aXRoIGEgYmVhdXRpZnVsIGdhcmRlbiB0ZXJyYWNlLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5MZSBDYWJlc3RhbjogPC9zdHJvbmc+Zm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudCwgaGVhZCB0byB0aGUgQ29ybmljaGUgYmVhY2hmcm9udCBmb3Igb2NlYW4gdmlld3MgYW5kIE1lZGl0ZXJyYW5lYW4tZnVzaW9uIGZvb2QuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPkhhYm91cyBRdWFydGVyIFBhc3RyaWVzOiA8L3N0cm9uZz53aGlsZSBpbiB0aGUgSGFib3VzIGRpc3RyaWN0ICh0aGUgIk5ldyBNZWRpbmEiKSwgbG9vayBmb3IgUMOidGlzc2VyaWUgQmVubmlzIEhhYm91cywgYSB0aW55LCBsZWdlbmRhcnkgYmFrZXJ5LiBHcmFiIGEgYm94IG9mICJDb3JuZXMgZGUgR2F6ZWxsZSIgKEdhemVsbGUgSG9ybnMpIGFuZCBmaW5kIGEgc3BvdCBpbiB0aGUgbmVhcmJ5IHNxdWFyZSB0byBlYXQgdGhlbSB3aXRoIGEgdGVhIGZyb20gYSBzdHJlZXQgdmVuZG9yLmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RXhwbG9yaW5nIHRoZSBDYXBpdGFsOiBNdXN0LVNlZSBBdHRyYWN0aW9ucyBpbiBSYWJhdGxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRSYWJhdCBpcyB0aGUgZWxlZ2FudCwgY2hpbGxlZC1vdXQgc2libGluZyB0byBDYXNhYmxhbmNhJ3MgZnJhbnRpYyBlbmVyZ3kuIEl0IGlzIHJlbWFya2FibHkgZ3JlZW4sIGNsZWFuIGFuZCBoaWdobHkgd2Fsa2FibGUuIFdoZW4gY2hlY2tpbmcgb3V0IHRoZSB0b3AgYXR0cmFjdGlvbnMgaW4gUmFiYXQsIHRoZSBIYXNzYW4gVG93ZXIgYW5kIHRoZSBNYXVzb2xldW0gb2YgTW9oYW1tZWQgViBhcmUgbm9uLW5lZ290aWFibGUuIEJ1dCB0byBmaW5kIHRoZSAic2VjcmV0IiBSYWJhdCwgeW91IG5lZWQgdG8gaGVhZCB0b3dhcmQgdGhlIHdhdGVyLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc29yZGVyZWR2YWx1ZXNpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFNlY3JldCBUaXBsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50SWYgeW91IGhhdmUgdGltZSwgc3RvcCBoYWxmd2F5IGJldHdlZW4gdGhlIHR3byBjaXRpZXMgYXQgQm91em5pa2EuIEl04oCZcyBhIGNvYXN0YWwgdG93biBmYW1vdXMgZm9yIGl0cyByb2Fkc2lkZSBCQlEgc3RhbGxzLiBGb2xsb3cgdGhlIHNtb2tlIGFuZCB0aGUgY3Jvd2RzIG9mIGxvY2FscywgaXTigJlzIHRoZSBiZXN0IHdheSB0byBicmVhayB1cCB0aGUgZHJpdmUgd2l0aCBzb21lIGZyZXNoIGdyaWxsZWQga2VmdGEuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RGlzY292ZXIgU2VjcmV0IEVzY2FwZXPigJkgSGFuZHBpY2tlZCBNb3JvY2NvIERlYWxzbGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFdhbnQgdG8gZXhwZXJpZW5jZSB0aGUgQXJ0IERlY28gbWFzdGVycGllY2VzIG9mIENhc2FibGFuY2EgYW5kIHRoZSBoaXN0b3J5IGFuZCBncmVlbiBzcGFjZXMgb2YgUmFiYXQgZm9yIHlvdXJzZWxmPyBFc2NhcGUgdG8gTW9yb2NjbyB3aXRoIFNlY3JldCBFc2NhcGVz4oCZIG91dHJhZ2VvdXNseSBib29rYWJsZSBkZWFscy4mbmJzcDtkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3IgbW9yZSB0cmF2ZWwgYWR2aWNlIGFuZCBpbnNwaXJhdGlvbiwgZGl2ZSBmdXJ0aGVyIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS8iPnRoZSBFc2NhcGlzdDwvYT4gbWFnYXppbmUsIG9yIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnNlY3JldGVzY2FwZXMuY29tL2NvbnRhY3QiPmdldCBpbiB0b3VjaDwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gb3V0cmFnZW91c2x5IGJvb2thYmxlIGRlYWxzLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgYXJ0aWNsZSB3YXMgd3JpdHRlbiBpbiBwYXJ0bmVyc2hpcCB3aXRoIFZpc2l0IE1vcm9jY28uZHJvcENhcGlubmVyQmxvY2tzbGV2ZWw8c3Ryb25nPjwvc3Ryb25nPjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Gcm9tIEFydCBEZWNvIGdlbXMgaW4gQ2FzYWJsYW5jYSB0byBzZWNyZXQgcGlyYXRlIGNpdGFkZWxzIGluIHRoZSBjYXBpdGFsIGNpdHksIHRoaXMgaXMgeW91ciBsb2NhbCBndWlkZSB0byB0aGVzZSB0d28gaWNvbmljIE1vcm9jY2FuIGNpdGllcy4gTW9zdCB0cmF2ZWxsZXJzIHRyZWF0IENhc2FibGFuY2EgYXMgYSBtdXN0LXNlZSwgd2hpbGUgdGhlIGNvdW50cnnigJlzIGNhcGl0YWwsIFJhYmF0LCBpcyBvZnRlbiB1bmZhaXJseSBvdmVybG9va2VkLiZuYnNwOzwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+V2hlcmUgaXMgQ2FzYWJsYW5jYSBMb2NhdGVkIGluIE1vcm9jY28\/PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5DYXNhYmxhbmNhIHNpdHMgY2VudHJhbGx5IG9uIHRoZSB3ZXN0ZXJuIEF0bGFudGljIGNvYXN0bGluZSwgcm91Z2hseSA5MCBrbSBzb3V0aCBvZiB0aGUgY2FwaXRhbCwgUmFiYXQuIEl0IGlzIHRoZSBsYXJnZXN0IGNpdHkgaW4gdGhlIE1hZ2hyZWIgYW5kIHNlcnZlcyBhcyB0aGUgcHJpbWFyeSBnYXRld2F5IGZvciBpbnRlcm5hdGlvbmFsIGZsaWdodHMuIEl0cyBsb2NhdGlvbiBtYWtlcyBpdCB0aGUgcGVyZmVjdCBzdGFydGluZyBwb2ludCBmb3IgYSByb2FkIHRyaXA6IHlvdSBoYXZlIHRoZSBjb2FzdGFsIGJyZWV6ZSB0byB5b3VyIHdlc3QgYW5kIHRoZSBzbW9vdGggaGlnaHdheSB0byB0aGUgbm9ydGggbGVhZGluZyBzdHJhaWdodCB0byBSYWJhdC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5DYXNhYmxhbmNhOiBNb3JlIFRoYW4gYSBNb3ZpZTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Q2FzYWJsYW5jYeKAmXMgYmVhdXR5IGlzIHNvbWV3aGF0IG9mIGEgc2VjcmV0LCBidXQgaXTigJlzIGFic29sdXRlbHkgd29ydGggZ29pbmcgdG8gbG9vayBmb3IgaXQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+QXJ0IERlY28gVHJlYXN1cmVzIGluIHRoZSBEb3dudG93biBEaXN0cmljdDwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rm9yZ2V0IHRoZSAiT2xkIE1lZGluYSIgZm9yIGEgbW9tZW50OyB0aGUgcmVhbCBzb3VsIG9mIENhc2FibGFuY2EgaXMgaXRzIEFydCBEZWNvIGFyY2hpdGVjdHVyZS4gSW4gdGhlIDE5MjBzIGFuZCAzMHMsIEZyZW5jaCBhcmNoaXRlY3RzIHVzZWQgdGhlIGNpdHkgYXMgYSBjYW52YXMuIFdhbGsgZG93biBCb3VsZXZhcmQgTW9oYW1tZWQgViBhbmQgbG9vayB1cC4gWW914oCZbGwgc2VlIG9ybmF0ZSBiYWxjb25pZXMgYW5kICJNYXVyZXNxdWUiIGZhY2FkZXMgdGhhdCBmZWVsIHJlbWluaXNjZW50IG9mIFBhcmlzaWFuIHN0cmVldHMuIE1hbnkgb2YgdGhlIGJ1aWxkaW5ncywgbGlrZSB0aGUgSG90ZWwgTGluY29sbiBvciB0aGUgUG9zdCBPZmZpY2UsIHdlcmUgYnVpbHQgZHVyaW5nIHRoZSBGcmVuY2ggUHJvdGVjdG9yYXRlIGVyYS4gVGhlIHdoaXRlLXdhc2hlZCBmYWNhZGVzLCBnZW9tZXRyaWMgY2FydmluZ3MsIGFuZCB3cm91Z2h0LWlyb24gYmFsY29uaWVzIGFyZSBleGFjdGx5IHdoYXQgZ2F2ZSB0aGUgY2l0eSBpdHMgcm9tYW50aWMgcmVwdXRhdGlvbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UbyBzZWUgd2hlcmUgdGhlIGdsYW1vcm91cyByZXNpZGVudHMgb2YgMTk0MHMgQ2FzYWJsYW5jYSBhY3R1YWxseSBzcGVudCB0aGVpciBldmVuaW5ncywgaGVhZCB0byBDaW5lbWEgUmlhbHRvLiBCdWlsdCBpbiAxOTMwLCB0aGlzIGlzIG9uZSBvZiB0aGUgb2xkZXN0IEFydCBEZWNvIGNpbmVtYXMgaW4gdGhlIGNpdHkuIEl0IHJlbWFpbnMgbGFyZ2VseSB1bmNoYW5nZWQsIHdpdGggYSBncmFuZCBiYWxjb255IGFuZCBwbHVzaCByZWQgc2VhdGluZy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyB7ImxldmVsIjozfSAtLT4KPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5IaWRkZW4gR2VtcyBpbiBDYXNhYmxhbmNhOjwvaDM+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPlRoZSBPbGl2ZSBNYXJrZXQgaW4gSGFib3VzOjwvc3Ryb25nPiBFdmVyeW9uZSBnb2VzIHRvIHRoZSBIYWJvdXMgUXVhcnRlciBmb3IgdGhlIHBhbGFjZSwgYnV0IGhlYWQgZGVlcCBpbnRvIHRoZSBPbGl2ZSBNYXJrZXQuIEl04oCZcyBhIHNlbnNvcnkgb3ZlcmxvYWQgb2YgZW1lcmFsZC1ncmVlbiBhbmQgc3VuLWdvbGQgb2xpdmVzLCBwcmVzZXJ2ZWQgbGVtb25zLCBhbmQgbG9jYWwgb2lscy4gSXTigJlzIHdoZXJlIHRoZSBsb2NhbHMgYWN0dWFsbHkgc2hvcC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+VGhlIFNhY3JlZCBIZWFydCBDYXRoZWRyYWwgKFNhY3LDqS1DxZN1cik6PC9zdHJvbmc+IFRoaXMgZGUtY29uc2VjcmF0ZWQgd2hpdGUgY2F0aGVkcmFsIGlzIGEgbmVvLUdvdGhpYyBtYXN0ZXJwaWVjZS4gSXQgb2Z0ZW4gaG9zdHMgdW5kZXJncm91bmQgYXJ0IGV4aGliaXRpb25zIGFuZCBvZmZlcnMgYSBxdWlldCwgY29vbCBlc2NhcGUgZnJvbSB0aGUgaHVtaWQgY2l0eSBoZWF0LjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+V2hlcmUgdG8gRWF0IGluIENhc2FibGFuY2E\/PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5DYXNhYmxhbmNhIGlzIGEgY2l0eSB0aGF0IGVhdHMgd2VsbCwgYnV0IHlvdSBoYXZlIHRvIGtub3cgd2hlcmUgdG8gbG9vay4gSXTigJlzIG5vdCBhIGNpdHkgb2YgZmFuY3kgc2lnbnM7IGl04oCZcyBhIGNpdHkgb2YgaGlkZGVuIGNvdXJ0eWFyZHMgYW5kIG1hcmtldCBzdGFsbHMgd2hlcmUgdGhlIHF1YWxpdHkgb2YgdGhlIGluZ3JlZGllbnRzIGRvZXMgdGhlIHRhbGtpbmcuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgeyJsZXZlbCI6M30gLS0+CjxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+SGVyZSBhcmUgc29tZSBvZiB0aGUgYmVzdCBwbGFjZXMgdG8gZWF0IGluIENhc2FibGFuY2E6PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+TWFyY2jDqSBDZW50cmFsIChDZW50cmFsIE1hcmtldCk6IDwvc3Ryb25nPnRoaXMgaXMgYSB0b3AgbHVuY2ggcmVjb21tZW5kYXRpb24uIEl04oCZcyBhIGdvcmdlb3VzIEFydCBEZWNvIG1hcmtldCB3aGVyZSB0aGUgc2VhZm9vZCBpcyBhcyBmcmVzaCBhcyBpdCBnZXRzLiBHbyB0byB0aGUgZmlzaCBzdGFsbHMgaW4gdGhlIGNlbnRyZSwgcGljayBvdXQgZXhhY3RseSB3aGF0IHlvdSB3YW50IChzaHJpbXAsIHNlYSBiYXNzLCBjYWxhbWFyaSksIGFuZCBidXkgaXQgYnkgd2VpZ2h0LiBUaGVuLCB0YWtlIHlvdXIgYmFnIG9mIGZpc2ggdG8gb25lIG9mIHRoZSBuZWFyYnkgc21hbGwgImdyaWxscyIgYW5kIHRoZXnigJlsbCBncmlsbCBvciBmcnkgaXQgZm9yIHlvdSBhbmQgc2VydmUgaXQgd2l0aCBhIGZyZXNoIE1vcm9jY2FuIHNhbGFkIGFuZCBicmVhZC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkxhIFNxYWxhOjwvc3Ryb25nPiBsb2NhdGVkIGluc2lkZSB0aGUgcmVtYWlucyBvZiBhbiAxOHRoLWNlbnR1cnkgUG9ydHVndWVzZSBmb3J0cmVzcyBuZWFyIHRoZSBwb3J0LCB0aGlzIGlzIGEgZ2FyZGVuIG9hc2lzIGFuZCB0aGUgcGVyZmVjdCBzcG90IGZvciBicmVha2Zhc3QuIFRyeSA8ZW0+SmJlbjwvZW0+IChnb2F0IGNoZWVzZSksIDxlbT5BbWxvdTwvZW0+IChhbG1vbmQgYW5kIGFyZ2FuIG9pbCBzcHJlYWQpLCA8ZW0+TXNlbWVuPC9lbT4gKGZsYWt5IGZsYXRicmVhZCksIGFuZCBmcmVzaCBlZ2dzIGNvb2tlZCB3aXRoIDxlbT5raGxpaTwvZW0+IChwcmVzZXJ2ZWQgbWVhdCkuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkFsIE1vdW5pYTogPC9zdHJvbmc+aWYgeW91IHdhbnQgd2hpdGUgdGFibGVjbG90aHMgYW5kIGluY3JlZGlibGUgc2VydmljZSwgdGhpcyBpcyB0aGUgcGxhY2UuIFRoaXMgaXMgYSBoaXN0b3JpYyB2aWxsYSB3aXRoIGEgYmVhdXRpZnVsIGdhcmRlbiB0ZXJyYWNlLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5MZSBDYWJlc3RhbjogPC9zdHJvbmc+Zm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudCwgaGVhZCB0byB0aGUgQ29ybmljaGUgYmVhY2hmcm9udCBmb3Igb2NlYW4gdmlld3MgYW5kIE1lZGl0ZXJyYW5lYW4tZnVzaW9uIGZvb2QuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT48c3Ryb25nPkhhYm91cyBRdWFydGVyIFBhc3RyaWVzOiA8L3N0cm9uZz53aGlsZSBpbiB0aGUgSGFib3VzIGRpc3RyaWN0ICh0aGUgIk5ldyBNZWRpbmEiKSwgbG9vayBmb3IgUMOidGlzc2VyaWUgQmVubmlzIEhhYm91cywgYSB0aW55LCBsZWdlbmRhcnkgYmFrZXJ5LiBHcmFiIGEgYm94IG9mICJDb3JuZXMgZGUgR2F6ZWxsZSIgKEdhemVsbGUgSG9ybnMpIGFuZCBmaW5kIGEgc3BvdCBpbiB0aGUgbmVhcmJ5IHNxdWFyZSB0byBlYXQgdGhlbSB3aXRoIGEgdGVhIGZyb20gYSBzdHJlZXQgdmVuZG9yLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RXhwbG9yaW5nIHRoZSBDYXBpdGFsOiBNdXN0LVNlZSBBdHRyYWN0aW9ucyBpbiBSYWJhdDwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+UmFiYXQgaXMgdGhlIGVsZWdhbnQsIGNoaWxsZWQtb3V0IHNpYmxpbmcgdG8gQ2FzYWJsYW5jYSdzIGZyYW50aWMgZW5lcmd5LiBJdCBpcyByZW1hcmthYmx5IGdyZWVuLCBjbGVhbiBhbmQgaGlnaGx5IHdhbGthYmxlLiBXaGVuIGNoZWNraW5nIG91dCB0aGUgdG9wIGF0dHJhY3Rpb25zIGluIFJhYmF0LCB0aGUgSGFzc2FuIFRvd2VyIGFuZCB0aGUgTWF1c29sZXVtIG9mIE1vaGFtbWVkIFYgYXJlIG5vbi1uZWdvdGlhYmxlLiBCdXQgdG8gZmluZCB0aGUgInNlY3JldCIgUmFiYXQsIHlvdSBuZWVkIHRvIGhlYWQgdG93YXJkIHRoZSB3YXRlci48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCm5nIHsibGV2ZWwiOjN9IC0tPgo8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkxvY2FsIEZhdm91cml0ZXMgaW4gUmFiYXQ6PC9oMz4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+VGhlIENoZWxsYWggTmVjcm9wb2xpczo8L3N0cm9uZz4gdGhpcyBpcyBhIHBsYWNlIHdoZXJlIFJvbWFuIHJ1aW5zIG1lZXQgbWVkaWV2YWwgSXNsYW1pYyBoaXN0b3J5LCBhbGwgb3Zlcmdyb3duIHdpdGggd2lsZGZsb3dlcnMgYW5kIGluaGFiaXRlZCBieSBodW5kcmVkcyBvZiBzdG9ya3MuIEl0IGlzIGhhdW50aW5nbHkgYmVhdXRpZnVsIGFuZCBmYXIgcXVpZXRlciB0aGFuIHRoZSBydWlucyBpbiBJdGFseS48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPjxzdHJvbmc+S2FzYmFoIG9mIHRoZSBVZGF5YXM6PC9zdHJvbmc+IGVudGVyIHRocm91Z2ggdGhlIG1hc3NpdmUgc3RvbmUgZ2F0ZSBhbmQgaWdub3JlIHRoZSAiZ3VpZGVzIiBhdCB0aGUgZW50cmFuY2UuIFdhbmRlciBkZWVwIGludG8gdGhlIGJsdWUtYW5kLXdoaXRlIHJlc2lkZW50aWFsIGFsbGV5cyB1bnRpbCB5b3UgcmVhY2ggdGhlIFBsYXRlZm9ybWUgZHUgU8OpbWFwaG9yZS4gVGhlIHZpZXcgb2YgdGhlIEF0bGFudGljIGNyYXNoaW5nIGFnYWluc3QgdGhlIHJvY2tzIGlzIHRoZSBiZXN0IGluIHRoZSBjaXR5LjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+PHN0cm9uZz5UaGUgU2VjcmV0IEdhcmRlbiBvZiB0aGUgT3VkYXlhczo8L3N0cm9uZz4gdHVja2VkIGluc2lkZSB0aGUgS2FzYmFoIGlzIGFuIEFuZGFsdXNpYW4gZ2FyZGVuLiBJdOKAmXMgYSBsaXRlcmFsIG9hc2lzIG9mIG9yYW5nZSB0cmVlcyBhbmQgZm91bnRhaW5zLCBwZXJmZWN0IGZvciBhIGdsYXNzIG9mIG1pbnQgdGVhIHdoaWxlIHlvdSBsaXN0ZW4gdG8gdGhlIGRpc3RhbnQgc291bmQgb2YgdGhlIHdhdmVzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+U2VjcmV0IFRpcDwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+SWYgeW91IGhhdmUgdGltZSwgc3RvcCBoYWxmd2F5IGJldHdlZW4gdGhlIHR3byBjaXRpZXMgYXQgQm91em5pa2EuIEl04oCZcyBhIGNvYXN0YWwgdG93biBmYW1vdXMgZm9yIGl0cyByb2Fkc2lkZSBCQlEgc3RhbGxzLiBGb2xsb3cgdGhlIHNtb2tlIGFuZCB0aGUgY3Jvd2RzIG9mIGxvY2FscywgaXTigJlzIHRoZSBiZXN0IHdheSB0byBicmVhayB1cCB0aGUgZHJpdmUgd2l0aCBzb21lIGZyZXNoIGdyaWxsZWQga2VmdGEuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RGlzY292ZXIgU2VjcmV0IEVzY2FwZXPigJkgSGFuZHBpY2tlZCBNb3JvY2NvIERlYWxzPC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5XYW50IHRvIGV4cGVyaWVuY2UgdGhlIEFydCBEZWNvIG1hc3RlcnBpZWNlcyBvZiBDYXNhYmxhbmNhIGFuZCB0aGUgaGlzdG9yeSBhbmQgZ3JlZW4gc3BhY2VzIG9mIFJhYmF0IGZvciB5b3Vyc2VsZj8gRXNjYXBlIHRvIE1vcm9jY28gd2l0aCBTZWNyZXQgRXNjYXBlc+KAmSBvdXRyYWdlb3VzbHkgYm9va2FibGUgZGVhbHMuJm5ic3A7PC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rm9yIG1vcmUgdHJhdmVsIGFkdmljZSBhbmQgaW5zcGlyYXRpb24sIGRpdmUgZnVydGhlciBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vIj50aGUgRXNjYXBpc3Q8L2E+IG1hZ2F6aW5lLCBvciA8YSBocmVmPSJodHRwczovL3d3dy5zZWNyZXRlc2NhcGVzLmNvbS9jb250YWN0Ij5nZXQgaW4gdG91Y2g8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIG91dHJhZ2VvdXNseSBib29rYWJsZSBkZWFscy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGFydGljbGUgd2FzIHdyaXR0ZW4gaW4gcGFydG5lcnNoaXAgd2l0aCA8c3Ryb25nPlZpc2l0IE1vcm9jY288L3N0cm9uZz4uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+VGhpcyBndWlkZSBleHBsb3JlcyB0aGUgdmlicmFudCBjaXRpZXMgb2YgQ2FzYWJsYW5jYSBhbmQgUmFiYXQsIGhpZ2hsaWdodGluZyB0aGVpciB1bmlxdWUgYXR0cmFjdGlvbnMuIENhc2FibGFuY2EgYm9hc3RzIEFydCBEZWNvIGFyY2hpdGVjdHVyZSBhbmQgY3VsaW5hcnkgaGlkZGVuIGdlbXMsIHdoaWxlIFJhYmF0IG9mZmVycyBhIHRyYW5xdWlsIGF0bW9zcGhlcmUgd2l0aCBoaXN0b3JpYyBzaXRlcyBsaWtlIEhhc3NhbiBUb3dlci4gQm90aCBjaXRpZXMgcHJvdmlkZSByaWNoIGV4cGVyaWVuY2VzLCBtYWtpbmcgdGhlbSBtdXN0LXZpc2l0IGRlc3RpbmF0aW9ucyBpbiBNb3JvY2NvLmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzdGFnTmFtZXR5cGV0ZXh0aW5uZXJCbG9ja3NzdHlsZWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc01vcm9jY28gZGVhbHNsYXlvdXQKCjwhLS0gd3A6YnV0dG9ucyB7ImxheW91dCI6eyJ0eXBlIjoiZmxleCIsImp1c3RpZnlDb250ZW50IjoiY2VudGVyIn19IC0tPgo8ZGl2IGNsYXNzPSJ3cC1ibG9jay1idXR0b25zIj48IS0tIHdwOmJ1dHRvbiB7InN0eWxlIjp7ImNvbG9yIjp7ImJhY2tncm91bmQiOiIjZTM1MjA1In19fSAtLT4KPCEtLSAvd3A6YnV0dG9uIC0tPjwvZGl2Pgo8IS0tIC93cDpidXR0b25zIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzYWx0Y2FwdGlvbmlubmVyQmxvY2tzaWRsaW5rdXJsc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc2lkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uY29udGVudEhpZGRlbiBHZW1zIGluIENhc2FibGFuY2E6bGV2ZWxvcmRlcmVkdmFsdWVzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5UaGUgT2xpdmUgTWFya2V0IGluIEhhYm91czo8L3N0cm9uZz4gRXZlcnlvbmUgZ29lcyB0byB0aGUgSGFib3VzIFF1YXJ0ZXIgZm9yIHRoZSBwYWxhY2UsIGJ1dCBoZWFkIGRlZXAgaW50byB0aGUgT2xpdmUgTWFya2V0LiBJdOKAmXMgYSBzZW5zb3J5IG92ZXJsb2FkIG9mIGVtZXJhbGQtZ3JlZW4gYW5kIHN1bi1nb2xkIG9saXZlcywgcHJlc2VydmVkIGxlbW9ucywgYW5kIGxvY2FsIG9pbHMuIEl04oCZcyB3aGVyZSB0aGUgbG9jYWxzIGFjdHVhbGx5IHNob3AuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlRoZSBTYWNyZWQgSGVhcnQgQ2F0aGVkcmFsIChTYWNyw6ktQ8WTdXIpOjwvc3Ryb25nPiBUaGlzIGRlLWNvbnNlY3JhdGVkIHdoaXRlIGNhdGhlZHJhbCBpcyBhIG5lby1Hb3RoaWMgbWFzdGVycGllY2UuIEl0IG9mdGVuIGhvc3RzIHVuZGVyZ3JvdW5kIGFydCBleGhpYml0aW9ucyBhbmQgb2ZmZXJzIGEgcXVpZXQsIGNvb2wgZXNjYXBlIGZyb20gdGhlIGh1bWlkIGNpdHkgaGVhdC5pbm5lckJsb2Nrc2FsdGNhcHRpb25pZGxpbmt1cmxzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzYWx0Y2FwdGlvbmlubmVyQmxvY2tzaWRsaW5rdXJsc2l6ZVNsdWdsaW5rRGVzdGluYXRpb248IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6aGVhZGk8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6aGVhZGk8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6aGVhZGljbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc2lkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uYWx0Y2FwdGlvbmlkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uY29udGVudExvY2FsIEZhdm91cml0ZXMgaW4gUmFiYXQ6bGV2ZWxvcmRlcmVkdmFsdWVzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5UaGUgQ2hlbGxhaCBOZWNyb3BvbGlzOjwvc3Ryb25nPiB0aGlzIGlzIGEgcGxhY2Ugd2hlcmUgUm9tYW4gcnVpbnMgbWVldCBtZWRpZXZhbCBJc2xhbWljIGhpc3RvcnksIGFsbCBvdmVyZ3Jvd24gd2l0aCB3aWxkZmxvd2VycyBhbmQgaW5oYWJpdGVkIGJ5IGh1bmRyZWRzIG9mIHN0b3Jrcy4gSXQgaXMgaGF1bnRpbmdseSBiZWF1dGlmdWwgYW5kIGZhciBxdWlldGVyIHRoYW4gdGhlIHJ1aW5zIGluIEl0YWx5LmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5LYXNiYWggb2YgdGhlIFVkYXlhczo8L3N0cm9uZz4gZW50ZXIgdGhyb3VnaCB0aGUgbWFzc2l2ZSBzdG9uZSBnYXRlIGFuZCBpZ25vcmUgdGhlICJndWlkZXMiIGF0IHRoZSBlbnRyYW5jZS4gV2FuZGVyIGRlZXAgaW50byB0aGUgYmx1ZS1hbmQtd2hpdGUgcmVzaWRlbnRpYWwgYWxsZXlzIHVudGlsIHlvdSByZWFjaCB0aGUgUGxhdGVmb3JtZSBkdSBTw6ltYXBob3JlLiBUaGUgdmlldyBvZiB0aGUgQXRsYW50aWMgY3Jhc2hpbmcgYWdhaW5zdCB0aGUgcm9ja3MgaXMgdGhlIGJlc3QgaW4gdGhlIGNpdHkuaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnQ8c3Ryb25nPlRoZSBTZWNyZXQgR2FyZGVuIG9mIHRoZSBPdWRheWFzOjwvc3Ryb25nPiB0dWNrZWQgaW5zaWRlIHRoZSBLYXNiYWggaXMgYW4gQW5kYWx1c2lhbiBnYXJkZW4uIEl04oCZcyBhIGxpdGVyYWwgb2FzaXMgb2Ygb3JhbmdlIHRyZWVzIGFuZCBmb3VudGFpbnMsIHBlcmZlY3QgZm9yIGEgZ2xhc3Mgb2YgbWludCB0ZWEgd2hpbGUgeW91IGxpc3RlbiB0byB0aGUgZGlzdGFudCBzb3VuZCBvZiB0aGUgd2F2ZXMuaW5uZXJCbG9ja3M8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6aGVhZGljbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2FsdGNhcHRpb25pbm5lckJsb2Nrc2lkbGlua3VybHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uPCEtLSAvd3A6aW1hZ2UgLS0+Cgo8IS0tIHdwOmhlYWRpY2xhc3NOYW1lY2xhc3NOYW1lY2xhc3NOYW1lY2xhc3NOYW1lY2xhc3NOYW1lPCEtLSB3cDppbWFnZSB7ImlkIjo5NTY4LCJzaXplU2x1ZyI6ImZ1bGwiLCJsaW5rRGVzdGluYXRpb24iOiJub25lIiwiY2xhc3NOYW1lIjoiIn0gLS0+CjwhLS0gd3A6aW1hZ2UgeyJpZCI6OTU3MCwic2l6ZVNsdWciOiJmdWxsIiwibGlua0Rlc3RpbmF0aW9uIjoibm9uZSIsImNsYXNzTmFtZSI6IiJ9IC0tPgo8IS0tIHdwOmltYWdlIHsiaWQiOjk1NzIsInNpemVTbHVnIjoiZnVsbCIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUiLCJjbGFzc05hbWUiOiIifSAtLT4KPCEtLSB3cDppbWFnZSB7ImlkIjo5NTc1LCJzaXplU2x1ZyI6ImZ1bGwiLCJsaW5rRGVzdGluYXRpb24iOiJub25lIiwiY2xhc3NOYW1lIjoiIn0gLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvMDMtY29udGVudC0wMS5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtOTU2OCIvPjwvZmlndXJlPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL21hZ2F6aW5lLnNlY3JldGVzY2FwZXMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1LzAzLWNvbnRlbnQtMDIuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTk1NzAiLz48L2ZpZ3VyZT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1mdWxsIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTAzLmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS05NTcyIi8+PC9maWd1cmU+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvMDMtY29udGVudC0wNC5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtOTU3NSIvPjwvZmlndXJlPgo8IS0tIHdwOmltYWdlIHsiaWQiOjk1NzgsInNpemVTbHVnIjoiZnVsbCIsImxpbmtEZXN0aW5hdGlvbiI6Im5vbmUiLCJjbGFzc05hbWUiOiIifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1mdWxsIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTA1LmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS05NTc4Ii8+PC9maWd1cmU+CnN0YXRlc2F2ZWRBdHN0YXRlc2F2ZWRCeWRvY3VtZW50c2x1Z3N0YXRldmVyc2lvbm9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudCZuYnNwO29yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudHVybG9yaWdpbmFsQ29udGVudDxsaT48c3Ryb25nPlJpY2vigJlzIENhZsOpOiA8L3N0cm9uZz5vZiBjb3Vyc2UsIHRoZSByZWFsIOKAmFJpY2vigJlzIENhZsOp4oCZIG9ubHkgZXhpc3RlZCBvbiBhIG1vdmllIHNldCwgYnV0IHRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIHRvIGV4cGVyaWVuY2UgYSB0YXN0ZSBvZiAxOTQwcyBnbGFtb3VyLCBsaXZlIHBpYW5vIG11c2ljIGFuZCBncmVhdCBjb2NrdGFpbHMuIFlvdSBtdXN0IGJvb2sgYWhlYWQsIGFzIGl0IGRvZXMgZ2V0IGJ1c3kuJm5ic3A7PC9saT4KPGRpdiBjbGFzcz0id3AtYmxvY2stYnV0dG9uIj48YSBjbGFzcz0id3AtYmxvY2stYnV0dG9uX19saW5rIGhhcy1iYWNrZ3JvdW5kIHdwLWVsZW1lbnQtYnV0dG9uIiBocmVmPSJodHRwczovL3d3dy5zZWNyZXRlc2NhcGVzLmNvbS9zZWFyY2gvc2VhcmNoP3RyYXZlbFR5cGVzPVdJVEhfRkxJR0hUUyZhbXA7cXVlcnk9TW9yb2NjbyZhbXA7dHJhdmVsbGVyc1NlbGVjdGlvbj1BQSZhbXA7dXRtX3NvdXJjZT1TRV9tZWRpYSZhbXA7dXRtX21lZGl1bT1lc2NhcGlzdCZhbXA7dXRtX2NhbXBhaWduPU1vcm9jY29TdW1tZXJfVUtfMjAyNiIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2UzNTIwNSI+TW9yb2NjbyBkZWFsczwvYT48L2Rpdj4KBQcIBAgGCAUIBwgHCAYIDggOCAsIBkgBBggEGiAbLxgqCRkhIhYbHwgKCAQIBiQIBwQKB4UEBwsIBwQKBycHCwgHBAoHtAUHCwgHBAoHHQULCAcECgecAQcLCAcECgcrBQsIBwQKB58IBwsIBwQKB78DBwsIBwQKBwULCAcECgcGCwgHBAoHGwULCAcECgeSAwcLCAcECgc2BQsIBwQKBwYLCAcECgevBgsIBwQKB7ADAQsIBwQKB5QFCwgHBAoHngILCAcECgeQAgsIBwQKB5sECwgHBAoHNAULCAcECge0BAcLCAcECgcFCwgHBAoHBgsIBwQKBwoFCwgHBAoHrAMHCwgHBAoHMQULCAcECge8AgcLCAcECge7AwcLCAcECgctDQEHCwUICbsEqSiaEKwSngeSEY0SjgUIBwQKRwALCAcECgdEAAsFCAcECkcACw0GqQKkAQgHBAoDBwsCBAMIDwgHBAoDBwsCBAMIDwcaBQcGCAcECgeKBAsIBwQKB58DCwMHAgQDCA8IBwQKAwcLAgQDCA9hAQgHBAoDBwsCBAMIDwMHAgQDCA8HGgUHBggHBAoHsQMLCAcECgelBAsIBwQKB6wDCyEIBwQKAwcLAgQDCA8hSQPYAQLsAgKEBAUHBQcIBAUHTxIGTxQDD4AEqAUMAQ0ADAECAIkDAQMArAFCAQEAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAABBAABBAAIAQQACAEEAAgBBAABBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAAJBAAIAQQACAAJBAAIAQQAAQgBBAAIAQQACAEEAAgBBAAIAlwFBHggJQQYICUEGCAlBCytBBaEEAaUDQQEICUEhCAlBBytBBbcDAasEAbIDQRkDAQhBAwhBA7sDCEEDCEEDCEEDAgVBEJgCQTC0AQ4KGC4WtAEOChguFrQBDgoYLhZBILQBDgoYLhZBB7QBDgoYLhZBAAoHQQEKQwAZAgUIAwJBAQJBAicBKAEsAS4BlASHBIgEjAShBkFmAvsEAH0BdwRvcGVueXcAdwhzdGFuZGFyZHcAfQB5fQB5dwB3AHl2AhhpbWFnZV9nZW5lcmF0b3Jfc2V0dGluZ3N2BAh0ZW1wbGF0ZXcHaGlnaHdheRBkZWZhdWx0X2ltYWdlX2lkfQAEZm9udHcAB2VuYWJsZWR5B3ZlcnNpb259Anl5dyRkMGI4ZDZmZS1jYjAyLTQ5ZTctYTEyNC01NmY2MjFhM2QxYzd4dw5jb3JlL3BhcmFncmFwaHl4dyQ4OGQ0NjU2Ny03YmVhLTQyZjctYmJlNi1mZDA5MTBkZGUwZTl4dw5jb3JlL3BhcmFncmFwaHl3JGJkMTNkMjk1LThjNmYtNGMzYy05ODhjLWEwOGUyNjM4MGYyYXh3DGNvcmUvaGVhZGluZ30CdyRiNzhhMzdiNC03YmM1LTQwODctOGYyMi04MTVhN2NmY2VkZTF4dw5jb3JlL3BhcmFncmFwaHl3JDUxODcyMjUxLTgyMGYtNGFjZS1hMzdiLTUyMDQ3NTlhNDAzZXh3DGNvcmUvaGVhZGluZ30DdyQxNGY2M2U2OS04N2E5LTRlMDktYTcyMS00MTRiNzZkNTUyNTZ4dw5jb3JlL3BhcmFncmFwaHl3JDEwMDA2OTY3LTY2MjgtNDc1ZS1iNjA2LTMzZTA4N2IwODkxNXh3DmNvcmUvcGFyYWdyYXBoeXh4dyQzOGRiMzhkNC04ZDU4LTQ5YTctYmU5My1lZTQ4MzkwYTQ0NGV4dwxjb3JlL2hlYWRpbmd9AnckNWQ5NTFjMjMtMjEzNi00Nzk1LTljMjUtYjMxMjZhNzJjZDRheHcOY29yZS9wYXJhZ3JhcGh5dyRhMzAyNWVmYS1iZmE5LTQ4YzctODUwNy1jMjJjZDNjYzZhYWV4dwxjb3JlL2hlYWRpbmd9A3ckN2YyNzRiM2YtMmVlYy00ZmY4LWExOGItNTAyZjA1NWY5ZTc0eHcJY29yZS9saXN0eXcAdyRiNjQzOTRkZC02ZjA0LTQxMDQtYTg3NC03ZWQyMzQwN2VhYzN4dw5jb3JlL2xpc3QtaXRlbXckNmUxN2NkZmQtNzliYi00MGM1LThjNjYtYzA4MGNjNTllODUxeHcOY29yZS9saXN0LWl0ZW13JDg0YTQxMDA2LTVmMDktNGM2ZS1iMGZlLWY1NDIxMjhlYjkxOXh3DmNvcmUvbGlzdC1pdGVtdyRhNjQ0NTYyNC04YTMyLTQ1NDEtYWY3ZS0zODhmZTIwOWZiNGZ4dw5jb3JlL2xpc3QtaXRlbXckZGZjNjc0OTEtNzAxMS00Njg4LTk2NmEtMjI0OWJiNjNlNjdieHcOY29yZS9saXN0LWl0ZW13JDgwOTdjOTIwLTZiNmYtNDE2Yi1hYjVjLWEwMmVhOTIwNDJhNHh3DmNvcmUvbGlzdC1pdGVtdyQxNzNjZGNkZS01NTk2LTRhYWEtOWExNi02MjJjMmU4MmQxMjR4dwxjb3JlL2hlYWRpbmd9AnckMjViMDgzMzQtY2EyNi00MTg0LTk0YjAtM2EyMWY5MzJhOTNkeHcOY29yZS9wYXJhZ3JhcGh5eHh3JGM5NDIzYTZhLTI3NDgtNGE3ZS1iOWU0LTJjOTliN2M0OTA0MXh3DGNvcmUvaGVhZGluZ30CdyQxMDRiZGE0Ny0yNWU5LTRjMjUtOGQwMi1kMTYzOTA2ZDA2N2F4dw5jb3JlL3BhcmFncmFwaHl3JGJiYTI0ZjhjLTQ4MGItNDliZi1hZmE0LWFlZGM5NDg0MTU3Znh3DGNvcmUvaGVhZGluZ30CdyQwN2Y4NzQ3MC04YzVmLTQwZjUtYmJlYS1kZDA1ZGNiNjU0ZGJ4dw5jb3JlL3BhcmFncmFwaHl3JGE5OGVlNzQwLTI2MDItNGJhMC1hNTk1LTg3MDJiOWI5ODZlYXh3DmNvcmUvcGFyYWdyYXBoeXckNjkyMzA4YjgtYmVlNC00ZjJkLWFiNmMtY2ZjZTU3OWI1MTU5eHcOY29yZS9wYXJhZ3JhcGh5dyQxMjc4YWY2Yi1kN2YzLTQ0MDYtOGFiYy1iZGEzMDQwZDVhZjV3DGNvcmUvaGVhZGluZ30CfYmc8r8BeHckZGY2Y2MyZTAtMzViYS00ZjY2LTkxMjUtZWVjYTVkZjEwNDI5dwxjb3JlL2J1dHRvbnN3JDcxMmQ4YWU5LWExZDUtNDVjYy1hNGRjLTFjMzA1Y2QwOGY0MHh3C2NvcmUvYnV0dG9udwFhdwZidXR0b252AQVjb2xvcnYBCmJhY2tncm91bmR3ByNlMzUyMDV3JDgwYTU2YWVmLTNjM2UtNDc4NC1iOWYzLTg0ZGQ4ZmU5YWYzZnh3DmNvcmUvcGFyYWdyYXBoeXYCBHR5cGV3BGZsZXgOanVzdGlmeUNvbnRlbnR3BmNlbnRlcn2flQF3JDhiZjAxYmVmLWRmYjQtNDg2Zi04NGZkLTRjNTA4ZjA0ZDI1M3h3CmNvcmUvaW1hZ2V3AH2glQF3Nmh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vP2F0dGFjaG1lbnRfaWQ9OTU2OHdPaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTAxLmpwZ3cEZnVsbHcEbm9uZXh3JDBkMzMwYTY1LTg5MmQtNDE4YS1hZWYxLTMwMDA1ODFjYjg0N3cMY29yZS9oZWFkaW5nfQN3JGVmNjNlNjc0LWNjMmItNDYzYy05ZTBjLTQwYzYxNGQ0MjMzZncJY29yZS9saXN0eXcAdyRkZGI3Mjk1YS1hMDg1LTQwMzQtOTNiZi01MjEyYzBkODc4ZWR4dw5jb3JlL2xpc3QtaXRlbXckMzQ5YTU2MjctYjU4ZS00MTVhLWE3MDAtMmFhMWFjMDYwNjBjeHcOY29yZS9saXN0LWl0ZW13JDAwMDUyNTJkLTUxNGItNDZjNC1hOGEzLTRiYTY4ODAzYmZkMXcKY29yZS9pbWFnZXcAfaKVAXc2aHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS8\/YXR0YWNobWVudF9pZD05NTcwd09odHRwczovL21hZ2F6aW5lLnNlY3JldGVzY2FwZXMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1LzAzLWNvbnRlbnQtMDIuanBndwRmdWxsdwRub25ldyQ4MDdkYzM0ZS0yMGE0LTQwOWQtOGYxOS04OTM1ZmVkOGQxOTh4dwpjb3JlL2ltYWdldwB9pJUBdzZodHRwczovL21hZ2F6aW5lLnNlY3JldGVzY2FwZXMuY29tLz9hdHRhY2htZW50X2lkPTk1NzJ3T2h0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvMDMtY29udGVudC0wMy5qcGd3BGZ1bGx3BG5vbmV4dyQ4MzkwOTdjOC0xYjc5LTRiODEtOTc1Ny1hOThjMzNhNGNmYzJ3CmNvcmUvaW1hZ2V3AH2nlQF3Nmh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vP2F0dGFjaG1lbnRfaWQ9OTU3NXdPaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTA0LmpwZ3cEZnVsbHcEbm9uZXckZWM5YjI1ZDAtZDNmZC00MzRmLTljYWItZjJlZmQ3ZmY3YWY3dwxjb3JlL2hlYWRpbmd9A3ckMmVmYjY1YjMtZmQzNC00NWIzLTgyYWUtYWYwMjY0YTNlYjk2dwljb3JlL2xpc3R5dwB3JDZjNjA1ZWI4LWJhZmYtNGM1Zi1iMGNkLWYyYmM1YzNkNWQwOXh3DmNvcmUvbGlzdC1pdGVtdyQwMGZlNWZmMi1iY2VmLTQzNWQtYjIxMi0xOTE0OTM0MmJkMzl4dw5jb3JlL2xpc3QtaXRlbXckMTkxNWRiYWQtOWVjZi00MmEzLWI1OGQtOGZmZTYwYTE3NjlheHcOY29yZS9saXN0LWl0ZW13JGQ4NTk2MDcxLWQ1OTItNGQ4MC1iYzhmLTAwMWRhZmNjYTI0N3h3CmNvcmUvaW1hZ2V3AH2qlQF3Nmh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vP2F0dGFjaG1lbnRfaWQ9OTU3OHdPaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTA1LmpwZ3cEZnVsbHcEbm9uZXcAdwB3AHcAdwB4dwZjbG9zZWR1An2mIn2GuAV1BX2Nb32epCt9srAEfa0GfbWIkQN3B3B1Ymxpc2h3EzIwMjYtMDUtMThUMTQ6MDA6MDN3JHNlY3JldC1ndWlkZS10by1yYWJhdC1hbmQtY2FzYWJsYW5jYXl7QnnjssEnIAB7QeUeGmzgAABbAHckZjQ5NzllOWEtZjg5Ny00OGQ0LTkyZjQtZDUxZWVmZDI3MzBhd44CPHA+RnJvbSBBcnQgRGVjbyBnZW1zIGluIENhc2FibGFuY2EgdG8gc2VjcmV0IHBpcmF0ZSBjaXRhZGVscyBpbiB0aGUgY2FwaXRhbCBjaXR5LCB0aGlzIGlzIHlvdXIgbG9jYWwgZ3VpZGUgdG8gdGhlc2UgdHdvIGljb25pYyBNb3JvY2NhbiBjaXRpZXMuIE1vc3QgdHJhdmVsbGVycyB0cmVhdCBDYXNhYmxhbmNhIGFzIGEgbXVzdC1zZWUsIHdoaWxlIHRoZSBjb3VudHJ54oCZcyBjYXBpdGFsLCBSYWJhdCwgaXMgb2Z0ZW4gdW5mYWlybHkgb3Zlcmxvb2tlZC4mbmJzcDs8L3A+dyQ2MWM1ZTcyOC0yYmUzLTRjMzItOWQ2NC04Y2E1OTlkYTQxMmV3qwE8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL21hZ2F6aW5lLnNlY3JldGVzY2FwZXMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1LzAzLWNvbnRlbnQtMDEuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTk1NjgiLz48L2ZpZ3VyZT53JDNmZWI5Y2UyLTQyM2ItNGMxOS1iM2IyLTNjMTIzOTgyYzIxYndJPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5XaGVyZSBpcyBDYXNhYmxhbmNhIExvY2F0ZWQgaW4gTW9yb2Njbz88L2gyPnckNTk5YWY5OGEtOGY1YS00ZTU4LWE4ODItZjk4MWQ0YmIyYTgxd\/sCPHA+Q2FzYWJsYW5jYSBzaXRzIGNlbnRyYWxseSBvbiB0aGUgd2VzdGVybiBBdGxhbnRpYyBjb2FzdGxpbmUsIHJvdWdobHkgOTAga20gc291dGggb2YgdGhlIGNhcGl0YWwsIFJhYmF0LiBJdCBpcyB0aGUgbGFyZ2VzdCBjaXR5IGluIHRoZSBNYWdocmViIGFuZCBzZXJ2ZXMgYXMgdGhlIHByaW1hcnkgZ2F0ZXdheSBmb3IgaW50ZXJuYXRpb25hbCBmbGlnaHRzLiBJdHMgbG9jYXRpb24gbWFrZXMgaXQgdGhlIHBlcmZlY3Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgcm9hZCB0cmlwOiB5b3UgaGF2ZSB0aGUgY29hc3RhbCBicmVlemUgdG8geW91ciB3ZXN0IGFuZCB0aGUgc21vb3RoIGhpZ2h3YXkgdG8gdGhlIG5vcnRoIGxlYWRpbmcgc3RyYWlnaHQgdG8gUmFiYXQuPC9wPnckMzg5MjNkNjctM2IxNy00NjAwLTgwZTctYzQ1ZGYxM2E2Y2Uzdz88aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkNhc2FibGFuY2E6IE1vcmUgVGhhbiBhIE1vdmllPC9oMj53JDU5OTM5NDcxLWVjZjctNDgzNC1hNGZlLTI2ODQ4M2Q2MTk1MndnPHA+Q2FzYWJsYW5jYeKAmXMgYmVhdXR5IGlzIHNvbWV3aGF0IG9mIGEgc2VjcmV0LCBidXQgaXTigJlzIGFic29sdXRlbHkgd29ydGggZ29pbmcgdG8gbG9vayBmb3IgaXQuPC9wPnckMDY3YTVlYWEtODI1Yy00MzNmLTk0ZDYtMTA0ZjAzN2Y5NTAzd008aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkFydCBEZWNvIFRyZWFzdXJlcyBpbiB0aGUgRG93bnRvd24gRGlzdHJpY3Q8L2gzPnckYmE4MGZkZGEtMWMyMi00ZDcwLWExZjYtYjY1MWEwMDVhMDNmd6gEPHA+Rm9yZ2V0IHRoZSAiT2xkIE1lZGluYSIgZm9yIGEgbW9tZW50OyB0aGUgcmVhbCBzb3VsIG9mIENhc2FibGFuY2EgaXMgaXRzIEFydCBEZWNvIGFyY2hpdGVjdHVyZS4gSW4gdGhlIDE5MjBzIGFuZCAzMHMsIEZyZW5jaCBhcmNoaXRlY3RzIHVzZWQgdGhlIGNpdHkgYXMgYSBjYW52YXMuIFdhbGsgZG93biBCb3VsZXZhcmQgTW9oYW1tZWQgViBhbmQgbG9vayB1cC4gWW914oCZbGwgc2VlIG9ybmF0ZSBiYWxjb25pZXMgYW5kICJNYXVyZXNxdWUiIGZhY2FkZXMgdGhhdCBmZWVsIHJlbWluaXNjZW50IG9mIFBhcmlzaWFuIHN0cmVldHMuIE1hbnkgb2YgdGhlIGJ1aWxkaW5ncywgbGlrZSB0aGUgSG90ZWwgTGluY29sbiBvciB0aGUgUG9zdCBPZmZpY2UsIHdlcmUgYnVpbHQgZHVyaW5nIHRoZSBGcmVuY2ggUHJvdGVjdG9yYXRlIGVyYS4gVGhlIHdoaXRlLXdhc2hlZCBmYWNhZGVzLCBnZW9tZXRyaWMgY2FydmluZ3MsIGFuZCB3cm91Z2h0LWlyb24gYmFsY29uaWVzIGFyZSBleGFjdGx5IHdoYXQgZ2F2ZSB0aGUgY2l0eSBpdHMgcm9tYW50aWMgcmVwdXRhdGlvbi48L3A+dyQyMDBlZTg0Yy05OTI2LTQ3NTItYmUwZC1lZGRlZmNiODFmZWV3hgI8cD5UbyBzZWUgd2hlcmUgdGhlIGdsYW1vcm91cyByZXNpZGVudHMgb2YgMTk0MHMgQ2FzYWJsYW5jYSBhY3R1YWxseSBzcGVudCB0aGVpciBldmVuaW5ncywgaGVhZCB0byBDaW5lbWEgUmlhbHRvLiBCdWlsdCBpbiAxOTMwLCB0aGlzIGlzIG9uZSBvZiB0aGUgb2xkZXN0IEFydCBEZWNvIGNpbmVtYXMgaW4gdGhlIGNpdHkuIEl0IHJlbWFpbnMgbGFyZ2VseSB1bmNoYW5nZWQsIHdpdGggYSBncmFuZCBiYWxjb255IGFuZCBwbHVzaCByZWQgc2VhdGluZy48L3A+dyRmYmExYzcyMy1jN2FiLTRkOTItYWNmNS0zNjg3OTAxM2Q0OTN3PDxoMyBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+SGlkZGVuIEdlbXMgaW4gQ2FzYWJsYW5jYTo8L2gzPnckZTBiZTIyYmEtYWI5NS00NGIxLWFjZTktYTM4ZTE1ODA2OTY5dyE8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKPC91bD53JDkxOTRhYTg1LTM2YTUtNDA0Ny04NTczLTkxYjQ0OTA2YTMzM3eXAjxsaT48c3Ryb25nPlRoZSBPbGl2ZSBNYXJrZXQgaW4gSGFib3VzOjwvc3Ryb25nPiBFdmVyeW9uZSBnb2VzIHRvIHRoZSBIYWJvdXMgUXVhcnRlciBmb3IgdGhlIHBhbGFjZSwgYnV0IGhlYWQgZGVlcCBpbnRvIHRoZSBPbGl2ZSBNYXJrZXQuIEl04oCZcyBhIHNlbnNvcnkgb3ZlcmxvYWQgb2YgZW1lcmFsZC1ncmVlbiBhbmQgc3VuLWdvbGQgb2xpdmVzLCBwcmVzZXJ2ZWQgbGVtb25zLCBhbmQgbG9jYWwgb2lscy4gSXTigJlzIHdoZXJlIHRoZSBsb2NhbHMgYWN0dWFsbHkgc2hvcC48L2xpPnckMjY1ZDM2OTUtM2NlZC00MTBhLWI4NTctZmZiNDE3ZTM2MDU3d+oBPGxpPjxzdHJvbmc+VGhlIFNhY3JlZCBIZWFydCBDYXRoZWRyYWwgKFNhY3LDqS1DxZN1cik6PC9zdHJvbmc+IFRoaXMgZGUtY29uc2VjcmF0ZWQgd2hpdGUgY2F0aGVkcmFsIGlzIGEgbmVvLUdvdGhpYyBtYXN0ZXJwaWVjZS4gSXQgb2Z0ZW4gaG9zdHMgdW5kZXJncm91bmQgYXJ0IGV4aGliaXRpb25zIGFuZCBvZmZlcnMgYSBxdWlldCwgY29vbCBlc2NhcGUgZnJvbSB0aGUgaHVtaWQgY2l0eSBoZWF0LjwvbGk+dyRkNWVlMzU1YS0yNjZjLTQ4N2YtYTczMC0zZWE5MTkyYTUwY2Z3qwE8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL21hZ2F6aW5lLnNlY3JldGVzY2FwZXMuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1LzAzLWNvbnRlbnQtMDIuanBnIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTk1NzAiLz48L2ZpZ3VyZT53JDdjODczZDQ4LTc3YTYtNDAxYy05MmRlLTdhMDQ2ZTEzMjI0NHc9PGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5XaGVyZSB0byBFYXQgaW4gQ2FzYWJsYW5jYT88L2gyPnckZGNkMjRkN2YtMGEzNi00NDdhLWE3ODQtYTJjMjA1YThkNzE0d90BPHA+Q2FzYWJsYW5jYSBpcyBhIGNpdHkgdGhhdCBlYXRzIHdlbGwsIGJ1dCB5b3UgaGF2ZSB0byBrbm93IHdoZXJlIHRvIGxvb2suIEl04oCZcyBub3QgYSBjaXR5IG9mIGZhbmN5IHNpZ25zOyBpdOKAmXMgYSBjaXR5IG9mIGhpZGRlbiBjb3VydHlhcmRzIGFuZCBtYXJrZXQgc3RhbGxzIHdoZXJlIHRoZSBxdWFsaXR5IG9mIHRoZSBpbmdyZWRpZW50cyBkb2VzIHRoZSB0YWxraW5nLjwvcD53JDgzY2ZmNjVmLTlmYjctNDkyYi04NzU4LWU4ODUxMWEwZjkxZXdYPGgzIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5IZXJlIGFyZSBzb21lIG9mIHRoZSBiZXN0IHBsYWNlcyB0byBlYXQgaW4gQ2FzYWJsYW5jYTo8L2gzPnckMzc0ZjY1NWUtYzhkZC00MTBmLTlkYTktY2Y5MDVhN2YzZWEwdyk8dWwgY2xhc3M9IndwLWJsb2NrLWxpc3QiPgoKCgoKCgoKCgo8L3VsPnckMjUwNjZkOGEtODA5MS00NzgxLTlmNzUtNTRkODgyNmRhNDdjd70DPGxpPjxzdHJvbmc+TWFyY2jDqSBDZW50cmFsIChDZW50cmFsIE1hcmtldCk6IDwvc3Ryb25nPnRoaXMgaXMgYSB0b3AgbHVuY2ggcmVjb21tZW5kYXRpb24uIEl04oCZcyBhIGdvcmdlb3VzIEFydCBEZWNvIG1hcmtldCB3aGVyZSB0aGUgc2VhZm9vZCBpcyBhcyBmcmVzaCBhcyBpdCBnZXRzLiBHbyB0byB0aGUgZmlzaCBzdGFsbHMgaW4gdGhlIGNlbnRyZSwgcGljayBvdXQgZXhhY3RseSB3aGF0IHlvdSB3YW50IChzaHJpbXAsIHNlYSBiYXNzLCBjYWxhbWFyaSksIGFuZCBidXkgaXQgYnkgd2VpZ2h0LiBUaGVuLCB0YWtlIHlvdXIgYmFnIG9mIGZpc2ggdG8gb25lIG9mIHRoZSBuZWFyYnkgc21hbGwgImdyaWxscyIgYW5kIHRoZXnigJlsbCBncmlsbCBvciBmcnkgaXQgZm9yIHlvdSBhbmQgc2VydmUgaXQgd2l0aCBhIGZyZXNoIE1vcm9jY2FuIHNhbGFkIGFuZCBicmVhZC48L2xpPnckNzNmODczZjEtZjNmNS00NzQzLThiZmQtZjAyYzZlMjA3MDM3d4UCPGxpPjxzdHJvbmc+Umlja+KAmXMgQ2Fmw6k6IDwvc3Ryb25nPm9mIGNvdXJzZSwgdGhlIHJlYWwg4oCYUmlja+KAmXMgQ2Fmw6nigJkgb25seSBleGlzdGVkIG9uIGEgbW92aWUgc2V0LCBidXQgdGhpcyBpcyB0aGUgcGxhY2UgdG8gZ28gdG8gZXhwZXJpZW5jZSBhIHRhc3RlIG9mIDE5NDBzIGdsYW1vdXIsIGxpdmUgcGlhbm8gbXVzaWMgYW5kIGdyZWF0IGNvY2t0YWlscy4gWW91IG11c3QgYm9vayBhaGVhZCwgYXMgaXQgZG9lcyBnZXQgYnVzeS7CoDwvbGk+dyQ2MDdkYTFmMS00ZWVhLTQwNDktYTBiMC02YWY5ODk5YTdhMmN33QI8bGk+PHN0cm9uZz5MYSBTcWFsYTo8L3N0cm9uZz4gbG9jYXRlZCBpbnNpZGUgdGhlIHJlbWFpbnMgb2YgYW4gMTh0aC1jZW50dXJ5IFBvcnR1Z3Vlc2UgZm9ydHJlc3MgbmVhciB0aGUgcG9ydCwgdGhpcyBpcyBhIGdhcmRlbiBvYXNpcyBhbmQgdGhlIHBlcmZlY3Qgc3BvdCBmb3IgYnJlYWtmYXN0LiBUcnkgPGVtPkpiZW48L2VtPiAoZ29hdCBjaGVlc2UpLCA8ZW0+QW1sb3U8L2VtPiAoYWxtb25kIGFuZCBhcmdhbiBvaWwgc3ByZWFkKSwgPGVtPk1zZW1lbjwvZW0+IChmbGFreSBmbGF0YnJlYWQpLCBhbmQgZnJlc2ggZWdncyBjb29rZWQgd2l0aCA8ZW0+a2hsaWk8L2VtPiAocHJlc2VydmVkIG1lYXQpLjwvbGk+dyQwYjA4NDgwNy0yYzA3LTQ5MWUtODJkMi0zMTk0ZGJiMWRhYjF3pwE8bGk+PHN0cm9uZz5BbCBNb3VuaWE6IDwvc3Ryb25nPmlmIHlvdSB3YW50IHdoaXRlIHRhYmxlY2xvdGhzIGFuZCBpbmNyZWRpYmxlIHNlcnZpY2UsIHRoaXMgaXMgdGhlIHBsYWNlLiBUaGlzIGlzIGEgaGlzdG9yaWMgdmlsbGEgd2l0aCBhIGJlYXV0aWZ1bCBnYXJkZW4gdGVycmFjZS48L2xpPnckZjM4NzZiM2EtZjFkMS00ZjcyLTk2YTUtZDBkY2VjZTVhNzI4d5kBPGxpPjxzdHJvbmc+TGUgQ2FiZXN0YW46IDwvc3Ryb25nPmZvciBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQsIGhlYWQgdG8gdGhlIENvcm5pY2hlIGJlYWNoZnJvbnQgZm9yIG9jZWFuIHZpZXdzIGFuZCBNZWRpdGVycmFuZWFuLWZ1c2lvbiBmb29kLjwvbGk+dyQxOTFmNWIzNi0zMGJkLTQ3ODItYWNjZC1iMmVmYTQ5MjU2Yzh3pQI8bGk+PHN0cm9uZz5IYWJvdXMgUXVhcnRlciBQYXN0cmllczogPC9zdHJvbmc+d2hpbGUgaW4gdGhlIEhhYm91cyBkaXN0cmljdCAodGhlICJOZXcgTWVkaW5hIiksIGxvb2sgZm9yIFDDonRpc3NlcmllIEJlbm5pcyBIYWJvdXMsIGEgdGlueSwgbGVnZW5kYXJ5IGJha2VyeS4gR3JhYiBhIGJveCBvZiAiQ29ybmVzIGRlIEdhemVsbGUiIChHYXplbGxlIEhvcm5zKSBhbmQgZmluZCBhIHNwb3QgaW4gdGhlIG5lYXJieSBzcXVhcmUgdG8gZWF0IHRoZW0gd2l0aCBhIHRlYSBmcm9tIGEgc3RyZWV0IHZlbmRvci48L2xpPnckNzE5ZmJlYjQtMzNiYS00NjJiLTgwNGYtNzk3NGU0MjExODlld6sBPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1mdWxsIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTAzLmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS05NTcyIi8+PC9maWd1cmU+dyQ2MGYyODQxYS1mYzkxLTQ5ZmEtYmIwZC05ZjA3MTg3MGQ2ZWN3VjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RXhwbG9yaW5nIHRoZSBDYXBpdGFsOiBNdXN0LVNlZSBBdHRyYWN0aW9ucyBpbiBSYWJhdDwvaDI+dyRmMWU5MDAyZS01NzYxLTRlMjYtODZmNC1mN2U5MjJiNmJjNTR3uwI8cD5SYWJhdCBpcyB0aGUgZWxlZ2FudCwgY2hpbGxlZC1vdXQgc2libGluZyB0byBDYXNhYmxhbmNhJ3MgZnJhbnRpYyBlbmVyZ3kuIEl0IGlzIHJlbWFya2FibHkgZ3JlZW4sIGNsZWFuIGFuZCBoaWdobHkgd2Fsa2FibGUuIFdoZW4gY2hlY2tpbmcgb3V0IHRoZSB0b3AgYXR0cmFjdGlvbnMgaW4gUmFiYXQsIHRoZSBIYXNzYW4gVG93ZXIgYW5kIHRoZSBNYXVzb2xldW0gb2YgTW9oYW1tZWQgViBhcmUgbm9uLW5lZ290aWFibGUuIEJ1dCB0byBmaW5kIHRoZSAic2VjcmV0IiBSYWJhdCwgeW91IG5lZWQgdG8gaGVhZCB0b3dhcmQgdGhlIHdhdGVyLjwvcD53JDRmYWE4ZDk4LWZhOWYtNDY0ZS1iZjMyLWJiODY2ZWZhNzgxM3erATxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBzcmM9Imh0dHBzOi8vbWFnYXppbmUuc2VjcmV0ZXNjYXBlcy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvMDMtY29udGVudC0wNC5qcGciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtOTU3NSIvPjwvZmlndXJlPnckYmMzNGRhYmYtNjdmNy00Yjg5LThkYTgtZjY4ZTRhYjEzNThkdzw8aDMgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkxvY2FsIEZhdm91cml0ZXMgaW4gUmFiYXQ6PC9oMz53JDQzYjk1M2UxLWVjZjYtNGM1MS1hMzg0LWE0ZjAxZDI0Y2RhNHcjPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij4KCgoKPC91bD53JDYwZWI0NjhkLTBjZjEtNDJlMS1hODgyLTNmZmMzYzVkZWUyYnf6ATxsaT48c3Ryb25nPlRoZSBDaGVsbGFoIE5lY3JvcG9saXM6PC9zdHJvbmc+IHRoaXMgaXMgYSBwbGFjZSB3aGVyZSBSb21hbiBydWlucyBtZWV0IG1lZGlldmFsIElzbGFtaWMgaGlzdG9yeSwgYWxsIG92ZXJncm93biB3aXRoIHdpbGRmbG93ZXJzIGFuZCBpbmhhYml0ZWQgYnkgaHVuZHJlZHMgb2Ygc3RvcmtzLiBJdCBpcyBoYXVudGluZ2x5IGJlYXV0aWZ1bCBhbmQgZmFyIHF1aWV0ZXIgdGhhbiB0aGUgcnVpbnMgaW4gSXRhbHkuPC9saT53JGQ1ODk1MTcwLTllOGUtNGJhOC1iOGY4LTZkOWM2OWZlMTE4MHevAjxsaT48c3Ryb25nPkthc2JhaCBvZiB0aGUgVWRheWFzOjwvc3Ryb25nPiBlbnRlciB0aHJvdWdoIHRoZSBtYXNzaXZlIHN0b25lIGdhdGUgYW5kIGlnbm9yZSB0aGUgImd1aWRlcyIgYXQgdGhlIGVudHJhbmNlLiBXYW5kZXIgZGVlcCBpbnRvIHRoZSBibHVlLWFuZC13aGl0ZSByZXNpZGVudGlhbCBhbGxleXMgdW50aWwgeW91IHJlYWNoIHRoZSBQbGF0ZWZvcm1lIGR1IFPDqW1hcGhvcmUuIFRoZSB2aWV3IG9mIHRoZSBBdGxhbnRpYyBjcmFzaGluZyBhZ2FpbnN0IHRoZSByb2NrcyBpcyB0aGUgYmVzdCBpbiB0aGUgY2l0eS48L2xpPnckYjMwZDc1ODgtZjY1YS00NjVmLWJkZTYtNDUyZWYwYThlMjRmd\/cBPGxpPjxzdHJvbmc+VGhlIFNlY3JldCBHYXJkZW4gb2YgdGhlIE91ZGF5YXM6PC9zdHJvbmc+IHR1Y2tlZCBpbnNpZGUgdGhlIEthc2JhaCBpcyBhbiBBbmRhbHVzaWFuIGdhcmRlbi4gSXTigJlzIGEgbGl0ZXJhbCBvYXNpcyBvZiBvcmFuZ2UgdHJlZXMgYW5kIGZvdW50YWlucywgcGVyZmVjdCBmb3IgYSBnbGFzcyBvZiBtaW50IHRlYSB3aGlsZSB5b3UgbGlzdGVuIHRvIHRoZSBkaXN0YW50IHNvdW5kIG9mIHRoZSB3YXZlcy48L2xpPnckOWQ0ZGIyYWQtYjg3ZS00ODU3LTljMWItNjc4OTIyZGIzZjg2d6sBPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1mdWxsIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS8wMy1jb250ZW50LTA1LmpwZyIgYWx0PSIiIGNsYXNzPSJ3cC1pbWFnZS05NTc4Ii8+PC9maWd1cmU+dyQxYjk3MTY1NS1hMDhhLTQyZTUtYTNkOS03OWM0NGUyYzIxNTd3LDxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+U2VjcmV0IFRpcDwvaDI+dyRiNDI0NzgyOS1hNGI5LTQ5Y2QtYjljZi04OGFlMTcwMGU2NTN39wE8cD5JZiB5b3UgaGF2ZSB0aW1lLCBzdG9wIGhhbGZ3YXkgYmV0d2VlbiB0aGUgdHdvIGNpdGllcyBhdCBCb3V6bmlrYS4gSXTigJlzIGEgY29hc3RhbCB0b3duIGZhbW91cyBmb3IgaXRzIHJvYWRzaWRlIEJCUSBzdGFsbHMuIEZvbGxvdyB0aGUgc21va2UgYW5kIHRoZSBjcm93ZHMgb2YgbG9jYWxzLCBpdOKAmXMgdGhlIGJlc3Qgd2F5IHRvIGJyZWFrIHVwIHRoZSBkcml2ZSB3aXRoIHNvbWUgZnJlc2ggZ3JpbGxlZCBrZWZ0YS48L3A+dyRiMzAwYjAxMy1iMTYwLTRlYTItYTI0Yi1iOWFhYmQxNGQzNjV3VTxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+RGlzY292ZXIgU2VjcmV0IEVzY2FwZXPigJkgSGFuZHBpY2tlZCBNb3JvY2NvIERlYWxzPC9oMj53JDRjOGVmZDBkLWMyODktNGNkZi1iM2FmLTRkNDg3YThlOTgyN3fFATxwPldhbnQgdG8gZXhwZXJpZW5jZSB0aGUgQXJ0IERlY28gbWFzdGVycGllY2VzIG9mIENhc2FibGFuY2EgYW5kIHRoZSBoaXN0b3J5IGFuZCBncmVlbiBzcGFjZXMgb2YgUmFiYXQgZm9yIHlvdXJzZWxmPyBFc2NhcGUgdG8gTW9yb2NjbyB3aXRoIFNlY3JldCBFc2NhcGVz4oCZIG91dHJhZ2VvdXNseSBib29rYWJsZSBkZWFscy4mbmJzcDs8L3A+dyRkMzI1ZWY3ZS1kZjQxLTQ0YzgtOTJlYi0wMWU2NWYzNWVhNTR3ggI8cD5Gb3IgbW9yZSB0cmF2ZWwgYWR2aWNlIGFuZCBpbnNwaXJhdGlvbiwgZGl2ZSBmdXJ0aGVyIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tYWdhemluZS5zZWNyZXRlc2NhcGVzLmNvbS8iPnRoZSBFc2NhcGlzdDwvYT4gbWFnYXppbmUsIG9yIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnNlY3JldGVzY2FwZXMuY29tL2NvbnRhY3QiPmdldCBpbiB0b3VjaDwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gb3V0cmFnZW91c2x5IGJvb2thYmxlIGRlYWxzLjwvcD53JDJhMjM5M2NiLTllMzEtNDk3ZC1iOGZiLTAyNGJlM2VkZjk1MndTPHA+VGhpcyBhcnRpY2xlIHdhcyB3cml0dGVuIGluIHBhcnRuZXJzaGlwIHdpdGggPHN0cm9uZz5WaXNpdCBNb3JvY2NvPC9zdHJvbmc+LjwvcD53JDE5Mzc5MjM4LTUwOWUtNDFhMS05MDk0LWU2N2MxMTE3YzI3NnckPGRpdiBjbGFzcz0id3AtYmxvY2stYnV0dG9ucyI+PC9kaXY+dyRhMzg5MjY2Yi0zZDQyLTQ4NjQtOWY5My05NjkwMWFlNDcwMjB3lwE8ZGl2IGNsYXNzPSJ3cC1ibG9jay1idXR0b24iPjxhIGNsYXNzPSJ3cC1ibG9jay1idXR0b25fX2xpbmsgaGFzLWJhY2tncm91bmQgd3AtZWxlbWVudC1idXR0b24iIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlMzUyMDUiPk1vcm9jY28gZGVhbHM8L2E+PC9kaXY+d7QBaHR0cHM6Ly93d3cuc2VjcmV0ZXNjYXBlcy5jb20vc2VhcmNoL3NlYXJjaD90cmF2ZWxUeXBlcz1XSVRIX0ZMSUdIVFMmcXVlcnk9TW9yb2NjbyZ0cmF2ZWxsZXJzU2VsZWN0aW9uPUFBJnV0bV9zb3VyY2U9U0VfbWVkaWEmdXRtX21lZGl1bT1lc2NhcGlzdCZ1dG1fY2FtcGFpZ249TW9yb2Njb1N1bW1lcl9VS18yMDI2dyQwNjk1NzMzOS03MDQ5LTQ5YjMtODc2My1hYWRlNmUyYmM3ZmJ3BzxwPjwvcD4C56bDxwpzAQEDAgYABgAEASYAjAIAAQACBycJAgD7AgAEBx0IAwBjAAQHKwgDAKYEAIYCAAEAASwCAAEAAQEBhwQBAAQHGwgDANkBAD0ABwC1AwD0AQACANoCAKQBAJYBAKECAAQHNAgDALsCAAEAASwCAAEAAQEBlgYBABEA8wEAOADDAQCCAgBBAAICzQIMqRQMmgj6AawJDN4DDNIIDNsLBgEAAQABAQEAAgAJAL0BlwFmAAcABAABAAEBAQUdAAQAkAIA5AEABAAEAAcAA+cBIecBIecBIgABAAEBAQUEAAMAHQAEAPcBAKsCAPEB5wEiAAcAA+cBIRMBbQEnASsBLVmTAliGAliHAlisBbUHAgEAAgG\/mOnaAQEAAA==\",\"updateId\":784577218}","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":false,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[2214,44550],"tags":[7117,354590,35890,429,3285557],"class_list":["post-9563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-africa","category-morocco","tag-city","tag-city-guide","tag-featured","tag-sun","tag-weekend-breaks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Secret Guide to Rabat and Casablanca | Secret Escapes<\/title>\n<meta name=\"description\" content=\"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Secret Guide to Rabat and Casablanca | Secret Escapes\" \/>\n<meta property=\"og:description\" content=\"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/\" \/>\n<meta property=\"og:site_name\" content=\"The Escapist UK\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-18T13:00:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-18T14:07:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ella Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ella Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/\"},\"author\":{\"name\":\"Ella Davis\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#\\\/schema\\\/person\\\/26525c8867ee733f1334d14295005ba4\"},\"headline\":\"Secret Guide to Rabat and Casablanca\",\"datePublished\":\"2026-05-18T13:00:03+00:00\",\"dateModified\":\"2026-05-18T14:07:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/\"},\"wordCount\":981,\"publisher\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/03-hero.jpg?fit=1920%2C768&ssl=1\",\"keywords\":[\"City\",\"City Guide\",\"Featured\",\"Sun\",\"Weekend Breaks\"],\"articleSection\":[\"Africa\",\"Morocco\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/\",\"url\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/\",\"name\":\"Secret Guide to Rabat and Casablanca | Secret Escapes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/03-hero.jpg?fit=1920%2C768&ssl=1\",\"datePublished\":\"2026-05-18T13:00:03+00:00\",\"dateModified\":\"2026-05-18T14:07:50+00:00\",\"description\":\"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/03-hero.jpg?fit=1920%2C768&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/03-hero.jpg?fit=1920%2C768&ssl=1\",\"width\":1920,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/escapist\\\/secret-guide-to-rabat-and-casablanca\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/magazine.secretescapes.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Secret Guide to Rabat and Casablanca\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#website\",\"url\":\"https:\\\/\\\/magazine.secretescapes.com\\\/\",\"name\":\"The Escapist UK\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/magazine.secretescapes.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#organization\",\"name\":\"Secret Escapes\",\"url\":\"https:\\\/\\\/magazine.secretescapes.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i1.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/secretescapes-black-1200.jpg?fit=1200%2C192&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i1.wp.com\\\/magazine.secretescapes.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/secretescapes-black-1200.jpg?fit=1200%2C192&ssl=1\",\"width\":1200,\"height\":192,\"caption\":\"Secret Escapes\"},\"image\":{\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/magazine.secretescapes.com\\\/#\\\/schema\\\/person\\\/26525c8867ee733f1334d14295005ba4\",\"name\":\"Ella Davis\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Secret Guide to Rabat and Casablanca | Secret Escapes","description":"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/","og_locale":"en_GB","og_type":"article","og_title":"Secret Guide to Rabat and Casablanca | Secret Escapes","og_description":"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.","og_url":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/","og_site_name":"The Escapist UK","article_published_time":"2026-05-18T13:00:03+00:00","article_modified_time":"2026-05-18T14:07:50+00:00","og_image":[{"width":1920,"height":768,"url":"https:\/\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg","type":"image\/jpeg"}],"author":"Ella Davis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ella Davis","Estimated reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#article","isPartOf":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/"},"author":{"name":"Ella Davis","@id":"https:\/\/magazine.secretescapes.com\/#\/schema\/person\/26525c8867ee733f1334d14295005ba4"},"headline":"Secret Guide to Rabat and Casablanca","datePublished":"2026-05-18T13:00:03+00:00","dateModified":"2026-05-18T14:07:50+00:00","mainEntityOfPage":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/"},"wordCount":981,"publisher":{"@id":"https:\/\/magazine.secretescapes.com\/#organization"},"image":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg?fit=1920%2C768&ssl=1","keywords":["City","City Guide","Featured","Sun","Weekend Breaks"],"articleSection":["Africa","Morocco"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/","url":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/","name":"Secret Guide to Rabat and Casablanca | Secret Escapes","isPartOf":{"@id":"https:\/\/magazine.secretescapes.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#primaryimage"},"image":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg?fit=1920%2C768&ssl=1","datePublished":"2026-05-18T13:00:03+00:00","dateModified":"2026-05-18T14:07:50+00:00","description":"This guide explores the vibrant cities of Casablanca and Rabat. Both cities provide rich experiences, making them must-visit destinations in Morocco.","breadcrumb":{"@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#primaryimage","url":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg?fit=1920%2C768&ssl=1","contentUrl":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg?fit=1920%2C768&ssl=1","width":1920,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-rabat-and-casablanca\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/magazine.secretescapes.com\/"},{"@type":"ListItem","position":2,"name":"Secret Guide to Rabat and Casablanca"}]},{"@type":"WebSite","@id":"https:\/\/magazine.secretescapes.com\/#website","url":"https:\/\/magazine.secretescapes.com\/","name":"The Escapist UK","description":"","publisher":{"@id":"https:\/\/magazine.secretescapes.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/magazine.secretescapes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/magazine.secretescapes.com\/#organization","name":"Secret Escapes","url":"https:\/\/magazine.secretescapes.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/magazine.secretescapes.com\/#\/schema\/logo\/image\/","url":"https:\/\/i1.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/03\/secretescapes-black-1200.jpg?fit=1200%2C192&ssl=1","contentUrl":"https:\/\/i1.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/03\/secretescapes-black-1200.jpg?fit=1200%2C192&ssl=1","width":1200,"height":192,"caption":"Secret Escapes"},"image":{"@id":"https:\/\/magazine.secretescapes.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/magazine.secretescapes.com\/#\/schema\/person\/26525c8867ee733f1334d14295005ba4","name":"Ella Davis"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/03-hero.jpg?fit=1920%2C768&ssl=1","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pcNvX1-2uf","jetpack-related-posts":[{"id":2977,"url":"https:\/\/magazine.secretescapes.com\/escapist\/yoga-and-travel-journeys-that-promote-wellbeing-and-self-discovery\/","url_meta":{"origin":9563,"position":0},"title":"Yoga and travel: journeys that promote wellbeing and self-discovery","author":"Secret Escapes","date":"January 7, 2020","format":false,"excerpt":"The importance of taking time out to recharge and reconnect for both our physical and mental wellbeing is hugely important. For many, yoga is the key and imparts a multitude of benefits to your physical and mental health. So, grab your mat and we\u2019ll take you on a journey to\u2026","rel":"","context":"In &quot;Bali&quot;","block_context":{"text":"Bali","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/asia\/indonesia\/bali\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/02\/f897c-yoga-banner.jpg?fit=1200%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/02\/f897c-yoga-banner.jpg?fit=1200%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/02\/f897c-yoga-banner.jpg?fit=1200%2C480&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/02\/f897c-yoga-banner.jpg?fit=1200%2C480&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2021\/02\/f897c-yoga-banner.jpg?fit=1200%2C480&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":7582,"url":"https:\/\/magazine.secretescapes.com\/escapist\/must-try-dishes-in-morocco\/","url_meta":{"origin":9563,"position":1},"title":"Must Try Dishes in Morocco","author":"Oliver Jones","date":"December 15, 2023","format":false,"excerpt":"Don\u2019t be daunted by Moroccan cuisine. There\u2019s a sumptuous variety of flavours to seek out, each infused with myriad spices, carefully chosen, and built on a culinary heritage going back gernerations. It\u2019s also one of those classic melting pots, where Moorish meets Amazigh flavours from the mountains, and where colonialisation\u2026","rel":"","context":"In &quot;Africa&quot;","block_context":{"text":"Africa","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/africa\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/Morocco-banner.jpg?fit=1200%2C500&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/Morocco-banner.jpg?fit=1200%2C500&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/Morocco-banner.jpg?fit=1200%2C500&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/Morocco-banner.jpg?fit=1200%2C500&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/Morocco-banner.jpg?fit=1200%2C500&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":9585,"url":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-marrakech\/","url_meta":{"origin":9563,"position":2},"title":"Secret Guide to Marrakech","author":"Ella Davis","date":"May 18, 2026","format":false,"excerpt":"Marrakech, known as the \"Red City\", blends medieval tradition with contemporary art. To truly experience its allure, venture into the souks and hidden courtyards. Notable attractions include the Koutoubia Mosque, Jardin Majorelle, and Bahia Palace. Local dining offers authentic flavours, while neighbourhoods vary from vibrant to luxurious, catering to different\u2026","rel":"","context":"In &quot;Africa&quot;","block_context":{"text":"Africa","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/africa\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/04-hero.jpg?fit=1200%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/04-hero.jpg?fit=1200%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/04-hero.jpg?fit=1200%2C480&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/04-hero.jpg?fit=1200%2C480&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/04-hero.jpg?fit=1200%2C480&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":9544,"url":"https:\/\/magazine.secretescapes.com\/escapist\/secret-guide-to-agadir-and-taghazout\/","url_meta":{"origin":9563,"position":3},"title":"Secret Guide to Agadir and Taghazout","author":"Ella Davis","date":"May 18, 2026","format":false,"excerpt":"Agadir is a vibrant Moroccan coastal city where the Atlas Mountains meet the Atlantic Ocean. Known for its luxury resorts and stunning beaches like Tifnit and Panorama Beach, it also offers authentic experiences, local cuisine, and rich culture. Nearby Taghazout and hidden gems like Aghroud provide unique attractions for diverse\u2026","rel":"","context":"In &quot;Africa&quot;","block_context":{"text":"Africa","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/africa\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/02-hero.jpg?fit=1200%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/02-hero.jpg?fit=1200%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/02-hero.jpg?fit=1200%2C480&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/02-hero.jpg?fit=1200%2C480&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/02-hero.jpg?fit=1200%2C480&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":9605,"url":"https:\/\/magazine.secretescapes.com\/escapist\/when-is-the-best-time-to-visit-morocco-monthly-weather-guide\/","url_meta":{"origin":9563,"position":4},"title":"When is the Best Time to Visit Morocco: Monthly Weather Guide","author":"Ella Davis","date":"May 18, 2026","format":false,"excerpt":"Morocco offers diverse landscapes from mountains to deserts, making the best travel times dependent on individual adventure preferences. Spring and autumn are ideal for comfortable weather, while May showcases blooming valleys. Coastal areas remain pleasant year-round. Use this guide to answer your FAQs, including travel advice, language, currency, and cultural\u2026","rel":"","context":"In &quot;Africa&quot;","block_context":{"text":"Africa","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/africa\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/05-hero-1.jpg?fit=1200%2C480&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/05-hero-1.jpg?fit=1200%2C480&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/05-hero-1.jpg?fit=1200%2C480&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/05-hero-1.jpg?fit=1200%2C480&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2026\/05\/05-hero-1.jpg?fit=1200%2C480&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":7613,"url":"https:\/\/magazine.secretescapes.com\/escapist\/morocco-what-is-a-riad\/","url_meta":{"origin":9563,"position":5},"title":"What Is a Riad?: A Guide to the Traditional Moroccan House","author":"Oliver Jones","date":"December 15, 2023","format":false,"excerpt":"Riads, traditional Moroccan homes, offer an authentic and culturally rich accommodation experience in Morocco. Characterised by inward-facing designs and lush courtyards, they provide a serene escape from the bustling medina. Luxurious guesthouses, they reflect Moroccan heritage, combining artistry and comfort, making them a preferred choice for intimate stays.","rel":"","context":"In &quot;Africa&quot;","block_context":{"text":"Africa","link":"https:\/\/magazine.secretescapes.com\/escapist\/category\/africa\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/HERO-Riad-Zwen-Zwen-Marrakech-5-EDITED-29.06.23-fotor-20231215161426.jpg?fit=1200%2C500&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/HERO-Riad-Zwen-Zwen-Marrakech-5-EDITED-29.06.23-fotor-20231215161426.jpg?fit=1200%2C500&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/HERO-Riad-Zwen-Zwen-Marrakech-5-EDITED-29.06.23-fotor-20231215161426.jpg?fit=1200%2C500&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/HERO-Riad-Zwen-Zwen-Marrakech-5-EDITED-29.06.23-fotor-20231215161426.jpg?fit=1200%2C500&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/magazine.secretescapes.com\/wp-content\/uploads\/2023\/12\/HERO-Riad-Zwen-Zwen-Marrakech-5-EDITED-29.06.23-fotor-20231215161426.jpg?fit=1200%2C500&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/posts\/9563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/users\/201213705"}],"replies":[{"embeddable":true,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/comments?post=9563"}],"version-history":[{"count":7,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/posts\/9563\/revisions"}],"predecessor-version":[{"id":9653,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/posts\/9563\/revisions\/9653"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/media\/9567"}],"wp:attachment":[{"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/media?parent=9563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/categories?post=9563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magazine.secretescapes.com\/wp-json\/wp\/v2\/tags?post=9563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}