PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+TWFzdGVyIFdpbnRlciBCdXNpbmVzcyBDaGljOiBUb3AgRXhwZXJ0IFRpcHMgZm9yIFN0eWxpbmcgWW91ciBTd2VhdGVyIERyZXNzPC9oMj4KPHA+QXMgdGhlIHdpbnRlciBzZWFzb24gYXBwcm9hY2hlcywgdGhlIGNoYWxsZW5nZSBvZiBzdGF5aW5nIHdhcm0gYW5kIHN0eWxpc2ggYmVjb21lcyBtb3JlIHByb25vdW5jZWQsIGVzcGVjaWFsbHkgaW4gYSBidXNpbmVzcyBzZXR0aW5nLiBPbmUgb2YgdGhlIG1vc3QgdmVyc2F0aWxlIGFuZCBjaGljIHBpZWNlcyB5b3UgY2FuIGluY29ycG9yYXRlIGludG8geW91ciB3aW50ZXIgd2FyZHJvYmUgaXMgdGhlIHN3ZWF0ZXIgZHJlc3MuIEhlcmXigJlzIGEgY29tcHJlaGVuc2l2ZSBndWlkZSBvbiBob3cgdG8gc3R5bGUgeW91ciBzd2VhdGVyIGRyZXNzIHRvIGVsZXZhdGUgeW91ciB3aW50ZXIgYnVzaW5lc3MgY2hpYy48L3A+CjxoMz5DaG9vc2luZyB0aGUgUmlnaHQgU3dlYXRlciBEcmVzczwvaDM+CjxwPldoZW4gaXQgY29tZXMgdG8gc2VsZWN0aW5nIGEgc3dlYXRlciBkcmVzcyBmb3IgeW91ciB3aW50ZXIgYnVzaW5lc3Mgd2FyZHJvYmUsIHNldmVyYWwgZmFjdG9ycyBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgdG8gZW5zdXJlIHlvdSBnZXQgYSBwaWVjZSB0aGF0IGlzIGJvdGggc3R5bGlzaCBhbmQgZnVuY3Rpb25hbC48L3A+CjxoND5GYWJyaWMgYW5kIFRleHR1cmU8L2g0Pgo8cD5PcHQgZm9yIGEgc3dlYXRlciBkcmVzcyBtYWRlIGZyb20gaGlnaC1xdWFsaXR5LCB3YXJtIGZhYnJpY3Mgc3VjaCBhcyBtZXJpbm8gd29vbCwgY2FzaG1lcmUsIG9yIHRoaWNrIGtuaXRzLiBUaGVzZSBtYXRlcmlhbHMgd2lsbCBub3Qgb25seSBrZWVwIHlvdSB3YXJtIGJ1dCBhbHNvIGFkZCBhIGx1eHVyaW91cyB0ZXh0dXJlIHRvIHlvdXIgb3V0Zml0WzNdWzVdLjwvcD4KPGg0Pkxlbmd0aCBhbmQgRml0PC9oND4KPHA+QSBtaWQtIG9yIGtuZWUtbGVuZ3RoIHN3ZWF0ZXIgZHJlc3MgaXMgaWRlYWwgZm9yIGEgYnVzaW5lc3Mgc2V0dGluZy4gVGhpcyBsZW5ndGggZW5zdXJlcyB5b3UgbG9vayBwb2xpc2hlZCB3aXRob3V0IGZlZWxpbmcgb3ZlcndoZWxtZWQgYnkgdGhlIG1hdGVyaWFsLiBDb25zaWRlciBhIGRyZXNzIHRoYXQgZml0cyB3ZWxsIGJ1dCBpcyBub3QgdG9vIHRpZ2h0LCBhbGxvd2luZyBmb3IgZWFzeSBsYXllcmluZyB1bmRlcm5lYXRoIGlmIG5lZWRlZFs1XS48L3A+CjxoND5Db2xvciBhbmQgUGF0dGVybjwvaDQ+CjxwPk5ldXRyYWwgY29sb3JzIGxpa2UgYmxhY2ssIG5hdnksIGdyYXksIGFuZCBiZWlnZSBhcmUgdmVyc2F0aWxlIGFuZCBjYW4gYmUgZWFzaWx5IHBhaXJlZCB3aXRoIHZhcmlvdXMgYWNjZXNzb3JpZXMgYW5kIG91dGVyIGxheWVycy4gSG93ZXZlciwgZG9u4oCZdCBiZSBhZnJhaWQgdG8gaW50cm9kdWNlIHNvbWUgY29sb3IgaW50byB5b3VyIHdhcmRyb2JlIHdpdGggYSBicmlnaHQgcmVkIG9yIG9saXZlIGdyZWVuIHN3ZWF0ZXIgZHJlc3MgdG8gYWRkIGEgcG9wIG9mIGNvbG9yIHRvIHlvdXIgb3V0Zml0WzRdLjwvcD4KPGgzPkxheWVyaW5nIGZvciBXaW50ZXIgQnVzaW5lc3MgQ2hpYzwvaDM+CjxwPkxheWVyaW5nIGlzIGtleSB0byBjcmVhdGluZyBhIHN0eWxpc2ggYW5kIHdhcm0gd2ludGVyIG91dGZpdC4gSGVyZeKAmXMgaG93IHlvdSBjYW4gbGF5ZXIgeW91ciBzd2VhdGVyIGRyZXNzIGVmZmVjdGl2ZWx5OjwvcD4KPGg0PkJhc2UgTGF5ZXI8L2g0Pgo8cD5JZiB5b3UgbmVlZCBhbiBleHRyYSBsYXllciBvZiB3YXJtdGgsIGNvbnNpZGVyIHdlYXJpbmcgYSB0aGluIGJhc2UgbGF5ZXIgc3VjaCBhcyBhIGxvbmctc2xlZXZlIHRoZXJtYWwgc2hpcnQgdW5kZXIgeW91ciBzd2VhdGVyIGRyZXNzLiBUaGlzIHNob3VsZCBiZSBtYWRlIGZyb20gbW9pc3R1cmUtd2lja2luZyBmYWJyaWNzIHRvIGtlZXAgeW91IGRyeSBhbmQgY29tZm9ydGFibGVbM10uPC9wPgo8aDQ+TWlkLUxheWVyPC9oND4KPHA+Rm9yIGFkZGVkIHdhcm10aCwgeW91IGNhbiBsYXllciBhIGNhcmRpZ2FuIG9yIGEgdGFpbG9yZWQgYmxhemVyIG92ZXIgeW91ciBzd2VhdGVyIGRyZXNzLiBUaGlzIG5vdCBvbmx5IGFkZHMgYW4gZXh0cmEgbGF5ZXIgb2Ygd2FybXRoIGJ1dCBhbHNvIGVsZXZhdGVzIHlvdXIgbG9vaywgbWFraW5nIGl0IG1vcmUgcG9saXNoZWQgYW5kIGJ1c2luZXNzLWFwcHJvcHJpYXRlWzNdWzVdLjwvcD4KPGg0Pk91dGVyIExheWVyPC9oND4KPHA+SW52ZXN0IGluIGEgcXVhbGl0eSBjb2F0IG9yIGphY2tldCB0aGF0IGNvbXBsZW1lbnRzIHlvdXIgc3dlYXRlciBkcmVzcy4gT3B0aW9ucyBsaWtlIHdvb2wgb3ZlcmNvYXRzLCBwdWZmZXIgamFja2V0cywgb3IgY2hpYyB0cmVuY2ggY29hdHMgYXJlIGJvdGggZnVuY3Rpb25hbCBhbmQgc3R5bGlzaC4gTG9vayBmb3Igb3V0ZXJ3ZWFyIHdpdGggcHJhY3RpY2FsIGRldGFpbHMgbGlrZSBob29kcywgcG9ja2V0cywgYW5kIGFkanVzdGFibGUgY3VmZnNbM10uPC9wPgo8aDM+QWNjZXNzb3JpemluZyBZb3VyIFN3ZWF0ZXIgRHJlc3M8L2gzPgo8cD5BY2Nlc3NvcmllcyBjYW4gbWFrZSBvciBicmVhayB5b3VyIG91dGZpdC4gSGVyZSBhcmUgc29tZSB0aXBzIG9uIGhvdyB0byBhY2Nlc3Nvcml6ZSB5b3VyIHN3ZWF0ZXIgZHJlc3MgZm9yIGEgYnVzaW5lc3MtY2hpYyBsb29rOjwvcD4KPGg0PkZvb3R3ZWFyPC9oND4KPHA+Qm9vdHMgYXJlIGEgY2xhc3NpYyBjaG9pY2UgZm9yIHdpbnRlciBhbmQgY2FuIGdyZWF0bHkgZW5oYW5jZSB5b3VyIG91dGZpdC4gT3B0IGZvciBoaWdoLXF1YWxpdHksIHdhdGVycHJvb2YgYm9vdHMgd2l0aCBpbnN1bGF0aW9uIHRvIGtlZXAgeW91ciBmZWV0IHdhcm0gYW5kIGRyeS4gQW5rbGUgb3Iga25lZS1oaWdoIGJvb3RzIGNhbiBhZGQgYSBzdHlsaXNoIHRvdWNoIHRvIHlvdXIgc3dlYXRlciBkcmVzc1szXS48L3A+CjxoND5TY2FydmVzIGFuZCBIYXRzPC9oND4KPHA+QSBzY2FyZiBjYW4gYWRkIGJvdGggd2FybXRoIGFuZCBzdHlsZSB0byB5b3VyIG91dGZpdC4gQ2hvb3NlIGFuIG92ZXJzaXplZCBzY2FyZiB0aGF0IGNhbiBiZSBkcmFwZWQgb3Igd3JhcHBlZCBhcm91bmQgeW91ciBuZWNrLiBBIGNhc2htZXJlIGJlYW5pZSBvciBiZXJldCBjYW4gYWxzbyBhZGQgYSB0b3VjaCBvZiBzb3BoaXN0aWNhdGlvbiB0byB5b3VyIGxvb2tbM11bNV0uPC9wPgo8aDQ+R2xvdmVzIGFuZCBCYWdzPC9oND4KPHA+R2xvdmVzIGluIHRyZW5keSB0ZXh0dXJlcyBvciBodWVzIGNhbiBhZGQgYSBmaW5pc2hpbmcgdG91Y2ggdG8geW91ciBvdXRmaXQgd2hpbGUga2VlcGluZyB5b3VyIGhhbmRzIHdhcm0uIEZvciBiYWdzLCBvcHQgZm9yIHNvbWV0aGluZyBzaW1wbGUgeWV0IGVsZWdhbnQsIGxpa2UgYSBsZWF0aGVyIHRvdGUgb3IgYSBjbGFzc2ljIGhhbmRiYWcsIHRvIGNvbXBsZW1lbnQgeW91ciBidXNpbmVzcyBhdHRpcmVbM10uPC9wPgo8aDM+Q3JlYXRpbmcgT2ZmaWNlIE91dGZpdHMgd2l0aCBZb3VyIFN3ZWF0ZXIgRHJlc3M8L2gzPgo8cD5IZXJlIGFyZSBzb21lIG91dGZpdCBpZGVhcyB0byBoZWxwIHlvdSBzdHlsZSB5b3VyIHN3ZWF0ZXIgZHJlc3MgZm9yIGRpZmZlcmVudCBvZmZpY2Ugc2V0dGluZ3M6PC9wPgo8aDQ+Q2FzdWFsIEF0dGlyZTwvaDQ+CjxwPkZvciBhIG1vcmUgY2FzdWFsIG9mZmljZSBzZXR0aW5nLCBwYWlyIHlvdXIgc3dlYXRlciBkcmVzcyB3aXRoIGEgcGFpciBvZiBkYXJrLXdhc2ggamVhbnMgb3IgbGluZW4gcGFudHMgYW5kIGFua2xlIGJvb3RzLiBBZGQgYSBjYXJkaWdhbiBvciBhIGRlbmltIGphY2tldCBmb3IgYSByZWxheGVkIHlldCBzdHlsaXNoIGxvb2suPC9wPgo8aDQ+U21hcnQgQ2FzdWFsPC9oND4KPHA+Rm9yIGEgc21hcnQgY2FzdWFsIGxvb2ssIGxheWVyIGEgdGFpbG9yZWQgYmxhemVyIG92ZXIgeW91ciBzd2VhdGVyIGRyZXNzIGFuZCBwYWlyIGl0IHdpdGggZGFyay13YXNoIGRlbmltIG9yIHRhaWxvcmVkIHRyb3VzZXJzLiBBZGQgYSBwYWlyIG9mIGxvYWZlcnMgb3IgYmFsbGV0IGZsYXRzIHRvIGNvbXBsZXRlIHRoZSBvdXRmaXQuPC9wPgo8aDQ+QnVzaW5lc3MgRm9ybWFsPC9oND4KPHA+Rm9yIGEgbW9yZSBmb3JtYWwgb2ZmaWNlIHNldHRpbmcsIHBhaXIgeW91ciBzd2VhdGVyIGRyZXNzIHdpdGggYSBxdWFsaXR5IGNvYXQgb3IgamFja2V0IGFuZCBoaWdoIGhlZWxzLiBBZGQgYSBzdGF0ZW1lbnQgcGllY2Ugb2YgamV3ZWxyeSwgbGlrZSBhIHNpbXBsZSBuZWNrbGFjZSBvciBlYXJyaW5ncywgdG8gZWxldmF0ZSB5b3VyIGxvb2suPC9wPgo8aDM+UHJhY3RpY2FsIFRpcHMgYW5kIEV4YW1wbGVzPC9oMz4KPHA+SGVyZSBhcmUgc29tZSBwcmFjdGljYWwgdGlwcyBhbmQgZXhhbXBsZXMgdG8gaGVscCB5b3Ugc3R5bGUgeW91ciBzd2VhdGVyIGRyZXNzIGVmZmVjdGl2ZWx5OjwvcD4KPGg0Pk1peCBhbmQgTWF0Y2g8L2g0Pgo8dWw+CjxsaT48c3Ryb25nPlRyb3VzZXJzIGFuZCBCb290czwvc3Ryb25nPjogUGFpciB5b3VyIHN3ZWF0ZXIgZHJlc3Mgd2l0aCB0YWlsb3JlZCB0cm91c2VycyBhbmQga25lZS1oaWdoIGJvb3RzIGZvciBhIGNoaWMgYW5kIHBvbGlzaGVkIGxvb2suPC9saT4KPGxpPjxzdHJvbmc+U2tpcnQgYW5kIFRpZ2h0czwvc3Ryb25nPjogTGF5ZXIgYSBza2lydCBvdmVyIHlvdXIgc3dlYXRlciBkcmVzcyBhbmQgYWRkIHRoaWNrIHRpZ2h0cyBmb3IgYSB3YXJtIGFuZCBzdHlsaXNoIG91dGZpdC48L2xpPgo8bGk+PHN0cm9uZz5DYXJkaWdhbiBhbmQgTG9hZmVyczwvc3Ryb25nPjogQWRkIGEgY2FyZGlnYW4gb3ZlciB5b3VyIHN3ZWF0ZXIgZHJlc3MgYW5kIHBhaXIgaXQgd2l0aCBsb2FmZXJzIGZvciBhIHNtYXJ0IGNhc3VhbCBsb29rWzRdLjwvbGk+CjwvdWw+CjxoND5TaG9wIHRoZSBMb29rPC9oND4KPHA+SGVyZSBhcmUgc29tZSBzaG9wcGluZyB0aXBzIHRvIGhlbHAgeW91IGZpbmQgdGhlIHBlcmZlY3QgcGllY2VzIHRvIGNvbXBsZW1lbnQgeW91ciBzd2VhdGVyIGRyZXNzOjwvcD4KPHRhYmxlPgo8dGhlYWQ+Cjx0cj4KPHRoIGlkPSJpdGVtIj5JdGVtPC90aD4KPHRoIGlkPSJkZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgo8dGggaWQ9IndoZXJlX3RvX3Nob3AiPldoZXJlIHRvIFNob3A8L3RoPgo8L3RyPgo8L3RoZWFkPgo8dGJvZHk+Cjx0cj4KPHRkPlN3ZWF0ZXIgRHJlc3M8L3RkPgo8dGQ+TWlkLSBvciBrbmVlLWxlbmd0aCwgbWFkZSBmcm9tIG1lcmlubyB3b29sIG9yIGNhc2htZXJlPC90ZD4KPHRkPk1hbmdvLCBPbGQgTmF2eTwvdGQ+CjwvdHI+Cjx0cj4KPHRkPldvb2wgQ29hdDwvdGQ+Cjx0ZD5DbGFzc2ljIHdvb2wgb3ZlcmNvYXQgd2l0aCBmdW5jdGlvbmFsIGRldGFpbHM8L3RkPgo8dGQ+Si5DcmV3LCBBcmlhIENvdmU8L3RkPgo8L3RyPgo8dHI+Cjx0ZD5EYXJrLVdhc2ggRGVuaW08L3RkPgo8dGQ+U2xpbS1jdXQgZGFyayBqZWFucyBmb3IgZHJlc3NpbmcgdXAgb3IgZG93bjwvdGQ+Cjx0ZD5ETDE5NjEsIFdhcnAgKyBXZWZ0PC90ZD4KPC90cj4KPHRyPgo8dGQ+Qm9vdHM8L3RkPgo8dGQ+V2F0ZXJwcm9vZiBib290cyB3aXRoIGluc3VsYXRpb248L3RkPgo8dGQ+VmFyaW91cyBicmFuZHM8L3RkPgo8L3RyPgo8dHI+Cjx0ZD5DYXJkaWdhbjwvdGQ+Cjx0ZD5UYWlsb3JlZCBjYXJkaWdhbiBmb3IgbGF5ZXJpbmc8L3RkPgo8dGQ+VmFyaW91cyBicmFuZHM8L3RkPgo8L3RyPgo8dHI+Cjx0ZD5TY2FyZjwvdGQ+Cjx0ZD5PdmVyc2l6ZWQgc2NhcmYgaW4gbmV1dHJhbCBjb2xvcnM8L3RkPgo8dGQ+RWlsZWVuIEZpc2hlciwgUXVpbmNlPC90ZD4KPC90cj4KPC90Ym9keT4KPC90YWJsZT4KPGgzPlF1b3RlcyBhbmQgSW5zaWdodHMgZnJvbSBFeHBlcnRzPC9oMz4KPHVsPgo8bGk+PHN0cm9uZz4iVGhlIGdvYWwgaXMgdG8gYWxsZXZpYXRlIHRoZSBvdmVyd2hlbG1pbmcgZmVlbGluZyBvZiBoYXZpbmcgdG9vIG1hbnkgb3B0aW9ucyB0byBwaWNrIGZyb20sIjwvc3Ryb25nPiBzYXlzIE5lbHNvbiwgZW1waGFzaXppbmcgdGhlIGltcG9ydGFuY2Ugb2YgYSBjYXBzdWxlIHdhcmRyb2JlLiBUaGlzIGFwcHJvYWNoIGNhbiBhbHNvIHNwYXJrIG1vcmUgY3JlYXRpdml0eSBpbiBwdXR0aW5nIHRvZ2V0aGVyIHlvdXIgb3V0Zml0c1s1XS48L2xpPgo8bGk+PHN0cm9uZz4iQSB3b29sIGNvYXQgaXMgYW4gb3V0d2FyZCBwcm9qZWN0aW9uIG9mIHRoZSBjaGljIG91dGZpdCB1bmRlcm5lYXRoIChldmVuIGlmIHlvdeKAmXJlIHRvbyBidW5kbGVkIHRvIHNlZSBpdCksIjwvc3Ryb25nPiBoaWdobGlnaHRzIHRoZSB2ZXJzYXRpbGl0eSBhbmQgY2hpYyBhcHBlYWwgb2YgYSBnb29kIGNvYXRbNV0uPC9saT4KPC91bD4KPHA+U3R5bGluZyBhIHN3ZWF0ZXIgZHJlc3MgZm9yIHdpbnRlciBidXNpbmVzcyBjaGljIGlzIGFsbCBhYm91dCBiYWxhbmNlIGFuZCBsYXllcmluZy4gQnkgY2hvb3NpbmcgdGhlIHJpZ2h0IGZhYnJpYywgbGVuZ3RoLCBhbmQgY29sb3IsIGFuZCBieSBhY2Nlc3Nvcml6aW5nIHdpc2VseSwgeW91IGNhbiBjcmVhdGUgYSB2YXJpZXR5IG9mIG91dGZpdHMgdGhhdCBhcmUgYm90aCB3YXJtIGFuZCBzdHlsaXNoLiBSZW1lbWJlciwgdGhlIGtleSB0byBtYXN0ZXJpbmcgd2ludGVyIGJ1c2luZXNzIGNoaWMgaXMgdG8ga2VlcCB5b3VyIGxvb2sgcG9saXNoZWQsIHlldCBjb21mb3J0YWJsZSBhbmQgcHJhY3RpY2FsLjwvcD4KPGg0PkZpbmFsIFRpcHM8L2g0Pgo8dWw+CjxsaT48c3Ryb25nPkV4cGVyaW1lbnQgd2l0aCBEaWZmZXJlbnQgVGV4dHVyZXM8L3N0cm9uZz46IENvbWJpbmUgZGlmZmVyZW50IHRleHR1cmVzIGxpa2Ugd29vbCwgY2FzaG1lcmUsIGFuZCBsZWF0aGVyIHRvIGFkZCBkZXB0aCB0byB5b3VyIG91dGZpdC48L2xpPgo8bGk+PHN0cm9uZz5QbGF5IHdpdGggUGF0dGVybnM8L3N0cm9uZz46IFdoaWxlIG5ldXRyYWwgY29sb3JzIGFyZSB2ZXJzYXRpbGUsIGRvbuKAmXQgYmUgYWZyYWlkIHRvIGludHJvZHVjZSBwYXR0ZXJucyBsaWtlIHBsYWlkIG9yIHR3ZWVkIHRvIGFkZCBzb21lIHZpc3VhbCBpbnRlcmVzdC48L2xpPgo8bGk+PHN0cm9uZz5JbnZlc3QgaW4gUXVhbGl0eTwvc3Ryb25nPjogSGlnaC1xdWFsaXR5IHBpZWNlcyBtYXkgYmUgbW9yZSBleHBlbnNpdmUsIGJ1dCB0aGV5IGFyZSBtb3JlIGR1cmFibGUgYW5kIGNhbiBiZSBtaXhlZCBhbmQgbWF0Y2hlZCBlYXNpbHkuPC9saT4KPC91bD4KPHA+QnkgZm9sbG93aW5nIHRoZXNlIHRpcHMgYW5kIGluY29ycG9yYXRpbmcgeW91ciBzd2VhdGVyIGRyZXNzIGludG8geW91ciB3aW50ZXIgd2FyZHJvYmUsIHlvdeKAmWxsIGJlIHdlbGwgb24geW91ciB3YXkgdG8gbWFzdGVyaW5nIHRoZSBhcnQgb2Ygd2ludGVyIGJ1c2luZXNzIGNoaWMuPC9wPgo8L2JvZHk+CjwvaHRtbD4=
PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+VW5kZXJzdGFuZGluZyBGbG9yYWwgVHVuaWNzIGluIGEgTm9uLVByb2ZpdCBDb250ZXh0PC9oMj4KPHA+SW4gdGhlIG5vbi1wcm9maXQgc2VjdG9yLCA8c3Ryb25nPmZsb3JhbCB0dW5pY3M8L3N0cm9uZz4gaGF2ZSBlbWVyZ2VkIGFzIGEgdmVyc2F0aWxlIGNob2ljZSB0aGF0IGJhbGFuY2VzIHBlcnNvbmFsIGV4cHJlc3Npb24gd2l0aCBwcm9mZXNzaW9uYWwgYXR0aXJlLiBUaGV5IHByb3ZpZGUgYSB1bmlxdWUgd2F5IGZvciBsZWFkZXJzIHRvIGNvbW11bmljYXRlIHRoZWlyIGluZGl2aWR1YWwgc3R5bGUgd2hpbGUgbWFpbnRhaW5pbmcgdGhlIGV4cGVjdGF0aW9ucyBzZXQgd2l0aGluIHRoZWlyIG9yZ2FuaXNhdGlvbnMuIFRoZSBhcnRpc3RyeSBpbmhlcmVudCBpbiBmbG9yYWwgZGVzaWducyBjYW4gcHJvamVjdCB2aWJyYW5jeSBhbmQgYXBwcm9hY2hhYmlsaXR5LCBxdWFsaXRpZXMgb2Z0ZW4gZXNzZW50aWFsIGluIG5vbi1wcm9maXQgbGVhZGVyc2hpcCB3aGVyZSBjb25uZWN0aW5nIHdpdGggZGl2ZXJzZSBncm91cHMgaXMga2V5LjwvcD4KPHA+VGhlIGltcG9ydGFuY2Ugb2YgPHN0cm9uZz5ub24tcHJvZml0IHN0eWxpbmc8L3N0cm9uZz4gbGllcyBpbiBpdHMgY2FwYWNpdHkgdG8gbWVyZ2UgcHJvZmVzc2lvbmFsaXNtIHdpdGggcmVsYXRhYmlsaXR5LiBGbG9yYWwgdHVuaWNzIGNhdGVyIHRvIHRoaXMgYnkgb2ZmZXJpbmcgYSBibGVuZCBvZiBlbGVnYW5jZSBhbmQgY29tZm9ydC4gVGhlIHJlbGF4ZWQgZml0IG9mIGEgdHVuaWMgY291cGxlZCB3aXRoIGVuZ2FnaW5nIHBhdHRlcm5zIHByZXNlbnRzIGFuIGFwcHJvYWNoYWJsZSBhZXN0aGV0aWMgd2l0aG91dCBjb21wcm9taXNpbmcgb24gcHJvZmVzc2lvbmFsaXNtLiBUaGlzIGNhbiBmb3N0ZXIgZW52aXJvbm1lbnRzIGNvbmR1Y2l2ZSB0byBvcGVuIGNvbW11bmljYXRpb24gYW5kIGNvbGxhYm9yYXRpb24sIGNydWNpYWwgdG8gYWNoaWV2aW5nIG9yZ2FuaXNhdGlvbmFsIGdvYWxzLjwvcD4KPHA+V2hlbiBjaG9vc2luZyBhIGZsb3JhbCB0dW5pYywgaXQncyBlc3NlbnRpYWwgdG8gY29uc2lkZXIgdGhlIG9jY2FzaW9uLiBGb3IgZm9ybWFsIG1lZXRpbmdzIG9yIGNvbmZlcmVuY2VzLCBzZWxlY3QgZGVzaWducyB3aXRoIHN1YnRsZSBwcmludHMgYW5kIG11dGVkIGNvbG91cnMgdG8gZW5zdXJlIHRoYXQgcHJvZmVzc2lvbmFsaXNtIGlzIGF0IHRoZSBmb3JlZnJvbnQuIENvbnZlcnNlbHksIGZvciBjb21tdW5pdHkgZXZlbnRzIG9yIGluZm9ybWFsIGdhdGhlcmluZ3MsIHZpYnJhbnQgcGF0dGVybnMgY2FuIGNyZWF0ZSBhIHdlbGNvbWluZyBhdG1vc3BoZXJlLiBCeSBjYXJlZnVsbHkgc2VsZWN0aW5nIHRoZSBhcHByb3ByaWF0ZSBmbG9yYWwgdHVuaWMsIG5vbi1wcm9maXQgbGVhZGVycyBjYW4gZWZmZWN0aXZlbHkgYmFsYW5jZSBzdHlsZSBhbmQgcHJvZmVzc2lvbmFsIGF0dGlyZSwgcmVpbmZvcmNpbmcgdGhlaXIgY29tbWl0bWVudCB0byB0aGVpciBvcmdhbmlzYXRpb24ncyBtaXNzaW9uLjwvcD4KPGgyPlN0eWxpbmcgVGlwcyBmb3IgRmxvcmFsIFR1bmljczwvaDI+CjxwPkluY29ycG9yYXRpbmcgZmxvcmFsIHR1bmljcyBpbnRvIHlvdXIgd2FyZHJvYmUgY2FuIGJlIGEgZGVsaWdodGZ1bCB3YXkgdG8gZXhwcmVzcyB5b3VyIHBlcnNvbmFsIHN0eWxlLiBUaGVzZSBnYXJtZW50cyBvZmZlciBhIDxzdHJvbmc+dmVyc2F0aWxlPC9zdHJvbmc+IGJhc2UsIGFsbG93aW5nIGZvciBhIGRpdmVyc2UgcmFuZ2Ugb2YgPHN0cm9uZz5vdXRmaXQgY29tYmluYXRpb25zPC9zdHJvbmc+LjwvcD4KPGgzPkxheWVyaW5nIFRlY2huaXF1ZXM8L2gzPgo8cD5MYXllcmluZyBjYW4gdHJhbnNmb3JtIGEgc2ltcGxlIGZsb3JhbCB0dW5pYyBpbnRvIGEgY2hpYyBhbmQgcG9saXNoZWQgZW5zZW1ibGUuIEVtcGxveWluZyA8c3Ryb25nPmJsYXplcnM8L3N0cm9uZz4gb3IgY2FyZGlnYW5zIG92ZXIgeW91ciB0dW5pYyBhZGRzIHNvcGhpc3RpY2F0aW9uIGluc3RhbnRseS4gT3B0IGZvciBuZXV0cmFsIGNvbG91cnMgaW4gdGhlc2UgbGF5ZXJzIHRvIGF2b2lkIGNsYXNoaW5nIHdpdGggeW91ciB0dW5pYydzIHZpYnJhbnQgcGF0dGVybnMuIEFjY2Vzc29yaWVzIHBsYXkgYSBjcnVjaWFsIHJvbGUsIHdpdGggc3RhdGVtZW50IG5lY2tsYWNlcyBvciBlbGVnYW50IGVhcnJpbmdzIHByb3ZpZGluZyB0aGUgcGVyZmVjdCBmaW5pc2hpbmcgdG91Y2guIFNlbGVjdCBwaWVjZXMgdGhhdCBhY2NlbnR1YXRlIHJhdGhlciB0aGFuIG92ZXJwb3dlciB5b3VyIGF0dGlyZS48L3A+CjxoMz5Gb290d2VhciBPcHRpb25zPC9oMz4KPHA+Q2hvb3NpbmcgdGhlIHJpZ2h0IGZvb3R3ZWFyIGlzIGVzc2VudGlhbCBmb3IgY29tZm9ydCBhbmQgc3R5bGUuIFdoZW4gc2VsZWN0aW5nIHNob2VzIHRvIHBhaXIgd2l0aCBmbG9yYWwgdHVuaWNzLCBjb25zaWRlciB0aGUgZXZlbnQgYW5kIGFtYmlhbmNlLiA8c3Ryb25nPkNvbWZvcnRhYmxlPC9zdHJvbmc+IGJhbGxldCBmbGF0cyBvciBzYW5kYWxzIGFyZSBpZGVhbCBmb3IgY2FzdWFsIGV2ZW50cywgd2hpbGUgaGVlbHMgb3IgYW5rbGUgYm9vdHMgY2FuIGVsZXZhdGUgeW91ciBsb29rIGZvciBtb3JlIGZvcm1hbCBvY2Nhc2lvbnMuIEVuc3VyZSB0aGUgZm9vdHdlYXIgY29tcGxlbWVudHMgeW91ciB0dW5pY+KAmXMgY29sb3VyIHNjaGVtZSBmb3IgYSBjb2hlc2l2ZSBhcHBlYXJhbmNlLjwvcD4KPGgzPlNlYXNvbmFsIENvbnNpZGVyYXRpb25zPC9oMz4KPHA+RmxvcmFsIHR1bmljcyBhcmUgYWRhcHRhYmxlIGZvciBhbGwgc2Vhc29ucy4gSW4gY29vbGVyIHdlYXRoZXIsIG9wdCBmb3IgdHVuaWNzIG1hZGUgd2l0aCBoZWF2aWVyIGZhYnJpY3MgYW5kIHBhaXIgdGhlbSB3aXRoIHRpZ2h0cyBvciBsZWdnaW5ncy4gSW4gd2FybWVyIGNsaW1hdGVzLCBsaWdodHdlaWdodCwgYnJlYXRoYWJsZSBtYXRlcmlhbHMgYXJlIDxzdHJvbmc+aWRlYWw8L3N0cm9uZz4gdG8gbWFpbnRhaW4gY29tZm9ydCBhbmQgZWxlZ2FuY2UuIEFkanVzdGluZyB5b3VyIHR1bmlj4oCZcyBmYWJyaWMgYWNjb3JkaW5nIHRvIHRoZSBzZWFzb24gZW5zdXJlcyBib3RoIHN0eWxlIGFuZCBwcmFjdGljYWxpdHkuPC9wPgo8aDI+T2NjYXNpb25zIHRvIFdlYXIgRmxvcmFsIFR1bmljczwvaDI+CjxwPkZsb3JhbCB0dW5pY3Mgb2ZmZXIgYSBzdHlsaXNoIGFuZCB2ZXJzYXRpbGUgY2hvaWNlIGZvciBtYW55IG9jY2FzaW9ucy4gVGhlc2UgZ2FybWVudHMgYXJlIHBhcnRpY3VsYXJseSB3ZWxsLXN1aXRlZCBmb3IgPHN0cm9uZz5ub24tcHJvZml0IHNldHRpbmdzPC9zdHJvbmc+LCB3aGVyZSBhIGJhbGFuY2UgYmV0d2VlbiBwcm9mZXNzaW9uYWxpc20gYW5kIGFwcHJvYWNoYWJpbGl0eSBpcyBrZXkuIEZsb3JhbCBwYXR0ZXJucyBjb252ZXkgd2FybXRoIGFuZCBjcmVhdGl2aXR5LCBtYWtpbmcgdGhlbSBpZGVhbCBmb3IgY29tbXVuaXR5IGV2ZW50cywgZnVuZHJhaXNpbmcgZGlubmVycywgYW5kIHZvbHVudGVlcmluZyBhY3Rpdml0aWVzLjwvcD4KPHA+T25lIG9mIHRoZSBncmVhdCBzdHJlbmd0aHMgb2YgZmxvcmFsIHR1bmljcyBsaWVzIGluIHRoZWlyIGFiaWxpdHkgdG8gdHJhbnNpdGlvbiBzZWFtbGVzc2x5IGZyb20gZGF5IHRvIGV2ZW5pbmcuIEltYWdpbmUgc3RhcnRpbmcgeW91ciBkYXkgd2l0aCBhIDxzdHJvbmc+Y2FzdWFsIHByb2Zlc3Npb25hbCBtZWV0aW5nPC9zdHJvbmc+IGFuZCBsYXRlciBhdHRlbmRpbmcgYSBjYXN1YWwgZGlubmVyIGV2ZW50IHdpdGhvdXQgbmVlZGluZyBhIGNvbXBsZXRlIHdhcmRyb2JlIGNoYW5nZS4gUGFpciBhIGZsb3JhbCB0dW5pYyB3aXRoIHRhaWxvcmVkIHRyb3VzZXJzIGZvciA8c3Ryb25nPnByb2Zlc3Npb25hbCBldmVudHM8L3N0cm9uZz4gZHVyaW5nIHRoZSBkYXksIHRoZW4gc3dpdGNoIHRvIGVsZWdhbnQgYWNjZXNzb3JpZXMgaW4gdGhlIGV2ZW5pbmcgZm9yIGEgbW9yZSByZWZpbmVkIGxvb2suPC9wPgo8cD5JbiBjYXN1YWwgeWV0IHByb2Zlc3Npb25hbCBlbnZpcm9ubWVudHMsIGZsb3JhbCB0dW5pY3MgY2FuIGJlIGEgcmVmcmVzaGluZyBhZGRpdGlvbiB0byB5b3VyIHdhcmRyb2JlLiBQaWN0dXJlIGF0dGVuZGluZyBhIGNyZWF0aXZlIG9mZmljZSBzcGFjZSB3aGVyZSB0cmFkaXRpb25hbCBidXNpbmVzcyBhdHRpcmUgZmVlbHMgb3V0IG9mIHBsYWNlLiBDaG9vc2UgYSBmbG9yYWwgdHVuaWMgdGhhdCBmZWF0dXJlcyBzdWJ0bGUgaHVlcyBhbmQgYSBuZWF0bHkgZml0dGVkIHNpbGhvdWV0dGUgdG8gc3RyaWtlIHRoZSBwZXJmZWN0IGJhbGFuY2UgYmV0d2VlbiBjYXN1YWwgYW5kIGZvcm1hbC4gPC9wPgo8cD5Gb3IgdGhvc2Ugd29uZGVyaW5nIHdoZW4gdG8gb3B0IGZvciBmbG9yYWwgdHVuaWNzLCB0aGUgYW5zd2VyIGlzIHJlZnJlc2hpbmdseSBkaXZlcnNlLiBGcm9tIHdvcmtwbGFjZSBnYXRoZXJpbmdzIHRvIGxlaXN1cmVseSBicnVuY2hlcywgdGhlc2UgdmVyc2F0aWxlIGdhcm1lbnRzIGVuYWJsZSB5b3UgdG8gbmF2aWdhdGUgdmFyaW91cyA8c3Ryb25nPmV2ZW50IGRyZXNzaW5nPC9zdHJvbmc+IHNjZW5hcmlvcyB3aXRoIGVhc2UuPC9wPgo8aDI+QnVkZ2V0LUZyaWVuZGx5IEZsb3JhbCBUdW5pYyBPcHRpb25zPC9oMj4KPHA+RXhwbG9yaW5nIDxzdHJvbmc+YnVkZ2V0LWZyaWVuZGx5IGZhc2hpb248L3N0cm9uZz4gZG9lc24ndCBtZWFuIHNhY3JpZmljaW5nIHN0eWxlLCBlc3BlY2lhbGx5IHdoZW4gaXQgY29tZXMgdG8gZmxvcmFsIHR1bmljcy4gVGhlcmUgYXJlIG51bWVyb3VzIGF2ZW51ZXMgdG8gZmluZCA8c3Ryb25nPmFmZm9yZGFibGUgZmxvcmFsIHR1bmljczwvc3Ryb25nPiB3aXRob3V0IGNvbXByb21pc2luZyBvbiBxdWFsaXR5LiBUaHJpZnQgc3RvcmVzIGFyZSBhIHRyZWFzdXJlIHRyb3ZlIGZvciB1bmlxdWUgc3R5bGluZy4gV2l0aCBhIGtlZW4gZXllLCB5b3UgY2FuIHVuY292ZXIgaGlkZGVuIGdlbXMgdGhhdCBub3Qgb25seSBtYXRjaCB5b3VyIHN0eWxlIGJ1dCBhbHNvIGZpdCB5b3VyIGJ1ZGdldC4gTG9vayBmb3Igc3RvcmVzIHRoYXQgcmVjZWl2ZSBuZXcgc2hpcG1lbnRzIHJlZ3VsYXJseSwgYXMgdGhpcyBpbmNyZWFzZXMgeW91ciBjaGFuY2VzIG9mIGZpbmRpbmcgZnJlc2ggaXRlbXMuPC9wPgo8cD5Gb3IgdGhvc2Ugd2hvIGVuam95IGEgaGFuZHMtb24gYXBwcm9hY2gsIDxzdHJvbmc+RElZIGZsb3JhbCB0dW5pYyBtb2RpZmljYXRpb25zPC9zdHJvbmc+IGNhbiBiZSBib3RoIGEgY3JlYXRpdmUgYW5kIGNvc3QtZWZmZWN0aXZlIHNvbHV0aW9uLiBFdmVuIGEgc2ltcGxlIGZhYnJpYyB0d2VhayBvciBlbWJlbGxpc2htZW50IGNhbiB0cmFuc2Zvcm0gYSBiYXNpYyB0dW5pYyBpbnRvIGEgcGVyc29uYWxpc2VkIHBpZWNlLiBDb25zaWRlciBhZGRpbmcgYXBwbGlxdWUsIGxhY2UgdHJpbXMsIG9yIGV2ZW4gYWx0ZXJpbmcgdGhlIHNsZWV2ZXMgYW5kIG5lY2tsaW5lLiBTdWNoIGNoYW5nZXMgYWxsb3cgeW91IHRvIGV4cHJlc3MgeW91ciBpbmRpdmlkdWFsaXR5IHdpdGhvdXQgYnJlYWtpbmcgdGhlIGJhbmsuIDwvcD4KPHA+VG8ga2VlcCBjb3N0cyBsb3cgd2hpbGUgbWFpbnRhaW5pbmcgc3R5bGUsIGFmZm9yZGFiaWxpdHkgc2hvdWxkIGJlIHlvdXIgZ3VpZGluZyBwcmluY2lwbGUuIFdlYnNpdGVzIGFuZCBtYXJrZXRwbGFjZXMgc3BlY2lhbGlzaW5nIGluIDxzdHJvbmc+YnVkZ2V0IGZhc2hpb248L3N0cm9uZz4gb2ZmZXIgYSBteXJpYWQgb2Ygb3B0aW9ucy4gTWFrZSB1c2Ugb2YgZmlsdGVycyB0byBzb3J0IGJ5IHByaWNlLCBhbmQgcmVhZCByZXZpZXdzIHRvIGVuc3VyZSBxdWFsaXR5IGFuZCBzYXRpc2ZhY3Rpb24gYXJlIGd1YXJhbnRlZWQuIFRhaWxvcmluZyB5b3VyIGFwcHJvYWNoIHRvIHNob3BwaW5nIHdpbGwgaGVscCBhZGQgc3BsZW5kaWQgZmxvcmFsIHR1bmljcyB0byB5b3VyIHdhcmRyb2JlLCBhbGwgd2hpbGUga2VlcGluZyB5b3VyIGZpbmFuY2VzIGluIGNoZWNrLjwvcD4KPGgyPlZpc3VhbCBBaWRzIGFuZCBSZXNvdXJjZXM8L2gyPgo8cD5OYXZpZ2F0aW5nIHRoZSB3b3JsZCBvZiA8c3Ryb25nPm5vbi1wcm9maXQgZmFzaGlvbjwvc3Ryb25nPiBhbmQgc3R5bGluZyBjYW4gYmUgbWFkZSBlYXNpZXIgd2l0aCB0aGUgcmlnaHQgdmlzdWFsIGFpZHMgYW5kIHJlc291cmNlcy4gSW5mb2dyYXBoaWNzIGFyZSBhbiBleGNlbGxlbnQgdG9vbCBmb3IgcHJvdmlkaW5nIHF1aWNrIGFuZCBkaWdlc3RpYmxlIHN0eWxpbmcgdGlwcy4gVGhleSBjYW4gYnJlYWsgZG93biBjb21wbGV4IGZhc2hpb24gY29uY2VwdHMgaW50byBiaXRlLXNpemVkIHBpZWNlcyB0aGF0IGFyZSBlYXN5IHRvIHVuZGVyc3RhbmQgYW5kIGFwcGx5LiBGb3IgZXhhbXBsZSwgaW5mb2dyYXBoaWNzIGNhbiBpbGx1c3RyYXRlIHRoZSB2ZXJzYXRpbGl0eSBvZiBkaWZmZXJlbnQgZmFicmljcywgc3VjaCBhcyB0aG9zZSB1c2VkIGluIDxzdHJvbmc+ZmxvcmFsIHR1bmljczwvc3Ryb25nPiwgc2hvd2luZyB2YXJpb3VzIHBhaXJpbmcgb3B0aW9ucyBhbmQgYWNjZXNzb3JpZXMgdG8gbWF0Y2guPC9wPgo8cD5Bbm90aGVyIHJpY2ggc291cmNlIG9mIHZpc3VhbCBpbnNwaXJhdGlvbiBpcyB0aGUgd29yayBvZiA8c3Ryb25nPm5vbi1wcm9maXQgbGVhZGVyczwvc3Ryb25nPiB3aG8gZW1icmFjZSBmbG9yYWwgdHVuaWNzIGluIHRoZWlyIGV2ZXJ5ZGF5IHdhcmRyb2Jlcy4gVGhlaXIgdW5pcXVlIGFwcHJvYWNoZXMgcHJvdmlkZSBwcmFjdGljYWwgZXhhbXBsZXMgb2YgaG93IHRoZXNlIGdhcm1lbnRzIGNhbiBiZSBib3RoIGZ1bmN0aW9uYWwgYW5kIHN0eWxpc2ggaW4gcHJvZmVzc2lvbmFsIHNldHRpbmdzLiBPYnNlcnZpbmcgdGhlaXIgY2hvaWNlcyBjYW4gc3BhcmsgbmV3IGlkZWFzIGZvciBpbnRlZ3JhdGluZyBzaW1pbGFyIHBpZWNlcyBpbnRvIHlvdXIgb3duIHdhcmRyb2JlLjwvcD4KPHA+QWRkaXRpb25hbGx5LCBhIG51bWJlciBvZiBvbmxpbmUgcGxhdGZvcm1zIGFuZCBibG9ncyBkZWRpY2F0ZSB0aGVtc2VsdmVzIHRvIHRoZSBmb2N1cyBvbiBub24tcHJvZml0IGZhc2hpb24gc3R5bGluZy4gVGhlc2UgcmVzb3VyY2VzIG5vdCBvbmx5IHNoYXJlIHN0eWxpbmcgYWR2aWNlIGJ1dCBvZnRlbiBvZmZlciBpbnNpZ2h0cyBpbnRvIHN1c3RhaW5hYmxlIGZhc2hpb24gcHJhY3RpY2VzIHJlbGV2YW50IHRvIHRoZSBub24tcHJvZml0IHNlY3Rvci4gRW5nYWdpbmcgd2l0aCB0aGVzZSBjb21tdW5pdGllcyBjYW4gbGVhZCB0byBkaXNjb3ZlcmluZyBpbm5vdmF0aXZlIHdheXMgdG8gc3R5bGUgPHN0cm9uZz5mbG9yYWwgdHVuaWNzPC9zdHJvbmc+LCB3aGlsZSBhbHNvIHByb21vdGluZyBldGhpY2FsIGZhc2hpb24gY29uc3VtcHRpb24uIEJ5IHV0aWxpemluZyB0aGVzZSB2aXN1YWwgYWlkcyBhbmQgcmVzb3VyY2VzLCBpbmRpdmlkdWFscyBjYW4gZW5oYW5jZSB0aGVpciB1bmRlcnN0YW5kaW5nIGFuZCBhcHBsaWNhdGlvbiBvZiBub24tcHJvZml0IGZhc2hpb24gdHJlbmRzLjwvcD4KPGgyPkZpbmFsIFRob3VnaHRzIG9uIE1haW50YWluaW5nIFByb2Zlc3Npb25hbGlzbSB3aXRoIFN0eWxlPC9oMj4KPHA+QmFsYW5jaW5nIDxzdHJvbmc+cHJvZmVzc2lvbmFsaXNtPC9zdHJvbmc+IHdpdGggcGVyc29uYWwgc3R5bGUgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IHlvdXIgPHN0cm9uZz5wcm9mZXNzaW9uYWwgaW1hZ2U8L3N0cm9uZz4uIEluIG5vbi1wcm9maXQgZW52aXJvbm1lbnRzLCB3aGVyZSBsZWFkZXJzIGFyZSBleHBlY3RlZCB0byBlbWJvZHkgdGhlIG1pc3Npb24gYW5kIHZhbHVlcyBvZiB0aGUgb3JnYW5pemF0aW9uLCBwcmVzZW50aW5nIG9uZXNlbGYgd2l0aCBzdHlsZSBiZWNvbWVzIHBhcnQgb2YgcGVyc29uYWwgYnJhbmRpbmcuIFdoaWxlIGFkaGVyaW5nIHRvIG9yZ2FuaXphdGlvbmFsIGV4cGVjdGF0aW9ucyBpcyBjcnVjaWFsLCB0aGVyZSByZW1haW5zIHJvb20gZm9yIDxzdHJvbmc+c2VsZi1leHByZXNzaW9uPC9zdHJvbmc+LiBXZWFyaW5nIGNsb3RoZXMgdGhhdCByZXNvbmF0ZSB3aXRoIHlvdXIgcGVyc29uYWxpdHkgY2FuIGVuaGFuY2UgeW91ciBjb25maWRlbmNlLCB0aGVyZWJ5IHJlZmxlY3RpbmcgcG9zaXRpdmVseSBpbiB5b3VyIHJvbGUuPC9wPgo8cD5Gb3IgdGhvc2UgaW4gbGVhZGVyc2hpcCBwb3NpdGlvbnMgd2l0aGluIG5vbi1wcm9maXRzLCBleHByZXNzaW5nIGluZGl2aWR1YWxpdHkgdGhyb3VnaCBmYXNoaW9uIGNhbiBhaWQgaW4gbWFraW5nIGF1dGhlbnRpYyBjb25uZWN0aW9ucyB3aXRoIHN0YWtlaG9sZGVycy4gSXQncyBpbXBvcnRhbnQgdG8gZW5zdXJlIHRoYXQgeW91ciBzdHlsZSBhbGlnbnMgd2l0aCB0aGUgb3JnYW5pemF0aW9uJ3MgbWlzc2lvbi4gRHJlc3NpbmcgYXB0bHkgZm9yIGRpZmZlcmVudCBvY2Nhc2lvbnMgc2hvd3MgcmVzcGVjdCBub3Qgb25seSBmb3IgdGhlIHJvbGUgYnV0IGFsc28gZm9yIHRoZSBjYXVzZS48L3A+CjxwPkNvbnRpbnVvdXMgbGVhcm5pbmcgaXMga2V5IHRvIG1haW50YWluaW5nIGFuIHVwLXRvLWRhdGUgYW5kIHByb2Zlc3Npb25hbCBhcHBlYXJhbmNlLiBUaGVyZSBhcmUgbnVtZXJvdXMgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBlbmhhbmNlIHlvdXIgdW5kZXJzdGFuZGluZyBvZiA8c3Ryb25nPnN0eWxpbmcgYW5kIGZhc2hpb24gY2hvaWNlczwvc3Ryb25nPi4gT25saW5lIHdvcmtzaG9wcywgZmFzaGlvbiBibG9ncywgYW5kIHByb2Zlc3Npb25hbCBuZXR3b3JraW5nIGV2ZW50cyBwcm92aWRlIGluc2lnaHRzIHRoYXQgY2FuIGhlbHAgcmVmaW5lIHlvdXIgc3R5bGUgd2hpbGUgbWFpbnRhaW5pbmcgcHJvZmVzc2lvbmFsaXNtLjwvcD4KPHA+RXhwZXJpbWVudGluZyB3aXRoIHlvdXIgd2FyZHJvYmUgY2FuIGJlIHBhcnQgb2YgeW91ciA8c3Ryb25nPnBlcnNvbmFsIGJyYW5kaW5nPC9zdHJvbmc+LCBtYWtpbmcgeW91IG1lbW9yYWJsZSB3aGlsZSByZW1haW5pbmcgYXBwcm9wcmlhdGUuIEJ5IHN0cmlraW5nIHRoZSByaWdodCBiYWxhbmNlLCB5b3UgdW5kZXJzY29yZSB5b3VyIHByb2Zlc3Npb25hbCBpbWFnZSwgY29udHJpYnV0aW5nIHBvc2l0aXZlbHkgdG8geW91ciBvcmdhbml6YXRpb27igJlzIG1pc3Npb24uPC9wPgo8L2JvZHk+CjwvaHRtbD4=
PCFET0NUWVBFIEhUTUw+CjxodG1sPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+VW5kZXJzdGFuZGluZyB0aGUgQ2FzdWFsIENyZWF0aXZlIFdvcmtzcGFjZTwvaDI+CjxwPkluIHRvZGF5J3MgPHN0cm9uZz5jYXN1YWwgd29ya3NwYWNlPC9zdHJvbmc+LCBjb21mb3J0IGFuZCBwZXJzb25hbCBleHByZXNzaW9uIGhhdmUgYmVjb21lIGtleSBjb21wb25lbnRzIGluIGVuaGFuY2luZyBwcm9kdWN0aXZpdHkgYW5kIGNyZWF0aXZpdHkuIEEgY3JlYXRpdmUgc3R5bGUgaXNuJ3QganVzdCBhYm91dCBhZXN0aGV0aWNzOyBpdCBwcm9mb3VuZGx5IGltcGFjdHMgaG93IG9uZSBmZWVscyBhbmQgcGVyZm9ybXMgaW4gYSB3b3Jrc3BhY2UuIEJhbGFuY2luZyBjb21mb3J0IHdpdGggc3R5bGUgYWxsb3dzIGluZGl2aWR1YWxzIHRvIGV4cHJlc3MgdGhlbXNlbHZlcyB3aGlsZSBtYWludGFpbmluZyB0aGUgZm9jdXMgcmVxdWlyZWQgZm9yIGNyZWF0aXZlIHRhc2tzLjwvcD4KPHA+UGVyc29uYWwgZXhwcmVzc2lvbiB0aHJvdWdoIGF0dGlyZeKAlGludGVncmFsIHRvIG1hbnkgcHJvZmVzc2lvbmFsc+KAlGNhbiB0cmFuc2Zvcm0gdGhlIHByb2Zlc3Npb25hbCBlbnZpcm9ubWVudC4gQ2hvaWNlcyBpbiBmYXNoaW9uIGFyZW4ndCBwdXJlbHkgc3VwZXJmaWNpYWw7IHRoZXkgaW5mbHVlbmNlIG1vb2QsIG1pbmRzZXQgYW5kIHRodXMgaW5kaXJlY3RseSBib29zdCBwcm9kdWN0aXZpdHkuIFdoZW4gaW5kaXZpZHVhbHMgZmVlbCBjb21mb3J0YWJsZSBhbmQgY29uZmlkZW50LCB0aGV5IGNhbiBlbmdhZ2UgbW9yZSBkeW5hbWljYWxseSB3aXRoIHRoZWlyIHdvcmsuPC9wPgo8cD5Ib29kaWVzLCBmb3IgaW5zdGFuY2UsIGhhdmUgZ2FpbmVkIHBvcHVsYXJpdHkgaW4gY2FzdWFsIHdvcmsgc2V0dGluZ3MuIFRoZXkgZXBpdG9taXNlIHRoZSBibGVuZCBvZiBmYXNoaW9uIHdpdGggZnVuY3Rpb25hbGl0eeKAlG9mZmVyaW5nIHdhcm10aCBhbmQgZnJlZWRvbSBvZiBtb3ZlbWVudC4gVGhpcyB0cmVuZCB1bmRlcnNjb3JlcyBhIHNoaWZ0IHRvd2FyZHMgdmFsdWluZyBjb21mb3J0IG92ZXIgY29udmVudGlvbmFsIGRyZXNzIGNvZGVzLjwvcD4KPHVsPgo8bGk+UGVyc29uYWwgc3R5bGUgY2FuIGJlIGEgcG93ZXJmdWwgdG9vbC48L2xpPgo8bGk+Q29tZm9ydGFibGUgY2xvdGhpbmcgZG9lc24ndCBzYWNyaWZpY2UgcHJvZmVzc2lvbmFsaXNtLjwvbGk+CjxsaT5Ib29kaWVzIGV4ZW1wbGlmeSB0aGUgbW9kZXJuIGJhbGFuY2Ugb2YgY29tZm9ydCBhbmQgZXhwcmVzc2lvbi48L2xpPgo8L3VsPgo8cD5TdWNoIGNsb3RoaW5nIGNob2ljZXMgZm9zdGVyIGEgY3VsdHVyZSB3aGVyZSA8c3Ryb25nPmNyZWF0aXZlIHN0eWxlPC9zdHJvbmc+IGlzIHJlc3BlY3RlZCBhbmQgZW5jb3VyYWdlZCwgY29udHJpYnV0aW5nIHRvIGEgbW9yZSByZWxheGVkLCB5ZXQgcHJvZHVjdGl2ZSB3b3JrIGF0bW9zcGhlcmUuPC9wPgo8aDI+RXhwZXJ0IFRpcHMgZm9yIFN0eWxpbmcgSG9vZGllczwvaDI+CjxwPk1hc3RlcmluZyB0aGUgYXJ0IG9mIHN0eWxpbmcgPHN0cm9uZz5ob29kaWVzPC9zdHJvbmc+IGNhbiB0cmFuc2Zvcm0gdGhlbSBpbnRvIGEgcmVhbCB3YXJkcm9iZSBlc3NlbnRpYWwuIEZyb20gY2FzdWFsIHN0cmVldHdlYXIgdG8gYSBtb3JlIHBvbGlzaGVkIGxvb2ssIHRoZXNlIHZlcnNhdGlsZSBwaWVjZXMgY2FuIGJlIGRyZXNzZWQgdXAgb3IgZG93biBkZXBlbmRpbmcgb24gdGhlIG9jY2FzaW9uLiBIZXJlIGFyZSBzb21lIGV4cGVydCB0aXBzIHRvIGVuc3VyZSB5b3VyIGhvb2RpZSBhbHdheXMgaGl0cyB0aGUgZmFzaGlvbiBtYXJrLjwvcD4KPGgzPkNob29zaW5nIHRoZSBSaWdodCBIb29kaWU8L2gzPgo8cD5TZWxlY3RpbmcgdGhlIHBlcmZlY3QgPHN0cm9uZz5ob29kaWU8L3N0cm9uZz4gaW52b2x2ZXMgY29uc2lkZXJpbmcgYSBmZXcga2V5IGZhY3RvcnMuIEZvciB3b3JrcGxhY2VzLCBvcHQgZm9yIDxzdHJvbmc+bmV1dHJhbCB0b25lczwvc3Ryb25nPiBzdWNoIGFzIG5hdnksIGdyZXksIG9yIGJsYWNrIGZvciBhIHByb2Zlc3Npb25hbCB5ZXQgcmVsYXhlZCB2aWJlLiBXaGVuIGRpc2N1c3NpbmcgZmFicmljIGFuZCBmaXQsIGVuc3VyZSBjb21mb3J0IGlzIHRvcCBwcmlvcml0eS4gTG9vayBmb3Igc29mdCBtYXRlcmlhbHMgbGlrZSA8c3Ryb25nPmNvdHRvbi1ibGVuZDwvc3Ryb25nPiBmbGVlY2UgdGhhdCBvZmZlciBib3RoIHdhcm10aCBhbmQgYSBwb2xpc2hlZCBhcHBlYXJhbmNlLiBBIHNsaW0gZml0IGNhbiBlbmhhbmNlIGEgcHJvZmVzc2lvbmFsIHNpbGhvdWV0dGUsIG1ha2luZyBpdCBhIHN1aXRhYmxlIGNob2ljZSBmb3IgY2FzdWFsIGJ1c2luZXNzIHNldHRpbmdzLjwvcD4KPGgzPlBhaXJpbmcgQWNjZXNzb3JpZXMgd2l0aCBIb29kaWVzPC9oMz4KPHA+QWNjZXNzb3JpZXMgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IGEgaG9vZGllIG91dGZpdC4gQSBzdGF0ZW1lbnQgbmVja2xhY2Ugb3Igc2xlZWsgd2F0Y2ggY2FuIGFkZCBhbiBlbGVnYW50IHRvdWNoLiBDaG9vc2UgYSBjaGljIDxzdHJvbmc+Y3Jvc3Nib2R5IGJhZzwvc3Ryb25nPiBhbmQgc3R5bGlzaCBzaG9lcywgbGlrZSBsb2FmZXJzIG9yIGxvdy1wcm9maWxlIHNuZWFrZXJzLCBmb3IgYSBjb2hlc2l2ZSBsb29rLiBEb24ndCBmb3JnZXQgdGhlIHBvd2VyIG9mIGxheWVyaW5nIOKAlCBhIHN0cnVjdHVyZWQgYmxhemVyIGNhbiBlbGV2YXRlIHlvdXIgYXBwZWFyYW5jZSBmcm9tIGNhc3VhbCB0byBjaGljIGluc3RhbnRseS48L3A+CjxoMz5DcmVhdGluZyBWaXNpb24gQm9hcmRzIGZvciBPdXRmaXQgSW5zcGlyYXRpb248L2gzPgo8cD5WaXNpb24gYm9hcmRzIGFyZSBpbnZhbHVhYmxlIGZvciBkZWZpbmluZyB5b3VyIDxzdHJvbmc+cGVyc29uYWwgc3R5bGU8L3N0cm9uZz4uIEdhdGhlciBpbnNwaXJhdGlvbiBmcm9tIGZhc2hpb24gaW5mbHVlbmNlcnMgb3IgcGxhdGZvcm1zIGxpa2UgSW5zdGFncmFtIGFuZCBQaW50ZXJlc3QuIENvbGxlY3QgeW91ciBmYXZvdXJpdGUgc3R5bGVzLCB0ZXh0dXJlcywgYW5kIGNvbG91cnMgdG8gY3JlYXRlIGEgY29oZXNpdmUgd2FyZHJvYmUgc3RyYXRlZ3kgdGhhdCBhbGlnbnMgd2l0aCB5b3VyIHVuaXF1ZSB0YXN0ZS48L3A+CjxoMj5WaXN1YWwgRXhhbXBsZXMgYW5kIE91dGZpdCBJZGVhczwvaDI+CjxwPkZvciBhbnlvbmUgc2Vla2luZyA8c3Ryb25nPm91dGZpdCBpbnNwaXJhdGlvbjwvc3Ryb25nPiB1dGlsaXppbmcgaG9vZGllcywgc3VidGxlIGNyZWF0aXZpdHkgY2FuIHRyYW5zZm9ybSB0aGVzZSBjYXN1YWwgcGllY2VzIGludG8gc3R5bGlzaCBlbnNlbWJsZXMuIEV4cGxvcmUgdGhlIHBvdGVudGlhbCBvZiA8c3Ryb25nPnN0eWxlZCBvdXRmaXRzPC9zdHJvbmc+IGJ5IGV4cGVyaW1lbnRpbmcgd2l0aCBkaWZmZXJlbnQgY29tYmluYXRpb25zIGFuZCB0ZXh0dXJlcy4gQSBob29kaWUsIGJlaW5nIGEgdmVyc2F0aWxlIHN0YXBsZSwgcGFpcnMgZXhjZXB0aW9uYWxseSB3ZWxsIHdpdGggdmFyaW91cyBjbG90aGluZyBhcnRpY2xlcywgbWFraW5nIGl0IGEgcGl2b3RhbCBwaWVjZSBpbiBob29kaWUgZmFzaGlvbi48L3A+CjxwPkJlZ2luIGJ5IGludGVncmF0aW5nIGhvb2RpZXMgd2l0aCBtb3JlIGZvcm1hbCBhdHRpcmUsIHN1Y2ggYXMgcGFpcmluZyBhIHNsZWVrLCBuZXV0cmFsIGhvb2RpZSB1bmRlciBhIHRhaWxvcmVkIGJsYXplciBvciBzdHJ1Y3R1cmVkIGNvYXQuIFRoaXMgZnVzaW9uIG9mIGNhc3VhbCBhbmQgZm9ybWFsIHdlYXIgY3JlYXRlcyBhIDxzdHJvbmc+dmlzdWFsIGltcGFjdDwvc3Ryb25nPiwgZWZmb3J0bGVzc2x5IGJhbGFuY2luZyBjb21mb3J0IHdpdGggc3R5bGUuIEZvciBhIG1vcmUgcmVsYXhlZCB5ZXQgc21hcnQgbG9vaywgY29uc2lkZXIgdGVhbWluZyB5b3VyIGhvb2RpZSB3aXRoIHNoYXJwIGNoaW5vcyBvciB0cmVuZHkgam9nZ2Vycy4gVGhlc2UgY29tYmluYXRpb25zIG5vdCBvbmx5IGVsZXZhdGUgdGhlIGxvb2sgb2YgYSBob29kaWUgYnV0IG1ha2UgdGhlbSBzdWl0YWJsZSBmb3IgZGl2ZXJzZSBvY2Nhc2lvbnMuPC9wPgo8cD5JbiB0ZXJtcyBvZiBjb2xvciBzY2hlbWVzIGFuZCBwYXR0ZXJucywgdXNlIHNpbXBsZSBhcHByb2FjaGVzIGZvciBhIGNvaGVzaXZlIHdhcmRyb2JlIGFyb3VuZCBob29kaWVzLiBPcHQgZm9yIG11dGVkIG9yIG1vbm9jaHJvbWUgaG9vZGllcyBhcyB0aGVzZSBjYW4gYmUgdGhlIGdyb3VuZGluZyBwaWVjZSBhcm91bmQgd2hpY2ggb3RoZXIgb3V0Zml0IGVsZW1lbnRzIHJvdGF0ZS4gQWx0ZXJuYXRpdmVseSwgcGxheWZ1bCBwcmludHMgb3IgYm9sZCBodWVzIGNhbiBiZSB0aGUgc3RhdGVtZW50IGluIHlvdXIgYXNzZW1ibHkuPC9wPgo8cD5JbXBsZW1lbnRpbmcgdGhlc2Ugc3RyYXRlZ2llcyBjYW4gZW5zdXJlIHRoYXQgZXZlcnkgaG9vZGllIGVuc2VtYmxlIHJlZmxlY3RzIGFuIGluZGl2aWR1YWzigJlzIHBlcnNvbmFsIGZsYWlyIHdoaWxlIHN0YXlpbmcgZW50cmVuY2hlZCBpbiBtb2Rlcm4gPHN0cm9uZz5ob29kaWUgZmFzaGlvbjwvc3Ryb25nPi48L3A+CjxoMj5FbmhhbmNpbmcgV29ya3NwYWNlIEFlc3RoZXRpY3Mgd2l0aCBGYXNoaW9uPC9oMj4KPHA+SW4gdGhlIGR5bmFtaWMgd29ybGQgb2YgcHJvZHVjdGl2aXR5LCA8c3Ryb25nPndvcmtzcGFjZSBhZXN0aGV0aWNzPC9zdHJvbmc+IG9mdGVuIHRyYW5zbGF0ZSBpbnRvIGFuIGV4dGVuc2lvbiBvZiBwZXJzb25hbCBicmFuZGluZy4gT25lJ3MgPHN0cm9uZz5wZXJzb25hbCBzdHlsZTwvc3Ryb25nPiBpc24ndCBjb25maW5lZCB0byBjbG90aGluZzsgaXQgYWxzbyBpbmZsdWVuY2VzIHRoZSBlbnZpcm9ubWVudCB5b3UgY3JlYXRlIGFyb3VuZCB5b3Vyc2VsZi4gSXQgc3BlYWtzIHZvbHVtZXMgYWJvdXQgcHJvZmVzc2lvbmFsaXNtLCBjcmVhdGl2aXR5LCBhbmQgZXZlbiBhdHRlbnRpb24gdG8gZGV0YWlsLiBDb25zaWRlciBob3cgYSBzbGVlaywgbW9kZXJuIG91dGZpdCBjYW4gcmVmbGVjdCBhIG1pbmltYWxpc3QgYW5kIGVmZmljaWVudCB3b3Jrc3BhY2UsIGZvciBleGFtcGxlLjwvcD4KPHA+SG93IGRvZXMgZmFzaGlvbiB0aWUgaW50byBicmFuZGluZyB3aXRoaW4gYSB3b3Jrc3BhY2U/IEZhc2hpb24gY2hvaWNlcyBhcmVuJ3QganVzdCBhYm91dCBhcHBlYXJhbmNlczsgdGhleSdyZSBzdGF0ZW1lbnRzIHRoYXQgY29udHJpYnV0ZSB0byBvdmVyYWxsIGJyYW5kaW5nLiBJbnRlZ3JhdGluZyA8c3Ryb25nPmZhc2hpb248L3N0cm9uZz4gaW50byB3b3Jrc3BhY2UgZGVzaWduIGNhbiBlbXBoYXNpemUgaGFybW9ueSBhbmQgY29oZXNpb24uIEEgd2VsbC1jdXJhdGVkIG9mZmljZSB0aGF0IG1hdGNoZXMgeW91ciBvdXRmaXQgc3R5bGUgY2FuIG1ha2UgYSBsYXN0aW5nIGltcHJlc3Npb24gb24gY2xpZW50cyBhbmQgY29sbGVhZ3Vlcywgc2lnbmFsbGluZyBjb25zaXN0ZW5jeSBhbmQgY29tbWl0bWVudCB0byB5b3VyIGJyYW5kLjwvcD4KPHA+VG8gY3VyYXRlIGFuIGluc3BpcmluZyB3b3Jrc3BhY2UgdGhyb3VnaCBhdHRpcmUsIGhlcmUgYXJlIHNvbWUgc29sdXRpb25zOiA8L3A+Cjx1bD4KPGxpPkNob29zZSBjb2xvdXJzIHRoYXQgY29tcGxlbWVudCBvciBjb250cmFzdCB0aGUgdG9uZXMgb2YgeW91ciB3b3Jrc3BhY2UuPC9saT4KPGxpPk9wdCBmb3Igb3V0Zml0cyB0aGF0IHJlZmxlY3QgdGhlIGRlc2lyZWQgYXRtb3NwaGVyZTogcmVsYXhlZCBvciBmb3JtYWwuPC9saT4KPGxpPkluY29ycG9yYXRlIHRleHR1cmVzIGluIGNsb3RoaW5nIHRoYXQgZWNobyB0aG9zZSBpbiB5b3VyIG9mZmljZSBzZXR1cC48L2xpPgo8L3VsPgo8cD5VbHRpbWF0ZWx5LCBjb21iaW5pbmcgcHJvZmVzc2lvbmFsIGF0dGlyZSB3aXRoIHN0cmF0ZWdpYyBkZXNpZ24gY2hvaWNlcyBjYW4gY3JhZnQgYSB3b3Jrc3BhY2UgdGhhdCBpcyBub3QganVzdCB2aXN1YWxseSBhcHBlYWxpbmcgYnV0IGFsc28gYWxpZ25lZCB3aXRoIG9uZSdzIHByb2Zlc3Npb25hbCBpbWFnZS48L3A+CjwvYm9keT4KPC9odG1sPg==