{"id":432,"date":"2026-07-21T21:28:17","date_gmt":"2026-07-21T21:28:17","guid":{"rendered":"https:\/\/www.footymind.com\/blog\/?p=432"},"modified":"2026-07-21T21:28:18","modified_gmt":"2026-07-21T21:28:18","slug":"why-south-african-football-fans-use-mobile-apps-for-fixtures-odds-and-live-markets","status":"publish","type":"post","link":"https:\/\/www.footymind.com\/blog\/why-south-african-football-fans-use-mobile-apps-for-fixtures-odds-and-live-markets\/","title":{"rendered":"Why South African Football Fans Use Mobile Apps for Fixtures, Odds and Live Markets"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.footymind.com\/blog\/wp-content\/uploads\/2026\/07\/image-7.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">South African football weekends rarely move in a straight line. A fan may start with local league fixtures, keep an eye on CAF competitions, follow English football in the evening, and still check late team news before kick-off. That pattern explains why mobile apps have become part of the way many supporters organise their matchday attention.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For users comparing tools around fixtures, odds, and live markets, <a href=\"https:\/\/www.telecomasia.net\/za\/sports-betting\/reviews\/yesplay\/login\/\" target=\"_blank\" rel=\"noopener\"><strong>yesplay login<\/strong><\/a> is often the first step before following matches, checking available markets, and managing bets in one place. The real value, however, goes beyond access. It is the ability to move from schedule to context, from context to market, and from market to decision without losing the thread of the game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most useful app experience for South African football followers is not the one with the loudest interface. It is the one that keeps match information readable when the Saturday calendar gets crowded.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Football apps turn scattered fixtures into one matchday screen<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Football fans in South Africa often follow several layers of the game at once. Domestic football has its own rhythm, but international leagues, African club competitions, and national-team fixtures all compete for attention. A mobile app becomes useful when it reduces that noise into a clear sequence.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first layer is the fixture list. A good app should make it easy to see today\u2019s matches, start times, league names, and whether a game is pre-match or live. This sounds basic, but it matters when several fixtures overlap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second layer is context. Fans do not only want to know that a match is happening. They want to know whether a team is in form, whether the table position matters, and whether the fixture has unusual pressure attached to it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The third layer is timing. In football, information has a short shelf life. A line-up, red card, injury, weather delay, or tactical shift can change how a fan reads the game. Mobile apps are useful because they place that changing context closer to the user\u2019s decision point.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why odds and fixtures belong together<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Odds make more sense when they are placed next to match context. A price without context can tempt users into shallow comparison. A fixture screen with form, timing, and market movement gives the user a better frame.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a fan checking a Saturday evening match may want to compare the home-win market with recent form and squad news. The odds alone say what the market currently thinks. The fixture context helps explain why that number may have moved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is especially important in football because pre-match assumptions can be fragile. A favourite can rotate players. A lower-ranked side can sit deep and reduce space. A derby can produce a tempo that does not match the table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mobile apps help by keeping those clues in one place. The user can move from fixture list to markets, then back to match information, without starting the research process again.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Live markets reward timing, but punish poor attention<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Live betting is where the mobile format becomes most visible. Odds can shift after goals, substitutions, cards, pressure spells, and tactical changes. The fan does not have the same calm window that exists before kick-off.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This does not mean faster is always better. Speed without attention can lead to poor choices. A bettor may see a price move and react before understanding why it moved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A better approach is to use the app as a reading tool first. Watch the match state. Check the clock. Look at the momentum. Then compare the market. The bet slip should be the last step, not the starting point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For South African football fans who follow multiple matches at once, this discipline matters. A goal in one fixture, a red card in another, and team news from a later match can all appear on the same screen. The app should help separate signals from noise.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What app features matter during a football weekend?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most useful features are not always the most complicated. They are the ones that match how fans actually follow the sport.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>App feature<\/strong><\/td><td><strong>Why it matters for football fans<\/strong><\/td><td><strong>Matchday use case<\/strong><\/td><\/tr><tr><td>Clear fixture calendar<\/td><td>Helps organise overlapping games<\/td><td>Checking local and international kick-off times<\/td><\/tr><tr><td>Live score updates<\/td><td>Shows the match state without switching apps<\/td><td>Following two games at once<\/td><\/tr><tr><td>Market grouping<\/td><td>Reduces time spent searching<\/td><td>Moving from match result to goals markets<\/td><\/tr><tr><td>Form and statistics panels<\/td><td>Adds context before comparing odds<\/td><td>Checking recent scoring or defensive trends<\/td><\/tr><tr><td>Line-up information<\/td><td>Changes pre-match assumptions<\/td><td>Reassessing a favourite after rotation<\/td><\/tr><tr><td>Bet slip clarity<\/td><td>Prevents confusion before confirmation<\/td><td>Reviewing selections and stake before placing<\/td><\/tr><tr><td>Fast navigation<\/td><td>Keeps the user close to live events<\/td><td>Switching between fixtures during busy periods<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The table shows a simple point: a football app should serve the match, not distract from it. Features have value when they make the user\u2019s reading of the game clearer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>South African fans need local rhythm, not generic design<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An app built only around global football can feel incomplete for South African users. Local supporters may want domestic fixtures to sit alongside European and African competitions. They may also want convenient mobile use during evening kick-offs, travel, work breaks, or weekend social settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The local rhythm affects how people move through the app. A user may check domestic football first, then jump to Premier League markets, then return to a local match when it goes live. The app needs to make that movement simple.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is also a language of habit. South African fans often discuss football through form, coaching changes, derby pressure, travel, and squad depth. An app that supports those checks feels more useful than one that only presents raw markets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The better mobile experience is therefore contextual. It does not just show events. It helps users place those events inside the football calendar they actually follow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Predictions and statistics should support, not replace judgment<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prediction pages and statistics tools can be useful, but they should not be treated as automatic answers. Football remains too situational for that. A model may read form and historical patterns, but it cannot fully capture every tactical decision or emotional shift inside a match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The right use of statistics is comparative. A fan can check whether a team tends to start fast, concede late, struggle away, or produce low-scoring matches. Those clues can support a view, especially when they are paired with line-ups and current form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The wrong use is blind copying. A prediction without context can become misleading when team news changes or a match develops differently from expectation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A strong mobile routine uses statistics as one layer. The user checks the numbers, then checks the match situation, then checks whether the market still matches the idea.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why mobile apps suit in-play football decisions<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Football is a low-scoring sport, so each event has weight. A goal can reshape the match. A red card can change territory. A substitution can reveal whether a coach is protecting a lead or chasing the game.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mobile apps suit this environment because they compress the distance between observation and action. A fan can follow the score, open the market, review the bet slip, and return to the match quickly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the real advantage is not simply convenience. It is continuity. The user can keep the same thread of attention across fixtures, odds, and live updates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That continuity is useful when the football weekend becomes dense. It allows the fan to stay organised without treating every market movement as urgent.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What to check before relying on an app every weekend<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A football app should earn a regular place in the user\u2019s matchday routine. Before relying on one, South African fans should ask practical questions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Does the app make local and international football easy to find?<\/li>\n\n\n\n<li>Are live scores and markets easy to follow on a small screen?<\/li>\n\n\n\n<li>Can the user move between fixtures without losing the bet slip?<\/li>\n\n\n\n<li>Are statistics presented clearly enough to support decisions?<\/li>\n\n\n\n<li>Does the app stay readable during busy match periods?<\/li>\n\n\n\n<li>Are key football markets grouped in a logical way?<\/li>\n\n\n\n<li>Does the experience help the user slow down when the match becomes chaotic?<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">These checks are simple, but they reveal whether the app is designed around football behaviour or just around account activity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final thoughts<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mobile apps have become part of football viewing because they match the way fans follow the modern game. Fixtures are crowded, information changes quickly, and odds are most useful when they sit close to live context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For South African football fans, the strongest app experience is not about constant action. It is about structure. The app should help users read fixtures, follow live moments, compare markets, and keep decisions connected to the actual match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When an app does that well, it becomes more than a shortcut. It becomes part of the football routine.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>South African football weekends rarely move in a straight line. A fan may start with local league fixtures, keep an eye on CAF competitions, follow English football in the evening, and still check late team news before kick-off. That pattern&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAX77HcmRm7BaX7sfcU77HcmRkBpfux9xTGBRpUHKgCAQEIAkIASACECwEBCAJCAEgAjg8BAQgCQgBIAKgGAQEIAkJIAK4CAQEIAkIASACuCQEBCAJCAEgAkgcBAQgCQgBIAJgHAQEIAkIASAC4CAEBCAJCSAC8AQEBCAJCAEgAggcBAQgCQgBIALoHAQEIAkIASACaBwEBCAJCAEgAtgUBAQgCQkgAnAIBAQgCQgBIAI4HAQEIAkIASACiBQEBCAJCAEgAtAYBAQgCQgBIAJIIAQEIAkJIAJgCAQEIAkIASACOBAEBCAEBCAMBAAREAQGEAQAERAEBrgEABEQBAPYChgQDAAAERAEBOAAERAEBjAEABEQBAMgCsgMDAAAERAEBMAAERAEBpAEABEQBANgCmgMDAAAERAEBKgAERAEBhAEABEQBAPIBkAMDAAAERAEBgAEABEQBAZABAAREAQDUArYDAwAABEQBATIABEQBAYYBAAREAQD8AZQDAwAABEQBASwABEQBAZgBAAREAQDIAq4DAwAABEQBASoABEQBAZIBAAREAQDkG0gAmB0BAQgCQgBIAKAFAQEIAkJIAKICAQEIAkIASACkCQEBCAJCAEgAmgcBAQgCQgBIALYHAQEIAkIASACiBQEBCAJCSACwAgEBCAJCAEgAhgkBAQgCQgBIAIoIAQEIAkIASACIBQEBCAJCAEgApgUBAQgCQkgAkAIBAQgCQgBIAKwGAQEIAkIASACgBgEBCAJCAEgAiAUBAQgCQgBIAIIFAQEIAkJIAJoCAQEIAkIASAC6BAEBCABIDgIBAQgCSgCOAgEBCAJKAIgCAQEIAkoAjAIBAQgCSgCIAgEBCAJKALgBAQEIAkoAsgEBAQgCSuQMiA8BAQgCQgBIAJAEAQEIAkJIAI4BAQEIAkIASACEBwEBCAJCAEgAuAcBAQgCQgBIgAQEAQEIAQBIAgQCAQHAtgIWXAMABYoDjrICrQcoACEBJwIoBicAKAAhACgAJwAEAAcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAEnAIcAKAInAQQAKAAnAIcAKAInAQQAKAEnAIcAKAInACgAJwIHACcABwAoACcABAAoAocAKAAnAAQAKAKHACgAJwAEACgChwAnAAcAKAAnAAQAKAKHACgAJwAEACgChwAoACcABAAoAocAJwAHACgAJwAEACgChwAoACcABAAoAocAKAAnAAQAKAKHACcABwAoACcABAAoAocAKAAnAAQAKAKHACgAJwAEACgChwAnAAcAKAAnAAQAKAKHACgAJwAEACgChwAoACcABAAoAocAJwAHACgAJwAEACgChwAoACcABAAoAocAKAAnAAQAKAKHACcABwAoACcABAAoAocAKAAnAAQAKAKHACgAJwAEACgChwAnAAcAKAAnAAQAKAKHACgAJwAEACgChwAoACcABAAoAicBhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoAScAhwAoAicBBAAoACcAhwAoAicBBAAoAScAhwAoAicAKAEnAAcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACcAhwAoAicBBAAnAIcAKAInAQQAJwCHACgCJwEEACgBJwCHACgCJwEEACgAJwCHACgCJwEEACgBJwCHACgCJwEEACgBJwCHACgCJwEEACgBJwBBAAAAIQCoAEcAIQAoACEAJwAhAicAqAEoACcAKAEEACEAqAGhACgBqMjTAYvOAXN0YXRldmVyc2lvbmRvY3VtZW50ZGF0ZWRvY3VtZW50c3RhdHVzZG9jdW1lbnR0aXRsZWRvY3VtZW50Y29udGVudGRvY3VtZW50ZXhjZXJwdGRvY3VtZW50YXV0aG9yZG9jdW1lbnRmZWF0dXJlZF9tZWRpYWRvY3VtZW50Y29tbWVudF9zdGF0dXNkb2N1bWVudHBpbmdfc3RhdHVzZG9jdW1lbnRzdGlja3lkb2N1bWVudHRlbXBsYXRlZG9jdW1lbnRmb3JtYXRkb2N1bWVudG1ldGFmb290bm90ZXNkb2N1bWVudGNhdGVnb3JpZXNkb2N1bWVudHRhZ3Nkb2N1bWVudGJsb2Nrc1doeSBTb3V0aCBBZnJpY2FuIEZvb3RiYWxsIEZhbnMgVXNlIE1vYmlsZSBBcHBzIGZvciBGaXh0dXJlcywgT2RkcyBhbmQgTGl2ZSBNYXJrZXRzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50U291dGggQWZyaWNhbiBmb290YmFsbCB3ZWVrZW5kcyByYXJlbHkgbW92ZSBpbiBhIHN0cmFpZ2h0IGxpbmUuIEEgZmFuIG1heSBzdGFydCB3aXRoIGxvY2FsIGxlYWd1ZSBmaXh0dXJlcywga2VlcCBhbiBleWUgb24gQ0FGIGNvbXBldGl0aW9ucywgZm9sbG93IEVuZ2xpc2ggZm9vdGJhbGwgaW4gdGhlIGV2ZW5pbmcsIGFuZCBzdGlsbCBjaGVjayBsYXRlIHRlYW0gbmV3cyBiZWZvcmUga2ljay1vZmYuIFRoYXQgcGF0dGVybiBleHBsYWlucyB3aHkgbW9iaWxlIGFwcHMgaGF2ZSBiZWNvbWUgcGFydCBvZiB0aGUgd2F5IG1hbnkgc3VwcG9ydGVycyBvcmdhbmlzZSB0aGVpciBtYXRjaGRheSBhdHRlbnRpb24uZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3IgdXNlcnMgY29tcGFyaW5nIHRvb2xzIGFyb3VuZCBmaXh0dXJlcywgb2RkcywgYW5kIGxpdmUgbWFya2V0cywgPGEgaHJlZj0iaHR0cHM6Ly93d3cudGVsZWNvbWFzaWEubmV0L3phL3Nwb3J0cy1iZXR0aW5nL3Jldmlld3MveWVzcGxheS9sb2dpbi8iPjxzdHJvbmc+eWVzcGxheSBsb2dpbjwvc3Ryb25nPjwvYT4gaXMgb2Z0ZW4gdGhlIGZpcnN0IHN0ZXAgYmVmb3JlIGZvbGxvd2luZyBtYXRjaGVzLCBjaGVja2luZyBhdmFpbGFibGUgbWFya2V0cywgYW5kIG1hbmFnaW5nIGJldHMgaW4gb25lIHBsYWNlLiBUaGUgcmVhbCB2YWx1ZSwgaG93ZXZlciwgZ29lcyBiZXlvbmQgYWNjZXNzLiBJdCBpcyB0aGUgYWJpbGl0eSB0byBtb3ZlIGZyb20gc2NoZWR1bGUgdG8gY29udGV4dCwgZnJvbSBjb250ZXh0IHRvIG1hcmtldCwgYW5kIGZyb20gbWFya2V0IHRvIGRlY2lzaW9uIHdpdGhvdXQgbG9zaW5nIHRoZSB0aHJlYWQgb2YgdGhlIGdhbWUuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgbW9zdCB1c2VmdWwgYXBwIGV4cGVyaWVuY2UgZm9yIFNvdXRoIEFmcmljYW4gZm9vdGJhbGwgZm9sbG93ZXJzIGlzIG5vdCB0aGUgb25lIHdpdGggdGhlIGxvdWRlc3QgaW50ZXJmYWNlLiBJdCBpcyB0aGUgb25lIHRoYXQga2VlcHMgbWF0Y2ggaW5mb3JtYXRpb24gcmVhZGFibGUgd2hlbiB0aGUgU2F0dXJkYXkgY2FsZW5kYXIgZ2V0cyBjcm93ZGVkLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Gb290YmFsbCBhcHBzIHR1cm4gc2NhdHRlcmVkIGZpeHR1cmVzIGludG8gb25lIG1hdGNoZGF5IHNjcmVlbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb290YmFsbCBmYW5zIGluIFNvdXRoIEFmcmljYSBvZnRlbiBmb2xsb3cgc2V2ZXJhbCBsYXllcnMgb2YgdGhlIGdhbWUgYXQgb25jZS4gRG9tZXN0aWMgZm9vdGJhbGwgaGFzIGl0cyBvd24gcmh5dGhtLCBidXQgaW50ZXJuYXRpb25hbCBsZWFndWVzLCBBZnJpY2FuIGNsdWIgY29tcGV0aXRpb25zLCBhbmQgbmF0aW9uYWwtdGVhbSBmaXh0dXJlcyBhbGwgY29tcGV0ZSBmb3IgYXR0ZW50aW9uLiBBIG1vYmlsZSBhcHAgYmVjb21lcyB1c2VmdWwgd2hlbiBpdCByZWR1Y2VzIHRoYXQgbm9pc2UgaW50byBhIGNsZWFyIHNlcXVlbmNlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIGZpcnN0IGxheWVyIGlzIHRoZSBmaXh0dXJlIGxpc3QuIEEgZ29vZCBhcHAgc2hvdWxkIG1ha2UgaXQgZWFzeSB0byBzZWUgdG9kYXnigJlzIG1hdGNoZXMsIHN0YXJ0IHRpbWVzLCBsZWFndWUgbmFtZXMsIGFuZCB3aGV0aGVyIGEgZ2FtZSBpcyBwcmUtbWF0Y2ggb3IgbGl2ZS4gVGhpcyBzb3VuZHMgYmFzaWMsIGJ1dCBpdCBtYXR0ZXJzIHdoZW4gc2V2ZXJhbCBmaXh0dXJlcyBvdmVybGFwLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHNlY29uZCBsYXllciBpcyBjb250ZXh0LiBGYW5zIGRvIG5vdCBvbmx5IHdhbnQgdG8ga25vdyB0aGF0IGEgbWF0Y2ggaXMgaGFwcGVuaW5nLiBUaGV5IHdhbnQgdG8ga25vdyB3aGV0aGVyIGEgdGVhbSBpcyBpbiBmb3JtLCB3aGV0aGVyIHRoZSB0YWJsZSBwb3NpdGlvbiBtYXR0ZXJzLCBhbmQgd2hldGhlciB0aGUgZml4dHVyZSBoYXMgdW51c3VhbCBwcmVzc3VyZSBhdHRhY2hlZCB0byBpdC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSB0aGlyZCBsYXllciBpcyB0aW1pbmcuIEluIGZvb3RiYWxsLCBpbmZvcm1hdGlvbiBoYXMgYSBzaG9ydCBzaGVsZiBsaWZlLiBBIGxpbmUtdXAsIHJlZCBjYXJkLCBpbmp1cnksIHdlYXRoZXIgZGVsYXksIG9yIHRhY3RpY2FsIHNoaWZ0IGNhbiBjaGFuZ2UgaG93IGEgZmFuIHJlYWRzIHRoZSBnYW1lLiBNb2JpbGUgYXBwcyBhcmUgdXNlZnVsIGJlY2F1c2UgdGhleSBwbGFjZSB0aGF0IGNoYW5naW5nIGNvbnRleHQgY2xvc2VyIHRvIHRoZSB1c2Vy4oCZcyBkZWNpc2lvbiBwb2ludC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+V2h5IG9kZHMgYW5kIGZpeHR1cmVzIGJlbG9uZyB0b2dldGhlcjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRPZGRzIG1ha2UgbW9yZSBzZW5zZSB3aGVuIHRoZXkgYXJlIHBsYWNlZCBuZXh0IHRvIG1hdGNoIGNvbnRleHQuIEEgcHJpY2Ugd2l0aG91dCBjb250ZXh0IGNhbiB0ZW1wdCB1c2VycyBpbnRvIHNoYWxsb3cgY29tcGFyaXNvbi4gQSBmaXh0dXJlIHNjcmVlbiB3aXRoIGZvcm0sIHRpbWluZywgYW5kIG1hcmtldCBtb3ZlbWVudCBnaXZlcyB0aGUgdXNlciBhIGJldHRlciBmcmFtZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBleGFtcGxlLCBhIGZhbiBjaGVja2luZyBhIFNhdHVyZGF5IGV2ZW5pbmcgbWF0Y2ggbWF5IHdhbnQgdG8gY29tcGFyZSB0aGUgaG9tZS13aW4gbWFya2V0IHdpdGggcmVjZW50IGZvcm0gYW5kIHNxdWFkIG5ld3MuIFRoZSBvZGRzIGFsb25lIHNheSB3aGF0IHRoZSBtYXJrZXQgY3VycmVudGx5IHRoaW5rcy4gVGhlIGZpeHR1cmUgY29udGV4dCBoZWxwcyBleHBsYWluIHdoeSB0aGF0IG51bWJlciBtYXkgaGF2ZSBtb3ZlZC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgaW4gZm9vdGJhbGwgYmVjYXVzZSBwcmUtbWF0Y2ggYXNzdW1wdGlvbnMgY2FuIGJlIGZyYWdpbGUuIEEgZmF2b3VyaXRlIGNhbiByb3RhdGUgcGxheWVycy4gQSBsb3dlci1yYW5rZWQgc2lkZSBjYW4gc2l0IGRlZXAgYW5kIHJlZHVjZSBzcGFjZS4gQSBkZXJieSBjYW4gcHJvZHVjZSBhIHRlbXBvIHRoYXQgZG9lcyBub3QgbWF0Y2ggdGhlIHRhYmxlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50TW9iaWxlIGFwcHMgaGVscCBieSBrZWVwaW5nIHRob3NlIGNsdWVzIGluIG9uZSBwbGFjZS4gVGhlIHVzZXIgY2FuIG1vdmUgZnJvbSBmaXh0dXJlIGxpc3QgdG8gbWFya2V0cywgdGhlbiBiYWNrIHRvIG1hdGNoIGluZm9ybWF0aW9uLCB3aXRob3V0IHN0YXJ0aW5nIHRoZSByZXNlYXJjaCBwcm9jZXNzIGFnYWluLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5MaXZlIG1hcmtldHMgcmV3YXJkIHRpbWluZywgYnV0IHB1bmlzaCBwb29yIGF0dGVudGlvbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRMaXZlIGJldHRpbmcgaXMgd2hlcmUgdGhlIG1vYmlsZSBmb3JtYXQgYmVjb21lcyBtb3N0IHZpc2libGUuIE9kZHMgY2FuIHNoaWZ0IGFmdGVyIGdvYWxzLCBzdWJzdGl0dXRpb25zLCBjYXJkcywgcHJlc3N1cmUgc3BlbGxzLCBhbmQgdGFjdGljYWwgY2hhbmdlcy4gVGhlIGZhbiBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGNhbG0gd2luZG93IHRoYXQgZXhpc3RzIGJlZm9yZSBraWNrLW9mZi5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoaXMgZG9lcyBub3QgbWVhbiBmYXN0ZXIgaXMgYWx3YXlzIGJldHRlci4gU3BlZWQgd2l0aG91dCBhdHRlbnRpb24gY2FuIGxlYWQgdG8gcG9vciBjaG9pY2VzLiBBIGJldHRvciBtYXkgc2VlIGEgcHJpY2UgbW92ZSBhbmQgcmVhY3QgYmVmb3JlIHVuZGVyc3RhbmRpbmcgd2h5IGl0IG1vdmVkLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QSBiZXR0ZXIgYXBwcm9hY2ggaXMgdG8gdXNlIHRoZSBhcHAgYXMgYSByZWFkaW5nIHRvb2wgZmlyc3QuIFdhdGNoIHRoZSBtYXRjaCBzdGF0ZS4gQ2hlY2sgdGhlIGNsb2NrLiBMb29rIGF0IHRoZSBtb21lbnR1bS4gVGhlbiBjb21wYXJlIHRoZSBtYXJrZXQuIFRoZSBiZXQgc2xpcCBzaG91bGQgYmUgdGhlIGxhc3Qgc3RlcCwgbm90IHRoZSBzdGFydGluZyBwb2ludC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudEZvciBTb3V0aCBBZnJpY2FuIGZvb3RiYWxsIGZhbnMgd2hvIGZvbGxvdyBtdWx0aXBsZSBtYXRjaGVzIGF0IG9uY2UsIHRoaXMgZGlzY2lwbGluZSBtYXR0ZXJzLiBBIGdvYWwgaW4gb25lIGZpeHR1cmUsIGEgcmVkIGNhcmQgaW4gYW5vdGhlciwgYW5kIHRlYW0gbmV3cyBmcm9tIGEgbGF0ZXIgbWF0Y2ggY2FuIGFsbCBhcHBlYXIgb24gdGhlIHNhbWUgc2NyZWVuLiBUaGUgYXBwIHNob3VsZCBoZWxwIHNlcGFyYXRlIHNpZ25hbHMgZnJvbSBub2lzZS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+V2hhdCBhcHAgZmVhdHVyZXMgbWF0dGVyIGR1cmluZyBhIGZvb3RiYWxsIHdlZWtlbmQ\/PC9zdHJvbmc+bGV2ZWxpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBtb3N0IHVzZWZ1bCBmZWF0dXJlcyBhcmUgbm90IGFsd2F5cyB0aGUgbW9zdCBjb21wbGljYXRlZC4gVGhleSBhcmUgdGhlIG9uZXMgdGhhdCBtYXRjaCBob3cgZmFucyBhY3R1YWxseSBmb2xsb3cgdGhlIHNwb3J0LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNoYXNGaXhlZExheW91dGNhcHRpb25oZWFkYm9keWNlbGxzdGFnY29udGVudDxzdHJvbmc+QXBwIGZlYXR1cmU8L3N0cm9uZz5yb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudDxzdHJvbmc+V2h5IGl0IG1hdHRlcnMgZm9yIGZvb3RiYWxsIGZhbnM8L3N0cm9uZz5yb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudDxzdHJvbmc+TWF0Y2hkYXkgdXNlIGNhc2U8L3N0cm9uZz5yb3dzcGFuY29sc3BhbmFsaWduY2VsbHN0YWdjb250ZW50Q2xlYXIgZml4dHVyZSBjYWxlbmRhcnJvd3NwYW5jb2xzcGFuYWxpZ250YWdjb250ZW50SGVscHMgb3JnYW5pc2Ugb3ZlcmxhcHBpbmcgZ2FtZXNyb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudENoZWNraW5nIGxvY2FsIGFuZCBpbnRlcm5hdGlvbmFsIGtpY2stb2ZmIHRpbWVzcm93c3BhbmNvbHNwYW5hbGlnbmNlbGxzdGFnY29udGVudExpdmUgc2NvcmUgdXBkYXRlc3Jvd3NwYW5jb2xzcGFuYWxpZ250YWdjb250ZW50U2hvd3MgdGhlIG1hdGNoIHN0YXRlIHdpdGhvdXQgc3dpdGNoaW5nIGFwcHNyb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudEZvbGxvd2luZyB0d28gZ2FtZXMgYXQgb25jZXJvd3NwYW5jb2xzcGFuYWxpZ25jZWxsc3RhZ2NvbnRlbnRNYXJrZXQgZ3JvdXBpbmdyb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudFJlZHVjZXMgdGltZSBzcGVudCBzZWFyY2hpbmdyb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudE1vdmluZyBmcm9tIG1hdGNoIHJlc3VsdCB0byBnb2FscyBtYXJrZXRzcm93c3BhbmNvbHNwYW5hbGlnbmNlbGxzdGFnY29udGVudEZvcm0gYW5kIHN0YXRpc3RpY3MgcGFuZWxzcm93c3BhbmNvbHNwYW5hbGlnbnRhZ2NvbnRlbnRBZGRzIGNvbnRleHQgYmVmb3JlIGNvbXBhcmluZyBvZGRzcm93c3BhbmNvbHNwYW5hbGlnbnRhZ2NvbnRlbnRDaGVja2luZyByZWNlbnQgc2NvcmluZyBvciBkZWZlbnNpdmUgdHJlbmRzcm93c3BhbmNvbHNwYW5hbGlnbmNlbGxzdGFnY29udGVudExpbmUtdXAgaW5mb3JtYXRpb25yb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudENoYW5nZXMgcHJlLW1hdGNoIGFzc3VtcHRpb25zcm93c3BhbmNvbHNwYW5hbGlnbnRhZ2NvbnRlbnRSZWFzc2Vzc2luZyBhIGZhdm91cml0ZSBhZnRlciByb3RhdGlvbnJvd3NwYW5jb2xzcGFuYWxpZ25jZWxsc3RhZ2NvbnRlbnRCZXQgc2xpcCBjbGFyaXR5cm93c3BhbmNvbHNwYW5hbGlnbnRhZ2NvbnRlbnRQcmV2ZW50cyBjb25mdXNpb24gYmVmb3JlIGNvbmZpcm1hdGlvbnJvd3NwYW5jb2xzcGFuYWxpZ250YWdjb250ZW50UmV2aWV3aW5nIHNlbGVjdGlvbnMgYW5kIHN0YWtlIGJlZm9yZSBwbGFjaW5ncm93c3BhbmNvbHNwYW5hbGlnbmNlbGxzdGFnY29udGVudEZhc3QgbmF2aWdhdGlvbnJvd3NwYW5jb2xzcGFuYWxpZ250YWdjb250ZW50S2VlcHMgdGhlIHVzZXIgY2xvc2UgdG8gbGl2ZSBldmVudHNyb3dzcGFuY29sc3BhbmFsaWdudGFnY29udGVudFN3aXRjaGluZyBiZXR3ZWVuIGZpeHR1cmVzIGR1cmluZyBidXN5IHBlcmlvZHNyb3dzcGFuY29sc3BhbmFsaWduZm9vdGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlIHRhYmxlIHNob3dzIGEgc2ltcGxlIHBvaW50OiBhIGZvb3RiYWxsIGFwcCBzaG91bGQgc2VydmUgdGhlIG1hdGNoLCBub3QgZGlzdHJhY3QgZnJvbSBpdC4gRmVhdHVyZXMgaGF2ZSB2YWx1ZSB3aGVuIHRoZXkgbWFrZSB0aGUgdXNlcuKAmXMgcmVhZGluZyBvZiB0aGUgZ2FtZSBjbGVhcmVyLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5Tb3V0aCBBZnJpY2FuIGZhbnMgbmVlZCBsb2NhbCByaHl0aG0sIG5vdCBnZW5lcmljIGRlc2lnbjwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBbiBhcHAgYnVpbHQgb25seSBhcm91bmQgZ2xvYmFsIGZvb3RiYWxsIGNhbiBmZWVsIGluY29tcGxldGUgZm9yIFNvdXRoIEFmcmljYW4gdXNlcnMuIExvY2FsIHN1cHBvcnRlcnMgbWF5IHdhbnQgZG9tZXN0aWMgZml4dHVyZXMgdG8gc2l0IGFsb25nc2lkZSBFdXJvcGVhbiBhbmQgQWZyaWNhbiBjb21wZXRpdGlvbnMuIFRoZXkgbWF5IGFsc28gd2FudCBjb252ZW5pZW50IG1vYmlsZSB1c2UgZHVyaW5nIGV2ZW5pbmcga2ljay1vZmZzLCB0cmF2ZWwsIHdvcmsgYnJlYWtzLCBvciB3ZWVrZW5kIHNvY2lhbCBzZXR0aW5ncy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBsb2NhbCByaHl0aG0gYWZmZWN0cyBob3cgcGVvcGxlIG1vdmUgdGhyb3VnaCB0aGUgYXBwLiBBIHVzZXIgbWF5IGNoZWNrIGRvbWVzdGljIGZvb3RiYWxsIGZpcnN0LCB0aGVuIGp1bXAgdG8gUHJlbWllciBMZWFndWUgbWFya2V0cywgdGhlbiByZXR1cm4gdG8gYSBsb2NhbCBtYXRjaCB3aGVuIGl0IGdvZXMgbGl2ZS4gVGhlIGFwcCBuZWVkcyB0byBtYWtlIHRoYXQgbW92ZW1lbnQgc2ltcGxlLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlcmUgaXMgYWxzbyBhIGxhbmd1YWdlIG9mIGhhYml0LiBTb3V0aCBBZnJpY2FuIGZhbnMgb2Z0ZW4gZGlzY3VzcyBmb290YmFsbCB0aHJvdWdoIGZvcm0sIGNvYWNoaW5nIGNoYW5nZXMsIGRlcmJ5IHByZXNzdXJlLCB0cmF2ZWwsIGFuZCBzcXVhZCBkZXB0aC4gQW4gYXBwIHRoYXQgc3VwcG9ydHMgdGhvc2UgY2hlY2tzIGZlZWxzIG1vcmUgdXNlZnVsIHRoYW4gb25lIHRoYXQgb25seSBwcmVzZW50cyByYXcgbWFya2V0cy5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSBiZXR0ZXIgbW9iaWxlIGV4cGVyaWVuY2UgaXMgdGhlcmVmb3JlIGNvbnRleHR1YWwuIEl0IGRvZXMgbm90IGp1c3Qgc2hvdyBldmVudHMuIEl0IGhlbHBzIHVzZXJzIHBsYWNlIHRob3NlIGV2ZW50cyBpbnNpZGUgdGhlIGZvb3RiYWxsIGNhbGVuZGFyIHRoZXkgYWN0dWFsbHkgZm9sbG93LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5QcmVkaWN0aW9ucyBhbmQgc3RhdGlzdGljcyBzaG91bGQgc3VwcG9ydCwgbm90IHJlcGxhY2UganVkZ21lbnQ8L3N0cm9uZz5sZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50UHJlZGljdGlvbiBwYWdlcyBhbmQgc3RhdGlzdGljcyB0b29scyBjYW4gYmUgdXNlZnVsLCBidXQgdGhleSBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgYXV0b21hdGljIGFuc3dlcnMuIEZvb3RiYWxsIHJlbWFpbnMgdG9vIHNpdHVhdGlvbmFsIGZvciB0aGF0LiBBIG1vZGVsIG1heSByZWFkIGZvcm0gYW5kIGhpc3RvcmljYWwgcGF0dGVybnMsIGJ1dCBpdCBjYW5ub3QgZnVsbHkgY2FwdHVyZSBldmVyeSB0YWN0aWNhbCBkZWNpc2lvbiBvciBlbW90aW9uYWwgc2hpZnQgaW5zaWRlIGEgbWF0Y2guZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGUgcmlnaHQgdXNlIG9mIHN0YXRpc3RpY3MgaXMgY29tcGFyYXRpdmUuIEEgZmFuIGNhbiBjaGVjayB3aGV0aGVyIGEgdGVhbSB0ZW5kcyB0byBzdGFydCBmYXN0LCBjb25jZWRlIGxhdGUsIHN0cnVnZ2xlIGF3YXksIG9yIHByb2R1Y2UgbG93LXNjb3JpbmcgbWF0Y2hlcy4gVGhvc2UgY2x1ZXMgY2FuIHN1cHBvcnQgYSB2aWV3LCBlc3BlY2lhbGx5IHdoZW4gdGhleSBhcmUgcGFpcmVkIHdpdGggbGluZS11cHMgYW5kIGN1cnJlbnQgZm9ybS5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZSB3cm9uZyB1c2UgaXMgYmxpbmQgY29weWluZy4gQSBwcmVkaWN0aW9uIHdpdGhvdXQgY29udGV4dCBjYW4gYmVjb21lIG1pc2xlYWRpbmcgd2hlbiB0ZWFtIG5ld3MgY2hhbmdlcyBvciBhIG1hdGNoIGRldmVsb3BzIGRpZmZlcmVudGx5IGZyb20gZXhwZWN0YXRpb24uZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIHN0cm9uZyBtb2JpbGUgcm91dGluZSB1c2VzIHN0YXRpc3RpY3MgYXMgb25lIGxheWVyLiBUaGUgdXNlciBjaGVja3MgdGhlIG51bWJlcnMsIHRoZW4gY2hlY2tzIHRoZSBtYXRjaCBzaXR1YXRpb24sIHRoZW4gY2hlY2tzIHdoZXRoZXIgdGhlIG1hcmtldCBzdGlsbCBtYXRjaGVzIHRoZSBpZGVhLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5XaHkgbW9iaWxlIGFwcHMgc3VpdCBpbi1wbGF5IGZvb3RiYWxsIGRlY2lzaW9uczwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb290YmFsbCBpcyBhIGxvdy1zY29yaW5nIHNwb3J0LCBzbyBlYWNoIGV2ZW50IGhhcyB3ZWlnaHQuIEEgZ29hbCBjYW4gcmVzaGFwZSB0aGUgbWF0Y2guIEEgcmVkIGNhcmQgY2FuIGNoYW5nZSB0ZXJyaXRvcnkuIEEgc3Vic3RpdHV0aW9uIGNhbiByZXZlYWwgd2hldGhlciBhIGNvYWNoIGlzIHByb3RlY3RpbmcgYSBsZWFkIG9yIGNoYXNpbmcgdGhlIGdhbWUuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRNb2JpbGUgYXBwcyBzdWl0IHRoaXMgZW52aXJvbm1lbnQgYmVjYXVzZSB0aGV5IGNvbXByZXNzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIG9ic2VydmF0aW9uIGFuZCBhY3Rpb24uIEEgZmFuIGNhbiBmb2xsb3cgdGhlIHNjb3JlLCBvcGVuIHRoZSBtYXJrZXQsIHJldmlldyB0aGUgYmV0IHNsaXAsIGFuZCByZXR1cm4gdG8gdGhlIG1hdGNoIHF1aWNrbHkuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRCdXQgdGhlIHJlYWwgYWR2YW50YWdlIGlzIG5vdCBzaW1wbHkgY29udmVuaWVuY2UuIEl0IGlzIGNvbnRpbnVpdHkuIFRoZSB1c2VyIGNhbiBrZWVwIHRoZSBzYW1lIHRocmVhZCBvZiBhdHRlbnRpb24gYWNyb3NzIGZpeHR1cmVzLCBvZGRzLCBhbmQgbGl2ZSB1cGRhdGVzLmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhhdCBjb250aW51aXR5IGlzIHVzZWZ1bCB3aGVuIHRoZSBmb290YmFsbCB3ZWVrZW5kIGJlY29tZXMgZGVuc2UuIEl0IGFsbG93cyB0aGUgZmFuIHRvIHN0YXkgb3JnYW5pc2VkIHdpdGhvdXQgdHJlYXRpbmcgZXZlcnkgbWFya2V0IG1vdmVtZW50IGFzIHVyZ2VudC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudDxzdHJvbmc+V2hhdCB0byBjaGVjayBiZWZvcmUgcmVseWluZyBvbiBhbiBhcHAgZXZlcnkgd2Vla2VuZDwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBIGZvb3RiYWxsIGFwcCBzaG91bGQgZWFybiBhIHJlZ3VsYXIgcGxhY2UgaW4gdGhlIHVzZXLigJlzIG1hdGNoZGF5IHJvdXRpbmUuIEJlZm9yZSByZWx5aW5nIG9uIG9uZSwgU291dGggQWZyaWNhbiBmYW5zIHNob3VsZCBhc2sgcHJhY3RpY2FsIHF1ZXN0aW9uczpkcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzb3JkZXJlZHZhbHVlc2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50RG9lcyB0aGUgYXBwIG1ha2UgbG9jYWwgYW5kIGludGVybmF0aW9uYWwgZm9vdGJhbGwgZWFzeSB0byBmaW5kP2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXJlIGxpdmUgc2NvcmVzIGFuZCBtYXJrZXRzIGVhc3kgdG8gZm9sbG93IG9uIGEgc21hbGwgc2NyZWVuP2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50Q2FuIHRoZSB1c2VyIG1vdmUgYmV0d2VlbiBmaXh0dXJlcyB3aXRob3V0IGxvc2luZyB0aGUgYmV0IHNsaXA\/aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRBcmUgc3RhdGlzdGljcyBwcmVzZW50ZWQgY2xlYXJseSBlbm91Z2ggdG8gc3VwcG9ydCBkZWNpc2lvbnM\/aW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnREb2VzIHRoZSBhcHAgc3RheSByZWFkYWJsZSBkdXJpbmcgYnVzeSBtYXRjaCBwZXJpb2RzP2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50QXJlIGtleSBmb290YmFsbCBtYXJrZXRzIGdyb3VwZWQgaW4gYSBsb2dpY2FsIHdheT9pbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudERvZXMgdGhlIGV4cGVyaWVuY2UgaGVscCB0aGUgdXNlciBzbG93IGRvd24gd2hlbiB0aGUgbWF0Y2ggYmVjb21lcyBjaGFvdGljP2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50VGhlc2UgY2hlY2tzIGFyZSBzaW1wbGUsIGJ1dCB0aGV5IHJldmVhbCB3aGV0aGVyIHRoZSBhcHAgaXMgZGVzaWduZWQgYXJvdW5kIGZvb3RiYWxsIGJlaGF2aW91ciBvciBqdXN0IGFyb3VuZCBhY2NvdW50IGFjdGl2aXR5LmRyb3BDYXBwbGFjZWhvbGRlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50PHN0cm9uZz5GaW5hbCB0aG91Z2h0czwvc3Ryb25nPmxldmVsaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRNb2JpbGUgYXBwcyBoYXZlIGJlY29tZSBwYXJ0IG9mIGZvb3RiYWxsIHZpZXdpbmcgYmVjYXVzZSB0aGV5IG1hdGNoIHRoZSB3YXkgZmFucyBmb2xsb3cgdGhlIG1vZGVybiBnYW1lLiBGaXh0dXJlcyBhcmUgY3Jvd2RlZCwgaW5mb3JtYXRpb24gY2hhbmdlcyBxdWlja2x5LCBhbmQgb2RkcyBhcmUgbW9zdCB1c2VmdWwgd2hlbiB0aGV5IHNpdCBjbG9zZSB0byBsaXZlIGNvbnRleHQuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3IgU291dGggQWZyaWNhbiBmb290YmFsbCBmYW5zLCB0aGUgc3Ryb25nZXN0IGFwcCBleHBlcmllbmNlIGlzIG5vdCBhYm91dCBjb25zdGFudCBhY3Rpb24uIEl0IGlzIGFib3V0IHN0cnVjdHVyZS4gVGhlIGFwcCBzaG91bGQgaGVscCB1c2VycyByZWFkIGZpeHR1cmVzLCBmb2xsb3cgbGl2ZSBtb21lbnRzLCBjb21wYXJlIG1hcmtldHMsIGFuZCBrZWVwIGRlY2lzaW9ucyBjb25uZWN0ZWQgdG8gdGhlIGFjdHVhbCBtYXRjaC5kcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudFdoZW4gYW4gYXBwIGRvZXMgdGhhdCB3ZWxsLCBpdCBiZWNvbWVzIG1vcmUgdGhhbiBhIHNob3J0Y3V0LiBJdCBiZWNvbWVzIHBhcnQgb2YgdGhlIGZvb3RiYWxsIHJvdXRpbmUuZHJvcENhcHBsYWNlaG9sZGVyaW5uZXJCbG9ja3Nkb2N1bWVudHNsdWdjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwcGxhY2Vob2xkZXJpbm5lckJsb2Nrc2FsdGNhcHRpb251cmxzaXplU2x1ZzwhLS0gd3A6aW1hZ2UgeyJzaXplU2x1ZyI6ImxhcmdlIn0gLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3d3dy5mb290eW1pbmQuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDcvaW1hZ2UtNy5wbmciIGFsdD0iIi8+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlNvdXRoIEFmcmljYW4gZm9vdGJhbGwgd2Vla2VuZHMgcmFyZWx5IG1vdmUgaW4gYSBzdHJhaWdodCBsaW5lLiBBIGZhbiBtYXkgc3RhcnQgd2l0aCBsb2NhbCBsZWFndWUgZml4dHVyZXMsIGtlZXAgYW4gZXllIG9uIENBRiBjb21wZXRpdGlvbnMsIGZvbGxvdyBFbmdsaXNoIGZvb3RiYWxsIGluIHRoZSBldmVuaW5nLCBhbmQgc3RpbGwgY2hlY2sgbGF0ZSB0ZWFtIG5ld3MgYmVmb3JlIGtpY2stb2ZmLiBUaGF0IHBhdHRlcm4gZXhwbGFpbnMgd2h5IG1vYmlsZSBhcHBzIGhhdmUgYmVjb21lIHBhcnQgb2YgdGhlIHdheSBtYW55IHN1cHBvcnRlcnMgb3JnYW5pc2UgdGhlaXIgbWF0Y2hkYXkgYXR0ZW50aW9uLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZvciB1c2VycyBjb21wYXJpbmcgdG9vbHMgYXJvdW5kIGZpeHR1cmVzLCBvZGRzLCBhbmQgbGl2ZSBtYXJrZXRzLCA8YSBocmVmPSJodHRwczovL3d3dy50ZWxlY29tYXNpYS5uZXQvemEvc3BvcnRzLWJldHRpbmcvcmV2aWV3cy95ZXNwbGF5L2xvZ2luLyI+PHN0cm9uZz55ZXNwbGF5IGxvZ2luPC9zdHJvbmc+PC9hPiBpcyBvZnRlbiB0aGUgZmlyc3Qgc3RlcCBiZWZvcmUgZm9sbG93aW5nIG1hdGNoZXMsIGNoZWNraW5nIGF2YWlsYWJsZSBtYXJrZXRzLCBhbmQgbWFuYWdpbmcgYmV0cyBpbiBvbmUgcGxhY2UuIFRoZSByZWFsIHZhbHVlLCBob3dldmVyLCBnb2VzIGJleW9uZCBhY2Nlc3MuIEl0IGlzIHRoZSBhYmlsaXR5IHRvIG1vdmUgZnJvbSBzY2hlZHVsZSB0byBjb250ZXh0LCBmcm9tIGNvbnRleHQgdG8gbWFya2V0LCBhbmQgZnJvbSBtYXJrZXQgdG8gZGVjaXNpb24gd2l0aG91dCBsb3NpbmcgdGhlIHRocmVhZCBvZiB0aGUgZ2FtZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgbW9zdCB1c2VmdWwgYXBwIGV4cGVyaWVuY2UgZm9yIFNvdXRoIEFmcmljYW4gZm9vdGJhbGwgZm9sbG93ZXJzIGlzIG5vdCB0aGUgb25lIHdpdGggdGhlIGxvdWRlc3QgaW50ZXJmYWNlLiBJdCBpcyB0aGUgb25lIHRoYXQga2VlcHMgbWF0Y2ggaW5mb3JtYXRpb24gcmVhZGFibGUgd2hlbiB0aGUgU2F0dXJkYXkgY2FsZW5kYXIgZ2V0cyBjcm93ZGVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+Rm9vdGJhbGwgYXBwcyB0dXJuIHNjYXR0ZXJlZCBmaXh0dXJlcyBpbnRvIG9uZSBtYXRjaGRheSBzY3JlZW48L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZvb3RiYWxsIGZhbnMgaW4gU291dGggQWZyaWNhIG9mdGVuIGZvbGxvdyBzZXZlcmFsIGxheWVycyBvZiB0aGUgZ2FtZSBhdCBvbmNlLiBEb21lc3RpYyBmb290YmFsbCBoYXMgaXRzIG93biByaHl0aG0sIGJ1dCBpbnRlcm5hdGlvbmFsIGxlYWd1ZXMsIEFmcmljYW4gY2x1YiBjb21wZXRpdGlvbnMsIGFuZCBuYXRpb25hbC10ZWFtIGZpeHR1cmVzIGFsbCBjb21wZXRlIGZvciBhdHRlbnRpb24uIEEgbW9iaWxlIGFwcCBiZWNvbWVzIHVzZWZ1bCB3aGVuIGl0IHJlZHVjZXMgdGhhdCBub2lzZSBpbnRvIGEgY2xlYXIgc2VxdWVuY2UuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGZpcnN0IGxheWVyIGlzIHRoZSBmaXh0dXJlIGxpc3QuIEEgZ29vZCBhcHAgc2hvdWxkIG1ha2UgaXQgZWFzeSB0byBzZWUgdG9kYXnigJlzIG1hdGNoZXMsIHN0YXJ0IHRpbWVzLCBsZWFndWUgbmFtZXMsIGFuZCB3aGV0aGVyIGEgZ2FtZSBpcyBwcmUtbWF0Y2ggb3IgbGl2ZS4gVGhpcyBzb3VuZHMgYmFzaWMsIGJ1dCBpdCBtYXR0ZXJzIHdoZW4gc2V2ZXJhbCBmaXh0dXJlcyBvdmVybGFwLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBzZWNvbmQgbGF5ZXIgaXMgY29udGV4dC4gRmFucyBkbyBub3Qgb25seSB3YW50IHRvIGtub3cgdGhhdCBhIG1hdGNoIGlzIGhhcHBlbmluZy4gVGhleSB3YW50IHRvIGtub3cgd2hldGhlciBhIHRlYW0gaXMgaW4gZm9ybSwgd2hldGhlciB0aGUgdGFibGUgcG9zaXRpb24gbWF0dGVycywgYW5kIHdoZXRoZXIgdGhlIGZpeHR1cmUgaGFzIHVudXN1YWwgcHJlc3N1cmUgYXR0YWNoZWQgdG8gaXQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIHRoaXJkIGxheWVyIGlzIHRpbWluZy4gSW4gZm9vdGJhbGwsIGluZm9ybWF0aW9uIGhhcyBhIHNob3J0IHNoZWxmIGxpZmUuIEEgbGluZS11cCwgcmVkIGNhcmQsIGluanVyeSwgd2VhdGhlciBkZWxheSwgb3IgdGFjdGljYWwgc2hpZnQgY2FuIGNoYW5nZSBob3cgYSBmYW4gcmVhZHMgdGhlIGdhbWUuIE1vYmlsZSBhcHBzIGFyZSB1c2VmdWwgYmVjYXVzZSB0aGV5IHBsYWNlIHRoYXQgY2hhbmdpbmcgY29udGV4dCBjbG9zZXIgdG8gdGhlIHVzZXLigJlzIGRlY2lzaW9uIHBvaW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+V2h5IG9kZHMgYW5kIGZpeHR1cmVzIGJlbG9uZyB0b2dldGhlcjwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+T2RkcyBtYWtlIG1vcmUgc2Vuc2Ugd2hlbiB0aGV5IGFyZSBwbGFjZWQgbmV4dCB0byBtYXRjaCBjb250ZXh0LiBBIHByaWNlIHdpdGhvdXQgY29udGV4dCBjYW4gdGVtcHQgdXNlcnMgaW50byBzaGFsbG93IGNvbXBhcmlzb24uIEEgZml4dHVyZSBzY3JlZW4gd2l0aCBmb3JtLCB0aW1pbmcsIGFuZCBtYXJrZXQgbW92ZW1lbnQgZ2l2ZXMgdGhlIHVzZXIgYSBiZXR0ZXIgZnJhbWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+Rm9yIGV4YW1wbGUsIGEgZmFuIGNoZWNraW5nIGEgU2F0dXJkYXkgZXZlbmluZyBtYXRjaCBtYXkgd2FudCB0byBjb21wYXJlIHRoZSBob21lLXdpbiBtYXJrZXQgd2l0aCByZWNlbnQgZm9ybSBhbmQgc3F1YWQgbmV3cy4gVGhlIG9kZHMgYWxvbmUgc2F5IHdoYXQgdGhlIG1hcmtldCBjdXJyZW50bHkgdGhpbmtzLiBUaGUgZml4dHVyZSBjb250ZXh0IGhlbHBzIGV4cGxhaW4gd2h5IHRoYXQgbnVtYmVyIG1heSBoYXZlIG1vdmVkLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgaW4gZm9vdGJhbGwgYmVjYXVzZSBwcmUtbWF0Y2ggYXNzdW1wdGlvbnMgY2FuIGJlIGZyYWdpbGUuIEEgZmF2b3VyaXRlIGNhbiByb3RhdGUgcGxheWVycy4gQSBsb3dlci1yYW5rZWQgc2lkZSBjYW4gc2l0IGRlZXAgYW5kIHJlZHVjZSBzcGFjZS4gQSBkZXJieSBjYW4gcHJvZHVjZSBhIHRlbXBvIHRoYXQgZG9lcyBub3QgbWF0Y2ggdGhlIHRhYmxlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk1vYmlsZSBhcHBzIGhlbHAgYnkga2VlcGluZyB0aG9zZSBjbHVlcyBpbiBvbmUgcGxhY2UuIFRoZSB1c2VyIGNhbiBtb3ZlIGZyb20gZml4dHVyZSBsaXN0IHRvIG1hcmtldHMsIHRoZW4gYmFjayB0byBtYXRjaCBpbmZvcm1hdGlvbiwgd2l0aG91dCBzdGFydGluZyB0aGUgcmVzZWFyY2ggcHJvY2VzcyBhZ2Fpbi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPkxpdmUgbWFya2V0cyByZXdhcmQgdGltaW5nLCBidXQgcHVuaXNoIHBvb3IgYXR0ZW50aW9uPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5MaXZlIGJldHRpbmcgaXMgd2hlcmUgdGhlIG1vYmlsZSBmb3JtYXQgYmVjb21lcyBtb3N0IHZpc2libGUuIE9kZHMgY2FuIHNoaWZ0IGFmdGVyIGdvYWxzLCBzdWJzdGl0dXRpb25zLCBjYXJkcywgcHJlc3N1cmUgc3BlbGxzLCBhbmQgdGFjdGljYWwgY2hhbmdlcy4gVGhlIGZhbiBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGNhbG0gd2luZG93IHRoYXQgZXhpc3RzIGJlZm9yZSBraWNrLW9mZi48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIGRvZXMgbm90IG1lYW4gZmFzdGVyIGlzIGFsd2F5cyBiZXR0ZXIuIFNwZWVkIHdpdGhvdXQgYXR0ZW50aW9uIGNhbiBsZWFkIHRvIHBvb3IgY2hvaWNlcy4gQSBiZXR0b3IgbWF5IHNlZSBhIHByaWNlIG1vdmUgYW5kIHJlYWN0IGJlZm9yZSB1bmRlcnN0YW5kaW5nIHdoeSBpdCBtb3ZlZC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5BIGJldHRlciBhcHByb2FjaCBpcyB0byB1c2UgdGhlIGFwcCBhcyBhIHJlYWRpbmcgdG9vbCBmaXJzdC4gV2F0Y2ggdGhlIG1hdGNoIHN0YXRlLiBDaGVjayB0aGUgY2xvY2suIExvb2sgYXQgdGhlIG1vbWVudHVtLiBUaGVuIGNvbXBhcmUgdGhlIG1hcmtldC4gVGhlIGJldCBzbGlwIHNob3VsZCBiZSB0aGUgbGFzdCBzdGVwLCBub3QgdGhlIHN0YXJ0aW5nIHBvaW50LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZvciBTb3V0aCBBZnJpY2FuIGZvb3RiYWxsIGZhbnMgd2hvIGZvbGxvdyBtdWx0aXBsZSBtYXRjaGVzIGF0IG9uY2UsIHRoaXMgZGlzY2lwbGluZSBtYXR0ZXJzLiBBIGdvYWwgaW4gb25lIGZpeHR1cmUsIGEgcmVkIGNhcmQgaW4gYW5vdGhlciwgYW5kIHRlYW0gbmV3cyBmcm9tIGEgbGF0ZXIgbWF0Y2ggY2FuIGFsbCBhcHBlYXIgb24gdGhlIHNhbWUgc2NyZWVuLiBUaGUgYXBwIHNob3VsZCBoZWxwIHNlcGFyYXRlIHNpZ25hbHMgZnJvbSBub2lzZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPldoYXQgYXBwIGZlYXR1cmVzIG1hdHRlciBkdXJpbmcgYSBmb290YmFsbCB3ZWVrZW5kPzwvc3Ryb25nPjwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIG1vc3QgdXNlZnVsIGZlYXR1cmVzIGFyZSBub3QgYWx3YXlzIHRoZSBtb3N0IGNvbXBsaWNhdGVkLiBUaGV5IGFyZSB0aGUgb25lcyB0aGF0IG1hdGNoIGhvdyBmYW5zIGFjdHVhbGx5IGZvbGxvdyB0aGUgc3BvcnQuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnRhYmxlIC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay10YWJsZSI+PHRhYmxlIGNsYXNzPSJoYXMtZml4ZWQtbGF5b3V0Ij48dGJvZHk+PHRyPjx0ZD48c3Ryb25nPkFwcCBmZWF0dXJlPC9zdHJvbmc+PC90ZD48dGQ+PHN0cm9uZz5XaHkgaXQgbWF0dGVycyBmb3IgZm9vdGJhbGwgZmFuczwvc3Ryb25nPjwvdGQ+PHRkPjxzdHJvbmc+TWF0Y2hkYXkgdXNlIGNhc2U8L3N0cm9uZz48L3RkPjwvdHI+PHRyPjx0ZD5DbGVhciBmaXh0dXJlIGNhbGVuZGFyPC90ZD48dGQ+SGVscHMgb3JnYW5pc2Ugb3ZlcmxhcHBpbmcgZ2FtZXM8L3RkPjx0ZD5DaGVja2luZyBsb2NhbCBhbmQgaW50ZXJuYXRpb25hbCBraWNrLW9mZiB0aW1lczwvdGQ+PC90cj48dHI+PHRkPkxpdmUgc2NvcmUgdXBkYXRlczwvdGQ+PHRkPlNob3dzIHRoZSBtYXRjaCBzdGF0ZSB3aXRob3V0IHN3aXRjaGluZyBhcHBzPC90ZD48dGQ+Rm9sbG93aW5nIHR3byBnYW1lcyBhdCBvbmNlPC90ZD48L3RyPjx0cj48dGQ+TWFya2V0IGdyb3VwaW5nPC90ZD48dGQ+UmVkdWNlcyB0aW1lIHNwZW50IHNlYXJjaGluZzwvdGQ+PHRkPk1vdmluZyBmcm9tIG1hdGNoIHJlc3VsdCB0byBnb2FscyBtYXJrZXRzPC90ZD48L3RyPjx0cj48dGQ+Rm9ybSBhbmQgc3RhdGlzdGljcyBwYW5lbHM8L3RkPjx0ZD5BZGRzIGNvbnRleHQgYmVmb3JlIGNvbXBhcmluZyBvZGRzPC90ZD48dGQ+Q2hlY2tpbmcgcmVjZW50IHNjb3Jpbmcgb3IgZGVmZW5zaXZlIHRyZW5kczwvdGQ+PC90cj48dHI+PHRkPkxpbmUtdXAgaW5mb3JtYXRpb248L3RkPjx0ZD5DaGFuZ2VzIHByZS1tYXRjaCBhc3N1bXB0aW9uczwvdGQ+PHRkPlJlYXNzZXNzaW5nIGEgZmF2b3VyaXRlIGFmdGVyIHJvdGF0aW9uPC90ZD48L3RyPjx0cj48dGQ+QmV0IHNsaXAgY2xhcml0eTwvdGQ+PHRkPlByZXZlbnRzIGNvbmZ1c2lvbiBiZWZvcmUgY29uZmlybWF0aW9uPC90ZD48dGQ+UmV2aWV3aW5nIHNlbGVjdGlvbnMgYW5kIHN0YWtlIGJlZm9yZSBwbGFjaW5nPC90ZD48L3RyPjx0cj48dGQ+RmFzdCBuYXZpZ2F0aW9uPC90ZD48dGQ+S2VlcHMgdGhlIHVzZXIgY2xvc2UgdG8gbGl2ZSBldmVudHM8L3RkPjx0ZD5Td2l0Y2hpbmcgYmV0d2VlbiBmaXh0dXJlcyBkdXJpbmcgYnVzeSBwZXJpb2RzPC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2ZpZ3VyZT4KPCEtLSAvd3A6dGFibGUgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIHRhYmxlIHNob3dzIGEgc2ltcGxlIHBvaW50OiBhIGZvb3RiYWxsIGFwcCBzaG91bGQgc2VydmUgdGhlIG1hdGNoLCBub3QgZGlzdHJhY3QgZnJvbSBpdC4gRmVhdHVyZXMgaGF2ZSB2YWx1ZSB3aGVuIHRoZXkgbWFrZSB0aGUgdXNlcuKAmXMgcmVhZGluZyBvZiB0aGUgZ2FtZSBjbGVhcmVyLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+U291dGggQWZyaWNhbiBmYW5zIG5lZWQgbG9jYWwgcmh5dGhtLCBub3QgZ2VuZXJpYyBkZXNpZ248L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkFuIGFwcCBidWlsdCBvbmx5IGFyb3VuZCBnbG9iYWwgZm9vdGJhbGwgY2FuIGZlZWwgaW5jb21wbGV0ZSBmb3IgU291dGggQWZyaWNhbiB1c2Vycy4gTG9jYWwgc3VwcG9ydGVycyBtYXkgd2FudCBkb21lc3RpYyBmaXh0dXJlcyB0byBzaXQgYWxvbmdzaWRlIEV1cm9wZWFuIGFuZCBBZnJpY2FuIGNvbXBldGl0aW9ucy4gVGhleSBtYXkgYWxzbyB3YW50IGNvbnZlbmllbnQgbW9iaWxlIHVzZSBkdXJpbmcgZXZlbmluZyBraWNrLW9mZnMsIHRyYXZlbCwgd29yayBicmVha3MsIG9yIHdlZWtlbmQgc29jaWFsIHNldHRpbmdzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSBsb2NhbCByaHl0aG0gYWZmZWN0cyBob3cgcGVvcGxlIG1vdmUgdGhyb3VnaCB0aGUgYXBwLiBBIHVzZXIgbWF5IGNoZWNrIGRvbWVzdGljIGZvb3RiYWxsIGZpcnN0LCB0aGVuIGp1bXAgdG8gUHJlbWllciBMZWFndWUgbWFya2V0cywgdGhlbiByZXR1cm4gdG8gYSBsb2NhbCBtYXRjaCB3aGVuIGl0IGdvZXMgbGl2ZS4gVGhlIGFwcCBuZWVkcyB0byBtYWtlIHRoYXQgbW92ZW1lbnQgc2ltcGxlLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXJlIGlzIGFsc28gYSBsYW5ndWFnZSBvZiBoYWJpdC4gU291dGggQWZyaWNhbiBmYW5zIG9mdGVuIGRpc2N1c3MgZm9vdGJhbGwgdGhyb3VnaCBmb3JtLCBjb2FjaGluZyBjaGFuZ2VzLCBkZXJieSBwcmVzc3VyZSwgdHJhdmVsLCBhbmQgc3F1YWQgZGVwdGguIEFuIGFwcCB0aGF0IHN1cHBvcnRzIHRob3NlIGNoZWNrcyBmZWVscyBtb3JlIHVzZWZ1bCB0aGFuIG9uZSB0aGF0IG9ubHkgcHJlc2VudHMgcmF3IG1hcmtldHMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlIGJldHRlciBtb2JpbGUgZXhwZXJpZW5jZSBpcyB0aGVyZWZvcmUgY29udGV4dHVhbC4gSXQgZG9lcyBub3QganVzdCBzaG93IGV2ZW50cy4gSXQgaGVscHMgdXNlcnMgcGxhY2UgdGhvc2UgZXZlbnRzIGluc2lkZSB0aGUgZm9vdGJhbGwgY2FsZW5kYXIgdGhleSBhY3R1YWxseSBmb2xsb3cuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmhlYWRpbmcgLS0+CjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+PHN0cm9uZz5QcmVkaWN0aW9ucyBhbmQgc3RhdGlzdGljcyBzaG91bGQgc3VwcG9ydCwgbm90IHJlcGxhY2UganVkZ21lbnQ8L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlByZWRpY3Rpb24gcGFnZXMgYW5kIHN0YXRpc3RpY3MgdG9vbHMgY2FuIGJlIHVzZWZ1bCwgYnV0IHRoZXkgc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFzIGF1dG9tYXRpYyBhbnN3ZXJzLiBGb290YmFsbCByZW1haW5zIHRvbyBzaXR1YXRpb25hbCBmb3IgdGhhdC4gQSBtb2RlbCBtYXkgcmVhZCBmb3JtIGFuZCBoaXN0b3JpY2FsIHBhdHRlcm5zLCBidXQgaXQgY2Fubm90IGZ1bGx5IGNhcHR1cmUgZXZlcnkgdGFjdGljYWwgZGVjaXNpb24gb3IgZW1vdGlvbmFsIHNoaWZ0IGluc2lkZSBhIG1hdGNoLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSByaWdodCB1c2Ugb2Ygc3RhdGlzdGljcyBpcyBjb21wYXJhdGl2ZS4gQSBmYW4gY2FuIGNoZWNrIHdoZXRoZXIgYSB0ZWFtIHRlbmRzIHRvIHN0YXJ0IGZhc3QsIGNvbmNlZGUgbGF0ZSwgc3RydWdnbGUgYXdheSwgb3IgcHJvZHVjZSBsb3ctc2NvcmluZyBtYXRjaGVzLiBUaG9zZSBjbHVlcyBjYW4gc3VwcG9ydCBhIHZpZXcsIGVzcGVjaWFsbHkgd2hlbiB0aGV5IGFyZSBwYWlyZWQgd2l0aCBsaW5lLXVwcyBhbmQgY3VycmVudCBmb3JtLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZSB3cm9uZyB1c2UgaXMgYmxpbmQgY29weWluZy4gQSBwcmVkaWN0aW9uIHdpdGhvdXQgY29udGV4dCBjYW4gYmVjb21lIG1pc2xlYWRpbmcgd2hlbiB0ZWFtIG5ld3MgY2hhbmdlcyBvciBhIG1hdGNoIGRldmVsb3BzIGRpZmZlcmVudGx5IGZyb20gZXhwZWN0YXRpb24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSBzdHJvbmcgbW9iaWxlIHJvdXRpbmUgdXNlcyBzdGF0aXN0aWNzIGFzIG9uZSBsYXllci4gVGhlIHVzZXIgY2hlY2tzIHRoZSBudW1iZXJzLCB0aGVuIGNoZWNrcyB0aGUgbWF0Y2ggc2l0dWF0aW9uLCB0aGVuIGNoZWNrcyB3aGV0aGVyIHRoZSBtYXJrZXQgc3RpbGwgbWF0Y2hlcyB0aGUgaWRlYS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPldoeSBtb2JpbGUgYXBwcyBzdWl0IGluLXBsYXkgZm9vdGJhbGwgZGVjaXNpb25zPC9zdHJvbmc+PC9oMj4KPCEtLSAvd3A6aGVhZGluZyAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Gb290YmFsbCBpcyBhIGxvdy1zY29yaW5nIHNwb3J0LCBzbyBlYWNoIGV2ZW50IGhhcyB3ZWlnaHQuIEEgZ29hbCBjYW4gcmVzaGFwZSB0aGUgbWF0Y2guIEEgcmVkIGNhcmQgY2FuIGNoYW5nZSB0ZXJyaXRvcnkuIEEgc3Vic3RpdHV0aW9uIGNhbiByZXZlYWwgd2hldGhlciBhIGNvYWNoIGlzIHByb3RlY3RpbmcgYSBsZWFkIG9yIGNoYXNpbmcgdGhlIGdhbWUuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+TW9iaWxlIGFwcHMgc3VpdCB0aGlzIGVudmlyb25tZW50IGJlY2F1c2UgdGhleSBjb21wcmVzcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBvYnNlcnZhdGlvbiBhbmQgYWN0aW9uLiBBIGZhbiBjYW4gZm9sbG93IHRoZSBzY29yZSwgb3BlbiB0aGUgbWFya2V0LCByZXZpZXcgdGhlIGJldCBzbGlwLCBhbmQgcmV0dXJuIHRvIHRoZSBtYXRjaCBxdWlja2x5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkJ1dCB0aGUgcmVhbCBhZHZhbnRhZ2UgaXMgbm90IHNpbXBseSBjb252ZW5pZW5jZS4gSXQgaXMgY29udGludWl0eS4gVGhlIHVzZXIgY2FuIGtlZXAgdGhlIHNhbWUgdGhyZWFkIG9mIGF0dGVudGlvbiBhY3Jvc3MgZml4dHVyZXMsIG9kZHMsIGFuZCBsaXZlIHVwZGF0ZXMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhhdCBjb250aW51aXR5IGlzIHVzZWZ1bCB3aGVuIHRoZSBmb290YmFsbCB3ZWVrZW5kIGJlY29tZXMgZGVuc2UuIEl0IGFsbG93cyB0aGUgZmFuIHRvIHN0YXkgb3JnYW5pc2VkIHdpdGhvdXQgdHJlYXRpbmcgZXZlcnkgbWFya2V0IG1vdmVtZW50IGFzIHVyZ2VudC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj48c3Ryb25nPldoYXQgdG8gY2hlY2sgYmVmb3JlIHJlbHlpbmcgb24gYW4gYXBwIGV2ZXJ5IHdlZWtlbmQ8L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkEgZm9vdGJhbGwgYXBwIHNob3VsZCBlYXJuIGEgcmVndWxhciBwbGFjZSBpbiB0aGUgdXNlcuKAmXMgbWF0Y2hkYXkgcm91dGluZS4gQmVmb3JlIHJlbHlpbmcgb24gb25lLCBTb3V0aCBBZnJpY2FuIGZhbnMgc2hvdWxkIGFzayBwcmFjdGljYWwgcXVlc3Rpb25zOjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpsaXN0IHsib3JkZXJlZCI6dHJ1ZX0gLS0+CjxvbCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5Eb2VzIHRoZSBhcHAgbWFrZSBsb2NhbCBhbmQgaW50ZXJuYXRpb25hbCBmb290YmFsbCBlYXN5IHRvIGZpbmQ\/PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BcmUgbGl2ZSBzY29yZXMgYW5kIG1hcmtldHMgZWFzeSB0byBmb2xsb3cgb24gYSBzbWFsbCBzY3JlZW4\/PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5DYW4gdGhlIHVzZXIgbW92ZSBiZXR3ZWVuIGZpeHR1cmVzIHdpdGhvdXQgbG9zaW5nIHRoZSBiZXQgc2xpcD88L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkFyZSBzdGF0aXN0aWNzIHByZXNlbnRlZCBjbGVhcmx5IGVub3VnaCB0byBzdXBwb3J0IGRlY2lzaW9ucz88L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkRvZXMgdGhlIGFwcCBzdGF5IHJlYWRhYmxlIGR1cmluZyBidXN5IG1hdGNoIHBlcmlvZHM\/PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BcmUga2V5IGZvb3RiYWxsIG1hcmtldHMgZ3JvdXBlZCBpbiBhIGxvZ2ljYWwgd2F5PzwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RG9lcyB0aGUgZXhwZXJpZW5jZSBoZWxwIHRoZSB1c2VyIHNsb3cgZG93biB3aGVuIHRoZSBtYXRjaCBiZWNvbWVzIGNoYW90aWM\/PC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvb2w+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlc2UgY2hlY2tzIGFyZSBzaW1wbGUsIGJ1dCB0aGV5IHJldmVhbCB3aGV0aGVyIHRoZSBhcHAgaXMgZGVzaWduZWQgYXJvdW5kIGZvb3RiYWxsIGJlaGF2aW91ciBvciBqdXN0IGFyb3VuZCBhY2NvdW50IGFjdGl2aXR5LjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPjxzdHJvbmc+RmluYWwgdGhvdWdodHM8L3N0cm9uZz48L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk1vYmlsZSBhcHBzIGhhdmUgYmVjb21lIHBhcnQgb2YgZm9vdGJhbGwgdmlld2luZyBiZWNhdXNlIHRoZXkgbWF0Y2ggdGhlIHdheSBmYW5zIGZvbGxvdyB0aGUgbW9kZXJuIGdhbWUuIEZpeHR1cmVzIGFyZSBjcm93ZGVkLCBpbmZvcm1hdGlvbiBjaGFuZ2VzIHF1aWNrbHksIGFuZCBvZGRzIGFyZSBtb3N0IHVzZWZ1bCB3aGVuIHRoZXkgc2l0IGNsb3NlIHRvIGxpdmUgY29udGV4dC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Gb3IgU291dGggQWZyaWNhbiBmb290YmFsbCBmYW5zLCB0aGUgc3Ryb25nZXN0IGFwcCBleHBlcmllbmNlIGlzIG5vdCBhYm91dCBjb25zdGFudCBhY3Rpb24uIEl0IGlzIGFib3V0IHN0cnVjdHVyZS4gVGhlIGFwcCBzaG91bGQgaGVscCB1c2VycyByZWFkIGZpeHR1cmVzLCBmb2xsb3cgbGl2ZSBtb21lbnRzLCBjb21wYXJlIG1hcmtldHMsIGFuZCBrZWVwIGRlY2lzaW9ucyBjb25uZWN0ZWQgdG8gdGhlIGFjdHVhbCBtYXRjaC48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5XaGVuIGFuIGFwcCBkb2VzIHRoYXQgd2VsbCwgaXQgYmVjb21lcyBtb3JlIHRoYW4gYSBzaG9ydGN1dC4gSXQgYmVjb21lcyBwYXJ0IG9mIHRoZSBmb290YmFsbCByb3V0aW5lLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPnN0YXRldmVyc2lvbnN0YXRlc2F2ZWRBdHN0YXRlc2F2ZWRCeQUHCAQIBggFCAcIBwgGCA4IDggLCAZIAQYIBAkICggECAaTAQgHBAoHmQUHSwAIBwQKB54HB0sACAcECgeLAwdLAAgHBAoHjwEFCwgHBAoHrgQHSwAIBwQKB6ADB0sACAcECgejAwdLAAgHBAoHkwQHSwAIBwQKBzYFCwgHBAoHmAMHSwAIBwQKB7QDB0sACAcECgekAwdLAAgHBAoHsgIHSwAIBwQKB4YBBQsIBwQKB54DB0sACAcECgeoAgdLAAgHBAoHkQMHSwAIBwQKB4AEB0sACAcECgeEAQULCAcECge+AQdLAAgHBAoOB0QABQMHHEcABQMHMUcABQMHIkcARQADBxZHAAUDByBHAAUDBy9HAEUAAwcSRwAFAwcsRwAFAwcbRwBFAAMHD0cABQMHHEcABQMHKUcARQADBxpHAAUDByJHAAUDBytHAEUAAwcTRwAFAwcdRwAFAwcmRwBFAAMHEEcABQMHJkcABQMHLUcARQADBw9HAAUDByNHAAUDBy5HAAUECwgHBAoHpwIHSwAIBwQKB4kBBQsIBwQKB6kEB0sACAcECgekAwdLAAgHBAoHsgMHSwAIBwQKB6gCB0sACAcECgeQAQULCAcECgeaBAdLAAgHBAoHvAMHSwAIBwQKB5sCB0sACAcECgeqAgdLAAgHBAoHgAEFCwgHBAoHjQMHSwAIBwQKB4cDB0sACAcECgebAgdLAAgHBAoHmAIHSwAIBwQKB4UBBQsIBwQKB5QCB0sACAcECgcGCwgHBAoHgAELCAcECgc9CwgHBAoHPwsIBwQKBz0LCAcECgc1CwgHBAoHMgsIBwQKB4sBCwgHBAoHvwEHSwAIBwQKBx8FCwgHBAoHmQMHSwAIBwQKB7MDB0sACAcECgelAQdLAAgECAcECkcASwADBwMIkcgBBQcFBwUHDgENAAABAgDfBAEAAAwBmgJCAQEAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAJAAAEAAQIBAgECAQABAgECAQIBAAECAQIBAgEAAQIBAgECAQABAgECAQIBAAECAQIBAgEAAQIBAgECAQABAgECAQJAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAgBBAAIAQQACAEEAAAIGQdgCEUESAs8FAH0BfQF9AHcEb3BlbncEb3Blbnl3AHcIc3RhbmRhcmR3AHUAdyRjMzI2NDA3Zi04MTkwLTRjOWQtOTcwMS03Y2VhMDIxZTlkNWJ4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNGFjZjExMTAtYTVkNC00MmI2LWI1MzgtY2I5ZmMwNTJkMDRieHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDU5MmRjNDYyLTEyNzktNGExMS04NDQwLTczYzlhODY0MzQ0Ynh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQzYTIwMzJkYy0yZDVkLTRhZmMtYjIwNy0xNmZhM2VjODgzOTR4dwxjb3JlL2hlYWRpbmd9AnckM2IzNGI5YTAtZjFhZS00MGNmLTk1MzUtMTJjZmJiNzRlY2M2eHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JGI4N2I3MzdkLTkzZjAtNDI2My04NDhhLWYwNzliNjFmYjgwM3h3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyRmMWNmYjEyNi0yMmFmLTQ2YTktYTk4Yi01NGM5MWIyOWQyNzl4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNGMwNDE3MmUtOWE1Mi00MTJjLTkzN2ItYzRjMTI1NzJhZWVmeHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDI3MTA4ZDA4LTMzMjctNDU3Yi04MTVhLTg3Yjg3NDdkMTQxM3h3DGNvcmUvaGVhZGluZ30CdyQwMTY2MTBhYS03MDk3LTQ3YmMtOTM3ZC00NDYyMmM4MDdjNDl4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNzVkNjM3N2UtOTEzYS00NDEyLTgxOTItMzUyMWMyNzk2ZmYzeHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JGU0MGI2ZjE4LThhYTEtNGIyYi1iOWMxLTBjOGNkOTI1YzliY3h3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQ0NmJjMGI2Zi1iMDFlLTQ0ZDEtYjNhMC1jMDkwYjg5YWViZjF4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckZTQ0YzQxYzItZTVmOS00MTk4LWFmYjQtYmIzY2ZlNjM3NzhheHcMY29yZS9oZWFkaW5nfQJ3JDk0YmE5YTVlLTIxOTAtNDYxMy04Y2FkLThhYjQ5N2E1OWQ5M3h3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQ0MzA0ZDNiMS0yNTA5LTQwZmEtYTFiNC1kODk4YjBjNWUyYWZ4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckZGViNDY4YWEtZTUwMy00MDkwLThlYTUtZmRkOGY0YjJiZTAzeHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JGY2ZWI3YjYwLTJkMDUtNGVmMi1iZTZlLTc5MDE4OTU0YTMzY3h3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQ1ODg2MGE0ZC00NzU1LTRmYzgtOWJjZS0xZjQyMDkzNDNhM2F4dwxjb3JlL2hlYWRpbmd9AnckYTRmMmY3OWUtMjBkZi00YTA5LWJjMTItOTNjZWNlMTM2YjE0eHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JGU3NDE3ODYwLWExZTAtNDI5My1iMzY5LTMzMDBlZGZlZDM2OXh3CmNvcmUvdGFibGV4dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dwJ0ZH9\/f3cCdGR\/f393AnRkf39\/dyQzZTA0NmE3My1hZmQ0LTQ0ZWUtYmIzNi1hMmI2ZGMzOGM4MzV4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNTMzZGRlMTQtMTM5Yi00NjA3LWFkZTQtYmZmNDc0NzhkZDlheHcMY29yZS9oZWFkaW5nfQJ3JDY0MTBlYWUyLTdhM2EtNDlkMC1hZjliLTU2MjVkMTM0N2MwZHh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyRlMTNhMmJjNy0wNGJiLTQ1ZDctYjUzNS1iZjU4Yjc0ZDI1MGR4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNDc4MTBlZTctOTczYS00OTAzLTk3M2YtODNhNWY2NjllM2ZheHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDZkZWRjODkzLTRmNjQtNDRkNi1iMGRlLWNlMmU0MWU1YjdmNnh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQzYjE4MDA3NS1hZDliLTQyYzYtYWNiYi1mZjYwM2FhOWVhNGR4dwxjb3JlL2hlYWRpbmd9AnckNzk3YzQ0YTAtZGZkMC00YWQ4LTkzMjEtYzY5MTM3NDNmMzhieHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDhiOTEwODEzLWQyMGItNDU2My04ZDVmLWIwMDM5NThjNDZhYXh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQxZDEzOTE4My1lM2M2LTQ4MWEtOGNjYS1lYmY2MzI0ZTNjN2V4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckYjlmMmUyZmItYWJlMC00MzMxLTkwMDctMmU0ZmUxMzBiMGJkeHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDdlYzU0N2Y0LWMyMDItNDlkNS04NmRlLTZlNGI0OWU2MDU0M3h3DGNvcmUvaGVhZGluZ30CdyRkMmMyMzc0Ny1kNzVjLTRhNGUtOGY1YS0zNTc0YzBkZWMxZDB4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNTZkNzNmNWItNzk0Zi00MGZhLTgzOGYtZmE0YzU2MmRkNGRleHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3JDg0Y2ViNGU5LThjMmItNDM5OC05MTg1LTBhYjlhZGYyNzZhN3h3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQ1OWZjYThlYi05ZmVhLTRhNjItODMwYi1jYzM2MDI4ODgwNzV4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNzFiOGQ1MDktZGViYi00OTgwLWFmZWUtNzE4NDFkZmQ3MzJjeHcMY29yZS9oZWFkaW5nfQJ3JDk3YzFjN2ZjLTIyMDktNDNjOS04ZjJhLWRjODc0YzFlODg0NXh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyRjNDYwNDU0ZS1iM2ViLTRlNjEtODM5Zi1mNmEzZGYyMWQwMDl4dwljb3JlL2xpc3R4dwB3JDU0ZTk5MWUzLTRmNjEtNGVhOC04MWY2LTBmMTAxNDk2NGEzZHh3DmNvcmUvbGlzdC1pdGVtdyQ4ZGQ3MzE2Yi0zYzAwLTQ0NmEtOWViNS01MThiODc4MDM1ZDV4dw5jb3JlL2xpc3QtaXRlbXckNjkxOTk1ZDgtMWM4NC00ZDg4LWI3NGMtZTBkZjI3Yzc5Mjc1eHcOY29yZS9saXN0LWl0ZW13JGQ0OGFkMjUzLTcxMmEtNDM5Ni1iMjI0LTA2YmQwYjIwNmY1MHh3DmNvcmUvbGlzdC1pdGVtdyQzMmQ0OWZjMi1jZWI1LTRjYjQtOTJmZC1hMWViMmY5Y2FmZDJ4dw5jb3JlL2xpc3QtaXRlbXckNGY4YjQ3MTQtZmY0OS00NDQwLWJlNjUtZGM2YzhiMDRhNTcyeHcOY29yZS9saXN0LWl0ZW13JDkwYjBjMDQwLTQzNjctNDE0Yy1iOTM5LTBlMWI2Y2YzNTE4MXh3DmNvcmUvbGlzdC1pdGVtdyQ0YTE5MTE0Yy1mZTYzLTRkMmUtYWNiNC04MTZmNGQ5MDdmNmJ4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckMWJiZTBmNDEtYTI0ZC00NTAxLTg2NjUtNzk1ZmM3MmFiM2UxeHcMY29yZS9oZWFkaW5nfQJ3JDljN2FhN2U5LWNkYTAtNDhmZi1hMjhiLWVlZTI4MWMzOGY4OXh3DmNvcmUvcGFyYWdyYXBoeXcwVHlwZSAvIHRvIGNob29zZSBhIGJsb2NrIG9yIC8vIHRvIHVzZSBDb250ZW50IEFJdyQ1OWE1ZmM1Zi04NWFmLTRiMmUtYjJlNy1iMWQ4MjdkYzMwZjF4dw5jb3JlL3BhcmFncmFwaHl3MFR5cGUgLyB0byBjaG9vc2UgYSBibG9jayBvciAvLyB0byB1c2UgQ29udGVudCBBSXckNjdlZjg1MDEtMTY1NS00ODZjLWFiYWMtMjFjNmIyZjdhNmNjeHcOY29yZS9wYXJhZ3JhcGh5dzBUeXBlIC8gdG8gY2hvb3NlIGEgYmxvY2sgb3IgLy8gdG8gdXNlIENvbnRlbnQgQUl3UndoeS1zb3V0aC1hZnJpY2FuLWZvb3RiYWxsLWZhbnMtdXNlLW1vYmlsZS1hcHBzLWZvci1maXh0dXJlcy1vZGRzLWFuZC1saXZlLW1hcmtldHN4dyRkZGUzYzYyNC05YTdlLTQzMzUtYWZjOS1hNzEwNzVhOGUwYmZ3CmNvcmUvaW1hZ2V3AHdFaHR0cHM6Ly93d3cuZm9vdHltaW5kLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA3L2ltYWdlLTcucG5ndwVsYXJnZQcAdQF9AXcTMjAyNi0wNy0yMVQyMToyODoxNXtCefhpRZGQAHtB5O7H3KAAAHcHcHVibGlzaALvmO7MDAYBAQwAnE0SAgABAAEC5f3YuwoCAAACAA==\",\"updateId\":208993792}","footnotes":""},"categories":[1],"tags":[],"class_list":["post-432","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/posts\/432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/comments?post=432"}],"version-history":[{"count":2,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/posts\/432\/revisions"}],"predecessor-version":[{"id":436,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/posts\/432\/revisions\/436"}],"wp:attachment":[{"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/media?parent=432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/categories?post=432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.footymind.com\/blog\/wp-json\/wp\/v2\/tags?post=432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}