A Good Theory

A Good Theory

Graham Oakes, 06/08/2010, posted in "Analysis"

Dr Graham Oakes is a highly skilled systems engineer and project manager with over 20 years’ industry-proven experience backed by a track record of delivering highly innovative and effective solutions. ...more info

Dr Graham Oakes is a highly skilled systems engineer and project manager with over 20 years’ industry-proven experience backed by a track record of delivering highly innovative and effective solutions. Graham helps people untangle complex technology, relationships, processes and governance. As an independent consultant, he helps organisations such as Sony Computer Entertainment, The Open University, the Council of Europe and the Port of Dover to define strategy, initiate projects and hence run those projects effectively. Prior to going independent, he held positions including Director of Technology at Sapient, and Head of Project Management for Psygnosis (a subsidiary of Sony). His book, Project Reviews, Assurance and Governance, was published by Gower in October, 2008. ...less info

“Theoretical” is a dirty word at my current client. If an idea can’t be translated into immediate action, they’re not interested.

Many organisations are like this. They like checklists of “best practices” that people can pick up and follow without too much thought. When developing systems, this mindset shows itself in the rush to coding – anything that isn’t expressed directly as code (requirements, architecture, design, etc) is seen as a preamble to the real work. People rush through it as quickly as possible. Or they abandon it completely.

This mindset also drives one of the big discussions in the Agile movement. What exactly constitutes “enough” design up front (EDUF)? When does investing effort to create a coordinating framework become over-investment in abstractions that will only need to be reworked as we learn more about the actual requirements and technical constraints? Up front, it’s almost impossible to know. But good architects are constantly asking the question: they can sense when to stop.

SOA tends to come from a different tradition. That community sees a lot of value in up-front analysis, both to identify the services which might deliver value and to create the infrastructure that allows us to realise value quickly. Abstract thinking, from this perspective, isn’t an overhead: it’s a necessary enabler for effective action.

I can see why the Agile movement (and my client) has reacted against this approach. I know several organisations that have indeed got bogged down in analysis paralysis, unable to commit to code until their models are “perfect”. Yet often you need to write some code in order to fully understand the problem – effective models can only come from action, rather than vice versa.

On the other hand, my client regularly runs into issues arising from their rush to act rather than invest time on “theory”. For example:

  • Lots of stuff is reinvented across multiple teams. No-one is looking for and supporting the general capabilities that are useful everywhere, so everything has to be done (and redone) locally.
  • When someone does try to reuse functionality that was developed by another team, they are surprised by the effort required. It takes work to adapt a component to a new context, especially when you have no clear picture of what constitutes core functionality versus local variants on that core.
  • People act before they’ve considered the broader implications of their actions. This then leads to unintended consequences.

German psychologist Kurt Lewin said “There is nothing so practical as a good theory”. Theory and practice are not in opposition. They support each other – theory suggests useful action; action helps validate and refine theory. Organisations that reject theory are, ultimately, rejecting this learning feedback cycle.

Subscribe via RSS or via email

PHVsPjxsaT48c3Ryb25nPndvb18xY29sX2hlaWdodDwvc3Ryb25nPiAtIDIwMDwvbGk+PGxpPjxzdHJvbmc+d29vXzJjb2xfaGVpZ2h0PC9zdHJvbmc+IC0gMjAwPC9saT48bGk+PHN0cm9uZz53b29fM2NvbF9oZWlnaHQ8L3N0cm9uZz4gLSAxNTA8L2xpPjxsaT48c3Ryb25nPndvb180Y29sX2hlaWdodDwvc3Ryb25nPiAtIDEwMDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X2J1dHRvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0X2VuYWJsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfaGVhZGVyPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWJvdXRfcGhvdG88L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hYm91dF90ZXh0PC9zdHJvbmc+IC0gQnVzaW5lc3MgQ29tcHV0aW5nIFdvcmxkIChCQ1cpIGlzIHRoZSBibG9nIHdoZXJlIElUIHRob3VnaHQgbGVhZGVycyBoYW5nIG91dC4gSXQncyB3aGVyZSBvdmVyIDEsMDAwIGluc3BpcmF0aW9uYWwgYnVzaW5lc3MgbGVhZGVycyB1c2UgbG9naWMsIGV2aWRlbmNlIGFuZCBhbiBhY3R1YWwgZGVtb25zdHJhdGlvbiBvZiB0ZWNobm9sb2d5IHRvIGltcGFydCBpbnZhbHVhYmxlIGluZm9ybWF0aW9uIGFuZCB3aW4gc3VwcG9ydC4gT3VyIHRob3VnaHQgbGVhZGVycyBpbW1lcnNlIHRoZW1zZWx2ZXMgaW4gdGhlaXIgcHJvZmVzc2lvbmFsIGRvbWFpbiBhbmQgc2VhcmNoIGZvciBuZXcgdGhpbmdzIHRvIHNheSB0aGF0IGFkZCB2YWx1ZSB0byB0aGUgY29udmVyc2F0aW9uLiBBbGwgdGhhdCBjb3VudHMgaXMgdGhlIGNyZWRpYmlsaXR5IG9mIHRoZWlyIGlkZWEuIE1ha2Ugc3VyZSB5b3Ugam9pbiB0aGUgY29udmVyc2F0aW9uLjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkdmVydGlzZV9saW5rPC9zdHJvbmc+IC0gIzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzEwX2ZsYXNoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTBfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC90aGVtZXMvbW9ydGFyL2ltYWdlcy9hZHZlcnQuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfMTBfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfMV9mbGFzaDwvc3Ryb25nPiAtIDxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iaHR0cDovL2Rvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiN2ZXJzaW9uPTgsNSwwLDE3NSIgaGVpZ2h0PSIxNTAiIHdpZHRoPSIxODAiPjxwYXJhbSBuYW1lPSJtb3ZpZSIgdmFsdWU9Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3VwbG9hZHMvMjAwOS8xMC90aWJjb19zaWx2ZXJfMTgweDE1MDEuc3dmIj48cGFyYW0gbmFtZT0iRmxhc2hWYXJzIiB2YWx1ZT0iY2xpY2tUQUc9aHR0cCUzQS8vd3d3LnRpYmNvLmNvbS8iPjxwYXJhbSBuYW1lPSJtZW51IiB2YWx1ZT0iZmFsc2UiPjxwYXJhbSBuYW1lPSJzY2FsZSIgdmFsdWU9ImV4YWN0Zml0Ij48cGFyYW0gbmFtZT0iQWxsb3dTY3JpcHRBY2Nlc3MiIHZhbHVlPSJhbHdheXMiPjxlbWJlZCBzcmM9Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3VwbG9hZHMvMjAwOS8xMC90aWJjb19zaWx2ZXJfMTgweDE1MDEuc3dmIiBmbGFzaHZhcnM9ImNsaWNrVEFHPWh0dHAlM0EvL3d3dy50aWJjby5jb20vIiBtZW51PSJmYWxzZSIgc2NhbGU9ImV4YWN0Zml0IiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGhlaWdodD0iMTUwIiB3aWR0aD0iMTgwIj48L29iamVjdD48L2xpPjxsaT48c3Ryb25nPndvb19hZF8xX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvdGhlbWVzL21vcnRhci9pbWFnZXMvYWR2ZXJ0LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzFfdXJsPC9zdHJvbmc+IC0gaHR0cDovL3NpbHZlci50aWJjby5jb20vPC9saT48bGk+PHN0cm9uZz53b29fYWRfMl9mbGFzaDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzJfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy84My0xODB4MTUwX3dlYm1vbml0b3JfY3VydmUuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfMl91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmdmaS5jb20vd2VibW9uLz9hZHY9MTAwMSZsb2M9MTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzNfZmxhc2g8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF8zX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvdGhlbWVzL21vcnRhci9pbWFnZXMvYWR2ZXJ0LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzNfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfNF9mbGFzaDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzRfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC90aGVtZXMvbW9ydGFyL2ltYWdlcy9hZHZlcnQuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfNF91cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF81X2ZsYXNoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfNV9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3RoZW1lcy9tb3J0YXIvaW1hZ2VzL2FkdmVydC5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF81X3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzZfZmxhc2g8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF82X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvdGhlbWVzL21vcnRhci9pbWFnZXMvYWR2ZXJ0LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzZfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfN19mbGFzaDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzdfaW1hZ2U8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC90aGVtZXMvbW9ydGFyL2ltYWdlcy9hZHZlcnQuanBnPC9saT48bGk+PHN0cm9uZz53b29fYWRfN191cmw8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF84X2ZsYXNoPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfOF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3RoZW1lcy9tb3J0YXIvaW1hZ2VzL2FkdmVydC5qcGc8L2xpPjxsaT48c3Ryb25nPndvb19hZF84X3VybDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzlfZmxhc2g8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19hZF85X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvdGhlbWVzL21vcnRhci9pbWFnZXMvYWR2ZXJ0LmpwZzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzlfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0NCmdvb2dsZV9hZF9jbGllbnQgPSAicHViLTA3MjgwOTA5MDIzMjczNjMiOw0KLyogNzI4eDkwLCBjcmVhdGVkIDE3LzA5LzA5ICovDQpnb29nbGVfYWRfc2xvdCA9ICI1NTE3NTAwODA2IjsNCmdvb2dsZV9hZF93aWR0aCA9IDcyODsNCmdvb2dsZV9hZF9oZWlnaHQgPSA5MDsNCi8vLS0+DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ig0Kc3JjPSJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL3Nob3dfYWRzLmpzIj4NCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTQ2OHg2MC0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbGxfY2F0ZWdvcnlfdGl0bGU8L3N0cm9uZz4gLSBDYXRlZ29yaWVzPC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSBkZWZhdWx0LmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVfbGF5b3V0PC9zdHJvbmc+IC0gM19jb2x1bW5zLnBocDwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nX2NhdGVnb3J5PC9zdHJvbmc+IC0gU2VsZWN0IGEgY2F0ZWdvcnk6PC9saT48bGk+PHN0cm9uZz53b29fYnV0dG9uX2xpbms8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWVudTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Nzczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9mYXZpY29uPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTI3LWZhdmljb24ucG5nPC9saT48bGk+PHN0cm9uZz53b29fZW5hYmxlX2FsbF9jYXRlZ29yeTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fZW5hYmxlX2Jsb2dfY2F0ZWdvcnk8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hlYWRlcl9hZF9saW5rPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dpbi1hLWxvZ2ljYWxpcy1pbW1lcnNpdi12aWRlby1jb25mZXJlbmNpbmctc2VydmljZS13b3J0aC00MjAwLzwvbGk+PGxpPjxzdHJvbmc+d29vX2hlYWRlcl9hZF9saW5rX3RleHQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xheW91dDwvc3Ryb25nPiAtIDNfY29sdW1ucy5waHA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3NsaWRlcl8xPC9zdHJvbmc+IC0gMjE0NzU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3NsaWRlcl8xMDwvc3Ryb25nPiAtIDIxNDA0PC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfMjwvc3Ryb25nPiAtIDIxNDI1PC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfMzwvc3Ryb25nPiAtIDIxNDAxPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfNDwvc3Ryb25nPiAtIDIxMzE5PC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfNTwvc3Ryb25nPiAtIDIxNDEyPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfNjwvc3Ryb25nPiAtIDIxMjEzPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfNzwvc3Ryb25nPiAtIDIxNDM0PC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfODwvc3Ryb25nPiAtIDIxNDQ3PC9saT48bGk+PHN0cm9uZz53b29faG9tZV9zbGlkZXJfOTwvc3Ryb25nPiAtIDIxNDA4PC9saT48bGk+PHN0cm9uZz53b29fbG9nbzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzExOC1idXNpbmVzc2NvbXB1dGluZ3dvcmxkbG9nby5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vPC9saT48bGk+PHN0cm9uZz53b29fbmF2X2V4Y2x1ZGU8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19wb3J0X2ltYWdlczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Jldmlld19zbGlkZXI8L3N0cm9uZz4gLSByZXZpZXdzPC9saT48bGk+PHN0cm9uZz53b29fc2hvcnRuYW1lPC9zdHJvbmc+IC0gd29vPC9saT48bGk+PHN0cm9uZz53b29fdGhlbWVuYW1lPC9zdHJvbmc+IC0gTW9ydGFyPC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcl9lbmFibGU8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3R3aXR0ZXJfdXNlcm5hbWU8L3N0cm9uZz4gLSBjaHJpc3RpYW5oYXJyaXM8L2xpPjxsaT48c3Ryb25nPndvb191cGxvYWRzPC9zdHJvbmc+IC0gYToxMjY6e2k6MDtzOjc4OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjctZmF2aWNvbi5wbmciO2k6MTtzOjc4OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjYtZmF2aWNvbi5wbmciO2k6MjtzOjc4OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjUtZmF2aWNvbi5wbmciO2k6MztzOjc4OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjQtZmF2aWNvbi5wbmciO2k6NDtzOjc4OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjMtZmF2aWNvbi5wbmciO2k6NTtzOjc5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMjItZ3JhZHdlbGwuanBnIjtpOjY7czo3OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTIxLWdyYWR3ZWxsLmpwZyI7aTo3O3M6NzQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzEyMC1ib3guanBnIjtpOjg7czo3ODoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTE5LWVjbGlwc2UuanBnIjtpOjk7czo5NzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTE4LWJ1c2luZXNzY29tcHV0aW5nd29ybGRsb2dvLnBuZyI7aToxMDtzOjk3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMTctYnVzaW5lc3Njb21wdXRpbmd3b3JsZGxvZ28ucG5nIjtpOjExO3M6Nzg6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzExNi1QRUVSMV8xLnBuZyI7aToxMjtzOjc2OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMTUtUEVFUjEucG5nIjtpOjEzO3M6NzY6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzExNC1wZWVyMS5wbmciO2k6MTQ7czo3NjoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTEzLXBlZXIxLmpwZyI7aToxNTtzOjgxOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMTMtbGF5ZXJzaGlmdC5wbmciO2k6MTY7czo3OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTEyLWdyYWR3ZWxsLnBuZyI7aToxNztzOjkyOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMTEtQkNXX0xPR09fUE9TVElUTk9URV82LnBuZyI7aToxODtzOjkyOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMTAtQkNXX0xPR09fUE9TVElUTk9URV81LnBuZyI7aToxOTtzOjkyOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMDktQkNXX0xPR09fUE9TVElUTk9URV8zLnBuZyI7aToyMDtzOjgwOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMDgtYmN3bG9nb181LnBuZyI7aToyMTtzOjgxOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMDctYmN3bG9nb181MS5wbmciO2k6MjI7czo4MToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTA2LWJjd2xvZ29fNTAucG5nIjtpOjIzO3M6ODE6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzEwNS1iY3dsb2dvXzQ5LnBuZyI7aToyNDtzOjgxOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMDQtYmN3bG9nb180OC5wbmciO2k6MjU7czo4MToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAzLWJjd2xvZ29fNDcucG5nIjtpOjI2O3M6ODE6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzEwMi1iY3dsb2dvXzQ2LnBuZyI7aToyNztzOjgxOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMDEtYmN3bG9nb180NS5wbmciO2k6Mjg7czo4MToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAwLWJjd2xvZ29fMzUucG5nIjtpOjI5O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk5LWJjd2xvZ29fMzMucG5nIjtpOjMwO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk4LWJjd2xvZ29fMzIucG5nIjtpOjMxO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk3LWJjd2xvZ29fMzEucG5nIjtpOjMyO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk2LWJjd2xvZ29fMjEucG5nIjtpOjMzO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk1LWJjd2xvZ29fMjEucG5nIjtpOjM0O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzk0LWJjd2xvZ29fMjAucG5nIjtpOjM1O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzkzLWJjd2xvZ29fMTUucG5nIjtpOjM2O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzkyLWJjd2xvZ29fMTIucG5nIjtpOjM3O3M6Nzc6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzkxLWluZmFjdGEucG5nIjtpOjM4O3M6ODU6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzkwLXZpc2lvbnNvbHV0aW9ucy5wbmciO2k6Mzk7czo4MDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvODktZ2xhc3NjdWJlcy5wbmciO2k6NDA7czo3NjoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvODgtbW90aW9uLnBuZyI7aTo0MTtzOjc3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy84Ny1wbHVzdGVrLnBuZyI7aTo0MjtzOjc3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy84Ni1wbHVzdGVrLmpwZyI7aTo0MztzOjc3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy84NS1sb2dtZWluLnBuZyI7aTo0NDtzOjkxOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy84NC1CQ1dfTE9HT19QT1NUSVROT1RFXzIucG5nIjtpOjQ1O3M6OTQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzgzLTE4MHgxNTBfd2VibW9uaXRvcl9jdXJ2ZS5naWYiO2k6NDY7czo4OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvODItQkNXX0xPR09fUE9TVElUTk9URS5wbmciO2k6NDc7czo4OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvODEtQkNXX0xPR09fUE9TVElUTk9URS5wbmciO2k6NDg7czo4OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvODAtQkNXX0xPR09fUE9TVElUTk9URS5wbmciO2k6NDk7czo4OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNzktQkNXX0xPR09fUE9TVElUTk9URS5wbmciO2k6NTA7czo5MToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNzgtQkNXX0xPR09fUE9TVElUTk9URV8yLnBuZyI7aTo1MTtzOjg5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy83Ny1CQ1dfTE9HT19QT1NUSVROT1RFLnBuZyI7aTo1MjtzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy83Ni1CQ1dfTG9nb19XZWJfOC5wbmciO2k6NTM7czo4MDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNzUtYmN3bG9nb18xOC5wbmciO2k6NTQ7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNzQtQkNXX0xvZ29fV2ViXzgucG5nIjtpOjU1O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzczLWJjd2xvZ29fMTcucG5nIjtpOjU2O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzcyLWJjd2xvZ29fMTcucG5nIjtpOjU3O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzcxLWJjd2xvZ29fMTcucG5nIjtpOjU4O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzcwLWJjd2xvZ29fMTYucG5nIjtpOjU5O3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzY5LUJDV19Mb2dvX1dlYl84LnBuZyI7aTo2MDtzOjg1OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy82OC1CQ1dfTG9nb19XZWJfMTAucG5nIjtpOjYxO3M6ODU6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzY3LUJDV19Mb2dvX1dlYl8xMC5wbmciO2k6NjI7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNjYtQkNXX0xvZ29fV2ViXzgucG5nIjtpOjYzO3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzY1LUJDV19Mb2dvX1dlYl84LnBuZyI7aTo2NDtzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy82NC1CQ1dfTG9nb19XZWJfOS5wbmciO2k6NjU7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNjMtQkNXX0xvZ29fV2ViXzgucG5nIjtpOjY2O3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzYyLUJDV19Mb2dvX1dlYl84LnBuZyI7aTo2NztzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy82MS1CQ1dfTG9nb19XZWJfOC5wbmciO2k6Njg7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNjAtQkNXX0xvZ29fV2ViXzcucG5nIjtpOjY5O3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzU5LUJDV19Mb2dvX1dlYl83LnBuZyI7aTo3MDtzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy81OC1CQ1dfTG9nb19XZWJfNi5wbmciO2k6NzE7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNTctQkNXX0xvZ29fV2ViXzYucG5nIjtpOjcyO3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzU2LUJDV19Mb2dvX1dlYl82LnBuZyI7aTo3MztzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy81NS1CQ1dfTG9nb19XZWJfNC5wbmciO2k6NzQ7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNTQtQkNXX0xvZ29fV2ViXzUucG5nIjtpOjc1O3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzUzLUJDV19Mb2dvX1dlYl81LnBuZyI7aTo3NjtzOjg0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy81Mi1CQ1dfTG9nb19XZWJfNC5wbmciO2k6Nzc7czo4NDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNTEtQkNXX0xvZ29fV2ViXzMucG5nIjtpOjc4O3M6ODQ6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzUwLUJDV19Mb2dvX1dlYl8yLnBuZyI7aTo3OTtzOjgyOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy80OS1CQ1dfTG9nb19XZWIucG5nIjtpOjgwO3M6ODI6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQ4LUJDV19Mb2dvX1dlYi5wbmciO2k6ODE7czo4MjoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNDctQkNXX0xvZ29fV2ViLnBuZyI7aTo4MjtzOjk0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy80Ni0xODB4MTUwX3dlYm1vbml0b3JfY3VydmUuZ2lmIjtpOjgzO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQ1LWJjd2xvZ29fMTUucG5nIjtpOjg0O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQ0LWJjd2xvZ29fMTQucG5nIjtpOjg1O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQzLWJjd2xvZ29fMTMucG5nIjtpOjg2O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQyLWJjd2xvZ29fMTIucG5nIjtpOjg3O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQxLWJjd2xvZ29fMTEucG5nIjtpOjg4O3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzQwLWJjd2xvZ29fMTAucG5nIjtpOjg5O3M6NzU6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzM5LWxvZ281LnBuZyI7aTo5MDtzOjc0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8zOC1sb2dvLnBuZyI7aTo5MTtzOjc5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8zNy1iY3dsb2dvXzkucG5nIjtpOjkyO3M6Nzk6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzM2LWJjd2xvZ29fOC5wbmciO2k6OTM7czo3OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzUtYmN3bG9nb183LnBuZyI7aTo5NDtzOjc5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8zNC1iY3dsb2dvXzIucG5nIjtpOjk1O3M6Nzk6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzMzLWJjd2xvZ29fNi5wbmciO2k6OTY7czo3OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMzItYmN3bG9nb181LnBuZyI7aTo5NztzOjc5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8zMS1iY3dsb2dvXzQucG5nIjtpOjk4O3M6Nzk6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzMwLWJjd2xvZ29fMy5wbmciO2k6OTk7czo3OToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjktYmN3bG9nb18yLnBuZyI7aToxMDA7czo3NzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjgtYmN3bG9nby5qcGciO2k6MTAxO3M6NzU6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzI3LWxvZ281LnBuZyI7aToxMDI7czo3NToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjYtbG9nbzUucG5nIjtpOjEwMztzOjg3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8yNS1mcmVzaGJvb2tzMTgwYmx1ZS5qcGciO2k6MTA0O3M6ODM6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzI0LWZyZXNoYm9va3MxODAuanBnIjtpOjEwNTtzOjgzOiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8yMy1iYW5uZXIxODB4MTUwLnBuZyI7aToxMDY7czo3NzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMjItemVuZGVzay5qcGciO2k6MTA3O3M6Nzc6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzIxLXhwZW5zZXIuanBnIjtpOjEwODtzOjc3OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8yMC14cGVuc2VyLmpwZyI7aToxMDk7czo3NzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTktemVuZGVzay5qcGciO2k6MTEwO3M6Nzg6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzE4LWJhc2VjYW1wLmpwZyI7aToxMTE7czo4MDoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTctc2FsZXNmb3JjZS5qcGciO2k6MTEyO3M6ODA6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzE2LWZyZXNoYm9va3MuanBnIjtpOjExMztzOjc5OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xNS1tYWlsY2hpbXAuanBnIjtpOjExNDtzOjc0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xNC1sb2dvLnBuZyI7aToxMTU7czo3NToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTMtbG9nbzMucG5nIjtpOjExNjtzOjc1OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy8xMi1sb2dvMy5wbmciO2k6MTE3O3M6ODE6Imh0dHA6Ly93d3cuYnVzaW5lc3Njb21wdXRpbmd3b3JsZC5jby51ay93cC1jb250ZW50L3dvb191cGxvYWRzLzExLWxvZ290d2l0dGVyLmpwZyI7aToxMTg7czo3NToiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMTAtbG9nbzIucG5nIjtpOjExOTtzOjc0OiJodHRwOi8vd3d3LmJ1c2luZXNzY29tcHV0aW5nd29ybGQuY28udWsvd3AtY29udGVudC93b29fdXBsb2Fkcy85LWxvZ28yLnBuZyI7aToxMjA7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvOC1sb2dvLnBuZyI7aToxMjE7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNy1sb2dvLnBuZyI7aToxMjI7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNi1sb2dvLnBuZyI7aToxMjM7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNS1sb2dvLnBuZyI7aToxMjQ7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvNC1sb2dvLnBuZyI7aToxMjU7czo3MzoiaHR0cDovL3d3dy5idXNpbmVzc2NvbXB1dGluZ3dvcmxkLmNvLnVrL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMy1sb2dvLnBuZyI7fTwvbGk+PC91bD4=
x
Our Partners