PCEtLSAqKiogV2luZSBGQVEgKioqIC0tPgogIDx0aXRsZT5XaW5lIEZBUTwvdGl0bGU+CiAgPHBhcmE+CiAgICAgRm9yIHRlY2huaWNhbCBxdWVzdGlvbnMsIHZpc2l0IHRoZSAKICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5vcmcvZm9tLW1ldGEvY2FjaGUvMTkuaHRtbCI+CiAgICAgV2luZSBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPiBpbnN0ZWFkLgogIDwvcGFyYT4KCiAgPHFhbmRhc2V0PgogICAgPHFhbmRhZGl2IGlkPSJBYm91dC10aGlzLUZBUSI+PHRpdGxlPkFib3V0IHRoaXMgRkFRPC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hvLW1haW50YWlucy10aGlzLUZBUSI+CiAgICAgICAgPHBhcmE+V2hvIG1haW50YWlucyB0aGlzIEZBUSA/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPkRhdmUgR2FyZG5lciBtYWludGFpbmVkIGl0IGZyb20gMTk5NS0xOTk4LjwvcGFyYT4KICAgICAgICA8cGFyYT5Eb3VnbGFzIFJpZGd3YXkgKHJpZGd3YXlAd2luZWhxLmNvbSkgdG9vayBpdCBvdmVyIGluIDE5OTkuPC9wYXJhPgogICAgICAgIDxwYXJhPkFuZHJlYXMgTW9ociAoYW1vaHJAY29kZXdlYXZlcnMuY29tKSBjb252ZXJ0ZWQgaXQgdG8gRkFRLU8tTWF0aWMgaW4gMjAwMC48L3BhcmE+CiAgICAgICAgPHBhcmE+RGltaXRyaWUgTy4gUGF1biwgS2VpdGggTWF0dGhld3MgYW5kIFRob21hcyBXaWNrbGluZSByZW9yZ2FuaXNlZCBpdCBpbiAyMDAyLjwvcGFyYT4KICAgICAgICA8cGFyYT5Gb3Igc3VnZ2VzdGlvbnMvYWRkaXRpb25zL2NvbXBsYWludHMgcmVnYXJkaW5nIHRoaXMgRkFRLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0bwogICAgICAgIDx1bGluayB1cmw9Im1haWx0bzp3aW5lLWZhcUB3aW5laHEub3JnIj53aW5lLWZhcUB3aW5laHEub3JnPC91bGluaz48L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtaXMtdGhlLWNvcHlyaWdodC1vbi10aGUtRkFRLUFuZCI+CiAgICAgICAgPHBhcmE+V2hhdCBpcyB0aGUgY29weXJpZ2h0IG9uIHRoZSBGQVE/IEFuZCBob3cgbWF5IEkgdXNlIGl0PzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT5UaGUgb3JpZ2luYWwgV2luZSBGQVEsIHdoaWNoIHRoaXMgRkFRIHdhcyBiYXNlZCBvbiwgd2FzIGNvcHlyaWdodCAmY29weTsgMTk5NS0xOTk4IERhdmlkIEdhcmRuZXIuPC9wYXJhPgogICAgICAgIDxwYXJhPkl0IG1heSBiZSByZXByb2R1Y2VkIGFuZCBtb2RpZmllZCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyBXaW5lIGl0c2VsZi48L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICA8L3FhbmRhZGl2PgogICAgPHFhbmRhZGl2IGlkPSJHZW5lcmFsLVF1ZXN0aW9ucy1hYm91dC1XaW5lIj4KICAgICAgPHRpdGxlPkdlbmVyYWwgUXVlc3Rpb25zIGFib3V0IFdpbmU8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KCiAgICAgIDxxdWVzdGlvbiBpZD0iV2hhdC1pcy1XaW5lLWFuZC13aGF0LWlzLWl0LXN1cHBvc2VkLXRvIj4KICAgICAgICA8cGFyYT5XaGF0IGlzIFdpbmUgYW5kIHdoYXQgaXMgaXQgc3VwcG9zZWQgdG8gZG8/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyBhIHByb2dyYW0gd2hpY2ggYWxsb3dzIHRoZSBvcGVyYXRpb24gb2YgRE9TIGFuZCBNUwogICAgICAgICAgV2luZG93cyBwcm9ncmFtcyAoV2luZG93cyAzLnggYW5kIFdpbjMyIGV4ZWN1dGFibGVzKSBvbiBVTklYLiAKICAgICAgICAgIEl0IGNvbnNpc3RzIG9mIGEgcHJvZ3JhbSBsb2FkZXIsIHdoaWNoIGxvYWRzIGFuZCBleGVjdXRlcyBhIFdpbmRvd3MKICAgICAgICAgIGJpbmFyeSwgYW5kIGEgbGlicmFyeSB0aGF0IGltcGxlbWVudHMgV2luZG93cyBBUEkgY2FsbHMgdXNpbmcKICAgICAgICAgIHRoZWlyIFVOSVggb3IgWDExIGVxdWl2YWxlbnRzLiBUaGUgbGlicmFyeSBtYXkgYWxzbyBiZSB1c2VkIAogICAgICAgICAgZm9yIHBvcnRpbmcgV2luMzIgY29kZSBpbnRvIG5hdGl2ZSBVTklYIGV4ZWN1dGFibGVzLCBvZnRlbgogICAgICAgICAgd2l0aG91dCBtYW55IGNoYW5nZXMgaW4gdGhlIHNvdXJjZS4gV2luZSBpcyBmcmVlIHNvZnR3YXJlLCAKICAgICAgICAgIGFuZCBpdHMgbGljZW5zZSAoY29udGFpbmVkIGluIHRoZSBmaWxlIExJQ0VOU0UKICAgICAgICAgIGluIGVhY2ggZGlzdHJpYnV0aW9uKSBpcyBMR1BMIHN0eWxlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtV2luZS1hbi1lbXVsYXRvciI+CiAgICAgICAgPHBhcmE+IElzIFdpbmUgYW4gZW11bGF0b3I/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRm9ydHVuYXRlbHksIG5vLiBXaW5lIHByb3ZpZGVzIGxvdy1sZXZlbCBiaW5hcnkgY29tcGF0aWJpbGl0eSwgCiAgICAgICAgICBidXQgY3VycmVudGx5IG9ubHkgZm9yIE9TZXMgcnVubmluZyBvbiBJbnRlbC1jb21wYXRpYmxlIGNoaXBzLgogICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJBcmUtaGVyZS1hbnktYWx0ZXJuYXRpdmVzLXRvLVdpbmUiPgogICAgICAgIDxwYXJhPkFyZSB0aGVyZSBhbnkgYWx0ZXJuYXRpdmVzIHRvIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCB0aGVyZSBhcmUuIFlvdSBjYW4gdXNlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cudm13YXJlLmNvbSI+Vk1XYXJlPC91bGluaz4gdG8gcnVuIGEgV2luZG93cyBpbnN0YWxsYXRpb24gaW5zaWRlIGEgdmlydHVhbCBtYWNoaW5lLAoJICBvciB1c2UgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW40bGluLmNvbSI+V2luNExpbjwvdWxpbms+CgkgIHRvIHJ1biBhIHNwZWNpYWxseSBhZGFwdGVkIFdpbmRvd3MgdmVyc2lvbiBvbiBMaW51eC4KCSAgQm90aCBzb2x1dGlvbnMgY29zdCBtb25leSBmb3IgYm90aCB0aGUgc29mdHdhcmUgaXRzZWxmCgkgIGFuZCBhIFdpbmRvd3MgbGljZW5zZS4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgICBOb3RlIHRoYXQsIGxpa2UgV2luZSwgdGhleSBjYW4gb25seSB1c2UgdGhlIGhhcmR3YXJlIHBsYXRmb3JtIHRoYXQKICAgICAgICAgdGhlIHRhcmdldCBwcm9ncmFtcyB3ZXJlIG9yaWdpbmFsbHkgY29tcGlsZWQgZm9yIChzZWUgYmVsb3cpLgogICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICAgCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkRpZmZlcmVuY2UtYmV0d2Vlbi1XaW5lLWFuZC1lbXVsYXRvcnMiPgogICAgICAgIDxwYXJhPldoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBXaW5lIGFuZCB4ODYgaGFyZHdhcmUgZW11bGF0b3JzPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZXJlIGFyZSB0d28gZnJlZSB4ODYgaGFyZHdhcmUgZW11bGF0b3JzOgogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL2JvY2hzLnNvdXJjZWZvcmdlLm5ldCI+Ym9jaHM8L3VsaW5rPiwgYW5kIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvcGxleDg2Ij5wbGV4ODY8L3VsaW5rPi4KICAgICAgIDwvcGFyYT4KCiAgICAgICA8cGFyYT4KICAgICAgICAgIFBsZXg4NiBpcyB0aGUgb3BlbnNvdXJjZSBmcmVlLXNvZnR3YXJlIGFsdGVybmF0aXZlIGZvciBWTVdhcmUsCgkgIFZpcnR1YWxQQywgYW5kIG90aGVyIElBLTMyIG9uIElBLTMyICJWaXJ0dWFsIFBDIHByb2R1Y3RzLiIgSXQKICAgICAgICAgIGNhbiBvbmx5IHJ1biBvbiB0aGUgSUEtMzIgYXJjaGl0ZWN0dXJlLgogICAgICAgPC9wYXJhPgoKICAgICAgIDxwYXJhPgogICAgICAgICAgQm9jaHMgaXMgYSBoaWdobHkgcG9ydGFibGUgb3BlbiBzb3VyY2UgSUEtMzIgKHg4NikgUEMgZW11bGF0b3IgCiAgICAgICAgICB3cml0dGVuIGluIEMrKywgdGhhdCBydW5zIG9uIG1vc3QgcG9wdWxhciBwbGF0Zm9ybXMuIEl0IGluY2x1ZGVzIGVtdWxhdGlvbgogICAgICAgICAgb2YgdGhlIEludGVsIHg4NiBDUFUsIGNvbW1vbiBJL08gZGV2aWNlcywgYW5kIGEgY3VzdG9tIEJJT1MuIEN1cnJlbnRseSwgCiAgICAgICAgICBib2NocyBjYW4gYmUgY29tcGlsZWQgdG8gZW11bGF0ZSBhIDM4NiwgNDg2IG9yIFBlbnRpdW0gQ1BVLiBCb2NocyBpcyBjYXBhYmxlIAogICAgICAgICAgb2YgcnVubmluZyBtb3N0IE9wZXJhdGluZyBTeXN0ZW1zIGluc2lkZSB0aGUgZW11bGF0aW9uIGluY2x1ZGluZyBMaW51eCwgCiAgICAgICAgICBXaW5kb3dzriA5NSwgRE9TLCBhbmQgcmVjZW50bHkgV2luZG93c64gTlQgNC4KICAgICAgIDwvcGFyYT4KCiAgICAgICA8cGFyYT4KICAgICAgICAgIEJvdGggYXJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwuIEJvY2hzIGlzIG9sZGVyIHRoYW4gcGxleDg2LCBzZWVtcyB0byBiZSAKICAgICAgICAgIGVhc2llciB0byBpbnN0YWxsLCBidXQgcGxleDg2IHdpbGwgcnVuIGZhc3RlciBiZWNhdXNlIHBsZXg4NiB1c2VzIGEgcmVhbCAKICAgICAgICAgIHRpbWUgYmluYXJ5IGNvbXBpbGVyLiBUaGUgZHJhd2JhY2sgb2YgYWxsIGVtdWxhdG9ycyBpcyB0aGF0IHlvdSBuZWVkIGEgdmVyc2lvbiAKICAgICAgICAgIG9mIFdpbmRvd3MgaW4gb3JkZXIgdG8gcnVuIFdpbmRvd3MuCiAgICAgICA8L3BhcmE+CgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2h5LXdvdWxkLWFueW9uZS13YW50LVdpbmUtV2luZG93cy1zdWNrIj4KICAgICAgICA8cGFyYT5XaHkgd291bGQgYW55b25lIHdhbnQgV2luZT8gRG9lc24ndCBXaW5kb3dzIHN1Y2s/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRmlyc3QgV2luZSBpcyBub3QgYWJvdXQgcnVubmluZyBXaW5kb3dzIGJ1dCBhYm91dCBydW5uaW5nIFdpbmRvd3MgCiAgICAgICAgICBhcHBsaWNhdGlvbnMuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgU28gaWYgYWxsIHlvdXIgY29tcHV0aW5nIG5lZWRzIGFyZSBmdWxmaWxsZWQgYnkgbmF0aXZlIFVuaXggCiAgICAgICAgICBhcHBsaWNhdGlvbnMsIHRoZW4geW91IGRvIG5vdCBuZWVkIFdpbmUgYW5kIHNob3VsZCBub3QgYmUgdXNpbmcKICAgICAgICAgIGl0LiBIb3dldmVyLCBpZiB5b3UgZGVwZW5kIG9uIG9uZSBvciBtb3JlIG9mIHRoZSB0ZW5zIG9mIAogICAgICAgICAgdGhvdXNhbmRzIG9mIFdpbmRvd3MgYXBwbGljYXRpb25zLCB0aGVuIFdpbmUgaXMgdGhlIGJlc3Qgd2F5IHRvCiAgICAgICAgICB1c2UgaXQgd2l0aG91dCBnaXZpbmcgdXAgb24gVW5peC4gTGV0J3MgbG9vayBhdCB0aGUgYWx0ZXJuYXRpdmVzCiAgICAgICAgICB0byBzZWUgd2h5OgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBtb3N0IG9idmlvdXMgYWx0ZXJuYXRpdmUgaXMgdG8gZHVhbC1ib290LiBUaGlzIGlzIHRoZSBzb2x1dGlvbgogICAgICAgICAgdGhhdCBwcm92aWRlcyB0aGUgYmVzdCBjb21wYXRpYmlsaXR5LiBIb3dldmVyIGl0IHJlcXVpcmVzIHRoYXQgeW91CiAgICAgICAgICBhY3F1aXJlIGEgV2luZG93cyBsaWNlbnNlIGFuZCB0aGVuIGRlZGljYXRlIGEgZ29vZCBjaHVuayBvZiB5b3VyIAogICAgICAgICAgaGFyZC1kcml2ZSB0byBXaW5kb3dzLiBCdXQgdGhlIHdvcnN0IGlzIHlldCB0byBjb21lLiBFYWNoIHRpbWUgeW91CiAgICAgICAgICB3aWxsIHdhbnQgdG8gdXNlIHRoYXQgYXBwbGljYXRpb24geW91IHdpbGwgaGF2ZSB0byByZWJvb3QgdG8gCiAgICAgICAgICBXaW5kb3dzLiBUaGlzIGlzIGVzcGVjaWFsbHkgc2lnbmlmaWNhbnQgaWYgZXh0ZXJuYWwgZmFjdG9ycyBkaWN0YXRlCiAgICAgICAgICB3aGVuIHlvdSBtdXN0IHVzZSB0aGlzIGFwcGxpY2F0aW9uIChlLmcuIGNyZWRpdCBjYXJkIHRvIHByb2Nlc3MsIAogICAgICAgICAgZW1haWwgdG8gcmV0cmlldmUgZnJvbSBhIExvdHVzIE5vdGVzIHNlcnZlcikuIFRoZW4geW91IHdpbGwgZmluZAogICAgICAgICAgeW91cnNlbGYgZm9yY2VkIHRvIGNsb3NlIGFsbCB5b3VyIExpbnV4IGFwcGxpY2F0aW9ucyBqdXN0IHRvIHJ1bgogICAgICAgICAgdGhhdCBvbmUgV2luZG93cyBhcHBsaWNhdGlvbi4gWW91IG1heSBxdWlja2x5IGdldCB0aXJlZCBvZiB0aGlzLCBvcgogICAgICAgICAgd2lsbCBmaW5kIHRoYXQgc3VjaCBhIHNpdHVhdGlvbiBpcyBpbXBvc3NpYmxlIHRvIGp1c3RpZnkgaW4gYSAKICAgICAgICAgIGJ1c2luZXNzIGVudmlyb25tZW50LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBuZXh0IHNvbHV0aW9uIGlzIHRvIGluc3RhbGwgdmlydHVhbCBtYWNoaW5lIGVtdWxhdGlvbiBzb2Z0d2FyZQogICAgICAgICAgc3VjaCBhcyBWTVdhcmUsIFdpbjRMaW4gb3IgUGxleDg2LiBUaGVuIHlvdSBjYW4gdXNlIHdpbmRvd3MgCiAgICAgICAgICBhcHBsaWNhdGlvbnMgd2l0aG91dCBzdWZmZXJpbmcgc3VjaCBhIGJpZyBkaXNydXB0aW9uLiBCdXQgaXQgc3RpbGwKICAgICAgICAgIHJlcXVpcmVzIHRoYXQgeW91IGFjcXVpcmUgYSBXaW5kb3dzIGxpY2Vuc2UgYW5kIGRlZGljYXRlIGFzIG11Y2ggCiAgICAgICAgICBkaXNrIHNwYWNlIHRvIFdpbmRvd3MuIEZ1cnRoZXJtb3JlIHlvdSB3aWxsIHBheSBmb3IgdGhlIGFkZGVkIAogICAgICAgICAgY29udmVuaWVuY2U6IGlmIHVzaW5nIFZNV2FyZSBvciBXaW40TGluIHlvdSBoYXZlIHRvIGJ1eSBhbm90aGVyIAogICAgICAgICAgbGljZW5zZSwgYW5kIG1vcmUgaW1wb3J0YW50bHkgeW91IG5vdyBoYXZlIHRvIGRlZGljYXRlIGEgZ29vZCBjaHVuawogICAgICAgICAgb2YgeW91ciBjb21wdXRlcidzIG1lbW9yeSB0byB0aGUgdmlydHVhbCBtYWNoaW5lLiBQZXJmb3JtYW5jZSB3aWxsCiAgICAgICAgICB0YWtlIGEgc2lnbmlmaWNhbnQgaGl0IHRvby4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBVc2luZyBXaW5lIGxldHMgeW91IGF2b2lkIGFsbCBvZiB0aGF0IG92ZXJoZWFkOiBXaW5kb3dzIGxpY2Vuc2UsCiAgICAgICAgICBoYXJkLWRyaXZlIHNwYWNlIHJlcXVpcmVkIGJ5IFdpbmRvd3MsIG1lbW9yeSBhbmQgcGVyZm9ybWFuY2UgaGl0IAogICAgICAgICAgdGFrZW4gYnkgZW11bGF0ZWQgdmlydHVhbCBtYWNoaW5lcy4gTm93IHlvdSBjYW4gc3RhcnQgeW91ciBXaW5kb3dzCiAgICAgICAgICBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgcmVndWxhciBkZXNrdG9wIGVudmlyb25tZW50LCBwbGFjZQogICAgICAgICAgdGhhdCBhcHBsaWNhdGlvbidzIHdpbmRvdyBzaWRlIGJ5IHNpZGUgd2l0aCBuYXRpdmUgYXBwbGljYXRpb24gCiAgICAgICAgICB3aW5kb3dzLCBjb3B5L3Bhc3RlIGZyb20gb25lIHRvIHRoZSBvdGhlciwgYW5kIHJ1biBpdCBhbGwgYXQgZnVsbCBzcGVlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJdCBpcyBhbHNvIGEgcHJldHR5IHZpdGFsIHBhcnQgb2YgbWlncmF0aW5nIGEgbGFyZ2Ugb3JnYW5pc2F0aW9uLAogICAgICAgICAgeW91IGNhbid0IGNoYW5nZSBhIDUwMDAgZGVza3RvcCBzZXR1cCBvdmVybmlnaHQgd2l0aG91dCBhIGxvdCBvZiByaXNrLgogICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hpY2gtb25lLW9mLXRoZS1kaWZmZXJlbnQtV2luZS1wYWNrYWdlcyI+CiAgICAgICAgPHBhcmE+V2hpY2ggb25lIG9mIHRoZSBkaWZmZXJlbnQgV2luZSBwYWNrYWdlcyBvdXQgdGhlcmUgaXMgZ29vZCBmb3IgbWU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQ3VycmVudGx5IHRoZXJlIGlzIGEgYnJvYWQgc2VsZWN0aW9uIG9mIGRpZmZlcmVudCBXaW5lIHBhY2thZ2VzL3ZlcnNpb25zOgogICAgICAgIDwvcGFyYT4KICAgICAgICA8dmFyaWFibGVsaXN0PgoKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgICA8dGVybT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20iPldpbmU8L3VsaW5rPjwvdGVybT4KICAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgInN0YW5kYXJkIiBzb3VyY2UgZGlzdHJpYnV0aW9uIG9mIFdpbmUuIEl0cyBsaWNlbnNlIGlzIAogICAgICAgICAgICAgIExHUEwsIGl0IGNhbiBiZSBkb3dubG9hZGVkIGZvciBmcmVlLiAKICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAoJICA8dmFybGlzdGVudHJ5PgogICAgICAgICAgPHRlcm0+PHVsaW5rIHVybD0iaHR0cDovL3Jld2luZC5zb3VyY2Vmb3JnZS5uZXQiPlJlV2luZDwvdWxpbms+PC90ZXJtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBUaGlzIGlzIGEgZm9ya2VkIFdpbmUgdHJlZSB0aGF0IGdvdCBjcmVhdGVkIHdoZW4gV2luZSBjaGFuZ2VkIGl0cwogICAgICAgICAgICAgIGxpY2Vuc2UgZnJvbSBYMTEgdG8gdGhlIG1vcmUgcmVzdHJpY3RpdmUgTEdQTCwgaW4gb3JkZXIgdG8gbGV0IAogICAgICAgICAgICAgIHBlb3BsZSBjb250aW51ZSB0byBtYWludGFpbiBhbiBYMTEgbGljZW5zZWQgV2luZSB2ZXJzaW9uLiBJdHMgCiAgICAgICAgICAgICAgbGljZW5zZSBpcyBYMTEsIGl0IGNhbiBiZSBkb3dubG9hZGVkIGZvciBmcmVlLiAKICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgIDx0ZXJtPjx1bGluayB1cmw9Imh0dHA6Ly93d3cudHJhbnNnYW1pbmcuY29tIj5UcmFuc2dhbWluZydzIFdpbmVYPC91bGluaz48L3Rlcm0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIFRoaXMgaXMgVHJhbnNHYW1pbmcncyBXaW5lIHZlcnNpb24gc3BlY2lhbGx5IHN1aXRlZCBmb3IgZ2FtZXMuIAogICAgICAgICAgICAgIEl0IGluY2x1ZGVzIERpcmVjdDNEIHN1cHBvcnQgKHRodXMgaXRzIERpcmVjdFggc3VwcG9ydCBpcyBtdWNoCiAgICAgICAgICAgICAgbW9yZSBjb21wbGV0ZSB0aGFuIFdpbmUncykgYW5kIGNvcHlwcm90ZWN0aW9uIHN1cHBvcnQuIEl0cyBsaWNlbnNlCiAgICAgICAgICAgICAgaXMgQUZQTCwgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gY2FuIGJlIGRvd25sb2FkZWQgZm9yIGZyZWUsIGJ1dCAKICAgICAgICAgICAgICB0aGUgYmluYXJ5IHBhY2sgYWdlcyB0aGF0IGluY2x1ZGUgY29weSBwcm90ZWN0aW9uIHN1cHBvcnQgYW5kIGdvb2QKICAgICAgICAgICAgICBzdXBwb3J0IGFyZSBvbmx5IGZvciBzdWJzY3JpYmVkIGN1c3RvbWVycyAoJDUvbW9udGgpLiAKICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgIDx0ZXJtPjx1bGluayB1cmw9Imh0dHA6Ly93aW5lLmNvZGV3ZWF2ZXJzLmNvbSI+Q29kZXdlYXZlcnMnIFdpbmUgcHJldmlldzwvdWxpbms+PC90ZXJtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBUaGlzIGlzIGEgc3BlY2lhbGx5IHBhY2thZ2VkIGFuZCBtb3JlIHN0YWJsZS9vbGRlciB2ZXJzaW9uIG9mIFdpbmUKICAgICAgICAgICAgICB3aGljaCBoYXMgYSBuaWNlIHNldHVwIGZvciBlYXN5IGluc3RhbGxhdGlvbi4gTGljZW5zZSBYMTEsIGZyZWUgCiAgICAgICAgICAgICAgZG93bmxvYWQuIAogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAoJICA8dmFybGlzdGVudHJ5PgogICAgICAgICAgPHRlcm0+PHVsaW5rIHVybD0iaHR0cDovL3d3dy5jb2Rld2VhdmVycy5jb20vcHJvZHVjdHMvY3Jvc3NvdmVyLyI+Q29kZXdlYXZlcnMnIENyb3Nzb3ZlciBQbHVnaW48L3VsaW5rPjwvdGVybT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgU3BlY2lhbCBXaW5lIGluc3RhbGxhdGlvbiB0byBiZSB1c2VkIGZvciBydW5uaW5nIHdpbjMyIGJyb3dzZXIgCiAgICAgICAgICAgICAgcGx1Z2lucyBzdWNoIGFzIGUuZy4gUXVpY2t0aW1lIGluIExpbnV4IGJyb3dzZXJzLiBDb3N0cyAkMjQuOTUuIAogICAgICAgICAgICAgIFdlbGwgd29ydGggaXQgKHZlcnkgc3RhYmxlIGFuZCB1c2VmdWwgcGFja2FnaW5nKS4gCiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KCgkgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgICA8dGVybT48dWxpbmsgdXJsPSJodHRwOi8vd3d3LmNvZGV3ZWF2ZXJzLmNvbS9wcm9kdWN0cy9vZmZpY2UvIj5Db2Rld2VhdmVycycgQ3Jvc3NvdmVyIE9mZmljZTwvdWxpbms+PC90ZXJtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBXaW5lIHZlcnNpb24gd2l0aCBzcGVjaWFsIHBhY2thZ2luZyB0byBtYWtlIHN1cmUgYWxtb3N0IGFsbCAKICAgICAgICAgICAgICBpbXBvcnRhbnQgT2ZmaWNlIHR5cGUgcHJvZ3JhbXMgd29yayBwcmV0dHkgd2VsbC4gQ29zdHMgJDU0Ljk1LiAKICAgICAgICAgICAgICBTZWVtcyB0byBiZSB3ZWxsIHdvcnRoIGl0IHNvIGZhciBhY2NvcmRpbmcgdG8gc29tZSBjb21tZW50cy4gCiAgICAgICAgICAgICAgKG5vdGU6IHlvdSdyZSBzdXBwb3J0aW5nIGEgY29tcGFueSBhY3RpdmVseSBjb250cmlidXRpbmcgdG8gd2luZQogICAgICAgICAgICAgIGlmIHlvdSBkZWNpZGUgdG8gYnV5IGVpdGhlciBQbHVnaW4gb3IgT2ZmaWNlLgogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKCSAgPHZhcmxpc3RlbnRyeT4KICAgICAgICAgIDx0ZXJtPjx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9kb3dubG9hZC8iPk90aGVyIHBhY2thZ2VkIHZlcnNpb25zIG9mIFdpbmU8L3VsaW5rPjwvdGVybT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgVmFyaW91cyB3aW5lIHBhY2thZ2VzIGNhbiBiZSBkb3dubG9hZGVkIGZvciBmcmVlLCB0byBiZSBmb3VuZCBhdCAKICAgICAgICAgICAgICBXaW5lIEhRLiBUaGV5J3JlIG5vdCBvZmZpY2lhbGx5IHBhY2thZ2VkIGJ5IFdpbmUgSFEsIGFuZCBhcyBzdWNoIAogICAgICAgICAgICAgIG1heSBoYXZlIHNvbWUgY29uZmlndXJhdGlvbiBpbmNvbnNpc3RlbmNpZXMuCiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXRzLXRoZS1oaXN0b3J5LW9mLVdpbmUiPgogICAgICAgIDxwYXJhPldoYXQncyB0aGUgaGlzdG9yeSBvZiBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBXaW5lIHByb2plY3Qgc3RhcnRlZCBpbiAxOTkzIGFzIGEgd2F5IHRvIHN1cHBvcnQgcnVubmluZyBXaW5kb3dzIDMuMQogICAgICAgICAgcHJvZ3JhbXMgb24gTGludXguIEJvYiBBbXN0YWR0IHdhcyB0aGUgb3JpZ2luYWwgY29vcmRpbmF0b3IsIGJ1dCB0dXJuZWQKICAgICAgICAgIGl0IG92ZXIgZmFpcmx5IGVhcmx5IG9uIHRvIEFsZXhhbmRyZSBKdWxsaWFyZCwgd2hvIGhhcyBydW4gaXQgZXZlciAKICAgICAgICAgIHNpbmNlLiBBIDx1bGluayB1cmw9Im5ld3M6Y29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lIj5uZXdzZ3JvdXA8L3VsaW5rPgogICAgICAgICAgd2FzIGNyZWF0ZWQgaW4gSnVseSAxOTk0LiBPdmVyIHRoZSB5ZWFycywgcG9ydHMgZm9yCiAgICAgICAgICBvdGhlciBVbml4ZXMgaGF2ZSBiZWVuIGFkZGVkLCBhbG9uZyB3aXRoIHN1cHBvcnQgZm9yIFdpbjMyIGFzIFdpbjMyIAogICAgICAgICAgYXBwbGljYXRpb25zIGJlY2FtZSBwb3B1bGFyLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Fib3V0LnNodG1sIj4KICAgICAgICAgIGh0dHA6Ly93d3cud2luZWhxLmNvbS9hYm91dC5zaHRtbDwvdWxpbms+CiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hhdC1pcy10aGUtY3VycmVudC12ZXJzaW9uLW9mLVdpbmUiPgogICAgICAgIDxwYXJhPldoYXQgaXMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEEgbmV3IHZlcnNpb24gb2YgV2luZSBpcyBkaXN0cmlidXRlZCBhYm91dCBldmVyeSBtb250aC4gWW91IHdpbGwgYmUgCiAgICAgICAgICBhYmxlIHRvIGtlZXAgdXAgb24gYWxsIHRoZSBsYXRlc3QgcmVsZWFzZXMgYnkgcmVhZGluZyB0aGUgbmV3c2dyb3VwCiAgICAgICAgICA8dWxpbmsgdXJsPSJuZXdzOmNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZSI+CiAgICAgICAgICBjb21wLmVtdWxhdG9ycy5tcy13aW5kb3dzLndpbmU8L3VsaW5rPiwgb3IgYnkgdmlzaXRpbmcgdGhlCiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20iPldpbmUgSFEgaG9tZXBhZ2U8L3VsaW5rPi4gV2hlbgogICAgICAgICAgZG93bmxvYWRpbmcgV2luZSBmcm9tIHlvdXIgRlRQIHNpdGUgb2YgY2hvaWNlIChzZWUKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kb3dubG9hZC5zaHRtbCI+dGhlIERvd25sb2FkIHBhZ2U8L3VsaW5rPgogICAgICAgICAgZm9yIHNvbWUgb2YgdGhlc2UgY2hvaWNlcyksIHlvdSBjYW4gbWFrZSBzdXJlIHRoYXQgeW91IGFyZSBnZXR0aW5nIAogICAgICAgICAgdGhlIGxhdGVzdCB2ZXJzaW9uIGJ5IHdhdGNoaW5nIHRoZSB2ZXJzaW9uIG51bWJlcnMgaW4gdGhlIGRpc3RyaWJ1dGlvbgogICAgICAgICAgZmlsZW5hbWUuIEZvciBpbnN0YW5jZSwgdGhlIGRpc3RyaWJ1dGlvbiByZWxlYXNlZCBvbiBPY3RvYmVyIDMxLCAyMDAyCiAgICAgICAgICB3YXMgY2FsbGVkIFdpbmUtMjAwMjEwMzEudGFyLmd6LiBQYXRjaCBmaWxlcyBhcmUgYWxzbyBhdmFpbGFibGUuIElmCiAgICAgICAgICB5b3UgYXJlIGN1cnJlbnQgdG8gdGhlIHByZXZpb3VzIHZlcnNpb24sIHlvdSBjYW4gZG93bmxvYWQgYW5kIGFwcGx5IAogICAgICAgICAganVzdCB0aGUgY3VycmVudCBwYXRjaCBmaWxlIHJhdGhlciB0aGFuIHRoZSBlbnRpcmUgbmV3IGRpc3RyaWJ1dGlvbi4KICAgICAgICAgIFRoZSBwYXRjaCBmaWxlbmFtZXMgZm9sbG93IHRoZSBzYW1lIGNvbnZlbnRpb25zIGFzIHRoZSBtb250aGx5IAogICAgICAgICAgZGlzdHJpYnV0aW9uLiA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vZGV2LnNodG1sIj4KICAgICAgICAgIFJlYWQtb25seSBDVlM8L3VsaW5rPiBhY2Nlc3MgaXMgYWxzbyBhdmFpbGFibGUuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hhdC1pcy10aGUtY3VycmVudC1TdGF0dXMtb2YtV2luZSI+CiAgICAgICAgPHBhcmE+V2hhdCBpcyB0aGUgY3VycmVudCBTdGF0dXMgb2YgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBBcyBvZiBtaWQgMjAwMiwgV2luZSBjb25zaXN0cyBvZiBvdmVyIDEgbWlsbGlvbiBsaW5lcyBvZiBDIGNvZGUsCiAgICAgICAgICB3cml0dGVuIGJ5IG1vcmUgdGhhbiAzMDAgZGV2ZWxvcGVycyBmcm9tIGRvemVucyBvZiBjb3VudHJpZXMgYXJvdW5kCiAgICAgICAgICB0aGUgd29ybGQuIFdpbmUgaXMgaW4gYWN0aXZlIHVzZSBieSBhbiBlc3RpbWF0ZWQgMTAwSyBwZW9wbGUuIFdpbmUKICAgICAgICAgIGltcGxlbWVudHMgbW9yZSB0aGFuIDkwJSBvZiB0aGUgY2FsbHMgaW4gcG9wdWxhciBXaW5kb3dzIAogICAgICAgICAgc3BlY2lmaWNhdGlvbnMgc3VjaCBhcyBFQ01BLTIzNCBhbmQgT3BlbjMyLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFlvdSBtYXkgYWxzbyB3YW50IHRvIGxvb2sgYXQgdGhlCiAgICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vYWJvdXQvaW5kZXgucGhwP3N0YXR1cyI+CiAgICAgICAgICBTdGF0dXMgcGFnZTwvdWxpbms+IGZvciBhIGdsb2JhbCB2aWV3IG9uIFdpbmUncyBpbXBsZW1lbnRhdGlvbiBwcm9ncmVzcy4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGVuLXdpbGwtV2luZS1iZS1maW5pc2hlZCI+CiAgICAgICAgPHBhcmE+V2hlbiB3aWxsIFdpbmUgYmUgZmluaXNoZWQ/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTGFyZ2Ugc29mdHdhcmUgcHJvamVjdHMgYXJlIG5ldmVyIGZpbmlzaGVkLCBvbmx5IHJlbGVhc2VkLiBJbiBhbnkKICAgICAgICAgIGNhc2UgV2luZSBpcyBjaGFzaW5nIGEgbW92aW5nIHRhcmdldCBzaW5jZSBldmVyeSBuZXcgcmVsZWFzZSBvZiAKICAgICAgICAgIFdpbmRvd3MgY29udGFpbnMgbmV3IEFQSSBjYWxscyBvciB2YXJpYXRpb25zIHRvIHRoZSBleGlzdGluZyBvbmVzLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEJlY2F1c2UgV2luZSBpcyBiZWluZyBkZXZlbG9wZWQgYnkgdm9sdW50ZWVycywgaXQgaXMgZGlmZmljdWx0IHRvCiAgICAgICAgICBwcmVkaWN0IHdoZW4gaXQgd2lsbCBiZSByZWFkeSBmb3IgZ2VuZXJhbCByZWxlYXNlLiBCdXQgZHVlIHRvIHRoZQogICAgICAgICAgbXVjaCBpbmNyZWFzZWQgaW50ZXJlc3QgYnkgY29tcGFuaWVzIGluIHBvcnRpbmcgYXBwcyB2aWEgV2luZSwgV2luZQogICAgICAgICAgZGV2ZWxvcG1lbnQgaXMgY29uc3RhbnRseSBnZXR0aW5nIG1vcmUgYW5kIG1vcmUgYWN0aXZlLiBSaWdodCBub3cKICAgICAgICAgIHdlIGFyZSB3b3JraW5nIG9uIHJlbGVhc2luZyBXaW5lIDAuOSBkdXJpbmcgMjAwMwogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ildoby1pcy1yZXNwb25zaWJsZS1mb3ItV2luZSI+CiAgICAgICAgPHBhcmE+V2hvJ3MgcmVzcG9uc2libGUgZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyBhdmFpbGFibGUgdGhhbmtzIHRvIHRoZSB3b3JrIG9mIG1hbnkgcGVvcGxlLiBQbGVhc2Ugc2VlIHRoZQogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL3NvdXJjZS9BVVRIT1JTIj5BVVRIT1JTPC91bGluaz4KICAgICAgICAgIGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIGNvbXBsZXRlIGxpc3QuIFNvbWUgY29tcGFuaWVzIHRoYXQKICAgICAgICAgIGFyZSBvciBoYXZlIGJlZW4gaW52b2x2ZWQgd2l0aCBXaW5lIGRldmVsb3BtZW50IGFyZSBDb2Rld2VhdmVycywKICAgICAgICAgIFRyYW5zR2FtaW5nLCBDb3JlbCwgYW5kIE1hY2FkYW1pYW4uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iZm9sa3Mtd2hvLWNvbnRyaWJ1dGVkLW1vbmV5LW9yLWVxdWlwbWVudCI+CiAgICAgICAgPHBhcmE+V2hvIGFyZSB0aGUgZm9sa3MgYW5kIG9yZ2FuaXphdGlvbnMgd2hvIGhhdmUgY29udHJpYnV0ZWQgbW9uZXkgb3IgZXF1aXBtZW50IHRvIHRoZSBXaW5lIHByb2plY3Q/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGVvcGxlIGFuZCBvcmdhbml6YXRpb25zIHdobyBoYXZlIGdpdmVuIGdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgb2YKICAgICAgICAgIG1vbmV5LCBlcXVpcG1lbnQsIG9yIGxpY2Vuc2VzLCBpbmNsdWRlOgogICAgICAgIDwvcGFyYT4KICAgICAgICA8aXRlbWl6ZWRsaXN0IHNwYWNpbmc9ImNvbXBhY3QiPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5EYXZpZCBMLiBIYXJwZXI8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5Cb2IgSGVwcGxlPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+TWFyayBBLiBIb3J0b248L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5LZXZpbiBQLiBMYXd0b248L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5UaGUgU3ludHJvcHkgSW5zdGl0dXRlPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+SmFtZXMgV291bGZlPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICBWTVdhcmUgSW5jLiAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy52bXdhcmUuY29tIj4KICAgICAgICAgICAgIGh0dHA6Ly93d3cudm13YXJlLmNvbTwvdWxpbms+KQogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgIENvcmVsICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3LmNvcmVsLmNvbSI+CiAgICAgICAgICAgICBodHRwOi8vd3d3LmNvcmVsLmNvbTwvdWxpbms+KQogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2hhdC11bmRvY3VtZW50ZWQtQVBJcy1hcmUtbm90LXVuZGVyc3Rvb2QiPgogICAgICAgIDxwYXJhPldoYXQgdW5kb2N1bWVudGVkIEFQSXMgLyBpbnRlcmZhY2VzIGFyZSBub3QgdW5kZXJzdG9vZD8gV291bGQKICAgICAgICAgICAgICBzZWVpbmcgTWljcm9zb2Z0IHNvdXJjZSBoZWxwPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBiZXN0IHdvdWxkIGJlIGlmIHRoZSBXaW5kb3dzIEFQSSB3YXMgZnVsbHkgZG9jdW1lbnRlZCwgc28gV2luZQogICAgICAgICAgY291bGQgYmUgYSBwZXJmZWN0ICJjbGVhbi1yb29tIiBpbXBsZW1lbnRhdGlvbi4gU2VlaW5nIHRoZSBzb3VyY2UKICAgICAgICAgIGNvZGUgbWlnaHQgbWFrZSBpdCBoYXJkZXIgdG8gcHJvdmUgdGhhdCBubyBjb3B5cmlnaHQgdmlvbGF0aW9ucyBoYXZlCiAgICAgICAgICB0YWtlbiBwbGFjZS4gVGhhdCBzYWlkLCB0aGUgZG9jdW1lbnRhdGlvbiBpcyBvZnRlbiBiYWQsIG5vbmV4aXN0ZW50LAogICAgICAgICAgYW5kIGV2ZW4gbWlzbGVhZGluZyB3aGVyZSBpdCBleGlzdHMsIHNvIGEgZmFpciBhbW91bnQgb2YgcmV2ZXJzZQogICAgICAgICAgZW5naW5lZXJpbmcgaGF2ZSBiZWVuIG5lY2Vzc2FyeSwgcGFydGljdWxhcmx5IGluIHRoZSBzaGVsbCAoRXhwbG9yZXIpCiAgICAgICAgICBpbnRlcmZhY2UuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy1UcmFuc0dhbWluZ3MtbGFzdC1wYXRjaC1pbmNsdWRlZC1pbi1XaW5lIj4KICAgICAgICA8cGFyYT5JcyBUcmFuc0dhbWluZydzIGxhdGVzdCBwYXRjaCBpbmNsdWRlZCBpbiB0aGUgc3RhbmRhcmQgV2luZSByZWxlYXNlPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE5vLCBpdCdzIG5vdC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUcmFuc0dhbWluZyBtYWtlIG1vbmV5IHZpYSBhIHN1YnNjcmlwdGlvbiBzZXJ2aWNlLiBUaHVzIHRoZXkgCiAgICAgICAgICBzdWJtaXR0ZWQgdGhlaXIgRGlyZWN0RHJhdyBhbmQgc29tZSBEaXJlY3RTb3VuZCB3b3JrLCBidXQgdGhleSB3aWxsCiAgICAgICAgICBub3Qgc3VibWl0IHRoZWlyIE9wZW5HTCB3cmFwcGVyIGJhc2VkIERpcmVjdDNEIHN1cHBvcnQuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2lsbC10aGVyZS1iZS1hLVdpbmRvd3MtdmVyc2lvbi1vZi1XaW5lIj4KICAgICAgICA8cGFyYT5XaWxsIHRoZXJlIGJlIGEgV2luZG93cyB2ZXJzaW9uIG9mIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgU29tZSBwZW9wbGUgYXJlIHdvcmtpbmcgb24gZ2V0dGluZyBXaW5lIGNvZGUgdG8gY29tcGlsZSBvbiBXaW5kb3dzLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8aXRlbWl6ZWRsaXN0IHNwYWNpbmc9ImNvbXBhY3QiPgogICAgICAgICAgPGxpc3RpdGVtPiAKICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgQ3lnd2luICg8dWxpbmsgdXJsPSJodHRwOi93d3cuY3lnd2luLmNvbSI+CiAgICAgICAgICAgICAgaHR0cDovL3d3dy5jeWd3aW4uY29tLzwvdWxpbms+KQogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICBSZWFjdG9zICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3LnJlYWN0b3MuY29tLyI+CiAgICAgICAgICAgICBodHRwOi8vd3d3LnJlYWN0b3MuY29tLzwvdWxpbms+KQogICAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgICAgIDxwYXJhPgogICAgICAgICAgVGhlcmUncyBzb21lIHByb2dyZXNzLCBzbyBhIFdpbmUgdmVyc2lvbiB0aGF0J3MgdXNhYmxlIG9uIFdpbmRvd3MKICAgICAgICAgIG1pZ2h0IGJlIGF2YWlsYWJsZSBhdCBzb21lIHRpbWUuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogIAogICAgPC9xYW5kYWRpdj4KICAgIDxxYW5kYWRpdiBpZD0iV2hhdC1kby1JLW5lZWQtaW4tb3JkZXItdG8tdXNlLVdpbmUiPgogICAgICA8dGl0bGU+V2hhdCBkbyBJIG5lZWQgaW4gb3JkZXIgdG8gdXNlIFdpbmU/PC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iVW5kZXItd2hhdC1wbGF0Zm9ybXMtd2lsbC1XaW5lLXJ1biI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBVbmRlciB3aGF0IGhhcmR3YXJlIHBsYXRmb3JtKHMpIGFuZCBvcGVyYXRpbmcgc3lzdGVtKHMpIHdpbGwKICAgICAgICAgIFdpbmUoTGliKSBydW4/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyBiZWluZyBkZXZlbG9wZWQgc3BlY2lmaWNhbGx5IHRvIHJ1biBvbiB0aGUgPGVtcGhhc2lzPkludGVsIHg4NjwvZW1waGFzaXM+IGNsYXNzIG9mIENQVXMgdW5kZXIgY2VydGFpbiBVTklYZXMgdGhhdCBydW4gb24gdGhlIHg4NiBwbGF0Zm9ybS4KCSAgV2luZWxpYiBob3dldmVyIGlzIGNhcGFibGUgb2YgcG9ydGluZyBXaW5kb3dzIHByb2dyYW0gPGVtcGhhc2lzPnNvdXJjZSBjb2RlPC9lbXBoYXNpcz4gdG8gb3RoZXIgcGxhdGZvcm1zIGFsc28sIG5vdCBvbmx5IHg4Ni4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaHVzIHJ1bm5pbmcgV2luZG93cyBwcm9ncmFtcyB2aWEgV2luZSBvbiBvdGhlciBwbGF0Zm9ybXMgKGUuZy4gTWFjT1MgWCkgaXMgPGVtcGhhc2lzPm5vdDwvZW1waGFzaXM+IHBvc3NpYmxlOyB0aGUgb25seSB3YXkgdG8gcnVuIFdpbmRvd3MgY29kZQoJICBvbiBNYWNPUyBYIHdvdWxkIGJlIHRvIHRha2UgV2luZG93cyBwcm9ncmFtIHNvdXJjZSBjb2RlIGFuZCByZWNvbXBpbGUgaXQgZm9yIGUuZy4gTWFjT1MgWCB1c2luZyBXaW5lbGliLgoJPC9wYXJhPgoJPHBhcmE+CgkgIFRoZSBmb2xsb3dpbmcgd2lsbCBsaXN0IHRoZSB4ODYgb3BlcmF0aW5nIHN5c3RlbXMgc3VwcG9ydGVkIGJ5CgkgIFdpbmU7IFdpbmVsaWIgc3VwcG9ydCBmb3Igb3RoZXIgcGxhdGZvcm1zIGtlZXBzIGV2b2x2aW5nLAoJICBzbyBpdCdzIG5vdCBzcGVjaWZpY2FsbHkgbGlzdGVkIGhlcmUuCgk8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBOZXRCU0QsIE9wZW5CU0QsIFVuaXh3YXJlLCBhbmQgU0NPIE9wZW5TZXJ2ZXIgNSB3b3JrZWQgYXQgb25lIHRpbWUsCiAgICAgICAgICBidXQgV2luZSBub3cgcmVxdWlyZXMga2VybmVsLWxldmVsIHRocmVhZHMgd2hpY2ggYXJlIG5vdCBjdXJyZW50bHkgCiAgICAgICAgICBhdmFpbGFibGUgKG9yIHVuZGVyc3Rvb2QgYnkgdGhlIFdpbmUgdGVhbSkgaW4gdGhvc2UgcGxhdGZvcm1zLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBXaW5lIGRldmVsb3BtZW50IHRlYW0gaG9wZXMgdG8gYXR0cmFjdCB0aGUgaW50ZXJlc3Qgb2Ygb3RoZXIKICAgICAgICAgIGNvbW1lcmNpYWwgVU5JWCBhbmQgVU5JWCBjbG9uZSB2ZW5kb3JzIGFzIHdlbGwuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQmVPUzogcG9ydGluZyBlZmZvcnRzIHVzZWQgdG8gYmUgcHJldHR5IHN0cm9uZywgYnV0IEJlT1MgaGFzIHNldmVyZQogICAgICAgICAgbGltaXRhdGlvbnMgaW4gVW5peCBjYWxsIHN1cHBvcnQsIHNvIGEgcG9ydCB3aWxsIHByb2JhYmx5IG5ldmVyCiAgICAgICAgICBoYXBwZW4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRnJlZUJTRDogU2hvdWxkIHdvcmssIHdpdGggbGltaXRhdGlvbnMgaW4gc3BlY2lmaWMgYXJlYXMgKG1haW5seSAKICAgICAgICAgIG1pc3NpbmcgZGV2aWNlL2hhcmR3YXJlIHN1cHBvcnQpCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTGludXgveDg2OiBXT1JLUy4gSWYgaXQgZG9lc24ndCwgWW91IG1heSBhbHNvIHdhbnQgdG8gc2VlIHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9mb20tbWV0YS9jYWNoZS8xOS5odG1sIj5XaW5lCiAgICAgICAgICBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldoYXQtbWluaW11bS1DUFUtbXVzdC1JLWhhdmUiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2hhdCBtaW5pbXVtIENQVSBtdXN0IEkgaGF2ZSBpbiBteSBjb21wdXRlciB0byBiZSBhYmxlIHRvIHJ1biBXaW5lIAogICAgICAgICAgYW5kIE1TIFdpbmRvd3MgYXBwbGljYXRpb25zIHNtb290aGx5PwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdlIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFdpbmUgYW5kIFdpbmVsaWIgaGVyZS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIHdvbid0IHJ1biBvbiBhbnkgeDg2IENQVSBsZXNzIHRoYW4gYW4gODAzODYgZHVlIHRvIGFkZHJlc3MKICAgICAgICAgIG1hbmFnZW1lbnQgbGltaXRhdGlvbnMuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSXQgaXMga25vd24gdG8gYWxzbyB3b3JrIGluIHRoZSA4MDQ4NiBhbmQgdXB3YXJkcyBjb21wYXRpYmxlIENQVXMuCiAgICAgICAgICBUaGUgYmFzaWMgdGVzdCBpcywgaWYgeW91IGNhbiBydW4gWDExIG5vdywgeW91IHNob3VsZCBiZSBhYmxlIHRvIHJ1bgogICAgICAgICAgV2luZSBhbmQgTVMgV2luZG93cyBhcHBsaWNhdGlvbnMgdW5kZXIgaXQuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQXMgYWx3YXlzLCB0aGUgZmFzdGVyIHlvdXIgQ1BVLCB0aGUgYmV0dGVyLiBIYXZpbmcgYSBtYXRoIGNvcHJvY2Vzc29yCiAgICAgICAgICBpcyB1bmltcG9ydGFudC4gSG93ZXZlciwgaGF2aW5nIGEgZ3JhcGhpY3MgYWNjZWxlcmF0ZWQgdmlkZW8gY2FyZAogICAgICAgICAgc3VwcG9ydGVkIGJ5IFggd2lsbCBoZWxwIGdyZWF0bHkuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRGVwZW5kaW5nIG9uIHlvdXIgYXBwbGljYXRpb24geW91IG1heSBmaW5kIHRoYXQgZmFzdGVyIHNwZWVkcyBhcmUKICAgICAgICAgIHJlcXVpcmVkIGZvciBzZW5zaWJsZSB1c2UuIFdlIGNhbid0IGdpdmUgc3BlY2lmaWMgYWR2aWNlIG9uIHRoYXQgZHVlCiAgICAgICAgICB0byB0aGUgdmFzdCByYW5nZSBvZiBhcHBsaWNhdGlvbnMgb3V0IHRoZXJlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1tdWNoLWRpc2stc3BhY2Utd2lsbC1XaW5lLXRha2UiPgogICAgICAgIDxwYXJhPgogICAgICAgICBIb3cgbXVjaCBkaXNrIHNwYWNlIHdpbGwgdGhlIFdpbmUgc291cmNlIGNvZGUgYW5kIGJpbmFyaWVzIHRha2Ugb24gbXkKICAgICAgICAgaGFyZCBkcml2ZT8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgbmVlZCBhcHByb3hpbWF0ZWx5IDI1MCBtZWdhYnl0ZXMgb2YgZnJlZSBoYXJkIGRyaXZlIHNwYWNlIHRvCiAgICAgICAgICBzdG9yZSBhbmQgY29tcGlsZSB0aGUgc291cmNlIGNvZGUuIFdpbmUgYWxzbyBuZWVkcyBhYm91dCAxOCBtZWdzIGluCiAgICAgICAgICB5b3VyIC90bXAgZGlyZWN0b3J5LiBBbmQgYWJvdXQgNTAgTUIgYXJlIG5lZWRlZCB0byBkbyBhIG1ha2UgaW5zdGFsbC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGF0LW90aGVyLXNvZnR3YXJlLWRvLUktbmVlZC10by1jb21waWxlIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoYXQgb3RoZXIgc29mdHdhcmUgZG8gSSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIHRvIGNvbXBpbGUgYW5kIHJ1biAKICAgICAgICAgIFdpbmU/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTWFueSBkZXZlbG9wbWVudCB0b29scyBuZWVkIHRvIGJlIGluc3RhbGxlZCBpbiBvcmRlciB0byBjb21waWxlIFdpbmUuCiAgICAgICAgICBBIGxpc3Qgb2YgcmVxdWlyZWQgcGFja2FnZXMgZm9yIHNldmVyYWwgZGlzdHJpYnV0aW9ucyBpcyBpbmNsdWRlZCBpbgogICAgICAgICAgdGhlIFJFQURNRSAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL3NvdXJjZS9SRUFETUUiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL3NvdXJjZS9SRUFETUU8L3VsaW5rPikuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVG8gcnVuIFdpbmUsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CgogICAgICAgIDxpdGVtaXplZGxpc3Qgc3BhY2luZz0iY29tcGFjdCI+CiAgICAgICAgICA8bGlzdGl0ZW0+IAogICAgICAgICAgICA8cGFyYT5UaGUgY29tcGlsZWQgV2luZSBiaW5hcnk8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5BIHByb3Blcmx5IGNvbmZpZ3VyZWQgd2luZS5jb25mIGZpbGUgKG9yIH4vLndpbmVyYyBmaWxlKTwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPkFuIGluc3RhbGxlZCBhbmQgd29ya2luZyBYIFdpbmRvdyBzeXN0ZW08L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT5Tb21lIFdpbmRvd3MgcHJvZ3JhbXMgdG8gdGVzdDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctbXVjaC1SQU0tZG8tSS1uZWVkIj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEhvdyBtdWNoIFJBTSBkbyBJIG5lZWQgdG8gaGF2ZSBvbiBteSBVTklYIHN5c3RlbSB0byBiZSBhYmxlIHRvIHJ1biAKICAgICAgICAgIFdpbmUgYW5kIE1TIFdpbmRvd3MgYXBwbGljYXRpb25zIHNtb290aGx5PwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBjYW4gcnVuIFggc21vb3RobHkgb24geW91ciBVTklYIHN5c3RlbSBub3csIHlvdSBzaG91bGQgYmUgCiAgICAgICAgICBhYmxlIHRvIHJ1biBXaW5lIGFuZCBNUyBXaW5kb3dzIGFwcGxpY2F0aW9ucyBqdXN0IGZpbmUgdG9vLCBkZXBlbmRpbmcKICAgICAgICAgIG9uIGhvdyBtZW1vcnkgaHVuZ3J5IHRoZSBhcHBsaWNhdGlvbiBpcy4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBBIFdpbmUgd29ya3N0YXRpb24gd2lsbCB3b3JrIHdpdGggMTYgbWVnYWJ5dGVzIG9mIFJBTSBhbmQgYSAxNiAKICAgICAgICAgIG1lZ2FieXRlIHN3YXAgcGFydGl0aW9uIGFzIGxvbmcgYXMgeW91IGhhdmUgYSByZWFzb25hYmxlIGdyYXBoaWNzIAogICAgICAgICAgY2FyZC4gTW9zdCBhcHBsaWNhdGlvbnMgd2lsbCBydW4gcmVhc29uYWJseSB3aXRoIDY0LzY0IE1iLCAKICAgICAgICAgIGludGVyYWN0aXZlIGdhbWVzIGFyZSBsaWtlbHkgdG8gbmVlZCBtb3JlLiBZb3UgY2FuIHJ1biBXaW5lIHdpdGggOC84LAogICAgICAgICAgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIHVudXNhYmx5IHNsb3cgYW5kIHZlcnkgY29uc3RyYWluaW5nIG9uIHRoZSAKICAgICAgICAgIGFwcGxpY2F0aW9ucyB5b3UgY2FuIHJ1bi4gSWYgeW91IHdpc2ggdG8gYmUgcGFydCBvZiB0aGUgZGV2ZWxvcG1lbnQKICAgICAgICAgIHRlYW0gYW5kIHByb2dyYW0gV2luZSBpdHNlbGYsIGJlIGF3YXJlIHRoYXQgdGhlIGRlYnVnZ2VyIGlzIHJhdGhlciAKICAgICAgICAgIG1lbW9yeSBpbnRlbnNpdmUuIFNvbWUgaGF2ZSBzdWdnZXN0ZWQgdGhhdCA2NCBtZWdhYnl0ZXMgaXMgdGhlCiAgICAgICAgICBtaW5pbXVtIFJBTSBuZWVkZWQgZm9yIFdpbmUgZGV2ZWxvcG1lbnQsIGFsdGhvdWdoIHNvbWUgYXJlIGFibGUgdG8gCiAgICAgICAgICB3b3JrIChhbGJlaXQgc2xvd2x5KSB3aXRoIDI0IG1lZ2FieXRlcyBvZiBwaHlzaWNhbCBSQU0gYW5kIGxvdHMgb2YKICAgICAgICAgIHN3YXAgc3BhY2UuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWxvbmctZG9lcy1XaW5lLXRha2UtdG8tYnVpbGQiPgogICAgICAgIDxwYXJhPkhvdyBsb25nIGRvZXMgV2luZSB0YWtlIHRvIGJ1aWxkPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyBnZXR0aW5nIHRvIGJlIHF1aXRlIGxhcmdlLCBhbmQgYnVpbGRpbmcgZnJvbSBzY3JhdGNoIHRha2VzIGEKICAgICAgICAgIGxvdCBvZiBwcm9jZXNzaW5nLiBBcyBvZiBTZXB0ZW1iZXIgMjAwMiwgY29tcGlsZSB0aW1lcyB3ZXJlIGFyb3VuZCAyMAogICAgICAgICAgbWludXRlcyBvbiBhbiBBdGhsb24gMTIwMCB3aXRoIDY0MCBNYiBhbmQgNDUtNTAgbWludXRlcyBvbiBhIEN5cml4IAogICAgICAgICAgMzAwIHdpdGggNjQgTWIuIElmIHlvdSBoYXZlIGEgQ1ZTIGNvcHksIHlvdSBtYXkgbm90IG5lZWQgdG8gcmVidWlsZAogICAgICAgICAgdGhlIHdob2xlIHRoaW5nIGV2ZXJ5IHRpbWUgeW91IHVwZGF0ZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkktaGF2ZS1hLURyaXZlc3BhY2VkLXBhcnRpdGlvbiI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJIGhhdmUgYSBEcml2ZXNwYWNlZCwgRG91Ymxlc3BhY2VkIG9yIFN0YWNrZXJlZCBET1MgcGFydGl0aW9uLiBDYW4gCiAgICAgICAgICBXaW5lIHJ1biBNUyBXaW5kb3dzIGJpbmFyaWVzIGxvY2F0ZWQgaW4gc3VjaCBhIHBhcnRpdGlvbj8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZZXMsIGJ1dCBvbmx5IGlmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHN1cHBvcnRzIG1vdW50aW5nIHRob3NlIHR5cGVzCiAgICAgICAgICBvZiBkcml2ZXMuVGhlcmUgaXMgYSBMaW51eCBmaWxlIHN5c3RlbSBkcml2ZXIgY2FsbGVkIGRtc2RvcyB0aGF0IHdpbGwKICAgICAgICAgIGFsbG93IHJlYWQvd3JpdGUgYWNjZXNzIHRocm91Z2ggRG91Ymxlc3BhY2VkIGFuZCBEcml2ZXNwYWNlIDEuMCAKICAgICAgICAgIGRyaXZlcy4gTW9yZSBzcGVjaWZpY2FsbHksIGl0IHN1cHBvcnRzIG1vdW50aW5nIERPUyA2LjAgYW5kIDYuMiAKICAgICAgICAgIERvdWJsZXNwYWNlZCwgRE9TIDYuMjIgRHJpdmVzcGFjZWQsIGFuZCBXaW5kb3dzIDk1IERvdWJsZXNwYWNlZCAKICAgICAgICAgIGNvbXByZXNzZWQgcGFydGl0aW9ucyAocmVhZCBhbmQgd3JpdGUgYWNjZXNzIHdvcmtzIGZpbmUsIGJ1dCB3cml0ZSAKICAgICAgICAgIGFjY2VzcyBpcyBzbG93KS4gSXQgY2FuIGJlIGZvdW5kIGF0IAogICAgICAgICAgPHVsaW5rIHVybD0iZnRwOi8vbWV0YWxhYi51bmMuZWR1L3B1Yi9MaW51eC9zeXN0ZW0vZmlsZXN5c3RlbXMvZG9zZnMvIj4KICAgICAgICAgIGZ0cDovL21ldGFsYWIudW5jLmVkdS9wdWIvTGludXgvc3lzdGVtL2ZpbGUgc3lzdGVtcy9kb3Nmcy88L3VsaW5rPgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkRvLUktbmVlZC10by1oYXZlLWEtRE9TLXBhcnRpdGlvbiI+CiAgICAgICAgPHBhcmE+RG8gSSBuZWVkIHRvIGhhdmUgYSBET1MgcGFydGl0aW9uIG9uIG15IHN5c3RlbSB0byB1c2UgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgZG8gbm90IG5lZWQgYSBsaWNlbnNlZCBhbmQgaW5zdGFsbGVkIGNvcHkgb2YgRE9TIG9yIE1TIFdpbmRvd3MgdG8KICAgICAgICAgIGluc3RhbGwsIGNvbmZpZ3VyZSBhbmQgcnVuIFdpbmUuIEhvd2V2ZXIsIFdpbmUgaGFzIHRvIGJlIGFibGUgdG8gCiAgICAgICAgICAnc2VlJyBhbiBNUyBXaW5kb3dzIGJpbmFyeSAoaS5lLiBhcHBsaWNhdGlvbikgaWYgaXQgaXMgdG8gcnVuIGl0LgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KIAogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJEb2VzLU1TLVdpbmRvd3MtbmVlZC10by1iZS1pbnN0YWxsZWQiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgRG9lcyBNUyBXaW5kb3dzIG5lZWQgdG8gYmUgbG9hZGVkIGludG8gdGhhdCBwYXJ0aXRpb24gaW4gb3JkZXIgdG8KICAgICAgICAgIHJ1biBNUyBXaW5kb3dzIHByb2dyYW1zIHVuZGVyIFdpbmU/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTWFueSBmb2xrcyBoYXZlIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQgYW5kIHJ1biBzb21lIHNtYWxsIHByb2dyYW1zCiAgICAgICAgICBpbiB0aGVpciBVTklYIGZpbGVzeXN0ZW0gd2l0aG91dCBoYXZpbmcgYSBET1MgcGFydGl0aW9uIG9yIE1TIAogICAgICAgICAgV2luZG93cy4gSG93ZXZlciwgaW4gbWFueSBjYXNlcyB5b3UgbmVlZCBhIGRpcmVjdG9yeSBhbmQgZmlsZSAKICAgICAgICAgIGluZnJhc3RydWN0dXJlIHRoYXQgaXMgc2ltaWxhciB0byBhbiBleGlzdGluZyBXaW5kb3dzIGluc3RhbGxhdGlvbi4KICAgICAgICAgIFNvbWUgYXBwbGljYXRpb25zJyBpbnN0YWxsYXRpb24gcHJvZ3JhbXMgd2FudCB0byBkaXN0cmlidXRlIHNvbWUgb2YKICAgICAgICAgIHRoZSBwYWNrYWdlJ3MgZmlsZXMgaW50byB0aGUgL3dpbmRvd3MgYW5kIC93aW5kb3dzL3N5c3RlbSAKICAgICAgICAgIGRpcmVjdG9yaWVzIGluIG9yZGVyIHRvIHJ1biwgYW5kIHVubGVzcyB0aGVzZSBleGlzdCBvbiB5b3VyIFVOSVggCiAgICAgICAgICBmaWxlIHN5c3RlbSwgdGhvc2UgcHJvZ3JhbXMgd2lsbCBub3QgaW5zdGFsbCBjb3JyZWN0bHkgYW5kIHByb2JhYmx5CiAgICAgICAgICB3aWxsIG5vdCBydW4gd2VsbCwgaWYgYXQgYWxsLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBoYXZlIGEgRE9TIHBhcnRpdGlvbiB3aXRoIE1TIFdpbmRvd3MgaW5zdGFsbGVkIGluIGl0LCBtYWtlCiAgICAgICAgICBzdXJlIHRoYXQgeW91ciBVTklYIHN5c3RlbSBjYW4gJ3NlZScgdGhpcyBwYXJ0aXRpb24gKGNoZWNrIHlvdXIgCiAgICAgICAgICAvZXRjL2ZzdGFiIGZpbGUgb3IgbW91bnQgdGhlIHBhcnRpdGlvbiBtYW51YWxseSkgc28gdGhhdCBXaW5lIGNhbgogICAgICAgICAgcnVuIHRoZSBNUyBXaW5kb3dzIGJpbmFyaWVzIGxvY2F0ZWQgaW4gdGhlIERPUyBwYXJ0aXRpb24uIFRvIHJ1bgogICAgICAgICAgd2l0aG91dCBhIERPUyBwYXJ0aXRpb24sIHlvdSBuZWVkIHRvIHNldCBhIFVOSVggcGF0aCB0byBiZSB5b3VyIAogICAgICAgICAgZHJpdmUgQywgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSAvd2luZG93cyBhbmQgL3dpbmRvd3Mvc3lzdGVtIAogICAgICAgICAgZGlyZWN0b3JpZXMgcG9pbnQgdG8gc29tZSBwbGFjZSB0aGF0IGFjdHVhbGx5IGV4aXN0LgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEhlcmUncyBhbiBleGFtcGxlLCBjb3BpZWQgZnJvbSBhIG1hY2hpbmUgd2hpY2ggaGFzIG5vIERPUyBwYXJ0aXRpb24KICAgICAgICAgIGJ1dCBzdWNjZXNzZnVsbHkgcnVucyBXaW5lOgogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgogICAgW0RyaXZlIENdICAgICAgCiAgICAgICAgICBQYXRoPS92YXIvbGliL3dpbmUKICAgICAgICAgIFR5cGU9aGQKICAgICAgICAgIExhYmVsPU1TLURPUwogICAgICAgICAgRmlsZXN5c3RlbT13aW45NQogICAgW3dpbmVdCiAgICAgICAgICBXaW5kb3dzPWM6XHdpbmRvd3MKICAgICAgICAgIFN5c3RlbT1jOlx3aW5kb3dzXHN5c3RlbQogICAgICAgICAgVGVtcD1lOlwKICAgICAgICAgIFBhdGg9Yzpcd2luZG93cztjOlx3aW5kb3dzXHN5c3RlbTtjOgogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICBJbiA8ZmlsZW5hbWU+L3Zhci9saWIvd2luZS93aW5kb3dzPC9maWxlbmFtZT4sIHlvdSB3aWxsIG5lZWQgdG8KICAgICAgICAgaW5zdGFsbCBhIDxmaWxlbmFtZT53aW4uaW5pPC9maWxlbmFtZT4gY29uZmlnIGZpbGUgdGhhdCB5b3UgbWlnaHQKICAgICAgICAgZmluZCBvbiBhIHR5cGljYWwgTVMgV2luZG93cyAzLjEgbWFjaGluZS4gVGhlIGRpcmVjdG9yeQogICAgICAgICA8ZmlsZW5hbWU+L3Zhci9saWIvd2luZS93aW5kb3dzL3N5c3RlbTwvZmlsZW5hbWU+IHNob3VsZCBleGlzdCwgYnV0CiAgICAgICAgIGRvZXNuJ3QgbmVlZCB0byBjb250YWluIGFueXRoaW5nLiBIb3dldmVyLCB0byB1c2UgTVMgRExMcywgeW91IGNhbgogICAgICAgICBjb3B5IHRoZW0gaW50byB0aGF0IGRpcmVjdG9yeS4gTm90ZSB0aGF0IHRoaXMgaXMgYSBjb250cmF2ZW50aW9uIG9mCiAgICAgICAgIHRoZSBXaW5kb3dzIGxpY2VuY2UgdW5sZXNzIFdpbmRvd3MgaXMgcHJvcGVybHkgaW5zdGFsbGVkIG9uIHRoZQogICAgICAgICBtYWNoaW5lLiBJZiB5b3UgaGF2ZSBET1MvTVMgV2luZG93cyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0sIHlvdSBjYW4KICAgICAgICAgbW91bnQgdGhhdCBwYXJ0aXRpb24gYXQgYm9vdHVwIGJ5IG1vZGlmeWluZyB0aGUgZmlsZSAKICAgICAgICAgPGZpbGVuYW1lPi9ldGMvZnN0YWI8L2ZpbGVuYW1lPiBpbiB5b3VyIFVOSVggcGFydGl0aW9uIChhc3N1bWluZyB0aGF0CiAgICAgICAgIHRoZSBVTklYIGtlcm5lbCBzdXBwb3J0cyB0aGUgRE9TL01TIFdpbmRvd3MgZmlsZXN5c3RlbSB0eXBlKS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJZiB5b3UgZWRpdCB0aGlzIGZpbGUgYnkgaGFuZCwgaXQgc2hvdWxkIGNvbnRhaW4gc29tZXRoaW5nIHNpbWlsYXIKICAgICAgICAgIHRvIHRoZSBmb2xsb3dpbmc6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+Ci9kZXYvaGRhMSAvZG9zYyBtc2RvcyB1aWQ9MCxnaWQ9MTAwLHVtYXNrPTAwNyAwIDAKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoaXMgd2lsbCBhbGxvdyB5b3UgdG8gcmVhZCBhbmQgd3JpdGUgdG8gdGhlIERPUyBwYXJ0aXRpb24gd2l0aG91dAogICAgICAgICAgYmVpbmcgcm9vdC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSWYtV2luZS1jb21wbGV0ZWx5LXJlcGxhY2VzLU1TLVdpbmRvd3MiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgV2luZSBjb21wbGV0ZWx5IHJlcGxhY2VzIE1TIFdpbmRvd3MsIHdpbGwgaXQgZHVwbGljYXRlIGFsbCBvZiB0aGUKICAgICAgICAgIGZ1bmN0aW9ucyBvZiBNUyBXaW5kb3dzPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1vc3Qgb2YgdGhlbSwgeWVzLiBIb3dldmVyLCBzb21lIGFwcGxpY2F0aW9ucyBhbmQgYXBwbGV0cyB0aGF0IGNvbWUKICAgICAgICAgIHdpdGggTVMgV2luZG93cywgc3VjaCBhcyBGaWxlIE1hbmFnZXIgYW5kIENhbGN1bGF0b3IsIGNhbiBiZSAKICAgICAgICAgIGNvbnNpZGVyZWQgYnkgc29tZSB0byBiZSByZWR1bmRhbnQsIHNpbmNlIDMyLWJpdCBVTklYIHByb2dyYW1zIHRoYXQKICAgICAgICAgIGR1cGxpY2F0ZSB0aGVzZSBhcHBsZXRzJyBmdW5jdGlvbnMgYWxyZWFkeSBleGlzdC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaWxsLUktaW5zdGFsbC1vbi1vbnktVU5JWC1maWxlLXN5c3RlbSI+CiAgICAgICAgPHBhcmE+IAogICAgICAgICAgV2lsbCBJIGJlIGFibGUgdG8gaW5zdGFsbCBNUyBXaW5kb3dzIGFwcGxpY2F0aW9ucyBpbiBhbnkgZmxhdm9yIG9mIGEKICAgICAgICAgIFVOSVggZmlsZSBzeXN0ZW0/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBpcyB3cml0dGVuIHRvIGJlIGZpbGUgc3lzdGVtIGluZGVwZW5kZW50LCBzbyBNUyBXaW5kb3dzIAogICAgICAgICAgYXBwbGljYXRpb25zIHdpbGwgaW5zdGFsbCBhbmQgcnVuIHVuZGVyIHZpcnR1YWxseSBhbnkgZmlsZSBzeXN0ZW0KICAgICAgICAgIHN1cHBvcnRlZCBieSB5b3VyIGJyYW5kIG9mIFVOSVguCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IldpbGwtV2luZS1ydW4tb25seS11bmRlci1YIj4KICAgICAgICA8cGFyYT4gV2lsbCBXaW5lIHJ1biBvbmx5IHVuZGVyIFgsIG9yIGNhbiBpdCBydW4gaW4gY2hhcmFjdGVyIG1vZGU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgTW9zdCBvZiBXaW5lJ3MgZGV2ZWxvcG1lbnQgZWZmb3J0IGlzIGdlYXJlZCBhZ2FpbnN0IE1TIFdpbmRvd3MnIEdVSSwKICAgICAgICAgIGJ1dCBzb21lIGxpbWl0ZWQgc3VwcG9ydCBmb3IgY2hhcmFjdGVyIG1vZGUgaGFzIGFwcGVhcmVkLCBieSBzZXR0aW5nCiAgICAgICAgICA8cGFyYW1ldGVyPkdyYXBoaWNzRHJpdmVyPXR0eWRydjwvcGFyYW1ldGVyPiBpbiB3aW5lLmNvbmYncwogICAgICAgICAgPHBhcmFtZXRlcj5bd2luZV08L3BhcmFtZXRlcj4gc2VjdGlvbi4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lJ3MgaW5mcmFzdHJ1Y3R1cmUgaXMgYWxyZWFkeSBzb21ld2hhdCBwcmVwYXJlZCBmb3Igc3VwcG9ydGluZwogICAgICAgICAgb3RoZXIgZ3JhcGhpY3MgZHJpdmVycyB0aGFuIHgxMWRydiwgYnV0IG5vIHJlYWwgImFsdGVybmF0aXZlIiAKICAgICAgICAgIGdyYXBoaWNzIGRyaXZlciBoYXMgYmVlbiB1c2VkIHlldC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2lsbC1XaW5lLXJ1bi11bmRlci1hbnktWC13aW5kb3ctbWFuYWdlciI+CiAgICAgICAgPHBhcmE+V2lsbCBXaW5lIHJ1biB1bmRlciBhbnkgWCB3aW5kb3cgbWFuYWdlcj8gRG9lcyBpdCByZXF1aXJlIGEgd2luZG93IG1hbmFnZXIgYXQgYWxsPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgd2luZG93IG1hbmFnZXIgaW5kZXBlbmRlbnQsIHNvIHRoZSBYIHdpbmRvdyBtYW5hZ2VyIHlvdQogICAgICAgICAgY2hvb3NlIHRvIHJ1biBoYXMgKGFsbW9zdCkgbm8gYmVhcmluZyBvbiB5b3VyIGFiaWxpdHkgdG8gcnVuIE1TCiAgICAgICAgICBXaW5kb3dzIHByb2dyYW1zIHVuZGVyIFdpbmUuIFdpbmUgdXNlcyBzdGFuZGFyZCBYIGxpYnJhcmllcywgc28gbm8KICAgICAgICAgIGFkZGl0aW9uYWwgb25lcyBhcmUgbmVlZGVkLiBXaW5lIGhhcyBpdHMgb3duIHdpbmRvdyBtYW5hZ2VtZW50LAogICAgICAgICAgd2hpY2ggYWN0cyBsaWtlIE1TIFdpbmRvd3MuIEl0IGNhbiBiZSB0dXJuZWQgb2ZmIHRvIHVzZSB0aGUgbmF0aXZlCiAgICAgICAgICB3aW5kb3cgbWFuYWdlciBieSBtb2RpZnlpbmcgTWFuYWdlZCBvciBEZXNrdG9wIHNldHRpbmdzIGFzIGRlc2NyaWJlZAogICAgICAgICAgaW4gPGNvbW1hbmQ+bWFuIHdpbmUuY29uZjwvY29tbWFuZD4uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iV2lsbC0zMi1iaXQtYXBwbGljYXRpb25zLXJ1bi11bmRlci1XaW5lIj4KICAgICAgICA8cGFyYT5XaWxsIDMyLWJpdCBXaW5kb3dzIDk1Lzk4IGFwcGxpY2F0aW9ucyBydW4gdW5kZXIgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZZXMsIDMyLWJpdCBwcm9ncmFtcyBhcmUgbm93IGFib3V0IGFzIHdlbGwgc3VwcG9ydGVkIGFzIDE2LWJpdCAKICAgICAgICAgICBwcm9ncmFtcy4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIAogICAgPC9xYW5kYWRpdj4KICAgIDxxYW5kYWRpdiBpZD0iRkFRLUdldHRpbmctV2luZSI+CiAgICAgIDx0aXRsZT5HZXR0aW5nIFdpbmU8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGVyZS1jYW4tSS1nZXQtV2luZSI+CiAgICAgICAgPHBhcmE+V2hlcmUgY2FuIEkgZ2V0IFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQmVjYXVzZSBvZiBsYWdzIGNyZWF0ZWQgYnkgdXNpbmcgbWlycm9yLCB3b3JkIG9mIHRoaXMgbmV3ZXN0IHJlbGVhc2UKICAgICAgICAgIG1heSByZWFjaCB5b3UgYmVmb3JlIHRoZSByZWxlYXNlIGlzIGFjdHVhbGx5IGF2YWlsYWJsZSBhdCB0aGUgZnRwCiAgICAgICAgICBzaXRlcyBsaXN0ZWQgaGVyZS4gVGhlIHNvdXJjZXMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSBmb2xsb3dpbmcKICAgICAgICAgIGxvY2F0aW9uczoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC8iPgogICAgICAgICAgICAgICBodHRwOi8vd3d3LmliaWJsaW8ub3JnL3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50LwogICAgICAgICAgICAgIDwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIDx1bGluayB1cmw9ImZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC8iPgogICAgICAgICAgICAgIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC8gCiAgICAgICAgICAgICAgPC91bGluaz4KICAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KCiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgIDx1bGluayB1cmw9ImZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvdW5peC9saW51eC9taXJyb3JzL3N1bnNpdGUudW5jLmVkdS9BTFBIQS93aW5lL2RldmVsb3BtZW50LyI+CiAgICAgICAgICAgICAgZnRwOi8vZnRwLmZ1LWJlcmxpbi5kZS91bml4L2xpbnV4L21pcnJvcnMvc3Vuc2l0ZS51bmMuZWR1L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvIAogICAgICAgICAgICAgIDwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgICA8dWxpbmsgdXJsPSJmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvIj4KICAgICAgICAgICAgICBmdHA6Ly9vcmN1cy5wcm9nc29jLnV0cy5lZHUuYXUvcHViL1dpbmUvZGV2ZWxvcG1lbnQvIAogICAgICAgICAgICAgIDwvdWxpbms+CiAgICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgogICAgICAgIDxwYXJhPgogICAgICAgICAgSXQgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIGZyb20gYW55IG90aGVyIHNpdGUgdGhhdCBtaXJyb3JzIAogICAgICAgICAgaWJpYmxpby5vcmcuIEZvciBtb3JlIGRvd25sb2FkIGxvY2F0aW9ucywgc2VlIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL2Z0cCBzZWFyY2gubHljb3MuY29tLiI+bHljb3M8L3VsaW5rPiBTb21lIG9mCiAgICAgICAgICB0aGVzZSBmdHAgc2l0ZXMgbWF5IGFyY2hpdmUgcHJldmlvdXMgdmVyc2lvbnMgb2YgV2luZSBhcyB3ZWxsIGFzIHRoZQogICAgICAgICAgY3VycmVudCBvbmUuIFRvIGRldGVybWluZSB3aGljaCBpcyB0aGUgbGF0ZXN0IG9uZSwgbG9vayBhdCB0aGUgCiAgICAgICAgICBkaXN0cmlidXRpb24gZmlsZSBuYW1lLCB3aGljaCB3aWxsIHRha2UgdGhlIGZvcm0gCiAgICAgICAgICBXaW5lLVlZWVlNTURELnRhci5nei4gU2ltcGx5IHJlcGxhY2UgWVlZWU1NREQgaW4gdGhlIGRpc3RyaWJ1dGlvbgogICAgICAgICAgZmlsZSBuYW1lIHdpdGggdGhlIG51bWJlcnMgZm9yIHllYXIsIG1vbnRoIGFuZCBkYXRlLCByZXNwZWN0aXZlbHkuCiAgICAgICAgICBUaGUgbGF0ZXN0IG9uZSBpcyB0aGUgb25lIHRvIGdldC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIGJpbmFyeSBwYWNrYWdlcyBhcmUgYXZhaWxhYmxlIGZvciBzZXZlcmFsIE9TJ2VzIGFuZCAKICAgICAgICAgIGRpc3RyaWJ1dGlvbnMuIFNlZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kb3dubG9hZC5zaHRtbCI+CiAgICAgICAgICB0aGUgZG93bmxvYWQgcGFnZTwvdWxpbms+IGZvciB0aGUgbW9zdCByZWNlbnQgbGlzdC4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hLUNWUy10cmVlIj4KICAgICAgICA8cGFyYT5JcyB0aGVyZSBhIENWUyB0cmVlPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEN1cnJlbnQgV2luZSBzb3VyY2VzIGFyZSBhbHNvIGF2YWlsYWJsZSB2aWEgYW5vbnltb3VzIGNsaWVudC9zZXJ2ZXIKICAgICAgICAgIENWUy4gWW91IHdpbGwgbmVlZCBDVlMgMS45IG9yIGFib3ZlLiBJZiB5b3UgYXJlIGNvbWluZyBmcm9tIGJlaGluZCBhCiAgICAgICAgICBmaXJld2FsbCwgeW91IHdpbGwgZWl0aGVyIG5lZWQgYSBob2xlIGluIHRoZSBmaXJld2FsbCBmb3IgdGhlIENWUwogICAgICAgICAgcG9ydCAoMjQwMSkgb3IgdXNlIFNPQ0tTLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRvIGxvZ2luIHRvIHRoZSBDVlMgdHJlZSwgZG8KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KZXhwb3J0IENWU1JPT1Q9OnBzZXJ2ZXI6Y3ZzQGN2cy53aW5laHEuY29tL2hvbWUvd2luZQpjdnMgbG9naW4KICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFVzZSAiY3ZzIiBhcyB0aGUgcGFzc3dvcmQgKHdpdGhvdXQgdGhlIHF1b3RlcykuIE5vdGUgdGhhdCAKICAgICAgICAgIDxmaWxlbmFtZT4vaG9tZS93aW5lPC9maWxlbmFtZT4gaXMgYSBwYXRoIG9uIHRoZSBzZXJ2ZXIsIG5vdCBvbiB5b3VyCiAgICAgICAgICBtYWNoaW5lLiBUbyBjaGVjayBvdXQgdGhlIGVudGlyZSBXaW5lIHNvdXJjZSB0cmVlICh3aGljaCBtYXkgYmUgCiAgICAgICAgICBzbG93KSwgdXNlCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CmN2cyAteiAzIGNoZWNrb3V0IHdpbmUgCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBvciBpZiB5b3UganVzdCB3YW50IGEgc3VidHJlZSwgb3IgaW5kaXZpZHVhbCBmaWxlLCB5b3UgY2FuIGRvIHRoYXQgCiAgICAgICAgICB0b28gd2l0aAogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgpjdnMgLXogMyBjaGVja291dCB3aW5lL0FOTk9VTkNFIAogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQmUgYXdhcmUsIHRob3VnaCwgdGhhdCBnZXR0aW5nIHRoZSBlbnRpcmUgV2luZSBzb3VyY2UgdHJlZSB2aWEgQ1ZTCiAgICAgICAgICBpcyBwcmV0dHkgc2xvdywgZXNwZWNpYWxseSBjb21wYXJlZCB0byBnZXR0aW5nIFdpbmUgZnJvbSBhbiBGVFAgCiAgICAgICAgICBtaXJyb3IgbmVhciB5b3UuIEZvciBhIENWUyBtaXJyb3IgbGlzdCwgc2VlIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vZGV2LnNodG1sPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBQYXRjaCBmaWxlcyBhcmUgYWxzbyBhdmFpbGFibGUsIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8gZG93bmxvYWQsCiAgICAgICAgICBpbnN0YWxsLCBhbmQgY29uZmlndXJlIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGVhY2ggd2VlayBpZiB5b3UgYXJlCiAgICAgICAgICBjdXJyZW50IHRvIHRoZSBwcmV2aW91cyByZWxlYXNlLiBQYXRjaCBmaWxlIHJlbGVhc2UgbmFtZXMgZm9sbG93IHRoZQogICAgICAgICAgc2FtZSBudW1iZXJpbmcgY29udmVudGlvbiBhcyBkbyB0aGUgZ2VuZXJhbCByZWxlYXNlcywgYW5kIHRha2UgdGhlIAogICAgICAgICAgZm9ybQogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUtWVlZWU1NREQuZGlmZi5neiAgCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGF0Y2ggZmlsZXMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSBzYW1lIHNpdGVzIHRoYXQgZGlzdHJpYnV0ZSB0aGUKICAgICAgICAgIGZ1bGwgcmVsZWFzZS4gVG8gdXBncmFkZSB0byBhIG5ldyByZWxlYXNlIGJ5IHVzaW5nIGEgcGF0Y2ggZmlsZSwKICAgICAgICAgIGZpcnN0IGNkIHRvIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoZSByZWxlYXNlICh0aGUgb25lCiAgICAgICAgICBjb250YWluaW5nIHRoZSBSRUFETUUgZmlsZSksIHRoZW4gZG8gYSAibWFrZSBjbGVhbiIsIGFuZCBwYXRjaCB0aGUKICAgICAgICAgIHJlbGVhc2Ugd2l0aAogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgpndW56aXAgLWMgcGF0Y2gtZmlsZSB8IHBhdGNoIC1wMSAKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIHdoZXJlIHBhdGNoLWZpbGUgaXMgdGhlIG5hbWUgb2YgdGhlIHBhdGNoIGZpbGUgc29tZXRoaW5nIGxpa2UKICAgICAgICAgIFdpbmUtWVlZWU1NREQuZGlmZi5nei4gWW91IGNhbiB0aGVuIHJlLXJ1biAuL2NvbmZpZ3VyZSwgYW5kIHRoZW4gcnVuCiAgICAgICAgICBtYWtlIGRlcGVuZCAmJiBtYWtlCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgeW91IGFyZSBtaXJyb3JpbmcgdGhlIFdpbmUgZGlzdHJpYnV0aW9uIGZyb20gdGhlIHRzeC0xMSBzaXRlIGFuZAogICAgICAgICAgd2lzaCB0byBiZSBsaXN0ZWQgaGVyZSBpbiB0aGlzIEZBUSwgcGxlYXNlIGFkZCBpdCB0byB0aGUgCiAgICAgICAgICAidGhpbmdzIHRvIGdvIGludG8gdGhlIGRvY3VtZW50YXRpb24iIGFyZWEuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iQ2FuLUktZ2V0LVdpbmUtdXNpbmctY3ZzdXAiPgogICAgICAgIDxwYXJhPkNhbiBJIGdldCBXaW5lIHVzaW5nIGN2c3VwPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBDVlMgbWlycm9ycyBkb24ndCBvZmZlciBjdnN1cCBzdXBwb3J0IHlldCwgYnV0IHRoZSBtYWluIHNlcnZlcgogICAgICAgICAgZG9lcy4gVXNlIGEgPGZpbGVuYW1lPndpbmUuc3VwPC9maWxlbmFtZT4gZmlsZSBvZjoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KKmRlZmF1bHQgaG9zdD1jdnMud2luZWhxLmNvbQoqZGVmYXVsdCBiYXNlPS9jdnMKKmRlZmF1bHQgcHJlZml4PS9jdnMvd2luZQoqZGVmYXVsdCByZWxlYXNlPXdpbmUKKmRlZmF1bHQgZGVsZXRlIAoKIyBJZiB5b3VyIG5ldHdvcmsgbGluayBpcyBhIFQxIG9yIGZhc3RlciwgY29tbWVudCBvdXQgdGhlIGZvbGxvd2luZyBsaW5lLgojKmRlZmF1bHQgY29tcHJlc3MgCgoqZGVmYXVsdCB1c2UtcmVsLXN1ZmZpeCAKd2luZSAKICAgICAgICA8L3NjcmVlbj4KICAgICA8L2Fuc3dlcj4KICAgICA8L3FhbmRhZW50cnk+CiAgICA8L3FhbmRhZGl2PgoKICAgIDxxYW5kYWRpdiBpZD0iSW5zdGFsbGluZy1BbmQtQ29uZmlndXJpbmctV2luZSI+CiAgICAgIDx0aXRsZT5JbnN0YWxsaW5nIEFuZCBDb25maWd1cmluZyBXaW5lPC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWRvLUktY29tcGlsZS10aGUtV2luZS1zb3VyY2UtY29kZSI+CiAgICAgICAgPHBhcmE+SG93IGRvIEkgY29tcGlsZSB0aGUgV2luZSBkaXN0cmlidXRpb24gc291cmNlIGNvZGU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgU2VlIHRoZSBSRUFETUUgKDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9zb3VyY2UvUkVBRE1FIj5odHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRTwvdWxpbms+KSBmb3IgaW5zdHJ1Y3Rpb25zLgogICAgICAgICAgQWRkaXRpb25hbGx5LCB5b3UgbWF5IHdhbnQgdG8gc2V0IHRoZSA8cGFyYW1ldGVyPlRNUERJUjwvcGFyYW1ldGVyPgogICAgICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgPGNvbW1hbmQ+VE1QRElSPX4vdG1wPC9jb21tYW5kPiBvcgogICAgICAgICAgPGNvbW1hbmQ+VE1QRElSPS90bXA8L2NvbW1hbmQ+IChpZiB5b3UgYXJlIHJvb3QpLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLWluc3RhbGwtV2luZG93cy1pbi1XaW5lIj4KICAgICAgICA8cGFyYT5Ib3cgZG8gSSBpbnN0YWxsIFdpbmRvd3MgaW4gV2luZSB1bmRlciBMaW51eD88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBTaW1wbGUgYW5zd2VyOiB5b3UgQ0FOJ1QuIFdpbmRvd3MgZGVtYW5kcyBkaXJlY3QgYWNjZXNzIHRvIHRoZQogICAgICAgICAgaGFyZHdhcmUgYW5kIGNhbm5vdCBnZXQgaXQgd2l0aCBXaW5lIGFuZCBVTklYIGluIHRoZSB3YXkKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaW5lIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgV0lUSE9VVCBXaW5kb3dzIHByaW1hcmlseS4gSWYgeW91IHdhbnQKICAgICAgICAgIHRvIHVzZSBhIFdpbmRvd3MgaW5zdGFsbGF0aW9uLCB0aGVuIHVzZSBhbiBleGlzdGluZyBpbnN0YWxsYXRpb24gCiAgICAgICAgICBhbG9uZ3NpZGUgdGhlIFVOSVggaW5zdGFsbGF0aW9uIChzZWUgdGhlIGR1YWwtYm9vdCBIT1dUTyBmb3IgeW91ciBPUwogICAgICAgICAgZm9yIG1vcmUgZGV0YWlscykuIE9yIGFsdGVybmF0aXZlbHkgdXNlIHRoZSBjYWJleHRyYWN0IHV0aWxpdHkgdG8KICAgICAgICAgIGV4dHJhY3QgV2luZG93cyBpbnN0YWxsIGFyY2hpdmVzIHRvIGEgZGlyZWN0b3J5IHRoYXQgeW91IHdhbnQgdG8gdXNlCiAgICAgICAgICBhcyBXaW5lJ3MgV2luZG93cyB0cmVlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLWNvbmZpZ3VyZS1XaW5lLXRvLXJ1bi1vbi1teS1zeXN0ZW0iPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIGNvbmZpZ3VyZSBXaW5lIHRvIHJ1biBvbiBteSBzeXN0ZW0/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSByZXF1aXJlcyB0aGF0IHlvdSBoYXZlIGEgY29uZmlnIGZpbGUgYXMgCiAgICAgICAgICA8ZmlsZW5hbWU+fi8ud2luZS9jb25maWc8L2ZpbGVuYW1lPi4gVGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgaXMKICAgICAgICAgIGV4cGxhaW5lZCBpbiB0aGUgPGZpbGVuYW1lPndpbmUuY29uZjwvZmlsZW5hbWU+IG1hbiBwYWdlLiBUaGUgZmlsZQogICAgICAgICAgPGZpbGVuYW1lPmRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWc8L2ZpbGVuYW1lPgogICAgICAgICAgKDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9zb3VyY2UvZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZyI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL2RvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWc8L3VsaW5rPikgCiAgICAgICAgICBjb250YWlucyBhIGNvbmZpZyBmaWxlIGV4YW1wbGUuIE1vcmUgZXhwbGljaXQgZGlyZWN0aW9ucyBjYW4gYmUgCiAgICAgICAgICBmb3VuZCBpbiB0aGUgPGZpbGVuYW1lPlJFQURNRTwvZmlsZW5hbWU+IGZpbGUKICAgICAgICAgICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRSI+CiAgICAgICAgICBodHRwOi8vd3d3LndpbmVocS5jb20vc291cmNlL1JFQURNRTwvdWxpbms+KSB0aGF0IHdpbGwgYmUgbG9jYXRlZCBpbgogICAgICAgICAgdGhlIGJhc2UgV2luZSBkaXJlY3RvcnkgYWZ0ZXIgeW91IGd1bnppcCBhbmQgdW50YXIgdGhlIGRpc3RyaWJ1dGlvbgogICAgICAgICAgZmlsZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctZG8tSS11cGdyYWRlLWNvbmZpZ3VyYXRpb24iPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIHVwZ3JhZGUgV2luZSB3aXRob3V0IGxvc2luZyBteSB3b3JraW5nIGNvbmZpZ3VyYXRpb24/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVXBncmFkaW5nIHRoZSB3aW5lIGluc3RhbGxhdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIGV4aXN0aW5nIHdpbmUKICAgICAgICAgIGNvbmZpZ3VyYXRpb24uIFNvIGFmdGVyIHVwZ3JhZGluZyB3aW5lIHlvdSBzdGlsbCBoYXZlIHRoZSBvbGQgKHdvcmtpbmcgKQogICAgICAgICAgd2luZSBjb25maWd1cmF0aW9uLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IklmLUktdXNlLVdpbmRvd3Mtd2hpY2gtdmVyc2lvbnMtT0siPgogICAgICAgIDxwYXJhPklmIEkgd2FudCB0byB1c2UgYSBXaW5kb3dzIGluc3RhbGwsIHdoaWNoIHZlcnNpb25zIGFyZSBPSz88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBFaXRoZXIgdXNlIGEgY2xhc3NpYyBuby13aW5kb3dzIGluc3RhbGwgKFdpbmUgaXMgZ2V0dGVyIGJldHRlciBhbGwKICAgICAgICAgIHRoZSB0aW1lKSBvciB1c2UgYSBXaW45eCBpbnN0YWxsIChXaW45NSwgOTgsIDk4U0UsIE1FKS4gRE9OJ1QgCiAgICAgICAgICBjb25maWd1cmUgV2luZSB0byB1c2UgYW4gTlQtYmFzZWQgV2luZG93cyBpbnN0YWxsIChOVCwgV2luMkssIFdpblhQKS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJZi1JLXVzZS1XaW5kb3dzLXdoaWNoLW9uZS13b3Jrcy1iZXN0Ij4KICAgICAgICA8cGFyYT5JZiBJIHVzZSBhIFdpbmRvd3MgaW5zdGFsbCB3aXRoIFdpbmUsIHdoaWNoIG9uZSB3b3JrcyBiZXN0PzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEFzIG9mIDAyLzIwMDI6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSdkIHNheSBXaW45OFNFIGlzIHRoZSBiZXN0IHZlcnNpb24gdG8gdXNlIHdpdGggV2luZSwgYXMgaXQncyBmYWlybHkKICAgICAgICAgIHdpZGVzcHJlYWQgYW1vbmdzdCBkZXZlbG9wZXJzIGFuZCByZWxhdGl2ZWx5IG9sZC4gVXNpbmcgV2luMksgZmlsZXMKICAgICAgICAgIGlzIDxlbXBoYXNpcz5kZWZpbml0ZWx5PC9lbXBoYXNpcz4gd29yc2UgdGhhbiBhIHBsYWluIG5vLXdpbmRvd3MgCiAgICAgICAgICBXaW5lIGluc3RhbGwsIGFuZCBXaW4gTUUgaXMgc2FpZCB0byBiZSBwcm9ibGVtYXRpYywgdG9vIChhcyBwcm9iYWJseQogICAgICAgICAgbm8gZGV2ZWxvcGVyIHVzZXMgaXQpLiBJbiBzaG9ydDogYWxsIFdpbjl4ICZsdDs9IFc5OFNFIGFyZSBnb29kLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikluc3RhbGxpbmctVmlzdWFsLUJhc2ljLWFwcHMtd29udC1ydW4iPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSW5zdGFsbGluZyBhcHBsaWNhdGlvbnMgZ2VuZXJhdGVkIGJ5IFZpc3VhbCBCYXNpYyB3b24ndCBydW4uIFdoYXQKICAgICAgICAgIHNob3VsZCBJIGRvPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhbGwgdGhlIFZCIHJ1bnRpbWUgbGlicmFyaWVzIGluc3RhbGxlZC4gWW91IG1heQogICAgICAgICAgbmVlZCB0byB1c2UgdGhlIG5hdGl2ZSBETEwgdmJydW42MC5kbGwKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaGVuLUktY2xpY2stb24tZXhlLWZpbGUtbm90aGluZy1oYXBwZW5zIj4KICAgICAgICA8cGFyYT5XaGVuIEkgY2xpY2sgb24gKi5leGUgZmlsZSBpbiBteSBmaWxlIE1hbmFnZXIsIG5vdGhpbmcgaGFwcGVuczwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBub3JtYWwgV2luZSByZWxlYXNlcyBkb24ndCBoYXZlIC5leGUgZXh0ZW5zaW9ucyByZWdpc3RlcmVkIGZvcgogICAgICAgICAgV2luZSBpbiBLREUvR25vbWUgeWV0LiBZb3UgaGF2ZSB0byBvcGVuIGEgdGVybWluYWwgd2luZG93IGluc3RlYWQKICAgICAgICAgIChvZnRlbiBhbiBpY29uIHNob3dpbmcgYSAiYmxhY2sgc2NyZWVuIikgYW5kIHR5cGUgc29tZXRoaW5nIGxpa2U6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CmNkIC9teS93aW5kb3dzL3Byb2dyYW0vZGlyZWN0b3J5CndpbmUgbXlwcm9ncmFtLmV4ZQogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgT3IgYWx0ZXJuYXRpdmVseSB5b3UgY291bGQgZG93bmxvYWQgdGhlIENvZGVXZWF2ZXJzIFdpbmUgcHJldmlldyAKICAgICAgICAgIHdoaWNoIGluY2x1ZGVzIC5leGUgZXh0ZW5zaW9uIHJlZ2lzdHJhdGlvbiBmb3IgS0RFL0dub21lIGFuZCBhIG5pY2UKICAgICAgICAgIHNldHVwIHByb2dyYW0uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iYmFzaC13aW5lLUNvbW1hbmQtbm90LWZvdW5kLVdoYXQtY2FuLUktZG8iPgogICAgICAgIDxwYXJhPmJhc2ggIndpbmU6IENvbW1hbmQgbm90IGZvdW5kIiBXaGF0IGNhbiBJIGRvPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRyeSB0byByZWxvZ2luIGludG8gYmFzaC4gVGhhdCBtaWdodCBmaXggaXQuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgaXQgZG9lc24ndCwgdGhlbiBtYWtlIHN1cmUgdGhlIHdpbmUgYmluYXJ5IGlzIGluIHlvdXIgCiAgICAgICAgICA8cGFyYW1ldGVyPlBBVEg8L3BhcmFtZXRlcj4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUnVuIGFzIHJvb3Q6CiAgICAgICAgPC9QYXJhPgogICAgICAgIDxzY3JlZW4+CmZpbmQgLyAtbmFtZSAid2luZSIgLXR5cGUgZiAtcGVybSArMTExCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICB0byBmaW5kIHRoZSBwYXRoIHdoZXJlIHRoZSB3aW5lIGJpbmFyeSBpcyBpbi4gVGhlbiBjaGVjayB3aGV0aGVyCiAgICAgICAgPHBhcmFtZXRlcj5QQVRIPC9wYXJhbWV0ZXI+IGluY2x1ZGVzIGl0OgogICAgICAgIDwvcGFyYT4KICAgICAgICA8c2NyZWVuPgplY2hvICRQQVRIIAogICAgICAgIDwvc2NyZWVuPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgbm90LCBhZGQgdGhhdCBlLmcuIHRvIDxmaWxlbmFtZT4vZXRjL3Byb2ZpbGU8L2ZpbGVuYW1lPiBieSBkb2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPHNjcmVlbj4KZXhwb3J0IFBBVEg9JFBBVEg6L3BhdGgvdG8vd2luZS9iaW5hcnkgCiAgICAgICAgPC9zY3JlZW4+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGF0IHNob3VsZCBoZWxwLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgICBJZiB5b3UgdXNlZCBhIHBhY2thZ2UgbWFuYWdlciAoPGNvbW1hbmQ+cnBtPC9jb21tYW5kPiBvciAKICAgICAgICAgICA8Y29tbWFuZD5hcHQ8L2NvbW1hbmQ+KSAtIFZlcmlmeSB5b3VyIHBhY2thZ2VzLiBUaGUgcGFja2FnZSAKICAgICAgICAgICA8ZmlsZW5hbWU+d2luZXNldHVwdGsucnBtPC9maWxlbmFtZT4gaXMgb25seSBhIGZyb250LWVuZCBmb3IgCiAgICAgICAgICAgbWFraW5nIGEgbWVhbmluZ2Z1bGwgY29uZmlnIGZpbGUsIGl0IERPRVMgTk9UIGluc3RhbGwgdGhlIHdpbmUKICAgICAgICAgICBwYWNrYWdlLi4uCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgIEZvciBjb21wbGV0ZSBwYWNrYWdlcywgdXNlIDx1bGluayB1cmw9Imh0dHA6Ly93d3cucnBtZmluZC5uZXQvIj4KICAgICAgICAgICB3d3cucnBtZmluZC5uZXQ8L3VsaW5rPiBvciB0aGUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL2Rvd25sb2FkLyI+CiAgICAgICAgICAgRG93bmxvYWQ8L3VsaW5rPiBzZWN0aW9uLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikhvdy1kby1JLXJlbW92ZS1XaW5lLWZyb20tbXktQ29tcHV0ZXIiPgogICAgICAgIDxwYXJhPkhvdyBkbyBJIHJlbW92ZSBXaW5lIGZyb20gbXkgQ29tcHV0ZXI/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQWxsIHlvdSBoYXZlIHRvIGRvIGlzIHRvIHR5cGU6CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxzY3JlZW4+CnJtIC1mUiBcWy9wYXRoL1xdV2luZSoKICAgICAgICA8L3NjcmVlbj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIE1ha2Ugc3VyZSB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBleGFjdCBwYXRoIHdoZW4gdXNpbmcgdGhlIHBvd2VyZnVsCiAgICAgICAgICA8Y29tbWFuZD5ybSAtZlI8L2NvbW1hbmQ+IGNvbW1hbmQuIElmIHlvdSBhcmUgYWZyYWlkIHRoYXQgeW91IG1pZ2h0CiAgICAgICAgICBkZWxldGUgc29tZXRoaW5nIGltcG9ydGFudCwgb3IgbWlnaHQgb3RoZXJ3aXNlIGRlbGV0ZSBvdGhlciBmaWxlcyAKICAgICAgICAgIHdpdGhpbiB5b3VyIGZpbGVzeXN0ZW0sIDxjb21tYW5kPmNkPC9jb21tYW5kPiBpbnRvIGVhY2ggV2luZSAKICAgICAgICAgIHN1YmRpcmVjdG9yeSBzaW5nbHkgYW5kIGRlbGV0ZSB0aGUgZmlsZXMgZm91bmQgdGhlcmUgbWFudWFsbHksIAogICAgICAgICAgb25lIGZpbGUgb3IgZGlyZWN0b3J5IGF0IGEgdGltZS4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgTmVpdGhlciB0aGUgV2luZSBkZXZlbG9wZXJzIGFuZCBwcm9ncmFtbWVycywgbm9yIHRoZSBXaW5lIEZBUSAKICAgICAgICBhdXRob3IvbWFpbnRhaW5lciwgY2FuIGJlIGhlbGQgcmVzcG9uc2libGUgZm9yIHlvdXIgZGVsZXRpbmcgYW55CiAgICAgICAgZmlsZXMgaW4geW91ciBvd24gZmlsZXN5c3RlbS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICA8L3FhbmRhZGl2PgoKICAgIDxxYW5kYWRpdiBpZD0iQWJvdXQtcnVubmluZy1XaW5lIj4KICAgICAgPHRpdGxlPkFib3V0IHJ1bm5pbmcgV2luZTwvdGl0bGU+CiAgICAgIDxwYXJhPgogICAgICAgICBJbiBjYXNlIG9mIHByb2JsZW1zIHdoZW4gcnVubmluZyBXaW5lLCBZb3UgbWF5IGFsc28gd2FudCB0byBzZWUgdGhlCiAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9mb20tbWV0YS9jYWNoZS8xOS5odG1sIj4KICAgICAgICAgV2luZSBUcm91Ymxlc2hvb3RpbmcgR3VpZGU8L3VsaW5rPi4KICAgICAgIDwvcGFyYT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWRvLUktcnVuLWFuLU1TLVdpbmRvd3MtcHJvZ3JhbSI+CiAgICAgICAgPHBhcmE+SG93IGRvIEkgcnVuIGFuIE1TIFdpbmRvd3MgcHJvZ3JhbSB1bmRlciBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoZW4gaW52b2tpbmcgV2luZSwgeW91IG11c3Qgc3BlY2lmeSB0aGUgZW50aXJlIHBhdGggdG8gdGhlCiAgICAgICAgICBleGVjdXRhYmxlLCBvciBieSBmaWxlbmFtZSBvbmx5LiBGb3IgZXhhbXBsZSB0byBydW4gV2luZG93cycKICAgICAgICAgIHNvbGl0YWlyZSwgdHlwZSBhbnkgb2YgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICA8Y29tbWFuZD53aW5lIHNvbDwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+d2luZSBzb2wuZXhlPC9jb21tYW5kPgogICAgICAgICAgICh1c2luZyB0aGUgc2VhcmNoIHBhdGggdG8gbG9jYXRlIHRoZSBmaWxlKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSBjOlxcd2luZG93c1xcc29sLmV4ZTwvY29tbWFuZD4gCiAgICAgICAgICAgKHVzaW5nIGEgRE9TIGZpbGVuYW1lKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSAvdXNyL3dpbmRvd3Mvc29sLmV4ZTwvY29tbWFuZD4KICAgICAgICAgICAodXNpbmcgYSBVTklYIGZpbGVuYW1lKS4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPGNvbW1hbmQ+d2luZSAiYzpcd2luZG93c1xzb2wuZXhlIjwvY29tbWFuZD4KICAgICAgICAgICAgKHVzaW5nIHF1b3RlZCBET1MgZmlsZW5hbWUpLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoZSBwYXRoIG9mIHRoZSBmaWxlIHdpbGwgYWxzbyBiZSBhZGRlZCB0byB0aGUgcGF0aCB3aGVuIGEgZnVsbCBuYW1lCiAgICAgICAgICBpcyBzdXBwbGllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgoKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaW5lLWNhbm5vdC1maW5kLU1TLVdpbmRvd3Mtb24tbXktZHJpdmUiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSBoYXZlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZCBXaW5lLCBidXQgV2luZSBjYW5ub3QgZmluZCBNUyAKICAgICAgICAgIFdpbmRvd3Mgb24gbXkgZHJpdmUuIFdoZXJlIGRpZCBJIGdvIHdyb25nPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBoYXZlIGEgRE9TIHBhcnRpdGlvbiwgZmlyc3QgbWFrZSBzdXJlIHRoYXQgeW91IGhhdmUgbW91bnRlZAogICAgICAgICAgaXQsIGVpdGhlciBieSBwdXR0aW5nIHRoZSBlbnRyeSBpbnRvIDxmaWxlbmFtZT4vZXRjL2ZzdGFiPC9maWxlbmFtZT4sCiAgICAgICAgICBvciBieSBtYW51YWxseSBtb3VudGluZyBpdC4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBSZW1lbWJlciB0b28gdGhhdCB1bmxlc3MgeW91ciB2ZXJzaW9uIG9mIFVOSVggY2FuIHNlZSB0aHJvdWdoIGl0LCBvcgogICAgICAgICAgeW91IGFyZSBydW5uaW5nIGEgdXRpbGl0eSB0aGF0IGNhbiBzZWUgdGhyb3VnaCBpdCwgeW91ciBET1MKICAgICAgICAgIHBhcnRpdGlvbiBtdXN0IG5vdCBiZSBsb2NhdGVkIG9uIGEgRHJpdmVzcGFjZWQsIERvdWJsZXNwYWNlZCBvcgogICAgICAgICAgU3RhY2tlcmVkIHBhcnRpdGlvbiwgYXMgbmVpdGhlciBMaW51eCwgRnJlZUJTRCwgTmV0QlNEIG9yIFdpbmUgY2FuCiAgICAgICAgICBuYXRpdmVseSAnc2VlJyBmaWxlcyBsb2NhdGVkIGluIHRoZXNlIGNvbXByZXNzZWQgRE9TIHBhcnRpdGlvbnMuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQ2hlY2sgeW91ciBwYXRoIHN0YXRlbWVudHMgaW4gdGhlIDxmaWxlbmFtZT53aW5lLmNvbmY8L2ZpbGVuYW1lPiAKICAgICAgICAgIGZpbGUuIE5vIGNhcGl0YWwgbGV0dGVycyBtYXkgYmUgdXNlZCBpbiBwYXRocywgYXMgdGhleSBhcmUgCiAgICAgICAgICBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iUGFydHMtb2YtbXktYXBwLWRvLW5vdC13b3JrLVdoYXQtaXMtd3JvbmciPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSB3YXMgYWJsZSB0byBnZXQgdmFyaW91cyBNUyBXaW5kb3dzIHByb2dyYW1zIHRvIHJ1biwgYnV0IHBhcnRzIG9mCiAgICAgICAgICB0aGVtIGRvIG5vdCB3b3JrLiBXaGF0IGlzIHdyb25nPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgbm90IGNvbXBsZXRlIGF0IHRoaXMgdGltZSwgc28gc29tZSBvZiBlYWNoIHByb2dyYW1zJyAKICAgICAgICAgIGZlYXR1cmVzIG1heSBub3Qgd29yay4gVGhleSB3aWxsIGluIHRpbWUgYXMgbW9yZSBvZiB0aGUgTVMgCiAgICAgICAgICBXaW5kb3dzIEFQSSBjYWxscyBhcmUgaW5jbHVkZWQgaW4gV2luZS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJNZW51cy1kby1ub3Qtd29yay1ob3ctY2FuLUktZXhpdCI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJIGhhdmUgcnVuIHZhcmlvdXMgTVMgV2luZG93cyBwcm9ncmFtcywgYnV0IHNpbmNlIHRoZSBwcm9ncmFtIG1lbnVzCiAgICAgICAgICBkbyBub3Qgd29yaywgaG93IGNhbiBJIGV4aXQgdGhlc2UgcHJvZ3JhbXM/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgS2lsbCB0aGUgeHRlcm0gc2hlbGwgd2luZG93IHRoYXQgeW91IGNhbGxlZCB1cCB0byBydW4geW91ciBNUyAKICAgICAgICAgIFdpbmRvd3MgcHJvZ3JhbSwgYW5kIHRoZSBYIHdpbmRvdyB0aGF0IGFwcGVhcmVkIHdpdGggdGhlIHByb2dyYW0gCiAgICAgICAgICB3aWxsIGJlIGtpbGxlZCB0b28uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iQ2FuLUktdXNlLVdpbmUtd2l0aC1vdGhlci1MaW51eC1EaXN0cm9zIj4KICAgICAgICA8cGFyYT5DYW4gSSB1c2UgV2luZSB3aXRoIFN1U2UsIFBlYW51dCBvciBvdGhlciBMaW51eCBEaXN0cm8ncz88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZb3UgY2FuIHVzZSBXaW5lIG9uIGFueSBzdWZmaWNpZW50bHkgcmVjZW50IExpbnV4IGluc3RhbGxhdGlvbi4gVGhlCiAgICAgICAgICBhbW91bnQgb2Ygd29yayBnZXR0aW5nIFdpbmUgdXAgYW5kIHJ1bm5pbmcgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZXJlCiAgICAgICAgICBhcmUgcHJvcGVyIHBhY2thZ2VzIGF2YWlsYWJsZSBvciBhIHNvdXJjZSBjb21waWxlIGhhcyB0byBiZSBkb25lLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkRvZXMtV2luZS13b3JrLXdpdGgtQU1ELVByb2Nlc3NvcnMiPgogICAgICAgIDxwYXJhPkRvZXMgV2luZSB3b3JrIHdpdGggQU1EIFByb2Nlc3NvcnM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCBpdCBkb2VzLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJDYW4tSS1sYXVuY2gtVW5peC1hcHAtZnJvbS1XaW5kb3dzLWFwcCI+CiAgICAgICAgPHBhcmE+IENhbiBJIGxhdW5jaCBhIFVuaXggcHJvZ3JhbSBmcm9tIGEgV2luZG93cyBwcm9ncmFtPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFN1cmUsIFdpbmUgc3VwcG9ydHMgdGhhdC4gSnVzdCBlbnRlciB0aGUgdW5peCBwcm9ncmFtIG5hbWUgd2hlcmV2ZXIKICAgICAgICAgIGEgcHJvZ3JhbSBoYXMgc29tZXRoaW5nIHRoYXQgaXQncyBzdXBwb3NlZCB0byBleGVjdXRlLGFuZCB0aGVuIGl0IAogICAgICAgICAgc2hvdWxkIGp1c3Qgd29yay4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkVycm9yLXdpdGgtaW5zdGFsbHNoaWVsZC02Ij4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEkgZ2V0IDxxdW90ZT5FcnJvciBpbnN0YWxsaW5nIGlLZXJuZWwuZXhlOiAoMHgxNDAwKTwvcXVvdGU+CiAgICAgICAgICB3aGVuIHJ1bm5pbmcgYW4gSW5zdGFsbHNoaWVsZCA2IGluc3RhbGxlcgogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdSBnZXQgdGhlIGVycm9yICJFcnJvciBpbnN0YWxsaW5nIGlLZXJuZWwuZXhlOiAoMHgxNDAwKSIgYXQgYW55CiAgICAgICAgICBwb2ludCwgaXQncyBwcm9iYWJseSBiZWNhdXNlIHRoZXJlIGFyZSBsZWZ0b3ZlciBwcm9jZXNzZXMgZnJvbSBhCiAgICAgICAgICBwcmV2aW91cyB0cnkuIFlvdSBjYW4gdmVyaWZ5IHRoaXMgd2l0aCB0aGUgY29tbWFuZAogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT48Y29tbWFuZD4kIHBzIGF1Z3h3IHwgZ3JlcCB3aW5lPC9jb21tYW5kPjwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHRoYXQgY29tbWFuZCBzaG93cyBvbGQgY29waWVzIG9mIHdpbmUgcnVubmluZyB5b3VyIHNldHVwLAogICAgICAgICAgeW91IG5lZWQgdG8ga2lsbCB0aGVtIGJlZm9yZSB5b3UgY2FuIHJ1biB0aGUgc2V0dXAgcHJvZ3JhbS4KICAgICAgICAgIElmIHRoZXJlIGFyZSBubyBvdGhlciBXaW5lIHByb2dyYW1zIHJ1bm5pbmcsIHlvdSBjYW4ga2lsbCB0aGVtCiAgICAgICAgICBhbGwgd2l0aCB0aGUgY29tbWFuZAogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT48Y29tbWFuZD4kIGtpbGxhbGwgd2luZTwvY29tbWFuZD48L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJZiB5b3UncmUgYWxzbyBydW5uaW5nIFdpbmUgcHJvZ3JhbXMgeW91IGNhcmUgYWJvdXQsIHlvdSdsbAogICAgICAgICAgaGF2ZSB0byBraWxsIG9mZiB0aGUgb2xkIFNldHVwIGluc3RhbmNlcyBvbmUgYnkgb25lIHVzaW5nCiAgICAgICAgICBraWxsIGFuZCB0aGUgaW5kaXZpZHVhbCBQSURzIChvciBwZXJoYXBzIFdpbmUncyBzcGlmZnkgVGFzayBNYW5hZ2VyLAogICAgICAgICAgd2hpY2ggZG9lc24ndCBleGlzdCB5ZXQpLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFlvdSBzaG91bGQgcmVwZWF0IHRoZSA8Y29tbWFuZD5wczwvY29tbWFuZD4gdG8gbWFrZSBzdXJlIHRoZSBvbGQgCiAgICAgICAgICB3aW5lcyBhcmUgZ29uZS4gCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KICAgIDwvcWFuZGFkaXY+CiAgICAgCiAgICA8cWFuZGFkaXYgaWQ9IkdldHRpbmctaGVscCI+CiAgICAgIDx0aXRsZT5HZXR0aW5nIGhlbHA8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hbnktZG9jdW1lbnRhdGlvbi1mb3ItV2luZSI+CiAgICAgICAgPHBhcmE+SXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24gZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWWVzLCBzZWUgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL3N1cHBvcnQuc2h0bWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL3N1cHBvcnQuc2h0bWwuPC91bGluaz4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJLWhhdmUtd3JpdHRlbi1zb21lLWRvY3VtZW50ZW50YXRpb24iPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSSBjb3VsZG4ndCBmaW5kIHRoZSBhbnN3ZXIgdG8gbXkgcXVlc3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24sIGJ1dAogICAgICAgICAgSSd2ZSB3cml0dGVuIGEgZG9jdW1lbnQgZXhwbGFpbmluZyBob3cgdG8gc29sdmUgaXQuIFdoYXQgc2hvdWxkIEkgZG8/CiAgICAgICAgPC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgVXBkYXRlcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBXaW5lIGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHNob3VsZCBiZQogICAgICAgICAgc2VudCB0byB0aGUgd2luZS1wYXRjaGVzIG1haWxpbmcgbGlzdCBhdCAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9kZXYuc2h0bWwjbWwiPgogICAgICAgICAgaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbDwvdWxpbms+LiBXZWJzaXRlIGFuZCBGQVEgCiAgICAgICAgICBhZGRpdGlvbnMgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBXaW5lIEtub3dsZWRnZWJhc2UKICAgICAgICAgIGRpcmVjdG9yeS4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJcy10aGVyZS1hLVVzZW5ldC1uZXdzZ3JvdXAtZm9yLVdpbmUiPgogICAgICAgIDxwYXJhPklzIHRoZXJlIGEgVXNlbmV0IG5ld3Nncm91cCBmb3IgV2luZT88L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBZZXMsIGFuZCBpdCdzIGNhbGxlZCAKICAgICAgICAgIDx1bGluayB1cmw9Im5ld3M6Y29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lIj4KICAgICAgICAgIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZTwvdWxpbms+LiBUaGUgbmV3c2dyb3VwIHNlcnZlcyBhcyBhCiAgICAgICAgICBwbGFjZSBmb3IgdXNlcnMgYW5kIGRldmVsb3BlcnMgdG8gZGlzY3VzcyBXaW5lLCBhbmQgZm9yIG1pbm9yIAogICAgICAgICAgYW5ub3VuY2VtZW50cyBmb3IgdGhlIGdlbmVyYWwgcHVibGljLiBNYWpvciBhbm5vdW5jZW1lbnRzIHdpbGwgYmUKICAgICAgICAgIGNyb3NzcG9zdGVkIHRvIG90aGVyIGFwcHJvcHJpYXRlIG5ld3Nncm91cHMsIHN1Y2ggYXMgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICA8dWxpbmsgdXJsPSJuZXdzOmNvbXAub3MubGludXguYW5ub3VuY2UiPgogICAgICAgICAgICBjb21wLm9zLmxpbnV4LmFubm91bmNlPC91bGluaz4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgPHVsaW5rIHVybD0ibmV3czpjY29tcC53aW5kb3dzLnguYW5ub3VuY2UiPgogICAgICAgICAgICBjb21wLndpbmRvd3MueC5hbm5vdW5jZTwvdWxpbms+CiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIDx1bGluayB1cmw9Im5ld3M6Y2NvbXAuZW11bGF0b3JzLmFubm91bmNlIj4KICAgICAgICAgICAgY29tcC5lbXVsYXRvcnMuYW5ub3VuY2U8L3VsaW5rPgogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgICA8cGFyYT4KICAgICAgICAgIElmIHlvdXIgVXNlbmV0IHNpdGUgZG9lcyBub3QgY2FycnkgdGhlc2UgbmV3c2dyb3VwcywgcGxlYXNlIHVyZ2UgCiAgICAgICAgICB5b3VyIElTUCdzIHN5c2FkbWluIHRvIGFkZCBhbmQvb3IgdXBsaW5rIHRoZW0uCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtdGhlcmUtYS1Xb3JsZC1XaWRlLVdlYi1zaXRlLWZvci1XaW5lIj4KICAgICAgICA8cGFyYT5JcyB0aGVyZSBhIFdvcmxkIFdpZGUgV2ViIHNpdGUgZm9yIFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBIUSAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tIj5odHRwOi8vd3d3LndpbmVocS5jb208L3VsaW5rPikgaXMgdGhlIG9mZmljaWFsIHNpdGUuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSXMtdGhlcmUtYW4tSVJDLWNoYW5uZWwtZm9yLVdpbmUiPgogICAgICAgIDxwYXJhPklzIHRoZXJlIGFuIElSQyBjaGFubmVsIGZvciBXaW5lPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFN1cmUuIEl0J3MgY2hhbm5lbCA8ZmlsZW5hbWU+I1dpbmVIUTwvZmlsZW5hbWU+IG9uIAogICAgICAgICAgPGZpbGVuYW1lPmlyYy5mcmVlbm9kZS5uZXQ8L2ZpbGVuYW1lPiBzZWUgCiAgICAgICAgICAoPHVsaW5rIHVybD0iaHR0cDovL2ZyZWVub2RlLm5ldCI+aHR0cDovL2ZyZWVub2RlLm5ldDwvdWxpbms+KS4KICAgICAgICAgIFVzdWFsbHkgc2V2ZXJhbCBXaW5lIGRldmVsb3BlcnMgaGFuZyBvdXQgdGhlcmUganVzdCB0byBoZWxwIFlPVSA7LSkKICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJJLXRoaW5rLUktZm91bmQtYS1idWctSG93LWRvLUktcmVwb3J0LWl0Ij4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEkgdGhpbmsgSSd2ZSBmb3VuZCBhIGJ1Zy4gSG93IGRvIEkgcmVwb3J0IHRoaXMgYnVnIHRvIHRoZSBXaW5lCiAgICAgICAgICBwcm9ncmFtbWluZyB0ZWFtPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEJ1ZyByZXBvcnRzIHNob3VsZCBiZSBzdWJtaXR0ZWQgdG8gb3VyIG9ubGluZSBCdWd6aWxsYSBzeXN0ZW0gCiAgICAgICAgICAoPHVsaW5rIHVybD0iaHR0cDovL2J1Z3Mud2luZWhxLmNvbSI+aHR0cDovL2J1Z3Mud2luZWhxLmNvbS88L3VsaW5rPikuCiAgICAgICAgICBZb3Ugc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3QgdGhlIGZvbGxvd2luZzoKICAgICAgICA8L3BhcmE+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgV2luZSB2ZXJzaW9uIHRlc3RlZAogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgTVMgV2luZG93cyBwcm9ncmFtIG5hbWUgYW5kLCBpZiBwb3NzaWJsZSwgdGhlIHZlcnNpb24gbnVtYmVyIAogICAgICAgICAgICBvZiB0aGUgc29mdHdhcmUgdGVzdGVkCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIEEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZwogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBUaGUgcmVsZXZhbnQgcGFydChzKSBvZiB0aGUgb3V0cHV0IG9mIHRoZSBXaW5lIGRlYnVnZ2VyCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIEEgc2NyZWVuc2hvdCBvZiB0aGUgdmlzdWFsIHByb2JsZW0sIGlmIGFwcGxpY2FibGUKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlcG9ydGluZyBidWdzIHBsZWFzZSBzZWUgdGhlIAogICAgICAgICA8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5vcmcvRG9jcy93aW5lLXVzZXIvYnVnLXJlcG9ydGluZy5zaHRtbCI+CiAgICAgICAgIEhvdyB0byByZXBvcnQgYSBidWc8L3VsaW5rPiBzZWN0aW9uIG9mIHRoZSBXaW5lIFVzZXJzIEd1aWRlLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KICAgIDwvcWFuZGFkaXY+CiAKICAgIDxxYW5kYWRpdiBpZD0iSGVscGluZy1XaW5lLW9yLWJlY29taW5nLWEtV2luZS1kZXZlbG9wZXIiPgogICAgICA8dGl0bGU+SGVscGluZyBXaW5lIG9yIGJlY29taW5nIGEgV2luZSBkZXZlbG9wZXI8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctZG8tSS1iZWNvbWUtYS1XaW5lLWRldmVsb3BlciI+CiAgICAgICAgPHBhcmE+SG93IGRvIEkgYmVjb21lIGEgV2luZSBkZXZlbG9wZXI/IFdoYXQgZG8gSSBuZWVkIHRvIGtub3c/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgSWYgeW91IGNhbiBwcm9ncmFtIEMsIHRoYXQncyBhIGdvb2Qgc3RhcnQuIERvd25sb2FkIHRoZSBzb3VyY2VzIHZpYQogICAgICAgICAgQ1ZTLCBzdWJzY3JpYmUgdG8gdGhlIG1haWxpbmcgbGlzdHMsIGxvb2sgYXJvdW5kIHRoZSBzb3VyY2UsIGFuZCBwYXkKICAgICAgICAgIGF0dGVudGlvbiB0byB0aGUgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lIG5ld3Nncm91cCBhbmQgdGhlIAogICAgICAgICAgbWFpbGluZyBsaXN0cyAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbCI+aHR0cDovL3d3dy53aW5laHEuY29tL2Rldi5zaHRtbCNtbDwvdWxpbms+KS4gU2VlIGlmIHRoZXJlJ3MgYW55dGhpbmcKICAgICAgICAgIHRoYXQgeW91IHRoaW5rIHlvdSBjYW4gZml4IG9yIHdvcmsgb24uIFlvdSB3b24ndCBoYXZlIG11Y2ggdHJvdWJsZQogICAgICAgICAgZmluZGluZyBhcmVhcyB0aGF0IG5lZWQgd29yayBpbiBXaW5lIChncmVwIGZvciBGSVhNRXMgaW4gdGhlIHNvdXJjZSkuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWNhbi1JLWNvbnRyaWJ1dGUtdG8tdGhlLVdpbmUtcHJvamVjdCI+CiAgICAgICAgPHBhcmE+SG93IGNhbiBJIGhlbHAgY29udHJpYnV0ZSB0byB0aGUgV2luZSBwcm9qZWN0LCBhbmQgaW4gd2hhdCB3YXkocyk/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWW91IGNhbiBjb250cmlidXRlIHByb2dyYW1taW5nIG9yIGRvY3VtZW50YXRpb24gc2tpbGxzLCBvciBtb25ldGFyeQogICAgICAgICAgb3IgZXF1aXBtZW50IGRvbmF0aW9ucywgdG8gYWlkIHRoZSBXaW5lIGRldmVsb3BlcnMgaW4gcmVhY2hpbmcgdGhlaXIgCiAgICAgICAgICBnb2Fscy4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBGb3IgYSBsaXN0IG9mIGlkZWFzIG9mIGhvdyB5b3UgY2FuIGhlbHAsIHBsZWFzZSBjb25zdWx0IHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLmNvbS9hYm91dC9pbmRleC5waHA/Y29udHJpYiI+CiAgICAgICAgICBXaW5lIGNvbnRyaWIgcGFnZTwvdWxpbms+LgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9Ikktd2FudC10by1oZWxwLWJldGEtdGVzdC1XaW5lIj4KICAgICAgICA8cGFyYT5JIHdhbnQgdG8gaGVscCBiZXRhIHRlc3QgV2luZS4gSG93IGNhbiBJIGRvIHRoaXM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgV2luZSBzdGlsbCBjb25zaXN0cyBvZiBzb21lIEFscGhhIGNvZGUgYXQgdGhpcyB0aW1lLiBIb3dldmVyLCBhbnlvbmUKICAgICAgICAgIGlzIHdlbGNvbWUgdG8gZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uLCBhbmQgdHJ5IGl0IG91dCBhdCBhbnkKICAgICAgICAgIHRpbWUuCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSS13cm90ZS1zb21lLWNvZGUtSS13b3VsZC1saWtlLXRvLXN1Ym1pdCI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBJIGhhdmUgd3JpdHRlbiBzb21lIGNvZGUgdGhhdCBJIHdvdWxkIGxpa2UgdG8gc3VibWl0IHRvIHRoZSBXaW5lCiAgICAgICAgICBwcm9qZWN0LiBIb3cgZG8gSSBnbyBhYm91dCBkb2luZyB0aGlzPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFBhdGNoZXMgYXJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQgYW5kIHNob3VsZCBiZSBzdWJtaXR0ZWQgdG8gdGhlIAogICAgICAgICAgd2luZS1wYXRjaGVzIG1haWxpbmcgbGlzdCAKICAgICAgICAgICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3LndpbmVocS5jb20vZGV2LnNodG1sI21sIj5odHRwOi8vd3d3LndpbmVocS5jb20vZGV2LnNodG1sI21sPC91bGluaz4pLiBBbHNvIHNlZSB0aGlzIHBhZ2UgZm9yCiAgICAgICAgICBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgaGFwcGVucyB0byBzdWJtaXR0ZWQgcGF0Y2hlcy4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CiAgICA8L3FhbmRhZGl2PgogCiAgICA8cWFuZGFkaXYgaWQ9IkRldmVsb3BpbmctcHJvZ3JhbXMtdXNpbmctV2luZS1XaW5lTGliIj4KICAgICAgPHRpdGxlPkRldmVsb3BpbmcgcHJvZ3JhbXMgdXNpbmcgV2luZS9XaW5lTGliPC90aXRsZT4KICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iQ2FuLUktdXNlLVdpbmUtdG8tcG9ydC1XaW4zMi1zb3VyY2VzLXRvLVVuaXgiPgogICAgICAgIDxwYXJhPkNhbiBJIHVzZSBXaW5lIHRvIHBvcnQgbXkgV2luMzIgc291cmNlcyB0byBVbml4PzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFRoYXQgaXMgdGhlIGlkZWEgb2YgV2luZWxpYi4gUmlnaHQgbm93IHlvdSBtYXkgc3RpbGwgaGF2ZSBzb21lIAogICAgICAgICAgZGlmZmljdWx0aWVzLCBidXQgdGhpcyBpcyBjaGFuZ2luZyBhbGwgdGhlIHRpbWUuIFJlYWQgdGhlIAogICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL0RvY3Mvd2luZWxpYi11c2VyLyI+V2luZWxpYiBVc2VyJ3MgR3VpZGU8L3VsaW5rPiBmb3IgaW5mby4KCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaWxsLU1GQy13b3JrLXdpdGgtV2luZS1XaGF0LWRvLUktbmVlZC10by1kbyI+CiAgICAgICAgPHBhcmE+V2lsbCBNRkMgd29yayB3aXRoIFdpbmU/IFdoYXQgZG8gSSBuZWVkIHRvIGRvPzwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIFdpbmUgaXMgbm90IGltcGxlbWVudGluZyBhbiBNRkMgcmVwbGFjZW1lbnQgbm9yIGRvZXMgaXQgaW50ZW5kIHRvLgogICAgICAgICAgSG93ZXZlciBpdCBpcyBwb3NzaWJsZSAod2l0aCBhIGxvdCBvZiB3b3JrKSB0byBjb21waWxlIHRoZSBNRkMgZnJvbQogICAgICAgICAgc291cmNlIGFuZCB0aHVzIHByb2R1Y2UgYW4gPGZpbGVuYW1lPm1mYzQyLmRsbC5zbzwvZmlsZW5hbWU+IGxpYnJhcnkuCiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGxlYXNlIHJlZmVyIHRvIHRoZSAKICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cud2luZWhxLm9yZy9Eb2NzL3dpbmVsaWItdXNlci8iPldpbmVsaWIgVXNlcidzIEd1aWRlPC91bGluaz4gZm9yIGhvdyB0byBkbyB0aGlzLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgICAgIDxxYW5kYWVudHJ5PgogICAgICA8cXVlc3Rpb24gaWQ9IkFyZS10aGVyZS1jb21tZXJjaWFsLWFwcHMtcG9ydGVkLXVzaW5nLVdpbmUiPgogICAgICAgIDxwYXJhPgogICAgICAgICAgQXJlIHRoZXJlIGFueSBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucyB3aGljaCBoYXZlIGJlZW4gcG9ydGVkCiAgICAgICAgICB1c2luZyBXaW5lPwogICAgICAgIDwvcGFyYT4KICAgICAgPC9xdWVzdGlvbj4KICAgICAgPGFuc3dlcj4KICAgICAgICA8cGFyYT4KICAgICAgICAgIEEgZmV3IGV4YW1wbGVzIG9mIGFwcGxpY2F0aW9ucyB1c2luZyBXaW5lbGliOgogICAgICAgIDwvcGFyYT4KICAgICAgICA8aXRlbWl6ZWRsaXN0PgogICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgIENvcmVsJ3MgV29yZFBlcmZlY3QgT2ZmaWNlIFN1aXRlIAogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICBBYmlsaXR5IE9mZmljZQogICAgICAgICAgICAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy5hYmlsaXR5LmNvbS9saW51eC9hYmlsaXR5bGludXgucGhwIj5odHRwOi8vd3d3LmFiaWxpdHkuY29tL2xpbnV4L2FiaWxpdHlsaW51eC5waHA8L3VsaW5rPikKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KICAgICAgICAgICAgSUJNJ3MgV2Vic3BoZXJlCiAgICAgICAgICAgICg8dWxpbmsgdXJsPSJodHRwOi8vd3d3N2IuYm91bGRlci5pYm0uY29tL2RsL3N3d3Mvc3d3c2dkZGItcCI+aHR0cDovL3d3dzdiLmJvdWxkZXIuaWJtLmNvbS9kbC9zd3dzL3N3d3NnZGRiLXA8L3VsaW5rPikKICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC9pdGVtaXplZGxpc3Q+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBNYW55IG90aGVyIGltcG9ydGFudCBhcHBsaWNhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gcG9ydGVkLiAod2UgYXJlCiAgICAgICAgICBzcGVha2luZyBvZiBzZXZlcmFsIHRvcCA1MDAgYXBwbGljYXRpb25zIGhlcmUpCiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgICAgPHFhbmRhZW50cnk+CiAgICAgIDxxdWVzdGlvbiBpZD0iSG93LWNhbi1JLWRldGVjdC1XaW5lIj4KICAgICAgICA8cGFyYT5Ib3cgY2FuIEkgZGV0ZWN0IFdpbmU/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgWW91IHJlYWxseSBzaG91bGRuJ3Qgd2FudCB0byBkbyB0aGlzLiBJZiB0aGVyZSdzIGEgcXVpcmsgaW4gV2luZSAKICAgICAgICAgIHlvdSBuZWVkIHRvIHdvcmsgYXJvdW5kLCBpdCdzIG11Y2ggYmV0dGVyIHRvIGZpeCBpdCBpbiBXaW5lIChhZnRlcgogICAgICAgICAgYWxsIHlvdSdyZSBhIGRldmVsb3Blciwgc28geW91IHNob3VsZCBiZSBhYmxlIHRvIGdhdGhlciBlbm91Z2ggaGVscAogICAgICAgICAgYW5kIGtub3dsZWRnZSB0byBmaXggaXQgZm9yIHJlYWwpLgogICAgICAgIDwvcGFyYT4KICAgICAgPC9hbnN3ZXI+CiAgICAgIDwvcWFuZGFlbnRyeT4KCiAgCiAgICA8L3FhbmRhZGl2PgoKICAgIDxxYW5kYWRpdiBpZD0iV2luZS1IUS1pc3N1ZXMiPgogICAgICA8dGl0bGU+V2luZSBIUSBpc3N1ZXM8L3RpdGxlPgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJXaHktYXJlLXRoZS1tYWlsbGlzdHMtc2V0LXRvLXJlcGx5LXRvLWF1dGhvciI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaHkgYXJlIHRoZSBtYWlsbGlzdHMgc2V0IHRvIHJlcGx5IHRvIGF1dGhvciwgbm90IHRvIG1haWxpbmcgbGlzdD8KICAgICAgICA8L3BhcmE+CiAgICAgIDwvcXVlc3Rpb24+CiAgICAgIDxhbnN3ZXI+CiAgICAgICAgPHBhcmE+CiAgICAgICAgICBUaGVyZSBhcmUgdmVyeSB2YWxpZCByZWFzb25zIGZvciBkb2luZyBzby4KICAgICAgICA8L3BhcmE+CiAgICAgIDwvYW5zd2VyPgogICAgICA8L3FhbmRhZW50cnk+CgogICAgICA8cWFuZGFlbnRyeT4KICAgICAgPHF1ZXN0aW9uIGlkPSJIb3ctdG8tdW5zdWJzY3JpYmUtZnJvbS10aGUtbWFpbGluZy1saXN0cyI+CiAgICAgICAgPHBhcmE+SG93IHRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIG1haWxpbmcgbGlzdHM/PC9wYXJhPgogICAgICA8L3F1ZXN0aW9uPgogICAgICA8YW5zd2VyPgogICAgICAgIDxwYXJhPgogICAgICAgICAgUGxlYXNlIHNlZTogPHVsaW5rIHVybD0iaHR0cDovL3d3dy53aW5laHEub3JnL2RldmVsb3BtZW50LyNtbCI+aHR0cDovL3d3dy53aW5laHEub3JnL2RldmVsb3BtZW50LyNtbDwvdWxpbms+CiAgICAgICAgPC9wYXJhPgogICAgICA8L2Fuc3dlcj4KICAgICAgPC9xYW5kYWVudHJ5PgoKICAgIDwvcWFuZGFkaXY+CiAKICA8L3FhbmRhc2V0PgoKPCEtLSBLZWVwIHRoaXMgY29tbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlCkxvY2FsIHZhcmlhYmxlczoKbW9kZTogc2dtbApzZ21sLXBhcmVudC1kb2N1bWVudDooIndpbmUtZG9jLnNnbWwiICJib29rIiAicGFydCIgImNoYXB0ZXIiICIiKQpFbmQ6Ci0tPgo=