PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiIgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6KG51bGwpMT0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PCEtLQogICAgQ29weXJpZ2h0IDIwMDktMjAxMCBJbnRlbCBDb3Jwb3JhdGlvbgogICAgbGljZW5zZSBiYW5uZXIKLS0+Cjx0aXRsZT5Cb29zdCBQb2x5Z29uIExpYnJhcnk6IFJlY3RhbmdsZSBDb25jZXB0PC90aXRsZT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9SVNPLTg4NTktMSI+Cjx0YWJsZSBzdHlsZT0ibWFyZ2luOiAwcHQ7IHBhZGRpbmc6IDBwdDsgd2lkdGg6IDEwMCU7IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRib2R5Pjx0cj4KPHRkIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM4LCAyMzgsIDIzOCk7IiBub3dyYXA9IjEiIHZhbGlnbj0idG9wIj4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDVweDsiIGFsaWduPSJjZW50ZXIiPgogICAgICAgIDxpbWcgYm9yZGVyPSIwIiBzcmM9ImltYWdlcy9ib29zdC5wbmciIHdpZHRoPSIyNzciIGhlaWdodD0iODYiPjxhIHRpdGxlPSJ3d3cuYm9vc3Qub3JnIGhvbWUgcGFnZSIgaHJlZj0iaHR0cDovL3d3dy5ib29zdC5vcmcvIiB0YWJpbmRleD0iMiIgc3R5bGU9ImJvcmRlcjogbWVkaXVtIG5vbmUgOyI+CiAgICAgICAgICAgIDwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBzdHlsZT0ibWFyZ2luOiA1cHg7Ij4KICAgICAgICA8aDMgY2xhc3M9Im5hdmJhciI+Q29udGVudHM8L2gzPgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bSI+Qm9vc3QuUG9seWdvbiBNYWluIFBhZ2U8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9kZXNpZ25fb3ZlcnZpZXcuaHRtIj5EZXNpZ24gT3ZlcnZpZXc8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imd0bF9pc290cm9weS5odG0iPklzb3Ryb3B5PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfY29vcmRpbmF0ZV9jb25jZXB0Lmh0bSI+Q29vcmRpbmF0ZSBDb25jZXB0PC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJndGxfaW50ZXJ2YWxfY29uY2VwdC5odG0iPkludGVydmFsIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2ludF9jb25jZXB0Lmh0bSI+UG9pbnQgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+UmVjdGFuZ2xlIENvbmNlcHQ8L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfY29uY2VwdC5odG0iPlBvbHlnb24gOTAgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfd2l0aF9ob2xlc19jb25jZXB0Lmh0bSI+UG9seWdvbiA5MCBXaXRoIEhvbGVzIENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDQ1IENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uXzQ1X3dpdGhfaG9sZXNfY29uY2VwdC5odG0iPlBvbHlnb24gNDUgV2l0aCBIb2xlcyBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl9jb25jZXB0Lmh0bSI+UG9seWdvbiBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl93aXRoX2hvbGVzX2NvbmNlcHQuaHRtIj5Qb2x5Z29uIFdpdGggSG9sZXMgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3BvbHlnb25fOTBfc2V0X2NvbmNlcHQuaHRtIj5Qb2x5Z29uIDkwIFNldCBDb25jZXB0PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcG9seWdvbl80NV9zZXRfY29uY2VwdC5odG0iPlBvbHlnb24gNDUgU2V0IENvbmNlcHQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wb2x5Z29uX3NldF9jb25jZXB0Lmh0bSI+UG9seWdvbiBTZXQgQ29uY2VwdDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX2Nvbm5lY3Rpdml0eV9leHRyYWN0aW9uXzkwLmh0bSI+Q29ubmVjdGl2aXR5IEV4dHJhY3Rpb24gOTA8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9jb25uZWN0aXZpdHlfZXh0cmFjdGlvbl80NS5odG0iPkNvbm5lY3Rpdml0eSBFeHRyYWN0aW9uIDQ1PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfY29ubmVjdGl2aXR5X2V4dHJhY3Rpb24uaHRtIj5Db25uZWN0aXZpdHkgRXh0cmFjdGlvbjwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iZ3RsX3Byb3BlcnR5X21lcmdlXzkwLmh0bSI+UHJvcGVydHkgTWVyZ2UgOTA8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9Imd0bF9wcm9wZXJ0eV9tZXJnZV80NS5odG0iPlByb3BlcnR5IE1lcmdlIDQ1PC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfcHJvcGVydHlfbWVyZ2UuaHRtIj5Qcm9wZXJ0eSBNZXJnZTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGgzIGNsYXNzPSJuYXZiYXIiPk90aGVyIFJlc291cmNlczwvaDM+CiAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iR1RMX2Jvb3N0Y29uMjAwOS5wZGYiPkdUTCBCb29zdGNvbiAyMDA5IFBhcGVyPC9hPjwvbGk+CiAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iR1RMX2Jvb3N0Y29uX2RyYWZ0MDMucGRmIj5HVEwgQm9vc3Rjb24gMjAwOSAKCQkJCVByZXNlbnRhdGlvbjwvYT48L2xpPgogICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImFuYWx5c2lzLmh0bSI+UGVyZm9ybWFuY2UgQW5hbHlzaXM8L2E+PC9saT4KICAgICAgICAJPGxpPjxhIGhyZWY9Imd0bF90dXRvcmlhbC5odG0iPkxheW91dCBWZXJzdXMgU2NoZW1hdGljIFR1dG9yaWFsPC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJndGxfbWlua293c2tpX3R1dG9yaWFsLmh0bSI+TWlua293c2tpIFN1bSBUdXRvcmlhbDwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICAgICAgICA8aDMgY2xhc3M9Im5hdmJhciI+UG9seWdvbiBTcG9uc29yPC9oMz4KICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDVweDsiIGFsaWduPSJjZW50ZXIiPgogICAgICAgIDxpbWcgYm9yZGVyPSIwIiBzcmM9ImltYWdlcy9pbnRsb2dvLmdpZiIgd2lkdGg9IjEyNyIgaGVpZ2h0PSI1MSI+CiAgICA8L2Rpdj4gICAgCjwvdGQ+Cjx0ZCBzdHlsZT0icGFkZGluZy1sZWZ0OiAxMHB4OyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyBwYWRkaW5nLWJvdHRvbTogMTBweDsiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTAwJSI+Cgo8IS0tIEVuZCBIZWFkZXIgLS0+Cgo8YnI+CjxwPgo8L3A+PGgxPlJlY3RhbmdsZSBDb25jZXB0PC9oMT4KCjxwPiAKPHA+VGhlIHJlY3RhbmdsZSBjb25jZXB0IHRhZyBpcyA8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+CnJlY3RhbmdsZV9jb25jZXB0PC9mb250PjwvcD4KPHA+IApUbyByZWdpc3RlciBhIHVzZXIgZGVmaW5lZCB0eXBlIGFzIGEgbW9kZWwgb2YgIAo8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPnJlY3RhbmdsZSA8L2ZvbnQ+Y29uY2VwdCwgc3BlY2lhbGl6ZSB0aGUgCmdlb21ldHJ5IGNvbmNlcHQgbWV0YS1mdW5jdGlvbiBmb3IgdGhhdCB0eXBlLiZuYnNwOyBJbiB0aGUgZXhhbXBsZSBiZWxvdyBDUmVjdGFuZ2xlIGlzIHJlZ2lzdGVyZWQgYXMgYSBtb2RlbCBvZiAKcmVjdGFuZ2xlJm5ic3A7IGNvbmNlcHQuPHA+IAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0OyZndDs8YnI+CnN0cnVjdCBnZW9tZXRyeV9jb25jZXB0Jmx0O0NSZWN0YW5nbGUmZ3Q7IHsgdHlwZWRlZiByZWN0YW5nbGVfY29uY2VwdCB0eXBlOyB9OzwvZm9udD48cD4gCjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+VGhlIHNlbWFudGljIG9mIGEgcmVjdGFuZ2xlIGlzIHRoYXQgaXQgaGFzIGFuIHggYW5kIAphIHkgaW50ZXJ2YWwgYW5kIHRoZXNlIGludGVydmFscyBjb25mb3JtIHRvIHRoZSBzZW1hbnRpYyBvZiBhbiBpbnRlcnZhbCAKaW5jbHVkaW5nIGl0cyBpbnZhcmlhbnQuJm5ic3A7IFRoaXMgaW52YXJpYW50IG9uIHRoZSBpbnRlcnZhbHMgb2YgYSByZWN0YW5nbGUgaXMgZW5mb3JjZWQgYnkgdGhlIGdlbmVyaWMgbGlicmFyeSBmdW5jdGlvbnMgdGhhdCAKb3BlcmF0ZSBvbiByZWN0YW5nbGVzLCBhbmQgaXMgbm90IGV4cGVjdGVkIG9mIHRoZSBkYXRhIHR5cGUgaXRzZWxmIG9yIHRoZSBjb25jZXB0IAptYXBwaW5nIG9mIHRoYXQgZGF0YSB0eXBlIHRvIHRoZSByZWN0YW5nbGUgY29uY2VwdCB0aHJvdWdoIGl0cyB0cmFpdHMuJm5ic3A7IEluIAp0aGlzIHdheSBhIGJvb3N0Ojp0dXBsZSZsdDtpbnQsIGludCwgaW50LCBpbnQmZ3Q7IG9yIGJvb3N0OjphcnJheSZsdDtpbnQsIDQmZ3Q7IApjb3VsZCBiZSBtYWRlIG1vZGVscyBvZiByZWN0YW5nbGUgYnkgc2ltcGx5IHByb3ZpZGluZyBpbmRpcmVjdCBhY2Nlc3MgdG8gdGhlaXIgCmVsZW1lbnRzIHRocm91Z2ggdHJhaXRzLjwvZm9udD48cD4gCjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+QmVsb3cgaXMgc2hvd24gdGhlIGRlZmF1bHQgcmVjdGFuZ2xlIHRyYWl0cy4mbmJzcDsgClNwZWNpYWxpemF0aW9uIG9mIHRoZXNlIHRyYWl0cyBpcyByZXF1aXJlZCBmb3IgdHlwZXMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSAKZGVmYXVsdCBiZWhhdmlvci4mbmJzcDsgVGhlIGludGVyZXN0ZWQgcmVhZGVyIHdpbGwgbm90ZSBTRklOQUUgaXMgdXNlZCBvbiB0aGUgCnRyYWl0cyB0byBhbGxvdyBvbmx5IGFuIG9iamVjdCB0aGF0IHByb3ZpZGVzIGEgbWVtYmVyIHR5cGUgZGVmaW5pdGlvbiBvZiAKaW50ZXJ2YWxfdHlwZSB0byB3b3JrIHdpdGggdGhlIGRlZmF1bHQgcmVhZCBvbmx5IHRyYWl0cy4mbmJzcDsgVGhpcyBiZWNvbWVzIApuZWNlc3Nhcnkgd2hlbiByZWZpbmVtZW50cyBvZiBjb25jZXB0cyBhcmUgdXNlZCBhbmQgaXQgaXMgdW5kZXNpcmFibGUgdG8gYXR0ZW1wdCAKdG8gbWF0Y2ggZGVmYXVsdCB0cmFpdHMgdG8gbm9uLXJlY3RhbmdsZSB0eXBlcyBhdCBjb21waWxlIHRpbWUuJm5ic3A7IApTcGVjaWFsaXppbmcgcmVjdGFuZ2xlX3RyYWl0cyBjYW4gYmUgZG9uZSBlYXNpbHkgYnkgc2ltcGx5IHByb3ZpZGluZyBndGxfeWVzIGFzIAp0aGUgZW5hYmxlIHBhcmFtZXRlci48L2ZvbnQ+PHA+IAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIGVuYWJsZSA9IGd0bF95ZXMmZ3Q7PGJyPgpzdHJ1Y3QgcmVjdGFuZ2xlX3RyYWl0cyB7fTs8L2ZvbnQ+PHA+IAo8Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgpzdHJ1Y3QgcmVjdGFuZ2xlX3RyYWl0cyZsdDtULCBndGxfbm8mZ3Q7IHt9Ozxicj4KPGJyPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CnN0cnVjdCByZWN0YW5nbGVfdHJhaXRzJmx0O1QsIHR5cGVuYW1lIGd0bF9zYW1lX3R5cGUmbHQ7dHlwZW5hbWUgVDo6aW50ZXJ2YWxfdHlwZSwgCnR5cGVuYW1lIFQ6OmludGVydmFsX3R5cGUmZ3Q7Ojp0eXBlJmd0OyB7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdHlwZWRlZiB0eXBlbmFtZSBUOjpjb29yZGluYXRlX3R5cGUgY29vcmRpbmF0ZV90eXBlOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHR5cGVkZWYgdHlwZW5hbWUgVDo6aW50ZXJ2YWxfdHlwZSBpbnRlcnZhbF90eXBlOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0YXRpYyBpbmxpbmUgaW50ZXJ2YWxfdHlwZSBnZXQoY29uc3QgVCZhbXA7IHJlY3RhbmdsZSwgCm9yaWVudGF0aW9uXzJkIG9yaWVudCkgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAKcmVjdGFuZ2xlLmdldChvcmllbnQpOyB9PGJyPgp9Ozxicj4KPGJyPgp0ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CnN0cnVjdCByZWN0YW5nbGVfbXV0YWJsZV90cmFpdHMgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMiZndDs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KFQmYW1wOyByZWN0YW5nbGUsIG9yaWVudGF0aW9uXzJkIApvcmllbnQsIGNvbnN0IFQyJmFtcDsgaW50ZXJ2YWwpIHs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZWN0YW5nbGUuc2V0KG9yaWVudCwgCmludGVydmFsKTsgfTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMmZ3Q7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RhdGljIGlubGluZSBUIGNvbnN0cnVjdChjb25zdCBUMiZhbXA7IGludGVydmFsX2hvcml6b250YWwsIApjb25zdCBUMyZhbXA7IGludGVydmFsX3ZlcnRpY2FsKSB7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIApUKGludGVydmFsX2hvcml6b250YWwsIGludGVydmFsX3ZlcnRpY2FsKTsgfTxicj4KfTs8L2ZvbnQ+PGgyPkZ1bmN0aW9uczwvaDI+Cjx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIiBpZD0idGFibGUxIj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlpbnRlcnZhbF90eXBlIDxiPmdldDwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSwgb3JpZW50YXRpb25fMmQpPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+RXhwZWN0cyBhIG1vZGVsIG9mIHJlY3RhbmdsZS4mbmJzcDsgCgkJUmV0dXJucyB0aGUgeCBpbnRlcnZhbCBvciB5IGludGVydmFsIG9mIHRoZSByZWN0YW5nbGUsIGRlcGVuZGluZyBvbiB0aGUgCgkJb3JpZW50YXRpb25fMmQgdmFsdWUuPC9mb250Pjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij48YnI+CiZuYnNwOzwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCB0eXBlbmFtZSAKCQljb29yZGluYXRlX3R5cGUmZ3Q7PGJyPgoJCXZvaWQgPGI+c2V0PC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBvcmllbnRhdGlvbl8yZCwgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiByZWN0YW5nbGUuJm5ic3A7Jm5ic3A7IAoJCVNldHMgdGhlIHggaW50ZXJ2YWwgb3IgeSBpbnRlcnZhbCBvZiB0aGUgcmVjdGFuZ2xlIHRvIHRoZSAKCQljb29yZGluYXRlLCBkZXBlbmRpbmcgb24gdGhlIG9yaWVudGF0aW9uXzJkIHZhbHVlLjwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlpbnRlcnZhbF90eXBlIDxiPmdldDwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSwgb3JpZW50YXRpb25fMmQsIAoJCTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZGlyZWN0aW9uXzFkKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiByZWN0YW5nbGUuJm5ic3A7IAoJCVJldHVybnMgdGhlIGNvb3JkaW5hdGUgc3BlY2lmaWNlZCBieSB0aGUgZGlyZWN0aW9uXzFkIHZhbHVlIG9mIHRoZSB4IGludGVydmFsIG9yIHkgaW50ZXJ2YWwgb2YgdGhlIHJlY3RhbmdsZSwgZGVwZW5kaW5nIG9uIHRoZSAKCQlvcmllbnRhdGlvbl8yZCB2YWx1ZS48L2ZvbnQ+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPjxicj4KJm5ic3A7PC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCWNvb3JkaW5hdGVfdHlwZSZndDs8YnI+CgkJdm9pZCA8Yj5zZXQ8L2I+KFQmYW1wOyByZWN0YW5nbGUsIG9yaWVudGF0aW9uXzJkLCBkaXJlY3Rpb25fMWQsIDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkV4cGVjdHMgYSBtb2RlbCBvZiByZWN0YW5nbGUuJm5ic3A7Jm5ic3A7IAoJCVNldHMgdGhlIGNvb3JkaW5hdGUgc3BlY2lmaWVkIGJ5IHRoZSBkaXJlY3Rpb25fMWQgdmFsdWUgb2YgdGhlIHggaW50ZXJ2YWwgb3IgeSBpbnRlcnZhbCBvZiB0aGUgcmVjdGFuZ2xlIHRvIHRoZSAKCQljb29yZGluYXRlLCBkZXBlbmRpbmcgb24gdGhlIG9yaWVudGF0aW9uXzJkIHZhbHVlLjwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJVCA8Yj5jb25zdHJ1Y3Q8L2I+KGNvbnN0IFQyJmFtcDsgaCwgY29uc3QgVDImYW1wOyB2KTwvZm9udD48L3RkPgoJCTx0ZD5Db25zdHJ1Y3QgYW4gb2JqZWN0IHRoYXQgaXMgYSBtb2RlbCBvZiByZWN0YW5nbGUgZ2l2ZW4geCBpbnRlcnZhbCAKCQlhbmQgeSBpbnRlcnZhbHMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQgPGI+Y29uc3RydWN0PC9iPihjb29yZGluYXRlX3R5cGUgeGwsIGNvb3JkaW5hdGVfdHlwZSB5bCwgPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb29yZGluYXRlX3R5cGUgCgkJeGgsIGNvb3JkaW5hdGVfdHlwZSB5aCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+Q29uc3RydWN0IGFuIG9iamVjdCB0aGF0IGlzIGEgbW9kZWwgb2YgcmVjdGFuZ2xlIGdpdmVuIGZvdXIgY29vcmRpbmF0ZSB2YWx1ZXMuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPmFzc2lnbjwvYj4oVDEmYW1wOyBsZWZ0LCBjb25zdCBUMiZhbXA7IHJpZ2h0KTwvZm9udD48L3RkPgoJCTx0ZD5Db3BpZXMgZGF0YSBmcm9tIHJpZ2h0IG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUgaW50byBsZWZ0IG9iamVjdCAKCQl0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+ZXF1aXZhbGVuY2U8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUxLCA8L2ZvbnQ+CgkJPGJyPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29uc3QgVDImYW1wOyByZWN0YW5nbGUyKTwvZm9udD48L3RkPgoJCTx0ZD5HaXZlbiB0d28gb2JqZWN0cyB0aGF0IG1vZGVsIHJlY3RhbmdsZSwgY29tcGFyZXMgYW5kIHJldHVybnMgdHJ1ZSBpZiAKCQl0aGVpciB4IGFuZCB5IGludGVydmFscyBhcmUgcmVzcGVjdGl2ZWx5IGVxdWl2YWxlbnQuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCwgCgkJdHlwZW5hbWUgcG9pbnRfdHlwZSZndDs8YnI+CgkJYm9vbCA8Yj5jb250YWluczwvYj4oY29uc3QgVCZhbXA7LCBjb25zdCBwb2ludF90eXBlJmFtcDsgcG9pbnQsIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoJCWJvb2wgY29uc2lkZXJfdG91Y2g9dHJ1ZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+R2l2ZW4gYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZSBhbmQgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIAoJCXBvaW50LCByZXR1cm5zIHRydWUgCgkJaWYgdGhlIHJlY3RhbmdsZSBjb250YWlucyB0aGUgcG9pbnQuJm5ic3A7IElmIHRoZSBjb25zaWRlcl90b3VjaCAKCQlmbGFnIGlzIHRydWUgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGUgcG9pbnQgbGllcyBhbG9uZyB0aGUgYm91bmRhcnkgb2YgCgkJdGhlIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+Y29udGFpbnM8L2I+KGNvbnN0IFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiLCA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlib29sIGNvbnNpZGVyX3RvdWNoID0gdHJ1ZSkgPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdHJ1ZSBpZiBtb2RlbCBvZiByZWN0YW5nbGUgYSBjb250YWlucyBib3RoIGludGVydmFscyBvZiAKCQltb2RlbCBvZiByZWN0YW5nbGUgYi4mbmJzcDsgSWYgdGhlIGNvbnNpZGVyX3RvdWNoIGZsYWcgaXMgdHJ1ZSB3aWxsIAoJCWNvbnNpZGVyIHJlY3RhbmdsZSBiIGNvbnRhaW5lZCBldmVuIGlmIGl0IHRvdWNoZXMgdGhlIGJvdW5kYXJ5IG9mIGEuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJaW50ZXJ2YWxfdHlwZSA8Yj5ob3Jpem9udGFsPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSB4IGludGVydmFsIG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJaW50ZXJ2YWxfdHlwZSA8Yj52ZXJ0aWNhbDwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgeSBpbnRlcnZhbCBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfdHlwZSA8Yj54bDwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgd2VzdCBjb29yZGluYXRlIG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJY29vcmRpbmF0ZV90eXBlIDxiPnhoPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBlYXN0IGNvb3JkaW5hdGUgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQljb29yZGluYXRlX3R5cGUgPGI+eWw8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHNvdXRoIGNvb3JkaW5hdGUgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQljb29yZGluYXRlX3R5cGUgPGI+eWg8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIG5vcnRoIGNvb3JkaW5hdGUgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlwb2ludF90eXBlIDxiPmxsPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBsb3dlciBsZWZ0IGNvcm5lciBwb2ludCBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCXBvaW50X3R5cGUgPGI+bHI8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIGxvd2VyIHJpZ2h0IGNvcm5lciBwb2ludCBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCXBvaW50X3R5cGUgPGI+dWw8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHVwcGVyIGxlZnQgY29ybmVyIHBvaW50IG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJcG9pbnRfdHlwZSA8Yj51cjwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgdXBwZXIgcmlnaHQgY29ybmVyIHBvaW50IG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4vLyBnZXQgdGhlIGNlbnRlciBjb29yZGluYXRlPGJyPgoJCXRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCB0eXBlbmFtZSBwb2ludF90eXBlJmd0Ozxicj4KCQl2b2lkIDxiPmNlbnRlcjwvYj4ocG9pbnRfdHlwZSZhbXA7IHAsIGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlNldHMgb2JqZWN0IHRoYXQgbW9kZWxzIHBvaW50IHRvIHRoZSBjZW50ZXIgcG9pbnQgb2YgYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCAKCQl0eXBlbmFtZSBpbnRlcnZhbF90eXBlJmd0Ozxicj4KCQl2b2lkIDxiPmhvcml6b250YWw8L2I+KFQmYW1wOyByZWN0YW5nbGUsIGNvbnN0IGludGVydmFsX3R5cGUmYW1wOyBpKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSB4IGludGVydmFsIG9mIHRoZSBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlIHRvIGJlIGVxdWFsIAoJCXRvIHRoZSB2YWx1ZSBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgaW50ZXJ2YWwuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCwgCgkJdHlwZW5hbWUgaW50ZXJ2YWxfdHlwZSZndDs8YnI+CgkJdm9pZCA8Yj52ZXJ0aWNhbDwvYj4oVCZhbXA7IHJlY3RhbmdsZSwgY29uc3QgaW50ZXJ2YWxfdHlwZSZhbXA7IGkgKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSB5IGludGVydmFsIG9mIHRoZSBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlIHRvIGJlIGVxdWFsIAoJCXRvIHRoZSB2YWx1ZSBvZiBhbiBvYmplY3QgdGhhdCBtb2RlbHMgaW50ZXJ2YWwuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJcmVjdGFuZ2xlX3R5cGUmZ3Q7PGJyPgoJCXZvaWQgPGI+eGw8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgcmVjdGFuZ2xlLCBjb29yZGluYXRlX3R5cGUgKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSB3ZXN0IGNvb3JkaW5hdGUgb2YgdGhlIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUgdG8gYmUgZXF1YWwgCgkJdG8gdGhlIGNvb3JkaW5hdGUgdmFsdWUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJcmVjdGFuZ2xlX3R5cGUmZ3Q7PGJyPgoJCXZvaWQgPGI+eGg8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgcmVjdGFuZ2xlLCBjb29yZGluYXRlX3R5cGUgKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSBlYXN0IGNvb3JkaW5hdGUgb2YgdGhlIG9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUgdG8gYmUgZXF1YWwgCgkJdG8gdGhlIGNvb3JkaW5hdGUgdmFsdWUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJcmVjdGFuZ2xlX3R5cGUmZ3Q7PGJyPgoJCXZvaWQgPGI+eWw8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgcmVjdGFuZ2xlLCBjb29yZGluYXRlX3R5cGUgKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSBzb3V0aCBjb29yZGluYXRlIG9mIHRoZSBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlIHRvIGJlIGVxdWFsIAoJCXRvIHRoZSBjb29yZGluYXRlIHZhbHVlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIAoJCXJlY3RhbmdsZV90eXBlJmd0Ozxicj4KCQl2b2lkIDxiPnloPC9iPihyZWN0YW5nbGVfdHlwZSZhbXA7IHJlY3RhbmdsZSwgY29vcmRpbmF0ZV90eXBlICk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2V0cyB0aGUgbm9ydGggY29vcmRpbmF0ZSBvZiB0aGUgb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZSB0byBiZSBlcXVhbCAKCQl0byB0aGUgY29vcmRpbmF0ZSB2YWx1ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCAKCQl0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDImZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5zZXRfcG9pbnRzPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBjb25zdCBUMSZhbXA7IHAxLCBjb25zdCBUMiZhbXA7IHAyKTwvZm9udD48L3RkPgoJCTx0ZD5TZXRzIHRoZSByZWN0YW5nbGUgdG8gdGhlIHJlY3RhbmdsZSBmdWxseSBkZXNjcmliZWQgYnkgdGhlIHBvaW50cyBwMSAKCQlhbmQgcDIuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJY29vcmRpbmF0ZV9kaWZmZXJlbmNlIDxiPmRlbHRhPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlLCAKCQk8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG9yaWVudGF0aW9uXzJkKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBkZWx0YSBvZiB0aGUgaW50ZXJ2YWwgc3BlY2lmaWVkIGJ5IG9yaWVudGF0aW9uXzJkIG9mIGFuIG9iamVjdCAKCQl0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJbWFuaGF0dGFuX2FyZWFfdHlwZSA8Yj5hcmVhPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBhcmVhIG9mIGFuIG9iamVjdCAKCQl0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJY29vcmRpbmF0ZV9kaWZmZXJlbmNlIDxiPmhhbGZfcGVyaW1ldGVyPC9iPihjb25zdCBUJmFtcDsgcmVjdGFuZ2xlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBsZW5ndGggcGx1cyB3aWR0aCBvZiBhbiBvYmplY3QgCgkJdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlmZmVyZW5jZSA8Yj5wZXJpbWV0ZXI8L2I+KGNvbnN0IFQmYW1wOyByZWN0YW5nbGUpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHBlcmltZXRlciBsZW5ndGggb2YgYW4gb2JqZWN0IAoJCXRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlvcmllbnRhdGlvbl8yZCA8Yj5xdWVzc19vcmllbnRhdGlvbjwvYj4oY29uc3QgVCZhbXA7IHJlY3RhbmdsZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgb3JpZW50YXRpb24gaW4gd2hpY2ggdGhlIHJlY3RhbmdsZSBoYXMgYSBsb25nZXIgZGVsdGEuJm5ic3A7IAoJCVJldHVybnMgSE9SSVpPTlRBTCBpZiB0aGUgcmVjdGFuZ2xlIGlzIGEgc3F1YXJlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIAoJCXJlY3RhbmdsZV90eXBlJmd0Ozxicj4KCQlyZWN0YW5nbGVfdHlwZSZhbXA7IDxiPnRyYW5zZm9ybTwvYj4ocmVjdGFuZ2xlX3R5cGUmYW1wOyByZWN0YW5nbGUsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29vcmRpbmF0ZV90eXBlIGF4aXMgPSAwKTwvZm9udD48L3RkPgoJCTx0ZD5BcHBsaWVzIHRyYW5zZm9ybSgpIG9uIHRoZSB0d28gcG9pbnRzIHRoYXQgZnVsbHkgZGVzY3JpYmUgdGhlIAoJCXJlY3RhbmdsZSBhbmQgc2V0cyB0aGUgcmVjdGFuZ2xlIHRvIHRoYXQgZGVzY3JpYmVkIGJ5IHRoZSByZXN1bHQgb2YgCgkJdHJhbnNmb3JtaW5nIHRob3NlIHBvaW50cy48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSAKCQlyZWN0YW5nbGVfdHlwZSZndDs8YnI+CgkJcmVjdGFuZ2xlX3R5cGUmYW1wOyA8Yj5zY2FsZV91cDwvYj4ocmVjdGFuZ2xlX3R5cGUmYW1wOyByZWN0YW5nbGUsIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHVuc2lnbmVkX2FyZWFfdHlwZSBmYWN0b3IpPC9mb250PjwvdGQ+CgkJPHRkPlNjYWxlcyB1cCB4IGludGVydmFsIGFuZCB5IGludGVydmFsJm5ic3A7IG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyAKCQlyZWN0YW5nbGUgYnkgdW5zaWduZWQgZmFjdG9yLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIAoJCXJlY3RhbmdsZV90eXBlJmd0Ozxicj4KCQlyZWN0YW5nbGVfdHlwZSZhbXA7IDxiPnNjYWxlX2Rvd248L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgcmVjdGFuZ2xlLCA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZF9hcmVhX3R5cGUgZmFjdG9yKTwvZm9udD48L3RkPgoJCTx0ZD5TY2FsZXMgZG93biB4IGludGVydmFsIGFuZCB5IGludGVydmFsJm5ic3A7IG9mIGFuIG9iamVjdCB0aGF0IG1vZGVscyAKCQlyZWN0YW5nbGUgYnkgdW5zaWduZWQgZmFjdG9yLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIAoJCXJlY3RhbmdsZV90eXBlLCBzY2FsaW5nX3R5cGUmZ3Q7PGJyPgoJCXJlY3RhbmdsZV90eXBlJmFtcDsgPGI+c2NhbGU8L2I+KHJlY3RhbmdsZV90eXBlJmFtcDsgcmVjdGFuZ2xlLDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoJCWNvbnN0IHNjYWxpbmdfdHlwZSZhbXA7IHNjYWxpbmcpIDwvZm9udD48L3RkPgoJCTx0ZD5BcHBsaWVzIHNjYWxlKCkgb24gdGhlIHR3byBwb2ludHMgdGhhdCBmdWxseSBkZXNjcmliZSB0aGUgcmVjdGFuZ2xlIAoJCWFuZCBzZXRzIHRoZSByZWN0YW5nbGUgdG8gdGhhdCBkZXNjcmliZWQgYnkgdGhlIHJlc3VsdCBvZiB0cmFuc2Zvcm1pbmcgCgkJdGhvc2UgcG9pbnRzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5tb3ZlPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBvcmllbnRhdGlvbl8yZCw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb29yZGluYXRlX2RpZmZlcmVuY2UgZGlzcGxhY2VtZW50KTwvZm9udD48L3RkPgoJCTx0ZD5BZGRzIGRpc3BsYWNlbWVudCB2YWx1ZSB0byBpbnRlcnZhbCBpbmRpY2F0ZWQgYnkgb3JpZW50YXRpb25fMmQgb2YgYW4gCgkJb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSAKCQlyZWN0YW5nbGVfdHlwZSwgdHlwZW5hbWUgcG9pbnRfdHlwZSZndDs8YnI+CgkJcmVjdGFuZ2xlX3R5cGUmYW1wOyA8Yj5jb252b2x2ZTwvYj4ocmVjdGFuZ2xlX3R5cGUmYW1wOyByZWN0YW5nbGUsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgCgkJY29uc3QgcG9pbnRfdHlwZSZhbXA7IHBvaW50KTwvZm9udD48L3RkPgoJCTx0ZD5Db252b2x2ZXMgY29vcmRpbmF0ZSB2YWx1ZXMgb2YgcG9pbnQgd2l0aCB4IGludGVydmFsIGFuZCB5IGludGVydmFsJm5ic3A7IG9mIGFuIAoJCW9iamVjdCB0aGF0IG1vZGVscyByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgCgkJcmVjdGFuZ2xlX3R5cGUsIHR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCXJlY3RhbmdsZV90eXBlJmFtcDsgPGI+ZGVjb252b2x2ZTwvYj4ocmVjdGFuZ2xlX3R5cGUmYW1wOyByZWN0YW5nbGUsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgCgkJY29uc3QgcG9pbnRfdHlwZSZhbXA7IHBvaW50KTwvZm9udD48L3RkPgoJCTx0ZD5EZWNvbnZvbHZlcyBjb29yZGluYXRlIHZhbHVlcyBvZiBwb2ludCB3aXRoeCBpbnRlcnZhbCBhbmQgeSBpbnRlcnZhbCZuYnNwOyBvZiAKCQlhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJVDEmYW1wOyA8Yj5jb252b2x2ZTwvYj4oVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIpPC9mb250PjwvdGQ+CgkJPHRkPkNvbnZvbHZlcyB4IGludGVydmFsJm5ic3A7IG9mIGIgd2l0aCB4IGludGVydmFsJm5ic3A7IG9mIGEgYW5kIAoJCWNvbnZvbHZlcyB5IAoJCWludGVydmFsJm5ic3A7IG9mIGIgd2l0aCB5IGludGVydmFsJm5ic3A7IG9mIGEuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPmRlY29udm9sdmU8L2I+KFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiKTwvZm9udD48L3RkPgoJCTx0ZD5EZWNvbnZvbHZlcyB4IGludGVydmFsJm5ic3A7IG9mIGIgd2l0aCB4IGludGVydmFsJm5ic3A7IG9mIGEgYW5kIAoJCWRlY29udm9sdmVzIHkgaW50ZXJ2YWwmbmJzcDsgb2YgYiB3aXRoIHkgaW50ZXJ2YWwmbmJzcDsgb2YgYS4gPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlUMSZhbXA7IDxiPnJlZmxlY3RlZF9jb252b2x2ZTwvYj4oVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIpPC9mb250PjwvdGQ+CgkJPHRkPlJlZmxlY3RlZCBjb252b2x2ZXMgeSBpbnRlcnZhbCZuYnNwOyBvZiBiIHdpdGggeCBpbnRlcnZhbCZuYnNwOyBvZiBhIGFuZCAKCQlyZWZsZWN0ZWQgY29udm9sdmVzIHggCgkJaW50ZXJ2YWwmbmJzcDsgb2YgYiB3aXRoIHkgaW50ZXJ2YWwmbmJzcDsgb2YgYS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQxJmFtcDsgPGI+cmVmbGVjdGVkX2RlY29udm9sdmU8L2I+KFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiKTwvZm9udD48L3RkPgoJCTx0ZD5SZWZsZWN0ZWQgZGVjb252b2x2ZXMgeSBpbnRlcnZhbCZuYnNwOyBvZiBiIHdpdGggeCBpbnRlcnZhbCZuYnNwOyBvZiBhIGFuZCAKCQlyZWZsZWN0ZWQgZGVjb252b2x2ZXMgeCBpbnRlcnZhbCZuYnNwOyBvZiBiIHdpdGggeSBpbnRlcnZhbCZuYnNwOyBvZiBhLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlmZmVyZW5jZSA8Yj5ldWNsaWRlYW5fZGlzdGFuY2U8L2I+KGNvbnN0IFQmYW1wOyw8YnI+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbnN0IHBvaW50X3R5cGUmYW1wOyBwb2ludCwgCgkJb3JpZW5hdGlvbl8yZCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgZGlzdGFuY2UgZnJvbSBhbiBvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlIHRvIGFuIAoJCW9iamVjdCB0aGF0IG1vZGVscyBwb2ludCBhbG9uZyB0aGUgZ2l2ZW4gb3JpZW50YXRpb24uJm5ic3A7IFJldHVybnMgemVybyAKCQlpZiB0aGUgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcmVjdGFuZ2xlIGFsb25nIHRoYXQgb3JpZW50YXRpb24uPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIAoJCXR5cGVuYW1lIFQyJmd0Ozxicj4KCQljb29yZGluYXRlX2RpZmZlcmVuY2UgPGI+ZXVjbGlkZWFuX2Rpc3RhbmNlPC9iPihjb25zdCBUMSZhbXA7IGEsPGJyPgoJCSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb25zdCBUMiZhbXA7IGIsIG9yaWVuYXRpb25fMmQpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIGRpc3RhbmNlIGZyb20gYW4gb2JqZWN0IHRoYXQgbW9kZWxzIHJlY3RhbmdsZSB0byBhbiAKCQlvYmplY3QgdGhhdCBtb2RlbHMgcmVjdGFuZ2xlIGFsb25nIHRoZSBnaXZlbiBvcmllbnRhdGlvbi4mbmJzcDsgUmV0dXJucyAKCQl6ZXJvIGlmIHRoZSBpbnRlcnZhbHMgb2YgdGhlIHJlY3RhbmdsZXMgb3ZlcmxhcCBhbG9uZyB0aGF0IG9yaWVudGF0aW9uLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlmZmVyZW5jZSA8Yj5zcXVhcmVfZXVjbGlkZWFuX2Rpc3RhbmNlPC9iPihjb25zdCBUJmFtcDssPGJyPgoJCSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb25zdCBwb2ludF90eXBlJmFtcDsgcG9pbnQpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHNxdWFyZSBvZiB0aGUgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gYSBwb2ludCBhbmQgYSAKCQlyZWN0YW5nbGUuJm5ic3A7IFJldHVybnMgemVybyBpZiB0aGUgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgCgkJcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCAKCQl0eXBlbmFtZSBUMiZndDs8YnI+CgkJY29vcmRpbmF0ZV9kaWZmZXJlbmNlIDxiPnNxdWFyZV9ldWNsaWRlYW5fZGlzdGFuY2U8L2I+PGJyPgoJCSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoY29uc3QgVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIHNxdWFyZSBvZiB0aGUgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gcmVjdGFuZ2xlcyBhIAoJCWFuZCBiLiZuYnNwOyBSZXR1cm5zIHplcm8gaWYgdGhlIHJlY3RhbmdsZXMgaW50ZXJzZWN0LjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlmZmVyZW5jZSA8Yj5tYW5oYXR0YW5fZGlzdGFuY2U8L2I+KGNvbnN0IFQmYW1wOyw8YnI+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbnN0IHBvaW50X3R5cGUmYW1wOyBwb2ludCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgTWFuaGF0dGFuIGRpc3RhbmNlIGJldHdlZW4gYSBwb2ludCBhbmQgYSByZWN0YW5nbGUuJm5ic3A7IAoJCVJldHVybnMgemVybyBpZiB0aGUgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcmVjdGFuZ2xlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCAKCQl0eXBlbmFtZSBUMiZndDs8YnI+CgkJY29vcmRpbmF0ZV9kaWZmZXJlbmNlIDxiPm1hbmhhdHRhbl9kaXN0YW5jZTwvYj4oY29uc3QgVDEmYW1wOyBhLCA8YnI+CgkJJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoJCWNvbnN0IFQyJmFtcDsgYik8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0aGUgTWFuaGF0dGFuIGRpc3RhbmNlIGJldHdlZW4gcmVjdGFuZ2xlcyBhIGFuZCBiLiZuYnNwOyAKCQlSZXR1cm5zIHplcm8gaWYgdGhlIHJlY3RhbmdsZXMgaW50ZXJzZWN0LjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIAoJCXR5cGVuYW1lIHBvaW50X3R5cGUmZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlzdGFuY2UgPGI+ZXVjbGlkZWFuX2Rpc3RhbmNlPC9iPihjb25zdCBUJmFtcDssPGJyPgoJCSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb25zdCBwb2ludF90eXBlJmFtcDsgcG9pbnQpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdGhlIEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIGEgcG9pbnQgYW5kIGEgcmVjdGFuZ2xlLiZuYnNwOyAKCQlSZXR1cm5zIHplcm8gaWYgdGhlIHBvaW50IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgCgkJdHlwZW5hbWUgVDImZ3Q7PGJyPgoJCWNvb3JkaW5hdGVfZGlzdGFuY2UgPGI+ZXVjbGlkZWFuX2Rpc3RhbmNlPC9iPihjb25zdCBUMSZhbXA7IGEsIDxicj4KCQkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgCgkJY29uc3QgVDImYW1wOyBiKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRoZSBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiByZWN0YW5nbGVzIGEgYW5kIGIuJm5ic3A7IAoJCVJldHVybnMgemVybyBpZiB0aGUgcmVjdGFuZ2xlcyBpbnRlcnNlY3QuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDEsIHR5cGVuYW1lIAoJCVQyJmd0Ozxicj4KCQlib29sIDxiPmludGVyc2VjdHM8L2I+KGNvbnN0IFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiLCA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlib29sIGNvbnNpZGVyX3RvdWNoID0gdHJ1ZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+UmV0dXJucyB0cnVlIGlmIHR3byBvYmplY3RzIHRoYXQgbW9kZWwgcmVjdGFuZ2xlIG92ZXJsYXAuJm5ic3A7IElmIAoJCXRoZSBjb25zaWRlcl90b3VjaCBmbGFnIGlzIHRydWUgdG91Y2hpbmcgYXQgdGhlIHNpZGVzIG9yIGNvcm5lcnMgaXMgCgkJY29uc2lkZXJlZCBvdmVybGFwLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJYm9vbCA8Yj5ib3VuZGFyaWVzX2ludGVyc2VjdDwvYj4oY29uc3QgVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIsIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IAoJCWJvb2wgY29uc2lkZXJfdG91Y2ggPSB0cnVlKTwvZm9udD48L3RkPgoJCTx0ZD5SZXR1cm5zIHRydWUgaXMgdHdvIG9iamVjdHMgdGhhdCBtb2RlbCByZWN0YW5nbGUgcGFydGlhbGx5IG92ZXJsYXAgCgkJc3VjaCB0aGF0IG9uZSB0aGVyZSBpcyBhbiBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgZWRnZXMgb2YgdGhlIHR3byAKCQlyZWN0YW5nbGVzJm5ic3A7IElmIHRoZSBjb25zaWRlcl90b3VjaCBmbGFnIGlzIHRydWUgYSBjb29yZGluYXRlIGlzIAoJCWNvbnNpZGVyZWQgY29udGFpbmVkIGV2ZW4gaWYgdGhlIHR3byByZWN0YW5nbGVzIHRvdWNoIG9ubHkgYWxvbmcgYSBzaWRlIAoJCW9yIGNvcm5lci48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+YWJ1dHM8L2I+KGNvbnN0IFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiLDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRpcmVjdGlvbl8yZCBkaXIpCgkJPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdHJ1ZSBpZiByZWN0YW5nbGUgYiBhYnV0cyBidXQgZG93biBub3Qgb3ZlcmxhcCByZWN0YW5nbGUgYSAKCQlvbiB0aGUgc2lkZSBvZiByZWN0YW5nbGUgYSBzcGVjaWZpZWQgYnkgZGlyLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJYm9vbCA8Yj5hYnV0czwvYj4oY29uc3QgVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIsPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgb3JpZW50YXRpb25fMmQpCgkJPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdHJ1ZSBpZiByZWN0YW5nbGUgYiBhYnV0cyBidXQgZG93biBub3Qgb3ZlcmxhcCByZWN0YW5nbGUgYSAKCQlvbiBlaXRoZXIgc2lkZSBvZiByZWN0YW5nbGUgYSBzcGVjaWZpZWQgYnkgdGhlIG9yaWVudGF0aW9uXzJkLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8YnI+CgkJYm9vbCA8Yj5hYnV0czwvYj4oY29uc3QgVDEmYW1wOyBhLCBjb25zdCBUMiZhbXA7IGIpPC9mb250PjwvdGQ+CgkJPHRkPlJldHVybnMgdHJ1ZSBpZiByZWN0YW5nbGUgYiBhYnV0cyBidXQgZG93biBub3Qgb3ZlcmxhcCByZWN0YW5nbGUgYSAKCQlvbiBhbnkgc2lkZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+aW50ZXJzZWN0PC9iPihUMSZhbXA7IGEsIGNvbnN0IFQyJmFtcDsgYiwgb3JpZW50YXRpb25fMmQ8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlib29sIGNvbnNpZGVyX3RvdWNoID0gdHJ1ZSkgPC9mb250PjwvdGQ+CgkJPHRkPlNldHMgcmVjdGFuZ2xlIGEgdG8gdGhlIGludGVyc2VjdGlvbiBvZiByZWN0YW5nbGUgYSBhbmQgaW50ZXJ2YWwgYiAKCQlhbG9uZyB0aGUgb3JpZW50YXRpb25fMmQgCgkJYW5kIHJldHVybnMgdHJ1ZS4mbmJzcDsgSWYgdGhlIGRvZXMgbm90IGludGVyc2VjdCB0aGUgaW50ZXJ2YWwsIHRoZSAKCQlyZWN0YW5nbGUgaXMgdW5jaGFuZ2VkIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZS4mbmJzcDsgSWYgdGhlIGZsYWcgY29uc2lkZXJfdG91Y2ggaXMgdHJ1ZSAKCQlpbnRlcnZhbHMgdGhhdCBhYnV0IGFyZSBjb25zaWRlcmVkIHRvIGludGVyc2VjdC48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+aW50ZXJzZWN0PC9iPihUMSZhbXA7IGEsIGNvbnN0IFQyJmFtcDsgYiw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlib29sIGNvbnNpZGVyX3RvdWNoID0gdHJ1ZSkgPC9mb250PjwvdGQ+CgkJPHRkPlNldHMgcmVjdGFuZ2xlIGEgdG8gdGhlIGludGVyc2VjdGlvbiBvZiByZWN0YW5nbGUgYSBhbmQgcmVjdGFuZ2xlIGIgCgkJYW5kIHJldHVybiB0cnVlLiZuYnNwOyBJZiB0aGUgdHdvIHJlY3RhbmdsZXMgZG8gbm90IGludGVyc2VjdCByZWN0YW5nbGUgCgkJYSBpcyB1bmNoYW5nZWQgYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLiZuYnNwOyBJZiB0aGUgZmxhZyAKCQljb25zaWRlcl90b3VjaCBpcyB0cnVlIHJlY3RhbmdsZXMgdGhhdCBhYnV0IGFyZSBjb25zaWRlcmVkIHRvIGludGVyc2VjdC48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5nZW5lcmFsaXplZF9pbnRlcnNlY3Q8L2I+KFQxJmFtcDsgYSwgY29uc3QgVDImYW1wOyBiKTwvZm9udD48L3RkPgoJCTx0ZD5TYW1lIGFzIGludGVyc2VjdCwgYnV0IGlmIHRoZXkgZG8gbm90IGludGVyc2VjdCBzZXQgYSB0byB0aGUgCgkJcmVjdGFuZ2xlIGJldHdlZW4gYSBhbmQgYiBieSBhcHBseWluZyBnZW5lcmFsaXplZF9pbnRlcnNlY3QoKSBvbiB0aGUgCgkJaW50ZXJ2YWxzIG9mIHRoZSByZWN0YW5nbGVzLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5ibG9hdDwvYj4oVCZhbXA7IHJlY3RhbmdsZSwgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD5CbG9hdHMgeCBhbmQgeSBpbnRlcnZhbHMgb2YgcmVjdGFuZ2xlIGJ5IGNvb3JkaW5hdGUgdmFsdWUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPmJsb2F0PC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBkaXJlY3Rpb25fMmQsIGNvb3JkaW5hdGVfdHlwZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+QmxvYXRzIHNpZGUgb2YgcmVjdGFuZ2xlIHNwZWNpZmllZCBieSBkaXJlY3Rpb25fMmQgYnkgY29vcmRpbmF0ZSAKCQl2YWx1ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlUJmFtcDsgPGI+YmxvYXQ8L2I+KFQmYW1wOyByZWN0YW5nbGUsIG9yaWVudGF0aW9uXzJkLCBjb29yZGluYXRlX3R5cGUpPC9mb250PjwvdGQ+CgkJPHRkPkJsb2F0cyBpbnRlcnZhbCBvZiByZWN0YW5nbGUgc3BlY2lmaWVkIGJ5IG9yaWVudGF0aW9uXzJkIGJ5IAoJCWNvb3JkaW5hdGUgdmFsdWUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVCZndDs8YnI+CgkJVCZhbXA7IDxiPnNocmluazwvYj4oVCZhbXA7IHJlY3RhbmdsZSwgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD5TaHJpbmtzIHggYW5kIHkgaW50ZXJ2YWxzIG9mIHJlY3RhbmdsZSBieSBjb29yZGluYXRlIHZhbHVlLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQmZ3Q7PGJyPgoJCVQmYW1wOyA8Yj5zaHJpbms8L2I+KFQmYW1wOyByZWN0YW5nbGUsIGRpcmVjdGlvbl8yZCwgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD5TaHJpbmtzIHNpZGUgb2YgcmVjdGFuZ2xlIHNwZWNpZmllZCBieSBkaXJlY3Rpb25fMmQgYnkgY29vcmRpbmF0ZSAKCQl2YWx1ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUJmd0Ozxicj4KCQlUJmFtcDsgPGI+c2hyaW5rPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBvcmllbnRhdGlvbl8yZCwgY29vcmRpbmF0ZV90eXBlKTwvZm9udD48L3RkPgoJCTx0ZD5TaHJpbmtzIGludGVydmFsIG9mIHJlY3RhbmdsZSBzcGVjaWZpZWQgYnkgb3JpZW50YXRpb25fMmQgYnkgCgkJY29vcmRpbmF0ZSB2YWx1ZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMSwgdHlwZW5hbWUgCgkJVDImZ3Q7PGJyPgoJCWJvb2wgPGI+ZW5jb21wYXNzPC9iPihUMSZhbXA7IGEsIGNvbnN0IFQyJmFtcDsgYik8L2ZvbnQ+PC90ZD4KCQk8dGQ+VGhlIHggYW5kIHkgaW50ZXJ2YWxzIG9mIGEgYXJlIHNldCB0byBlbmNvbXBhc3MgdGhlIHggYW5kIHkgCgkJaW50ZXJ2YWxzIG9mIGIgcmVzcGVjdGl2ZWx5LjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCXBvaW50X3R5cGUmZ3Q7PGJyPgoJCWJvb2wgPGI+ZW5jb21wYXNzPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBjb25zdCBwb2ludF90eXBlJmFtcDsgcG9pbnQpPC9mb250PjwvdGQ+CgkJPHRkPlRoZSB4IGFuZCB5IGludGVydmFscyBvZiByZWN0YW5nbGUgYXJlIHNldCB0byBlbmNvbXBhc3MgdGhlIHggYW5kIHkgCgkJY29vcmRpbmF0ZXMgb2YgcG9pbnQgcmVzcGVjdGl2ZWx5LjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQsIHR5cGVuYW1lIAoJCWludGVydmFsX3R5cGUmZ3Q7PGJyPgoJCWJvb2wgPGI+ZW5jb21wYXNzPC9iPihUJmFtcDsgcmVjdGFuZ2xlLCBjb25zdCBpbnRlcnZhbF90eXBlJmFtcDsgaSwgCgkJPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvcmllbnRhdGlvbl8yZCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+VGhlIGludGVydmFsIG9mIHJlY3RhbmdsZSBzcGVjaWZpZWQgYnkgb3JpZW50YXRpb25fMmQgaXMgc2V0IHRvIGVuY29tcGFzcyB0aGUgCgkJaW50ZXJ2YWwgaS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBULCB0eXBlbmFtZSAKCQlwb2ludF90eXBlJmd0Ozxicj4KCQlib29sIDxiPmdldF9jb3JuZXI8L2I+KHBvaW50X3R5cGUmYW1wOyBwb2ludCwgY29uc3QgVCZhbXA7IHJlY3RhbmdsZSwmbmJzcDsgCgkJPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQlkaXJlY3Rpb25fMmQsIGRpcmVjdGlvbl8xZCk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2V0cyBwb2ludCB0byB0aGUgY29ybmVyIG9mIHRoZSByZWN0YW5nbGUgeW91IHJlYWNoIGlmIHlvdSBsb29rIGF0IAoJCWl0cyBzaWRlIHNwZWNpZmllZCBieSBkaXJlY3Rpb25fMmQgZnJvbSB3aXRoaW4gdGhlIHJlY3RhbmdsZSBhbmQgdHVybiBpbiAKCQl0aGUgZGlyZWN0aW9uXzFkIGRpcmVjdGlvbiAobG93ID09IGxlZnQsIGhpZ2ggPSByaWdodCkuJm5ic3A7IEFsd2F5cyAKCQlyZXR1cm5zIHRydWUuPC90ZD4KCTwvdHI+CjwvdGFibGU+Cgk8aDE+UmVjdGFuZ2xlIERhdGE8L2gxPgoKPHA+IAo8cD5UaGUgbGlicmFyeSBwcm92aWRlcyBhIG1vZGVsIG9mIHJlY3RhbmdsZSBjb25jZXB0IGRlY2xhcmVkCjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij4KdGVtcGxhdGUmbHQ7dHlwZW5hbWUgVCZndDsgcmVjdGFuZ2xlX2RhdGEgPC9mb250PndoZXJlIFQgaXMgdGhlIGNvb3JkaW5hdGUgdHlwZS48L3A+CjxwPlRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgaW50ZXJuYWxseSB3aGVuIGEgcmVjdGFuZ2xlIGlzIG5lZWRlZCBhbmQgaXMgYXZhaWxhYmxlIAp0byB0aGUgbGlicmFyeSB1c2VyIHdobyBmaW5kcyBpdCBjb252ZW5pZW50IHRvIHVzZSBhIGxpYnJhcnkgcmVjdGFuZ2xlIGRhdGEgdHlwZSAKaW5zdGVhZCBvZiBwcm92aWRpbmcgdGhlaXIgb3duLiZuYnNwOyBUaGUgZGF0YSB0eXBlIGlzIGltcGxlbWVudGVkIHRvIGJlIApjb252ZW5pZW50IHRvIHVzZSB3aXRoIHRoZSBsaWJyYXJ5IHRyYWl0cy48L3A+CjxoMj5NZW1iZXJzPC9oMj4KPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGlkPSJ0YWJsZTIiPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Yj48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+Z2VvbWV0cnlfdHlwZTwvZm9udD48L2I+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5yZWN0YW5nbGVfY29uY2VwdDwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPmNvb3JkaW5hdGVfdHlwZTwvZm9udD48L2I+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5UPC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+PGI+aW50ZXJ2YWxfdHlwZTwvYj48L2ZvbnQ+PC90ZD4KCQk8dGQ+PGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuIj5pbnRlcnZhbF9kYXRhJmx0O1QmZ3Q7PC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+PGI+cmVjdGFuZ2xlX2RhdGE8L2I+KFQgeGwsIFQgCgkJeWwsIFQgeGgsIFQgeWgpPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+Q29uc3RydWN0cyBhIHJlY3RhbmdsZSB3aXRoIGZvdXIgCgkJY29vcmRpbmF0ZXMuPC9mb250PjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQxLCB0eXBlbmFtZSAKCQlUMiZndDs8Yj48YnI+CgkJcmVjdGFuZ2xlX2RhdGE8L2I+KGNvbnN0IFQxJmFtcDsgaG9yaXpvbnRhbF9pbnRlcnZhbCw8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAKCQljb25zdCBUMiZhbXA7IHZlcnRpY2FsX2ludGVydmFsKTwvZm9udD48L3RkPgoJCTx0ZD48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPkNvbnN0cnVjdHMgYSByZWN0YW5nbGUgd2l0aCB0d28gb2JqZWN0cyAKCQl0aGF0IG1vZGVsIGludGVydmFsLjwvZm9udD48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPjxiPnJlY3RhbmdsZV9kYXRhPC9iPihjb25zdCAKCQlyZWN0YW5nbGVfZGF0YSZhbXA7IHRoYXQpPC9mb250PjwvdGQ+CgkJPHRkPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+Q29weSBjb25zdHJ1Y3Q8L2ZvbnQ+PC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5yZWN0YW5nbGVfZGF0YSZhbXA7IDxiPm9wZXJhdG9yPTwvYj4oY29uc3QgCgkJcmVjdGFuZ2xlX2RhdGEmYW1wOyB0aGF0KTwvZm9udD48L3RkPgoJCTx0ZD5Bc3NpZ25tZW50IG9wZXJhdG9yLjwvdGQ+Cgk8L3RyPgoJPHRyPgoJCTx0ZCB3aWR0aD0iNTg2Ij48Zm9udCBmYWNlPSJDb3VyaWVyIE5ldyI+dGVtcGxhdGUgJmx0O3R5cGVuYW1lIFQyJmd0OzxiPiAKCQk8YnI+IDwvYj5yZWN0YW5nbGVfZGF0YSYgPGI+IAoJCW9wZXJhdG9yPTwvYj4oY29uc3QgVDImYW1wOyB0aGF0KSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5Bc3NpZ24gZnJvbSBhbiBvYmplY3QgdGhhdCBpcyBhIG1vZGVsIG9mIHJlY3RhbmdsZS48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMiZndDs8Yj4gCgkJPGJyPiA8L2I+Ym9vbDxiPiAKCQlvcGVyYXRvcj09PC9iPihjb25zdCBUMiZhbXA7IHRoYXQpIGNvbnN0PC9mb250PjwvdGQ+CgkJPHRkPkNvbXBhcmUgZXF1YWxpdHkgdG8gYW4gb2JqZWN0IHRoYXQgaXMgYSBtb2RlbCBvZiByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij50ZW1wbGF0ZSAmbHQ7dHlwZW5hbWUgVDImZ3Q7PGI+IAoJCTxicj4gPC9iPmJvb2w8Yj4gCgkJb3BlcmF0b3IhPTwvYj4oY29uc3QgVDImYW1wOyB0aGF0KSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5Db21wYXJlIGluZXF1YWxpdHkgdG8gYW4gb2JqZWN0IHRoYXQgaXMgYSBtb2RlbCBvZiByZWN0YW5nbGUuPC90ZD4KCTwvdHI+Cgk8dHI+CgkJPHRkIHdpZHRoPSI1ODYiPjxmb250IGZhY2U9IkNvdXJpZXIgTmV3Ij5pbnRlcnZhbF9kYXRhJmx0O1QmZ3Q7IDxiPmdldDwvYj4ob3JpZW50YXRpb25fMmQgCgkJb3JpZW50KSBjb25zdDwvZm9udD48L3RkPgoJCTx0ZD5HZXQgdGhlIGludGVydmFsIGluIHRoZSBnaXZlbiBvcmllbnRhdGlvbi48L3RkPgoJPC90cj4KCTx0cj4KCQk8dGQgd2lkdGg9IjU4NiI+PGZvbnQgZmFjZT0iQ291cmllciBOZXciPnRlbXBsYXRlICZsdDt0eXBlbmFtZSBUMiZndDs8YnI+CgkJdm9pZCA8Yj5zZXQ8L2I+KG9yaWVudGF0aW9uXzJkIG9yaWVudCwgY29uc3QgVDImYW1wOyB2YWx1ZSk8L2ZvbnQ+PC90ZD4KCQk8dGQ+U2V0cyB0aGUgaW50ZXJ2YWwgaW4gdGhlIGdpdmVuIG9yaWVudGF0aW9uIHRvIHRoZSB2YWx1ZSBvZiBhbiBvYmplY3QgCgkJdGhhdCBtb2RlbHMgaW50ZXJ2YWwuPC90ZD4KCTwvdHI+Cgk8L3RhYmxlPgoJPHRyPgo8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsIDIzOCwgMjM4KTsiIG5vd3JhcD0iMSIgdmFsaWduPSJ0b3AiPgogICAgJm5ic3A7PC90ZD4KPHRkIHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxMDAlIj4KCgo8dGFibGUgY2xhc3M9ImRvY2luZm8iIHJ1bGVzPSJub25lIiBmcmFtZT0idm9pZCIgaWQ9InRhYmxlMyI+Cgk8Y29sZ3JvdXA+CgkJPGNvbCBjbGFzcz0iZG9jaW5mby1uYW1lIj48Y29sIGNsYXNzPSJkb2NpbmZvLWNvbnRlbnQiPgoJPC9jb2xncm91cD4KCTx0Ym9keSB2QWxpZ249InRvcCI+CgkJPHRyPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+Q29weXJpZ2h0OjwvdGg+CgkJCTx0ZD5Db3B5cmlnaHQgqSBJbnRlbCBDb3Jwb3JhdGlvbiAyMDA4LTIwMTAuPC90ZD4KCQk8L3RyPgoJCTx0ciBjbGFzcz0iZmllbGQiPgoJCQk8dGggY2xhc3M9ImRvY2luZm8tbmFtZSI+TGljZW5zZTo8L3RoPgoJCQk8dGQgY2xhc3M9ImZpZWxkLWJvZHkiPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKCQkJVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgPHR0IGNsYXNzPSJsaXRlcmFsIj4KCQkJPHNwYW4gY2xhc3M9InByZSI+TElDRU5TRV8xXzAudHh0PC9zcGFuPjwvdHQ+IG9yIGNvcHkgYXQKCQkJPGEgY2xhc3M9InJlZmVyZW5jZSIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPgoJCQlodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvdGQ+CgkJPC90cj4KPC90YWJsZT4KCjwvaHRtbD4=