PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cjx0aXRsZT5SZWFkTWUgZm9yIElDVTwvdGl0bGU+CjwvaGVhZD4KCjxib2R5IGxhbmc9ImVuLVVTIj4KCjxIND5MYXRlIGJyZWFraW5nIG5ld3M6PC9IND4KPFVMPgogIDxMST4gPEEgSFJFRj0iI2hwdXhfZGF0YV9ub3RlIj5IUC9VWCBzaGFyZWQgbGlicmFyeSBsb2FkaW5nPC9BPgo8L1VMPgoKPEhSPgo8ZGl2IGNsYXNzPVNlY3Rpb24xPgoKPGgyPlJlYWRNZTogSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlPC9oMj4KCjxwPlZlcnNpb246IE1heSAzMCwgMjAwMDwvcD4KCgo8ZGl2IGNsYXNzPU1zb05vcm1hbCBhbGlnbj1jZW50ZXIgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz4KCjxociBzaXplPTIgd2lkdGg9IjEwMCUiIGFsaWduPWNlbnRlcj4KCjwvZGl2PgoKCjxwPkNPUFlSSUdIVDogPGJyPgpDb3B5cmlnaHQgKGMpIDE5OTctMjAwMCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCkFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9wPgoKCjxkaXYgY2xhc3M9TXNvTm9ybWFsIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPgoKPGhyIHNpemU9MiB3aWR0aD0iMTAwJSIgYWxpZ249Y2VudGVyPgoKPC9kaXY+CgoKPHA+PGJyPgombmJzcDsgJm5ic3A7IDwvcD4KCjxoMz48dT5Db250ZW50czwvdT48L2gzPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzM7dGFiLXN0b3BzOmxpc3QgLjVpbic+PGEgaHJlZj0iI1doYXRDb250YWluIj5XaGF0CiAgICAgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBDb250YWluPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjQVBJIj5BUEkgb3ZlcnZpZXc8L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhCiAgICAgaHJlZj0iI1BsYXRmb3JtRGVwZW5kZW5jaWVzIj5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNJbXBvcnRhbnROb3RlcyI+SW1wb3J0YW50CiAgICAgSW5zdGFsbGF0aW9uIE5vdGVzPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjSG93VG9JbnN0YWxsIj5Ib3cKICAgICB0byBJbnN0YWxsL0J1aWxkPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjZGF0YWhhbmRsaW5nIj5Ib3cKICAgICBJQ1UgaGFuZGxlcyBkYXRhPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjQ2hhcnNldENvbnZlcnQiPkNoYXJhY3RlcgogICAgIFNldCBDb252ZXJzaW9uIEluZm9ybWF0aW9uPC9hPjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMyBsZXZlbDEgbGZvMzt0YWItc3RvcHM6bGlzdCAuNWluJz48YSBocmVmPSIjUHJvZ3JhbW1pbmdOb3RlcyI+UHJvZ3JhbW1pbmcKICAgICBOb3RlczwvYT48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzM7dGFiLXN0b3BzOmxpc3QgLjVpbic+PGEgaHJlZj0iI1doZXJlVG9GaW5kTW9yZSI+V2hlcmUKICAgICB0byBGaW5kIE1vcmUgSW5mb3JtYXRpb248L2E+PC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwzIGxldmVsMSBsZm8zO3RhYi1zdG9wczpsaXN0IC41aW4nPjxhIGhyZWY9IiNTdWJtaXR0aW5nQ29tbWVudHMiPlN1Ym1pdHRpbmcKICAgICBDb21tZW50cywgUmVxdWVzdGluZyBGZWF0dXJlcyBhbmQgUmVwb3J0aW5nIEJ1Z3M8L2E+PC9saT4KPC91bD4KCjxoMz48YSBuYW1lPWludHJvZHVjdGlvbj48L2E+PHU+SW50cm9kdWN0aW9uPC91PjwvaDM+Cgo8cD5Ub2RheSdzIHNvZnR3YXJlIG1hcmtldCBpcyBhIGdsb2JhbCBvbmUgaW4gd2hpY2ggaXQgaXMgZGVzaXJhYmxlIHRvIGRldmVsb3AKYW5kIG1haW50YWluIG9uZSBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIG5hdGlvbmFsCmxhbmd1YWdlcy4gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgdG9vbHMgdG8KaGVscCB5b3Ugd3JpdGUgbGFuZ3VhZ2UgaW5kZXBlbmRlbnQgYXBwbGljYXRpb25zOiA8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW5pY29kZVN0cmluZyBzdXBwb3J0aW5nIHRoZQogICAgIFVuaWNvZGUgMy4wIHN0YW5kYXJkPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw1IGxldmVsMSBsZm82O3RhYi1zdG9wczpsaXN0IC41aW4nPlJlc291cmNlIGJ1bmRsZXMgZm9yIHN0b3JpbmcKICAgICBhbmQgYWNjZXNzaW5nIGxvY2FsaXplZCBpbmZvcm1hdGlvbjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5OdW1iZXIgZm9ybWF0dGVycyBmb3IKICAgICBjb252ZXJ0aW5nIGJpbmFyeSBudW1iZXJzIGludG8gdGV4dCBzdHJpbmdzIGZvciBtZWFuaW5nZnVsIGRpc3BsYXk8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+RGF0ZSBhbmQgdGltZSBmb3JtYXR0ZXJzIGZvcgogICAgIGNvbnZlcnRpbmcgaW50ZXJuYWwgdGltZSBkYXRhIGludG8gdGV4dCBzdHJpbmdzIGZvciBtZWFuaW5nZnVsIGRpc3BsYXk8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDUgbGV2ZWwxIGxmbzY7dGFiLXN0b3BzOmxpc3QgLjVpbic+TWVzc2FnZSBmb3JtYXR0ZXJzIGZvcgogICAgIHB1dHRpbmcgdG9nZXRoZXIgc2VxdWVuY2VzIG9mIHN0cmluZ3MsIG51bWJlcnMgZGF0ZXMgYW5kIG90aGVyIGZvcm1hdCB0bwogICAgIGNyZWF0ZSBtZXNzYWdlczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5UZXh0IGNvbGxhdGlvbiBzdXBwb3J0aW5nCiAgICAgbGFuZ3VhZ2Ugc2Vuc2l0aXZlIGNvbXBhcmlzb24gb2Ygc3RyaW5nczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5UZXh0IGJvdW5kYXJ5IGFuYWx5c2lzIGZvcgogICAgIGZpbmRpbmcgY2hhcmFjdGVycywgd29yZCBhbmQgc2VudGVuY2UgYm91bmRhcmllczwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNSBsZXZlbDEgbGZvNjt0YWItc3RvcHM6bGlzdCAuNWluJz5DaGFuZ2luZyBzaW1wbGUgZGF0YSBmaWxlcwogICAgIHJhdGhlciB0aGFuIG1vZGlmeWluZyBwcm9ncmFtIGNvZGUgZWFzaWx5IGxvY2FsaXplcyBhcHBsaWNhdGlvbnMgd3JpdHRlbgogICAgIHVzaW5nIHRoZXNlIHRvb2xzPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw1IGxldmVsMSBsZm82O3RhYi1zdG9wczpsaXN0IC41aW4nPk92ZXIgMTUwIGxvY2FsZXMgc3VwcG9ydGVkLgogICAgIFZpc2l0IDxhCiAgICAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvaWN1L2xvY2FsZWV4cGxvcmVyIj5Mb2NhbGVFeHBsb3JlcgogICAgIChodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZGV2ZWxvcGVyd29ya3Mvb3BlbnNvdXJjZS9pY3UvbG9jYWxlZXhwbG9yZXIpPC9hPgogICAgIHNpdGUgZm9yIGEgZGVtb25zdHJhdGlvbiBhbmQgYSBmdWxsIGxpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXMgb3IgPGEKICAgICBocmVmPSJkb2NzL3N1cHBfbG9jLmh0bWwiPmNsaWNrIGhlcmUgZm9yIGEgdGFibGUgb2Ygc3VwcG9ydGVkIGxvY2FsZXM8L2E+LjwvbGk+CjwvdWw+Cgo8cD5JdCBpcyBwb3NzaWJsZSB0byBzdXBwb3J0IGFkZGl0aW9uYWwgbG9jYWxlcyBieSBhZGRpbmcgbW9yZSBsb2NhbGUgZGF0YQpmaWxlcywgd2l0aCBubyBjb2RlIGNoYW5nZXMuIDwvcD4KCjxwPlBsZWFzZSByZWZlciB0byBQT1NJWCBwcm9ncmFtbWVyJ3MgR3VpZGUgZm9yIGRldGFpbHMgb24gd2hhdCB0aGUgSVNPIGxvY2FsZQpJRCBtZWFucy4gPC9wPgoKPHA+WW91ciBjb21tZW50cyBhcmUgaW1wb3J0YW50IHRvIG1ha2luZyB0aGlzIHJlbGVhc2Ugc3VjY2Vzc2Z1bC4mbmJzcDsgV2UgYXJlCmNvbW1pdHRlZCB0byBmaXhpbmcgYW55IGJ1Z3MsIGFuZCB3aWxsIGFsc28gdXNlIHlvdXIgZmVlZGJhY2sgdG8gaGVscCBwbGFuCmZ1dHVyZSByZWxlYXNlcy4gPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjxiPjx1PklNUE9SVEFOVDwvdT46IFBsZWFzZSBtYWtlCnN1cmUgeW91IHVuZGVyc3RhbmQgdGhlIDxhIGhyZWY9ImxpY2Vuc2UuaHRtbCI+Q29weXJpZ2h0IGFuZCBMaWNlbnNlCmluZm9ybWF0aW9uPC9hPi48L2I+PC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPiZuYnNwOzwvcD4KCjxoMz48YSBuYW1lPVdoYXRDb250YWluPjwvYT48dT5XaGF0IHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUKQ29udGFpbjwvdT48L2gzPgoKPHA+VGhlcmUgYXJlIHR3byB3YXlzIHRvIGRvd25sb2FkIHRoZSBJQ1UgcmVsZWFzZXMsIDwvcD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTAgbGV2ZWwxIGxmbzk7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHN0cm9uZz5PZmZpY2lhbCBSZWxlYXNlCiAgICAgU25hcHNob3Q6PC9zdHJvbmc+PGI+PGJyPgogICAgIDwvYj5JZiB5b3Ugd2FudCB0byB1c2UgSUNVIChhcyBvcHBvc2VkIHRvIGRldmVsb3BpbmcgaXQpLCB5b3VyIGJlc3QgYmV0IGlzCiAgICAgdG8gZG93bmxvYWQgYW4gb2ZmaWNpYWwsIHBhY2thZ2VkIElDVSB2ZXJzaW9uIG9mIHRoZSBJQ1Ugc291cmNlCiAgICAgY29kZS4mbmJzcDsgVGhlc2UgdmVyc2lvbnMgYXJlIHRlc3RlZCBtb3JlIHRob3JvdWdobHkgdGhhbiBkYXktdG8tZGF5CiAgICAgZGV2ZWxvcG1lbnQgYnVpbGRzIG9mIHRoZSBzeXN0ZW0sIGFuZCB0aGV5IGFyZSBwYWNrYWdlZCBpbiB6aXAgYW5kIHRhcgogICAgIGZpbGVzIGZvciBjb252ZW5pZW50IGRvd25sb2FkLiZuYnNwOyBUaGVzZSBwYWNrYWdlZCBmaWxlcyBjYW4gYmUgZm91bmQgYXQgPGEKICAgICBocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2Rvd25sb2FkL2luZGV4Lmh0bWwiPmh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvZG93bmxvYWQvaW5kZXguaHRtbDwvYT4uPGJyPgogICAgIElmIHBhY2thZ2VkIHNuYXBzaG90IGlzIG5hbWVkIDxiPklDVVhYWFhYWC56aXAgPC9iPiwgWFhYWFhYIGlzIHRoZSByZWxlYXNlCiAgICAgdmVyc2lvbiBudW1iZXIuPGJyPgogICAgIFBsZWFzZSB1bnppcCB0aGlzIGZpbGUuJm5ic3A7IEl0IHdpbGwgcmUtY29uc3RydWN0IHRoZSBzb3VyY2UgZGlyZWN0b3J5LiA8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDEwIGxldmVsMSBsZm85O3RhYi1zdG9wczpsaXN0IC41aW4nPjxzdHJvbmc+Q1ZTIFNvdXJjZQogICAgIFJlcG9zaXRvcnk6PC9zdHJvbmc+PGI+PGJyPgogICAgIDwvYj5JZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZGV2ZWxvcGluZyBmZWF0dXJlcywgcGF0Y2hlcywgb3IgYnVnIGZpeGVzCiAgICAgZm9yIElDVSwgeW91IHNob3VsZCBwcm9iYWJseSBiZSB3b3JraW5nIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBJQ1UKICAgICBzb3VyY2UgY29kZS4gWW91IHdpbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZSBvdXQgb2Ygb3VyIENWUyByZXBvc2l0b3J5IHRvCiAgICAgZW5zdXJlIHRoYXQgeW91IGhhdmUgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgYWxsIG9mIHRoZSBmaWxlcy4gVGhlcmUKICAgICBhcmUgc2V2ZXJhbCB3YXlzIHRvIGRvIHRoaXM6PC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDEwIGxldmVsMiBsZm85O3RhYi1zdG9wczpsaXN0IDEuMGluJz5XZWJDVlM6PGJyPgogICAgICBJZiB5b3Ugd2FudCB0byBicm93c2UgdGhlIGNvZGUgYW5kIG9ubHkgbWFrZSBvY2Nhc2lvbmFsIGRvd25sb2FkcywgeW91CiAgICAgIG1heSB3YW50IHRvIHVzZSBXZWJDVlMuIEl0IHByb3ZpZGVzIGEgY29udmVuaWVudCwgd2ViLWJhc2VkIGludGVyZmFjZSBmb3IKICAgICAgYnJvd3NpbmcgYW5kIGRvd25sb2FkaW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgSUNVIHNvdXJjZSBjb2RlIGFuZAogICAgICBkb2N1bWVudGF0aW9uLiBZb3UgY2FuIGFsc28gdmlldyBlYWNoIGZpbGUncyByZXZpc2lvbiBoaXN0b3J5LCBkaXNwbGF5CiAgICAgIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGluZGl2aWR1YWwgcmV2aXNpb25zLCBkZXRlcm1pbmUgd2hpY2ggcmV2aXNpb25zCiAgICAgIHdlcmUgcGFydCBvZiB3aGljaCBvZmZpY2lhbCByZWxlYXNlLCBhbmQgc28gb24uIDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxMCBsZXZlbDIgbGZvOTt0YWItc3RvcHM6bGlzdCAxLjBpbic+V2luQ1ZTOjxicj4KICAgICAgSWYgeW91IHdpbGwgYmUgZG9pbmcgc2VyaW91cyB3b3JrIG9uIElDVSwgeW91IHNob3VsZCBwcm9iYWJseSBpbnN0YWxsIGEKICAgICAgQ1ZTIGNsaWVudCBvbiB5b3VyIG93biBtYWNoaW5lIHNvIHRoYXQgeW91IGNhbiBkbyBiYXRjaCBvcGVyYXRpb25zCiAgICAgIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGUgV2ViQ1ZTIGludGVyZmFjZS4gT24gV2luZG93cywgd2Ugc3VnZ2VzdCB0aGUKICAgICAgV2luQ1ZTIGNsaWVudC4gVGhlIGZvbGxvd2luZyBpcyB0aGUgZXhhbXBsZSBpbnN0cnVjdGlvbiBvbiBob3cgdG8gZG93bmxvYWQKICAgICAgSUNVIHZpYSBXaW5DVlM6IDxicj4KICAgICAgMS5JbnN0YWxsIHRoZSBXaW5DVlMgY2xpZW50LCB3aGljaCB5b3UgY2FuIGRvd25sb2FkIGZyb20gdGhlIFdpbkNWUyBob21lCiAgICAgIHBhZ2UuIDxicj4KICAgICAgMi5JbiB0aGUgV2luQ1ZTIHByZWZlcmVuY2VzLCBzcGVjaWZ5IHlvdXIgQ1ZTUm9vdCB0byBiZQogICAgICAmcXVvdDs6cHNlcnZlcjphbm9uY3ZzQG9zcy5zb2Z0d2FyZS5pYm0uY29tOi91c3IvY3ZzL2ljdSZxdW90Ozxicj4KICAgICAgd2l0aCB0aGUgcGFzc3dvcmQgJnF1b3Q7YW5vbmN2cyZxdW90Oy4gVG8gZW50ZXIgdGhlIENWU1Jvb3QgdmFsdWUsIHNlbGVjdAogICAgICAmcXVvdDtQcmVmZXJlbmNlcyZxdW90OyBmcm9tIHRoZSAmcXVvdDtDdnMgQWRtaW4mcXVvdDsgcHVsbC1kb3duIG1lbnUuCiAgICAgICZuYnNwOyZuYnNwOyBBdXRoZW50aWNhdGlvbiBzaG91bGQgYmUgc2V0IHRvICZxdW90OydwYXNzd2QnIGZpbGUgb24gdGhlCiAgICAgIGN2cyBzZXJ2ZXImcXVvdDsuIDxicj4KICAgICAgMy5UbyAmcXVvdDtleHRyYWN0JnF1b3Q7IHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIElDVSwgc2VsZWN0CiAgICAgICZxdW90O0NoZWNrb3V0IG1vZHVsZSZxdW90OyBmcm9tIHRoZSAmcXVvdDtDdnMgQWRtaW4mcXVvdDsgbWVudS4gU3BlY2lmeQogICAgICAmcXVvdDtpY3UmcXVvdDsgZm9yIHRoZSBtb2R1bGUgbmFtZS4gPC9saT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDEwIGxldmVsMiBsZm85O3RhYi1zdG9wczpsaXN0IDEuMGluJz5DVlMgY29tbWFuZCBsaW5lOjxicj4KICAgICAgWW91IGNhbiBhbHNvIGNoZWNrIG91dCB0aGUgcmVwb3NpdG9yeSBhbm9ueW1vdXNseSBvbiBVTklYIHVzaW5nIHRoZQogICAgICBmb2xsb3dpbmcgY29tbWFuZHMsIGFmdGVyIGZpcnN0IHNldHRpbmcgeW91ciBDVlNST09UIHRvIHBvaW50IHRvIHRoZSBJQ1UKICAgICAgcmVwb3NpdG9yeTogPGJyPgogICAgICA8YnI+CiAgICAgIGV4cG9ydCBDVlNST09UPTpwc2VydmVyOmFub25jdnNAb3NzLnNvZnR3YXJlLmlibS5jb206L3Vzci9jdnMvaWN1PGJyPgogICAgICBjdnMgbG9naW4gQ1ZTIHBhc3N3b3JkOiBhbm9uY3ZzPGJyPgogICAgICBjdnMgY2hlY2tvdXQgaWN1PGJyPgogICAgICBjdnMgbG9nb3V0PC9saT4KIDwvdWw+CjwvdWw+Cgo8cD5Gb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkb3dubG9hZCBJQ1UgZGlyZWN0bHkgZnJvbSB0aGUgd2ViIHNpdGUsIHBsZWFzZQphbHNvIHNlZSA8YQpocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2Rvd25sb2FkL2luZGV4Lmh0bWwiPmh0dHA6L29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS9kb3dubG9hZC9pbmRleC5odG1sPC9hPjwvcD4KCjxwPkJlbG93LCA8Yj4kUm9vdDwvYj4gaXMgdGhlIHBsYWNlbWVudCBvZiB0aGUgaWN1IGRpcmVjdG9yeSBpbiB5b3VyIGZpbGUKc3lzdGVtLCBsaWtlICZxdW90O2RyaXZlOlwuLi5caWN1JnF1b3Q7IGluIHlvdXIgZW52aXJvbm1lbnQuCiZxdW90O2RyaXZlOlwuLi4mcXVvdDsgc3RhbmRzIGZvciBhbnkgZHJpdmUgYW5kIGFueSBkaXJlY3Rvcnkgb24gdGhhdCBkcml2ZQp0aGF0IHlvdSBjaG9zZSB0byBpbnN0YWxsIGljdSBpbnRvLjwvcD4KCjxwPjxiPlRoZSBmb2xsb3dpbmcgZmlsZXMgZGVzY3JpYmUgdGhlIGNvZGUgZHJvcDo8L2I+IDxicj4KJm5ic3A7IDxicj4KJm5ic3A7IDwvcD4KCjx0YWJsZSBib3JkZXI9MSBjZWxscGFkZGluZz0wIHN0eWxlPSdtc28tY2VsbHNwYWNpbmc6MS41cHQ7bXNvLXBhZGRpbmctYWx0OgogMGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgc3R5bGU9J3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD5yZWFkbWUuaHRtbCAodGhpcyBmaWxlKTwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmRlc2NyaWJlcyB0aGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmxpY2Vuc2UuaHRtbDwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIElCTSdzIHB1YmxpYyBsaWNlbnNlPC9wPgogIDwvdGQ+CiA8L3RyPgo8L3RhYmxlPgoKPHA+PGI+VGhlIGZvbGxvd2luZyBkaXJlY3RvcmllcyBjb250YWluIHNvdXJjZSBjb2RlIGFuZCBkYXRhIGZpbGVzOjwvYj4gPGJyPgombmJzcDsgPGJyPgombmJzcDsgPC9wPgoKPHRhYmxlIGJvcmRlcj0xIGNlbGxwYWRkaW5nPTAgd2lkdGg9NjIzIHN0eWxlPSd3aWR0aDo0NjcuMjVwdDttc28tY2VsbHNwYWNpbmc6CiAxLjVwdDttc28tcGFkZGluZy1hbHQ6MGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgd2lkdGg9IjIwJSIgc3R5bGU9J3dpZHRoOjIwLjAlO3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD4kUm9vdFxzb3VyY2VcY29tbW9uXDwvcD4KICA8L3RkPgogIDx0ZCB3aWR0aD0iODAlIiBzdHlsZT0nd2lkdGg6ODAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPlRoZSB1dGlsaXR5IGNsYXNzZXMsIHN1Y2ggYXMgUmVzb3VyY2VCdW5kbGUsIFVuaWNvZGUsCiAgTG9jYWxlLCBVbmljb2RlU3RyaW5nLiBUaGUgY29kZXBhZ2UgY29udmVyc2lvbiBsaWJyYXJ5IEFQSSwgVW5pY29kZUNvbnZlcnRlci48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Rcc291cmNlXGkxOG5cPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGNvbGxhdGlvbiBzb3VyY2UgZmlsZXMsIENvbGxhdG9yLCBSdWxlQmFzZWRDb2xsYXRvcgogIGFuZCBDb2xsYXRpb25LZXkuJm5ic3A7IDxicj4KICBUaGUgdGV4dCBib3VuZGFyeSBBUEksIHdoaWNoIGxvY2F0ZXMgY2hhcmFjdGVyLCB3b3JkLCBzZW50ZW5jZSwgYW5kJm5ic3A7IDxicj4KICBsaW5lIGJyZWFrcy4mbmJzcDsgPGJyPgogIFRoZSBmb3JtYXQgQVBJLCB3aGljaCBmb3JtYXRzIGFuZCBwYXJzZXMgZGF0YSBpbiBudW1lcmljIG9yIGRhdGUgZm9ybWF0IHRvCiAgYW5kIGZyb20gdGV4dC48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Rcc291cmNlXHRlc3RcaW50bHRlc3RcPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+QSB0ZXN0IHN1aXRlIGluY2x1ZGluZyBhbGwgQysrIEFQSXMuIEZvciBpbmZvcm1hdGlvbiBhYm91dAogIHJ1bm5pbmcgdGhlIHRlc3Qgc3VpdGUsIHNlZSA8YSBocmVmPSJkb2NzL2ludGx0ZXN0Lmh0bWwiPmRvY3MvaW50bHRlc3QuaHRtbDwvYT4uPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCB3aWR0aD0iMjAlIiBzdHlsZT0nd2lkdGg6MjAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPiRSb290L3NvdXJjZS90ZXN0L2NpbnRsdHN0LzwvcD4KICA8L3RkPgogIDx0ZCB3aWR0aD0iODAlIiBzdHlsZT0nd2lkdGg6ODAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPkEgdGVzdCBzdWl0ZSBpbmNsdWRpbmcgYWxsIEMgQVBJcy4gRm9yIGluZm9ybWF0aW9uIGFib3V0CiAgcnVubmluZyB0aGUgdGVzdCBzdWl0ZSwgc2VlJm5ic3A7IDxhIGhyZWY9ImRvY3MvY2ludGx0c3QuaHRtbCI+ZG9jcy9jaW50bHRzdC5odG1sLjwvYT48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3QvZGF0YS88L3A+CiAgPC90ZD4KICA8dGQgd2lkdGg9IjgwJSIgc3R5bGU9J3dpZHRoOjgwLjAlO3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD5UaGUgVW5pY29kZSAzLjAgZGF0YSBmaWxlLiZuYnNwOyBQbGVhc2Ugc2VlIDxhCiAgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy8iPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPiBmb3IgbW9yZQogIGluZm9ybWF0aW9uLiZuYnNwOyA8YnI+CiAgVGhpcyBkaXJlY3RvcnkgYWxzbyBjb250YWlucyB0aGUgcmVzb3VyY2UgZmlsZXMgZm9yIGFsbCBpbnRlcm5hdGlvbmFsCiAgb2JqZWN0cy4mbmJzcDsgVGhlc2UgZmlsZXMgYXJlIG9mIHRocmVlIHR5cGVzOiZuYnNwOyA8L3A+CiAgPHVsIHR5cGU9ZGlzYz4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPlRYVCBmaWxlcyBjb250YWluCiAgICAgICBnZW5lcmFsIGxvY2FsZSBkYXRhLiZuYnNwOzwvbGk+CiAgIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgIGF1dG87bXNvLWxpc3Q6bDEyIGxldmVsMSBsZm8xMjt0YWItc3RvcHM6bGlzdCAuNWluJz5SRVMgZmlsZXMgY29udGFpbgogICAgICAgbm9uLXBvcnRhYmxlIGxvY2FsZSBkYXRhIGZpbGVzIHdoaWNoIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIDxzdHJvbmc+Z2VucmI8L3N0cm9uZz4KICAgICAgIHRvb2wuPC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPkNPTCBmaWxlcyBhcmUgbm9uLXBvcnRhYmxlCiAgICAgICBwYWNrZWQgYmluYXJ5IGNvbGxhdGlvbiBkYXRhIGZpbGVzIHdoaWNoIGFyZSBjcmVhdGVkIGJ5IHRoZSA8c3Ryb25nPmdlbmNvbDwvc3Ryb25nPgogICAgICAgdG9vbC4mbmJzcDs8L2xpPgogICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgICBhdXRvO21zby1saXN0OmwxMiBsZXZlbDEgbGZvMTI7dGFiLXN0b3BzOmxpc3QgLjVpbic+VUNNIGZpbGVzIHdoaWNoCiAgICAgICBjb250YWluIG1hcHBpbmcgdGFibGVzIHtmcm9tLHRvfSBVbmljb2RlIGluIHRleHQgZm9ybWF0PC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPkNOViBmaWxlcyBhcmUKICAgICAgIG5vbi1wb3J0YWJsZSBwYWNrZWQgYmluYXJ5IGNvbnZlcnNpb24gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIDxzdHJvbmc+bWFrZWNvbnY8L3N0cm9uZz4KICAgICAgIHRvb2wuPC9saT4KICAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICAgYXV0bzttc28tbGlzdDpsMTIgbGV2ZWwxIGxmbzEyO3RhYi1zdG9wczpsaXN0IC41aW4nPmljdWRhdGEuZGxsIGZpbGUKICAgICAgIGNvbnRhaW5zIGRhdGEgZmlsZXMgaW4gYSBkeW5hbWljIGxvYWRhYmxlIGxpYnJhcnkgZm9ybWF0LiBBdCB0aGlzCiAgICAgICBtb21lbnQsIHRoaXMgZmlsZSBjb250YWlucyBDTlYgZmlsZXMsIGNvbnZlcnRlciBhbGlhc2VzLCB0aW1lem9uZSBkYXRhCiAgICAgICBhbmQgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZXMuIFBsZWFzZSByZWFkIDxhIGhyZWY9ImRvY3MvdWRhdGEuaHRtbCI+dWRhdGEuaHRtbDwvYT4KICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvbGk+CiAgIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgIGF1dG87bXNvLWxpc3Q6bDEyIGxldmVsMSBsZm8xMjt0YWItc3RvcHM6bGlzdCAuNWluJz5pY3VkYXRhLmRhdCBmaWxlCiAgICAgICBjb250YWlucyBkYXRhIGZpbGVzIGluIGEgbWVtb3J5IG1hcHBlZCBmaWxlIGZvcm1hdC4gQXQgdGhpcyBtb21lbnQsIHRoaXMKICAgICAgIGZpbGUgY29udGFpbnMgQ05WIGZpbGVzLCBjb252ZXJ0ZXIgYWxpYXNlcywgdGltZXpvbmUgZGF0YSBhbmQgVW5pY29kZQogICAgICAgY2hhcmFjdGVyIG5hbWVzLiBQbGVhc2UgcmVhZCA8YSBocmVmPSJkb2NzL3VkYXRhLmh0bWwiPnVkYXRhLmh0bWw8L2E+CiAgICAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2xpPgogIDwvdWw+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHdpZHRoPSIyMCUiIHN0eWxlPSd3aWR0aDoyMC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JFJvb3Qvc291cmNlL3Rvb2xzPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VG9vbHMgZm9yIGdlbmVyYXRpbmcgdGhlIGRhdGEgZmlsZXMuIERhdGEgZmlsZXMgYXJlCiAgZ2VuZXJhdGVkIGJ5IGludm9raW5nICRSb290L3NvdXJjZS90b29scy9tYWtlZGF0YS5iYXQgb24gV2luMzIgb3IKICAkUm9vdC9zb3VyY2UvbWFrZSBpbnN0YWxsIG9uIFVuaXguPC9wPgogIDwvdGQ+CiA8L3RyPgogPHRyPgogIDx0ZCB3aWR0aD0iMjAlIiBzdHlsZT0nd2lkdGg6MjAuMCU7cGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPiRSb290L3NvdXJjZS9zYW1wbGVzPC9wPgogIDwvdGQ+CiAgPHRkIHdpZHRoPSI4MCUiIHN0eWxlPSd3aWR0aDo4MC4wJTtwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+VmFyaW91cyBzYW1wbGUgcHJvZ3JhbXMgdGhhdCB1c2UgSUNVPC9wPgogIDwvdGQ+CiA8L3RyPgo8L3RhYmxlPgoKPHA+Jm5ic3A7PGI+VGhlIGZvbGxvd2luZyBkaXJlY3RvcmllcyBhcmUgcG9wdWxhdGVkIHdoZW4geW91J3ZlIGJ1aWx0IHRoZQpmcmFtZXdvcms6PC9iPiA8YnI+CiZuYnNwOyAob24gVW5peCwgcmVwbGFjZSAkUm9vdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbiB0byB0aGUgZmlsZQomcXVvdDtjb25maWd1cmUmcXVvdDspIDxicj4KJm5ic3A7IDwvcD4KCjx0YWJsZSBib3JkZXI9MSBjZWxscGFkZGluZz0wIHN0eWxlPSdtc28tY2VsbHNwYWNpbmc6MS41cHQ7bXNvLXBhZGRpbmctYWx0OgogMGluIDBpbiAwaW4gMGluJz4KIDx0cj4KICA8dGQgc3R5bGU9J3BhZGRpbmc6Ljc1cHQgLjc1cHQgLjc1cHQgLjc1cHQnPgogIDxwIGNsYXNzPU1zb05vcm1hbD4kUm9vdC9pbmNsdWRlLzwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIGFsbCB0aGUgcHVibGljIGhlYWRlciBmaWxlcy48L3A+CiAgPC90ZD4KIDwvdHI+CiA8dHI+CiAgPHRkIHN0eWxlPSdwYWRkaW5nOi43NXB0IC43NXB0IC43NXB0IC43NXB0Jz4KICA8cCBjbGFzcz1Nc29Ob3JtYWw+JG91dHB1dDwvcD4KICA8L3RkPgogIDx0ZCBzdHlsZT0ncGFkZGluZzouNzVwdCAuNzVwdCAuNzVwdCAuNzVwdCc+CiAgPHAgY2xhc3M9TXNvTm9ybWFsPmNvbnRhaW5zIHRoZSBsaWJyYXJpZXMgZm9yIHN0YXRpYy9keW5hbWljIGxpbmtpbmcgb3IKICBleGVjdXRhYmxlIHByb2dyYW1zLjwvcD4KICA8L3RkPgogPC90cj4KPC90YWJsZT4KCjxwPjxiPlRoZSBmb2xsb3dpbmcgZGlhZ3JhbSBzaG93cyB0aGUgbWFpbiBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHRoZQpJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGU6PC9iPiA8L3A+Cgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpY3UtTk5OTjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8PC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7b3V0cHV0Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5pY3U8L3ByZT4KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgX19fX198X19fX188c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+X19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsgPC9zcGFuPnwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+fCAmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyA8L3NwYW4+Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfCZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PC9wcmU+CjxwcmU+IGxpYnJhcmllczxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5wcm9ncmFtcyAmbmJzcDtpbmNsdWRlJm5ic3A7ZGF0YSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzb3VyY2UmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PC9wcmU+CjxwcmU+IChidWlsdCk8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+KGJ1aWx0KTxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4oYnVpbHQpJm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cmVhZG1lLmh0bWwgbGljZW5zZS5odG1sPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB8PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX19fXzwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDs8L3NwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8L3ByZT4KPHByZT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+Y29tbW9uPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPmkxOG4mbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+dGVzdDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5leHRyYTxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj50b29sczxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7IDwvc3Bhbj5zYW1wbGVzPC9wcmU+CjxwcmU+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPiZuYnNwOyAmbmJzcDs8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsgPC9zcGFuPjwvcHJlPgo8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgX19ffF9fXyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvc3Bhbj5fX198X19fX19fX19fX19fX19fX188L3ByZT4KPHByZT48c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnw8c3BhbiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L3NwYW4+fDxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvc3Bhbj58PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPnwgPC9wcmU+CjxwcmU+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+aW50bHRlc3QgY2ludGx0c3QgbWFrZWNvbnYgY3Rlc3RmdyBnZW5yYjxzcGFuIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvc3Bhbj4uLi4uPC9wcmU+Cgo8aDM+PGEgbmFtZT1BUEk+PC9hPjx1PkFQSSBPdmVydmlldzwvdT48L2gzPgoKPHA+SW4gdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSwgdGhlcmUgYXJlIHR3byBjYXRlZ29yaWVzOiA8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDE1IGxldmVsMSBsZm8xNTt0YWItc3RvcHM6bGlzdCAuNWluJz5Mb3ctbGV2ZWwgVW5pY29kZS9SZXNvdXJjZQogICAgIEF0dHJpYnV0ZXM6ICg8c3Ryb25nPmljdXVjPC9zdHJvbmc+IGxpYnJhcnkpPC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDE1IGxldmVsMiBsZm8xNTt0YWItc3RvcHM6bGlzdCAxLjBpbic+PGEKICAgICAgaHJlZj0iZG9jcy91dGlsQ0wuaHRtbCI+VXRpbGl0eSBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvY29udmVyc2lvbl9pbnRlcmZhY2UuaHRtIj5Db252ZXJzaW9uIEludGVyZmFjZTwvYT48L2xpPgogPC91bD4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNSBsZXZlbDEgbGZvMTU7dGFiLXN0b3BzOmxpc3QgLjVpbic+SGlnaC1sZXZlbCBVbmljb2RlCiAgICAgSW50ZXJuYXRpb25hbGl6YXRpb246ICg8c3Ryb25nPmljdWkxOG48L3N0cm9uZz4gbGlicmFyeSk8L2xpPgogPHVsIHR5cGU9Y2lyY2xlPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsMTUgbGV2ZWwyIGxmbzE1O3RhYi1zdG9wczpsaXN0IDEuMGluJz48YQogICAgICBocmVmPSJkb2NzL2JvdW5kQ0wuaHRtbCI+VGV4dCBCb3VuZGFyeSBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvY29sbGF0ZUNMLmh0bWwiPkNvbGxhdGlvbiBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPjxhCiAgICAgIGhyZWY9ImRvY3MvZm9ybWF0Q0wuaHRtbCI+Rm9ybWF0dGluZyBDbGFzc2VzPC9hPjwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0OmwxNSBsZXZlbDIgbGZvMTU7dGFiLXN0b3BzOmxpc3QgMS4waW4nPlRyYW5zbGl0ZXJhdG9yCiAgICAgIENsYXNzZXM8L2xpPgogPC91bD4KPC91bD4KCjxwPlNlZSA8QSBIUkVGPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vaWN1L2RldmVsb3AvY29kZXN0ZHMuaHRtbCI+SW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIENvZGluZyBHdWlkZWxpbmVzPC9BPgpmb3IgYSBkaXNjdXNzaW9uIG9mIGNvZGUgY29udmVudGlvbnMgY29tbW9uIHRvIGFsbCBsaWJyYXJ5IGNsYXNzZXMuIDwvcD4KCjxwPlNlZSBhbHNvIDxhIGhyZWY9Ii4uL2h0bWwvYWluZGV4Lmh0bWwiPmh0bWwvYWluZGV4Lmh0bWw8L2E+IGZvciBhbiBhbHBoYWJldGljYWwKaW5kZXgsIGFuZCA8YSBocmVmPSIuLi9odG1sL0hJRVJqYXZhLmh0bWwiPmh0bWwvSElFUmphdmEuaHRtbDwvYT4gZm9yIGEKaGllcmFyY2hpY2FsIGluZGV4IHRvIGRldGFpbGVkIEFQSSBkb2N1bWVudGF0aW9uLiA8YnI+CiZuYnNwOyA8YnI+CiZuYnNwOyA8L3A+Cgo8aDM+PGEgbmFtZT1QbGF0Zm9ybURlcGVuZGVuY2llcz48L2E+PHU+UGxhdGZvcm0gRGVwZW5kZW5jaWVzPC91PjwvaDM+Cgo8cD5UaGUgcGxhdGZvcm0gZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBpc29sYXRlZCBpbnRvIHRoZSBmb2xsb3dpbmcgNCBmaWxlczogPC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNCBsZXZlbDEgbGZvMTg7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHU+cGxhdGZvcm0uaC5pbjo8L3U+CiAgICAgUGxhdGZvcm0tZGVwZW5kZW50IHR5cGVkZWZzIGFuZCBkZWZpbmVzOjwvbGk+CjwvdWw+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEzIGxldmVsMSBsZm8yMDt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5YUF9DUExVU1BMVVMgaXMgZGVmaW5lZCBmb3IgQysrPC9wPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxMyBsZXZlbDEgbGZvMjA7dGFiLXN0b3BzOgpsaXN0IC41aW4nPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToKMTIuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbCc+tzxzcGFuIHN0eWxlPSdmb250OjcuMHB0ICJUaW1lcyBOZXcgUm9tYW4iJz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+Ym9vbF90LCBUUlVFIGFuZCBGQUxTRSwgaW50OF90LCBpbnQxNl90IGV0Yy48L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEzIGxldmVsMSBsZm8yMDt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5VX0VYUE9SVCBhbmQgVV9JTVBPUlQgZm9yIHNwZWNpZnlpbmcgZHluYW1pYyBsaWJyYXJ5CmltcG9ydCBhbmQgZXhwb3J0PC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw2IGxldmVsMSBsZm8yMzt0YWItc3RvcHM6bGlzdCAuNWluJz48dT5wdXRpbC5jOjwvdT4KICAgICBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIHZhcmlvdXMgZnVuY3Rpb25zIHRoYXQgYXJlIHBsYXRmb3JtCiAgICAgZGVwZW5kZW50OiAoZGVjbGFyZWQgaW4gcHV0aWwuaCk8L2xpPgo8L3VsPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxIGxldmVsMSBsZm8yNTt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5pY3VfaXNOYU4sIGljdV9pc0luZmluaXRlKGRvdWJsZSksIGljdV9nZXROYU4oKTsKaWN1X2dldEluZmluaXR5IGZvciBoYW5kbGluZyBzcGVjaWFsIGZsb2F0aW5nIHBvaW50IHZhbHVlczwvcD4KCjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLXJpZ2h0Oi41aW47bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgphdXRvO21hcmdpbi1sZWZ0OjEuMGluO3RleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMjU7dGFiLXN0b3BzOgpsaXN0IC41aW4nPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O21zby1iaWRpLWZvbnQtc2l6ZToKMTIuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbCc+tzxzcGFuIHN0eWxlPSdmb250OjcuMHB0ICJUaW1lcyBOZXcgUm9tYW4iJz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+aWN1X3R6c2V0LCBpY3VfdGltZXpvbmUsIGljdV90em5hbWUgYW5kIHRpbWUgZm9yCnJlYWRpbmcgcGxhdGZvcm0gc3BlY2lmaWMgdGltZSBhbmQgdGltZXpvbmUgaW5mb3JtYXRpb248L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzI1O3RhYi1zdG9wczoKbGlzdCAuNWluJz48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6CjEyLjBwdDtmb250LWZhbWlseTpTeW1ib2wnPrc8c3BhbiBzdHlsZT0nZm9udDo3LjBwdCAiVGltZXMgTmV3IFJvbWFuIic+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPmljdV9nZXREZWZhdWx0RGF0YURpcmVjdG9yeSwgaWN1X2dldERlZmF1bHRMb2NhbGVJRCBmb3IKcmVhZGluZyB0aGUgbG9jYWxlIHNldHRpbmcgYW5kIGRhdGEgZGlyZWN0b3J5PC9wPgoKPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CmF1dG87bWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwxIGxldmVsMSBsZm8yNTt0YWItc3RvcHM6Cmxpc3QgLjVpbic+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7bXNvLWJpZGktZm9udC1zaXplOgoxMi4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sJz63PHNwYW4gc3R5bGU9J2ZvbnQ6Ny4wcHQgIlRpbWVzIE5ldyBSb21hbiInPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5pY3VfaXNCaWdFbmRpYW4gZm9yIGZpbmRpbmcgdGhlIGVuZGlhbmVzcyBvZiB0aGUKcGxhdGZvcm08L3A+Cgo8cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKYXV0bzttYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzI1O3RhYi1zdG9wczoKbGlzdCAuNWluJz48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDttc28tYmlkaS1mb250LXNpemU6CjEyLjBwdDtmb250LWZhbWlseTpTeW1ib2wnPrc8c3BhbiBzdHlsZT0nZm9udDo3LjBwdCAiVGltZXMgTmV3IFJvbWFuIic+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPmljdV9uZXh0RG91YmxlIGlzIHVzZWQgc3BlY2lmaWNhbGx5IGJ5IHRoZSBDaG9pY2VGb3JtYXQKQVBJLjwvcD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNyBsZXZlbDEgbGZvMjg7dGFiLXN0b3BzOmxpc3QgLjVpbic+PHU+bXV0ZXguaCBhbmQgbXV0ZXguY3BwPC91PjoKICAgICBDb2RlIGZvciBkb2luZyBzeW5jaHJvbml6YXRpb24gaW4gbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbnMuIElmIHlvdSB3aXNoCiAgICAgdG8gdXNlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBpbiBhIG11bHRpdGhyZWFkZWQKICAgICBhcHBsaWNhdGlvbiwgeW91IG11c3QgcHJvdmlkZSBhIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmUgdGhhdCB0aGUgY2xhc3NlcwogICAgIGNhbiB1c2UgdG8gcHJvdGVjdCB0aGVpciBnbG9iYWwgZGF0YSBhZ2FpbnN0IHNpbXVsdGFuZW91cyBtb2RpZmljYXRpb25zLgogICAgIFNlZSA8YSBocmVmPSJkb2NzL211dGV4Lmh0bWwiPmRvY3MvbXV0ZXguaHRtbDwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KIDx1bCB0eXBlPWNpcmNsZT4KICA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6CiAgICAgIGF1dG87bXNvLWxpc3Q6bDcgbGV2ZWwyIGxmbzI4O3RhYi1zdG9wczpsaXN0IDEuMGluJz5XZSBzdXBwbHkgc2FtcGxlCiAgICAgIGltcGxlbWVudGF0aW9ucyBmb3IgV2luTlQsIFdpbjk1LCBXaW45OCwgU3VuL1NvbGFyaXMsIFJlZEhhdC9MaW51eCwgSFAtVVgKICAgICAgYW5kIGZvciBBSVggb24gYW4gUlMvNjAwMC48L2xpPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPklmIHlvdSBhcmUgY2hhbmdpbmcKICAgICAgdGhlIHBsYXRmb3JtLWRlcGVuZGVudCBmaWxlcywgcHR5cGVzLmggYW5kIHB1dGlsLmggbWF5IGFsc28gYmUgaW50ZXJlc3RpbmcsCiAgICAgIGJ1dCBzaG91bGRuJ3QgaGF2ZSB0byBiZSBjaGFuZ2VkLiBJZiB5b3UgdGhpbmsgYW55IG90aGVyIGZpbGVzIHRoYW4gdGhlCiAgICAgIG9uZXMgbWVudGlvbmVkIGFib3ZlIGhhdmUgcGxhdGZvcm0gZGVwZW5kZW5jaWVzLCBwbGVhc2UgY29udGFjdCB1cy48L2xpPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPkZvciB0aGUgSW50bHRlc3QgdGVzdAogICAgICBzdWl0ZSwgaW50bHRlc3QuY3BwIGluICZxdW90O2ljdVxzb3VyY2VcdGVzdFxpbnRsdGVzdFwmcXVvdDsgY29udGFpbnMgdGhlCiAgICAgIG1ldGhvZCBwYXRobmFtZUluQ29udGV4dCwgd2hpY2ggbXVzdCBhbHNvIGJlIGFkYXB0ZWQgdG8gYW55IG5ldyBwbGF0Zm9ybS48L2xpPgogPC91bD4KPC91bD4KCjx1bCB0eXBlPWRpc2M+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTQgbGV2ZWwxIGxmbzE4O3RhYi1zdG9wczpsaXN0IC41aW4nPnVkYXRhLmg6IFRoZSBkYXRhLWFjY2Vzc2luZwogICAgIGludGVyZmFjZSBpbiBJQ1UgaXMgaW1wbGVtZW50ZWQgc3VjaCB0aGF0IHRoZXJlIGlzIGEgbG90IG9mIGZsZXhpYmlsaXR5CiAgICAgZm9yIHJlYWRpbmcgYSBkYXRhIGZpbGUuPHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9zcGFuPkVhY2gKICAgICBwbGF0Zm9ybSBjYW4gdHVuZSB0aGUgcGVyZm9ybWFuY2Ugb2YgZmlsZSBhY2Nlc3NpbmcgZm9yIGl0cyBlbnZpcm9ubWVudCBieQogICAgIGNob29zaW5nIHRvIGltcGxlbWVudCBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zOjwvbGk+CjwvdWw+Cgo8dWwgdHlwZT1kaXNjPgogPHVsIHR5cGU9Y2lyY2xlPgogIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDoKICAgICAgYXV0bzttc28tbGlzdDpsNyBsZXZlbDIgbGZvMjg7dGFiLXN0b3BzOmxpc3QgMS4waW4nPkRMTDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0Omw3IGxldmVsMiBsZm8yODt0YWItc3RvcHM6bGlzdCAxLjBpbic+TWVtb3J5IG1hcDwvbGk+CiAgPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OgogICAgICBhdXRvO21zby1saXN0Omw3IGxldmVsMiBsZm8yODt0YWItc3RvcHM6bGlzdCAxLjBpbic+UGxhaW4gdGV4dCA8L2xpPgogPC91bD4KPC91bD4KCjxoMz48YSBuYW1lPUltcG9ydGFudE5vdGVzPjwvYT48dT5JbXBvcnRhbnQgSW5zdGFsbGF0aW9uIE5vdGVzIDwvdT48L2gzPgoKPHA+PHN0cm9uZz5XaW4zMiBQbGF0Zm9ybTwvc3Ryb25nPjwvcD4KCjxwPklmIHlvdSBhcmUgYnVpbGRpbmcgb24gdGhlIFdpbjMyIHBsYXRmb3JtLCBpdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3UKdW5kZXJzdGFuZCBhIGZldyBidWlsZCBkZXRhaWxzOiA8L3A+Cgo8cD48dT5ETEwgZGlyZWN0b3JpZXMgYW5kIHRoZSBQQVRIIHNldHRpbmc6PC91PiBBcyBkZWxpdmVyZWQsIHRoZSBJbnRlcm5hdGlvbmFsCkNvbXBvbmVudHMgZm9yIFVuaWNvZGUgYnVpbGQgYXMgc2V2ZXJhbCBETExzLiBUaGVzZSBETExzIGFyZSBwbGFjZWQgaW4gdGhlCmRpcmVjdG9yaWVzICZxdW90O2ljdVxiaW5cRGVidWcmcXVvdDsgYW5kICZxdW90O2ljdVxiaW5cUmVsZWFzZSZxdW90Oy4mbmJzcDsKWW91IG11c3QgYWRkIGVpdGhlciBvZiB0aGVzZSBkaXJlY3RvcmllcyB0byB0aGUgUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbgp5b3VyIHN5c3RlbSwgb3IgYW55IGV4ZWN1dGFibGVzIHlvdSBidWlsZCB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcwpJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgbGlicmFyaWVzLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgdGhlCkRMTCBmaWxlcyBpbnRvIGEgZGlyZWN0b3J5IGFscmVhZHkgaW4geW91ciBQQVRILCBidXQgd2UgZG8gbm90IHJlY29tbWVuZCB0aGlzCi0tIHlvdSBjYW4gd2luZCB1cCB3aXRoIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgRExMLCBhbmQgd2luZCB1cCB1c2luZyB0aGUgd3JvbmcKb25lLiA8L3A+Cgo8cD48dT5UbyBjaGFuZ2UgeW91ciBQQVRIOjwvdT4mbmJzcDsgRG8gdGhpcyB1bmRlciBOVCBieSB1c2luZyB0aGUgU3lzdGVtCmNvbnRyb2wgcGFuZWwuIFBpY2sgdGhlICZxdW90O0Vudmlyb25tZW50JnF1b3Q7IHRhYiwgc2VsZWN0IHRoZSB2YXJpYWJsZSBQQVRICmluIHRoZSBsb3dlciBib3guJm5ic3A7IEluIHRoZSAmcXVvdDt2YWx1ZSZxdW90OyBib3gsIGFwcGVuZCB0aGUgc3RyaW5nCiZxdW90Oztkcml2ZTpcLi4uXGljdVxiaW5cRGVidWcmcXVvdDsgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aCBzdHJpbmcuJm5ic3A7IElmCnRoZXJlIGlzIG5vdGhpbmcgdGhlcmUsIGp1c3QgdHlwZSBpbiAmcXVvdDtkcml2ZTpcLi4uXGljdVxiaW5cRGVidWcmcXVvdDsuCkNsaWNrIHRoZSBTZXQgYnV0dG9uLCB0aGVuIHRoZSBPayBidXR0b24uIDwvcD4KCjxwPjx1Pkxpbmsgd2l0aCBSdW50aW1lIGxpYnJhcmllczo8L3U+IEFsbCB0aGUgRExMcyBsaW5rIHdpdGggdGhlIEMgcnVudGltZQpsaWJyYXJ5ICZxdW90O0RlYnVnIE11bHRpdGhyZWFkZWQgRExMJnF1b3Q7IG9yICZxdW90O011bHRpdGhyZWFkZWQgRExMLiZxdW90OwooVGhpcyBpcyBjaGFuZ2VkIHRocm91Z2ggdGhlIFByb2plY3QgU2V0dGluZ3MgZGlhbG9nLCBvbiB0aGUgQy9DKysgdGFiLCB1bmRlcgpDb2RlIEdlbmVyYXRpb24uKSBJdCBpcyBpbXBvcnRhbnQgdGhhdCBhbnkgZXhlY3V0YWJsZSBvciBvdGhlciBETEwgeW91IGJ1aWxkCndoaWNoIHVzZXMgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBETExzIGxpbmtzIHdpdGggdGhlc2UKcnVudGltZSBsaWJyYXJpZXMgYXMgd2VsbC4gSWYgeW91IGRvIG5vdCBkbyB0aGlzLCB5b3Ugd2lsbCBzZWVtaW5nbHkgZ2V0IG1lbW9yeQplcnJvcnMgd2hlbiB5b3UgcnVuIHRoZSBleGVjdXRhYmxlLiA8YnI+CiZuYnNwOyA8L3A+Cgo8cD48YSBuYW1lPU9TMzkwPjxzdHJvbmc+T1MvMzkwIFBsYXRmb3JtPC9zdHJvbmc+PC9wPgoKPHA+SWYgeW91IGFyZSBidWlsZGluZyBvbiB0aGUgT1MvMzkwIFVOSVggU3lzdGVtIFNlcnZpY2VzIHBsYXRmb3JtLCBpdCBpcwppbXBvcnRhbnQgdGhhdCB5b3UgdW5kZXJzdGFuZCBhIGZldyBkZXRhaWxzOjwvcD4KPHVsPgogICAgPGxpPlRoZSBnbnUgdXRpbGl0aWVzIGdtYWtlIGFuZCBnemlwL2d1bnppcCBhcmUgbmVlZGVkIGFuZCBjYW4gYmUgb2J0YWluZWQgZm9yCiAgICAgICAgT1MvMzkwIGZyb20gPGEgaHJlZj0iaHR0cDovL3d3dy5ta3MuY29tLyI+aHR0cDovL3d3dy5ta3MuY29tLzwvYT4uCiAgICAgICAgU2VhcmNoIGZvciBPUy8zOTAsIHJlZ2lzdGVyLCBhbmQgZm9sbG93IGRvd25sb2FkIGRpcmVjdGlvbnMuPC9saT4KICAgIDxsaT5FbmNvZGluZyBjb25zaWRlcmF0aW9uczogVGhlIHNvdXJjZSBjb2RlIGFzc3VtZXMgdGhhdCBpdCBpcyBjb21waWxlZAogICAgICAgIHdpdGggY29kZXBhZ2UgMTA0NyAodG8gYmUgZXhhY3QsIHRoZSBVTklYIFN5c3RlbSBTZXJ2aWNlcyB2YXJpYW50IG9mIGl0KS4KICAgICAgICBUaGUgcGF4IGNvbW1hbmQgY29udmVydHMgYWxsIG9mIHRoZSBzb3VyY2UgY29kZSBmaWxlcyBmcm9tIEFTQ0lJCiAgICAgICAgdG8gY29kZXBhZ2UgMTA0NyAoVVNTKSBFQkNESUMuIEhvd2V2ZXIsIHNvbWUgZmlsZXMgYXJlIGJpbmFyeSBmaWxlcwogICAgICAgIGFuZCBtdXN0IG5vdCBiZSBjb252ZXJ0ZWQsIG9yIG11c3QgYmUgY29udmVydGVkIGJhY2sgdG8gdGhlaXIgb3JpZ2luYWwKICAgICAgICBzdGF0ZS4KICAgICAgICBUaG9zZSBmaWxlcyBhcmU6PHVsPgogICAgICAgIDxsaT5BbGwgdGhlIC5icmsgZmlsZXMgbG9jYXRlZCBpbiB0aGUgaWN1L2RhdGEgZGlyZWN0b3J5IChpY3UvZGF0YS8qLmJyayk8L2xpPgogICAgICAgIDxsaT5pY3Uvc291cmNlL3Rlc3QvdGVzdGRhdGEvdW5pLXRleHQudHh0PC9saT4KICAgICAgICA8bGk+aWN1L3NvdXJjZS90ZXN0L3Rlc3RkYXRhL3RoMTgwNTcudHh0PC9saT4KICAgICAgICA8L3VsPgogICAgICAgIFN1Y2ggYSBjb252ZXJzaW9uIGNhbiBiZSBkb25lIHVzaW5nIGljb252Ojxicj4KICAgICAgICA8Y29kZT5pY29udiAtZiBJQk0tMTA0NyAtdCBJU084ODU5LTEgdW5pLXRleHQudHh0ID4gdW5pLXRleHQudHh0PC9jb2RlPjwvbGk+CiAgICA8bGk+RExMIGRpcmVjdG9yaWVzIGFuZCB0aGUgTElCUEFUSCBzZXR0aW5nOgogICAgICAgIEJ1aWxkaW5nIGFuZCB0ZXN0aW5nIElDVSBuZWVkcyB0aGUgSUNVIGxpYnJhcmllcyBvbiB0aGUgTElCUEFUSC4KICAgICAgICBJbiBvdGhlciB3b3JkcywgdGhlIExJQlBBVEggc2hvdWxkIGNvbnRhaW4KICAgICAgICAoZWFjaCBwYXRoIHByZXBlbmRlZCB3aXRoIHRoZSByb290IGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBpY3UgZGlyZWN0b3J5KToKICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5pY3Uvc291cmNlL2NvbW1vbjwvbGk+CiAgICAgICAgICAgIDxsaT5pY3Uvc291cmNlL2kxOG48L2xpPgogICAgICAgICAgICA8bGk+aWN1L3NvdXJjZS90b29scy9jdGVzdGZ3PC9saT4KICAgICAgICAgICAgPGxpPmljdS9zb3VyY2UvdG9vbHMvdG9vbHV0aWw8L2xpPgogICAgICAgICAgICA8bGk+aWN1L3NvdXJjZS9leHRyYS91c3RkaW88L2xpPgogICAgICAgIDwvdWw+PC9saT4KICAgIDxsaT48cD5PUy8zOTAgc3VwcG9ydHMgYm90aCBuYXRpdmUgUy8zOTAgaGV4YWRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgYW5kLCB3aXRoIFZlcnNpb24KICAgICAgICAyLjYgYW5kIGxhdGVyLCBJRUVFIGJpbmFyeQogICAgICAgIGZsb2F0aW5nIHBvaW50LiBUaGlzIGlzIGEgY29tcGlsZSB0aW1lIG9wdGlvbi4gQXBwbGljYXRpb25zIGJ1aWx0IHdpdGggSUVFRQogICAgICAgIHNob3VsZCB1c2UgSUNVIGRsbHMgdGhhdCBhcmUKICAgICAgICBidWlsdCB3aXRoIElFRUUgKGFuZCB2aWNlIHZlcnNhKS4gVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIElFRUUzOTA9MSB3aWxsIGNhdXNlCiAgICAgICAgdGhlIE9TLzM5MCB2ZXJzaW9uCiAgICAgICAgb2YgSUNVIHRvIGJlIGJ1aWx0IHdpdGggSUVFRSBmbG9hdGluZyBwb2ludC4gVGhlIGRlZmF1bHQgaXMgbmF0aXZlIGhleGFkZWNpbWFsCiAgICAgICAgZmxvYXRpbmcgcG9pbnQuPGJyPgogICAgICAgIDxlbT5JbXBvcnRhbnQ6IDwvZW0+Q3VycmVudGx5IChJQ1UgMS40LjIpLCBuYXRpdmUgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydAogICAgICAgIGlzIHN1ZmZpY2llbnQgZm9yIGNvZGVwYWdlIGNvbnZlcnNpb24sIHJlc291cmNlIGJ1bmRsZSBhbmQgVW5pY29kZVN0cmluZyBvcGVyYXRpb25zLAogICAgICAgIGJ1dCB0aGUgRm9ybWF0IEFQSXMsIGVzcGVjaWFsbHkgQ2hvaWNlRm9ybWF0LCByZXF1aXJlIElFRUUgYmluYXJ5IGZsb2F0aW5nIHBvaW50LjwvcD4KICAgICAgICA8cD5FeGFtcGxlcyBmb3IgY29uZmlndXJpbmcgSUNVOjxicj4KICAgICAgICBEZWJ1ZyBidWlsZDogPGNvZGU+SUVFRTM5MD0xIC4vY29uZmlndXJlPC9jb2RlPjxicj4KICAgICAgICBSZWxlYXNlIGJ1aWxkOiA8Y29kZT5DRkxBR1M9LTIgSUVFRTM5MD0xIC4vY29uZmlndXJlPC9jb2RlPjwvcD48L2xpPgogICAgPGxpPlNpbmNlIHRoZSBkZWZhdWx0IG1ha2Ugb24gT1MvMzkwIGlzIG5vdCBnbWFrZSwgcGtnZGF0YSB0b29sIHJlcXVpcmVzIHRoYXQgdGhlIGVudmlyb25tZW50CiAgICAgICAgdmFyaWFibGUgTUFLRSBiZSBzZXQgdG8gcGF0aCB0byBnbWFrZS48L2xpPiAKICAgIDxsaT5UaGUgbWFrZWRlcCBleGVjdXRhYmxlIHRoYXQgaXMgdXNlZCB3aXRoIHRoZSBPUy8zOTAgSUNVIGJ1aWxkCiAgICAgICAgcHJvY2VzcyBpcyBub3Qgc2hpcHBlZCB3aXRoIElDVS4gSXQgaXMgYXZhaWxhYmxlIGF0IHRoZQogICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuczM5MC5pYm0uY29tL3Byb2R1Y3RzL29lL2JweGExdHkyLmh0bWwiPk9TLzM5MCBVTklYIC0gVG9vbHMgYW5kIFRveXM8L2E+CiAgICAgICAgc2l0ZS4gVGhlIFBBVEgKICAgICAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBzaG91bGQgYmUgdXBkYXRlZCB0byBjb250YWluIHRoZSBsb2NhdGlvbiBvZiB0aGlzCiAgICAgICAgZXhlY3V0YWJsZSBwcmlvciB0byBidWlsZC4KICAgICAgICBBbHRlcm5hdGl2ZWx5LCBtYWtlZGVwIG1heSBiZSBtb3ZlZCBpbnRvIGFuIGV4aXN0aW5nIFBBVEggZGlyZWN0b3J5LjwvbGk+CiAgICA8bGk+V2hlbiBydW5uaW5nIHRoZSB0ZXN0IHN1aXRlLCB0aGUgVFogZW52aXJvbm1lbnQgdmFyaWFibGUgc2hvdWxkIGJlIHNldCB0bwogICAgICAgIGV4cG9ydCBUWj0mcXVvdDtQU1Q4UERUJnF1b3Q7IHNvCiAgICAgICAgdGhhdCB0aW1lIHpvbmUgY29tcGFyaXNvbnMgYXJlIGNvcnJlY3QuPC9saT4KPC91bD4KCjxwPjxhIG5hbWU9T1M0MDA+PHN0cm9uZz5PUy80MDAgUGxhdGZvcm08L3N0cm9uZz48L2E+PC9wPgoKIElDVSBSZWZlcmVuY2UgUmVsZWFzZSAxLjQuMCBjb250YWlucyBwYXJ0aWFsIHN1cHBvcnQgZm9yIHRoZSAgNDAwCnBsYXRmb3JtLCBidXQgYWRkaXRpb25hbCB3b3JrIGJ5IHRoZSB1c2VyIGlzIGN1cnJlbnRseSBuZWVkZWQgdG8gZ2V0Cml0IHRvIGJ1aWxkIGNvbXBsZXRlbHkuCiBBIGZ1dHVyZSByZWxlYXNlIG9mIHRoZSBJQ1Ugc2hvdWxkIHdvcmsgb3V0LW9mLXRoZS1ib3gKdW5kZXIgT1MvNDAwLgo8VUw+CiAgIDxMST4gUmVxdWlyZW1lbnRzOgogICAgICA8VUw+CiAgICAgICAgICA8TEk+ICAgIFFTSEVMTCBpbnRlcnByZXRlciBpbnN0YWxsZWQgKGluc3RhbGwgYmFzZSBvcHRpb24gMzAsICBvcGVyYXRpbmcKc3lzdGVtKQogICAgICAgICA8TEk+ICAgIFFTaGVsbCBVdGlsaXRpZXMsICBQUlBRICA1Nzk5LVhFSAogICAgICAgICAgPExJPiAgICAgSUxFIEMrKyBmb3IgQVMvNDAwLCAgUFJQUSA1Nzk5LUdEVwogICAgICAgICAgIDxMST4gICAgR05VIGZhY2lsaXRpZXMgICh0aGUgZ251IGZhY2lsaXRpZXMgYXJlIGN1cnJlbnRseSBhdmFpbGFibGUgYnkgcmVxdWVzdCBvbmx5LiAgU2VuZCBlLW1haWwgdG8gPEEgSFJFRj0ibWFpbHRvOnJjaGFzZ280MDBAdXMuaWJtLmNvbSI+cmNoYXNnbzQwMEB1cy5pYm0uY29tPC9BPiApCgogICAgICA8UD48L1VMPiA8IS0tIGVuZCByZXF1aXJlbWVudHMgLS0+CiAgIDxMST4gQnVpbGQgZW52aXJvbm1lbnQgc2V0dXA6CiAgICAgIDxPTD4KPExJPiBDcmVhdGUgQVM0MDAgdGFyZ2V0IGxpYnJhcnkuICAgVGhpcyBsaWJyYXJ5IHdpbGwgYmUgdGhlIHRhcmdldCAgZm9yIHRoZQpyZXN1bHRpbmcgIG1vZHVsZXMsIHByb2dyYW1zIGFuZCBzZXJ2aWNlIHByb2dyYW1zLiAgWW91IHdpbGwgc3BlY2lmeSB0aGlzCmxpYnJhcnkgb24gdGhlIE9VVFBVVERJUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiBzdGVwIDIuCjxMST4gIFNldCB1cCB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB5b3VyIGJ1aWxkIHByb2Nlc3MgKHVzZQpBRERFTlZWQVIgb3IgV1JLRU5WVkFSIENMIGNvbW1hbmRzKQo8VUw+CiAgICAgIENDICAtICcvdXNyL2Jpbi9pY2MnPEJSPgogICAgICBDWFggIC0gJyAvdXNyL2Jpbi9pY2MnPEJSPgogICAgICBNQUtFICAgLSAnL3Vzci9iaW4vZ21ha2UnPEJSPgogICAgICBPVVRQVVRESVIgIC0gPEk+aWRlbnRpZmllcyB0YXJnZXQgYXM0MDAgbGlicmFyeSBmb3IgKm1vZHVsZSwgKnBnbSBhbmQKKnNydnBnbSBvYmplY3RzPC9JPgo8UD48L1VMPgo8TEk+IEFkZCBRQ1hYTiwgIHRvIHlvdXIgYnVpbGQgcHJvY2VzcyBsaWJyYXJ5IGxpc3QuICBUaGlzIHJlc3VsdHMgaW4gdGhlCnJlc29sdXRpb24gb2YgQ1JUQ1BQTU9EIHVzZWQgYnkgdGhlIGljYyBjb21waWxlcgo8TEk+IENvbmZpZ3VyZSB0aGUgTWFrZWZpbGVzIChzZWUgY29uZmlndXJlIGJlbG93KSAgTm90ZTogIFZlcmlmeSB0aGF0IHRoZQptaC1vczQwMCBjb25maWd1cmUgIGZpbGUgaXMgdXNlZC4KPFVMPiAgICAgIAogICA8TEk+IFJ1biAnY29uZmlndXJlIC0taG9zdD1hczQwMC1vczQwMCcgCiAgIDxMST4gVGhlICdjbGVhbicgYW5kICdpbnN0YWxsJyB0YXJnZXRzIHdpbGwgbm90IHdvcmsgd2l0aG91dCBjaGFuZ2VzCmJlY2F1c2Ugb2Ygc3ltYm9saWMgbGlua3MuIFRvIGRlbGV0ZSB0aGUgdGFyZ2V0IG1vZHVsZSwgcHJvZ3JhbSwgb3Igc2VydmljZSBwcm9ncmFtcyByZXBsYWNlIDxUVD5ybSAtcmY8L1RUPiB3aXRoIDxCPiQoUk1WKTwvQj4sIGFuZCBpbiB0aGUKICAgbGlicmFyeSBpbnN0YWxsYXRpb24gdGFyZ2V0cyAoaW5zdGFsbC1saWJyYXJ5KSBjaGFuZ2UKICAgPFRUPiQoSU5TVEFMTCk8L1RUPiB0byA8Qj48VFQ+JChJTlNUQUxMLVMpPC9UVD48L0I+Lgo8UD48L1VMPiAKCjxMST4gZ21ha2UgLWUgICAoLWUgdG8gcGlja3VwIHRoZSBjb21waWxlcnMpCiAgICAgIDxQPjwvT0w+IDwhLS0gZW5kIGJ1aWxkIGVudmlyb25tZW50IC0tPgo8L1VMPgoKTm90ZSBvbiBOVUxMIHBvaW50ZXIgY2hlY2tzOgo8VUw+CkluIGNvbW1vbi91Y252LmMgYW5kIGNvbW1vbi91bmlzdHIuYyAoc2VhcmNoIGZvciBVX01BWF9QVFIpLCB0aGVyZSBhcmUKYWRkaXRpb25hbCBjaGVja3MgZm9yIE5VTEwgcG9pbnRlcnMuICBUaGlzIGlzIGJlY2F1c2UgcG9pbnRlcgpjb21wYXJpc29uIHdvcmtzIGRpZmZlcmVudGx5IG9uIHRoZSBBUy80MDAgYXJjaGl0ZWN0dXJlLgo8L1VMPgoKPGgzPjxhIG5hbWU9SG93VG9JbnN0YWxsPjwvYT48dT5Ib3cgdG8gSW5zdGFsbC9CdWlsZCBvbiBXaW4gTlQ8L3U+PC9oMz4KCjxwPkJ1aWxkaW5nIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSByZXF1aXJlczogPC9wPgoKPHVsIHR5cGU9ZGlzYz4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxNiBsZXZlbDEgbGZvMzE7dGFiLXN0b3BzOmxpc3QgLjVpbic+TWljcm9zb2Z0IE5UIDMuNTEgb3IgYWJvdmU8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDE2IGxldmVsMSBsZm8zMTt0YWItc3RvcHM6bGlzdCAuNWluJz5NaWNyb3NvZnQgVmlzdWFsIEMrKyA2LjAKICAgICAoU2VydmljZSBQYWNrIDIgaXMgcmVxdWlyZWQgdG8gd29yayB3aXRoIHRoZSByZWxlYXNlIGJ1aWxkIG9mIG1heCBzcGVlZAogICAgIG9wdGltaXphdGlvbikuPC9saT4KPC91bD4KCjxwPlRoZSBzdGVwcyBhcmU6IDwvcD4KCjxvbCBzdGFydD0xIHR5cGU9MT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxMSBsZXZlbDEgbGZvMzQ7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW56aXAgdGhlIGljdS1YWFhYLnppcAogICAgIGZpbGUsIHR5cGUgJnF1b3Q7dW56aXAgLWEgaWN1LVhYWFguemlwIC1kIGRyaXZlOlxkaXJlY3RvcnkmcXVvdDsgdW5kZXIKICAgICBjb21tYW5kIHByb21wdCBvciB1c2UgV2luWmlwLiZuYnNwOyBkcml2ZTpcZGlyZWN0b3J5XGljdSBpcyB0aGUgcm9vdAogICAgICgkUm9vdCkgZGlyZWN0b3J5ICh5b3UgbWF5IGJ1dCBkb24ndCBuZWVkIHRvIHBsYWNlICZxdW90O2ljdSZxdW90OyBpbnRvIGFub3RoZXIKICAgICBkaXJlY3RvcnkpLiBJZiB5b3UgY2hhbmdlIHRoZSByb290LCB5b3Ugd2lsbCBjaGFuZ2UgdGhlIHByb2plY3Qgc2V0dGluZ3MKICAgICBhY2NvcmRpbmdseSBpbiBFQUNIIG1ha2VmaWxlIGluIHRoZSBwcm9qZWN0LCB1cGRhdGluZyB0aGUgJnF1b3Q7aW5jbHVkZSZxdW90OwogICAgIGFuZCAmcXVvdDtsaWJyYXJ5JnF1b3Q7IHBhdGhzLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlNldCB0aGUgZW52aXJvbm1lbnQKICAgICB2YXJpYWJsZSA8c3Ryb25nPklDVV9EQVRBPC9zdHJvbmc+LCB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgZGF0YQogICAgIGRpcmVjdG9yeSwgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIGxvY2FsZSBkYXRhIGZpbGVzIGFuZCBjb252ZXJzaW9uIG1hcHBpbmcKICAgICB0YWJsZXMgYXJlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlN0YXJ0IE1pY3Jvc29mdCBWaXN1YWwgQysrCiAgICAgNi4wLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPkNob29zZSAmcXVvdDtGaWxlJnF1b3Q7CiAgICAgbWVudSBhbmQgc2VsZWN0ICZxdW90O09wZW4gV29ya1NwYWNlJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPkluIHRoZSBmaWxlIGNob29zZXIsIGNob29zZQogICAgIGljdVxzb3VyY2VcYWxsaW5vbmVcYWxsaW5vbmUuZHN3LiBPcGVuIHRoaXMgd29ya3NwYWNlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlRoaXMgd29ya3NwYWNlIGluY2x1ZGVzIGFsbAogICAgIHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgbGlicmFyaWVzLCBuZWNlc3NhcnkgdG9vbHMgYXMKICAgICB3ZWxsIGFzIGludGx0ZXN0IGFuZCBjaW50bHRlc3QgdGVzdCBzdWl0ZSBwcm9qZWN0cy48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5TZXQgdGhlIGFjdGl2ZSBQcm9qZWN0LgogICAgIENob29zZSAmcXVvdDtQcm9qZWN0JnF1b3Q7IG1lbnUgYW5kIHNlbGVjdCAmcXVvdDtTZXQgYWN0aXZlIHByb2plY3QmcXVvdDsuCiAgICAgSW4gdGhlIHN1Ym1lbnUsIHNlbGVjdCAmcXVvdDthbGwmcXVvdDsgd29ya3NwYWNlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlNldCB0aGUgYWN0aXZlCiAgICAgY29uZmlndXJhdGlvbiAoJnF1b3Q7V2luMzIgRGVidWcmcXVvdDsgb3IgJnF1b3Q7V2luMzIgUmVsZWFzZSZxdW90OykgYW5kCiAgICAgbWFrZSBzdXJlIHRoaXMgbWF0Y2hlcyB5b3VyIFBBVEggc2V0dGluZyBhcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzCiAgICAgY2hhcHRlci4gKFNlZSBub3RlIGJlbG93Lik8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5DaG9vc2UgJnF1b3Q7QnVpbGQmcXVvdDsKICAgICBtZW51IGFuZCBzZWxlY3QgJnF1b3Q7UmVidWlsZCBBbGwmcXVvdDsuIElmIHlvdSB3YW50IHRvIGJ1aWxkIHRoZSBEZWJ1ZwogICAgIGFuZCBSZWxlYXNlIGNvbmZpZ3VyYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUsIGNob29zZSAmcXVvdDtCdWlsZCZxdW90OyBtZW51CiAgICAgYW5kIHNlbGVjdCAmcXVvdDtCYXRjaCBCdWlsZC4uLiZxdW90OyBpbnN0ZWFkIChhbmQgbWFyayBhbGwgY29uZmlndXJhdGlvbnMKICAgICBhcyBjaGVja2VkKSwgdGhlbiBjbGljayB0aGUgYnV0dG9uIG5hbWVkICZxdW90O1JlYnVpbGQgQWxsJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlRoZSAmcXVvdDthbGwmcXVvdDsKICAgICB3b3Jrc3BhY2Ugd2lsbCBidWlsZCBhbGwgdGhlIHRlc3QgcHJvZ3JhbXMgYXMgd2VsbCBhcyB0aGUgdG9vbHMgZm9yCiAgICAgZ2VuZXJhdGluZyBiaW5hcnkgbG9jYWxlIGRhdGEgZmlsZXMuJm5ic3A7IFRoZSAmcXVvdDttYWtlZGF0YSZxdW90OwogICAgIHByb2plY3Qgd2lsbCBiZSBydW4gYXV0b21hdGljYWxseSB0byBjb252ZXJ0IHRoZSBsb2NhbGUgZGF0YSBmaWxlcyBmcm9tCiAgICAgdGV4dCBmb3JtYXQgaW50byBpY3VkYXRhLmRsbC48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5TYXZlIHRoZSB2YWx1ZSBvZiB0aGUgPHN0cm9uZz5UWjwvc3Ryb25nPgogICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGFuZCB0aGVuIHNldCBpdCB0byA8c3Ryb25nPlBTVDhQRFQ8L3N0cm9uZz4uJm5ic3A7IDwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMTEgbGV2ZWwxIGxmbzM0O3RhYi1zdG9wczpsaXN0IC41aW4nPlJlb3BlbiB0aGUKICAgICAmcXVvdDthbGxpbm9uZSZxdW90OyBwcm9qZWN0IGZpbGUgYW5kIHJ1biB0aGUgJnF1b3Q7aW50bHRlc3QmcXVvdDsgdGVzdC4KICAgICAmbmJzcDsgUmVzZXQgdGhlIDxzdHJvbmc+VFo8L3N0cm9uZz4gdmFsdWUuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwxMSBsZXZlbDEgbGZvMzQ7dGFiLXN0b3BzOmxpc3QgLjVpbic+VG8gcnVuIHRoZSBDIHRlc3Qgc3VpdGUsCiAgICAgc2V0ICZxdW90O2NpbnRsdHN0JnF1b3Q7IGFzIHRoZSBhY3RpdmUgcHJvamVjdCwgcmVwZWF0IHN0ZXBzIDExIGFuZCB0aGVuCiAgICAgcnVuIHRoZSAmcXVvdDtjaW50bHRzdCZxdW90OyB0ZXN0Li48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDExIGxldmVsMSBsZm8zNDt0YWItc3RvcHM6bGlzdCAuNWluJz5CdWlsZCBhbmQgcnVuIGFzIG91dGxpbmVkCiAgICAgYWJvdmUuPC9saT4KPC9vbD4KCjxwPjxiPk5vdGU6IDwvYj5UbyBzZXQgdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLCB0d28gZGlmZmVyZW50IHBvc3NpYmlsaXRpZXMgYXJlOgo8L3A+Cgo8dWwgdHlwZT1kaXNjPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzM3O3RhYi1zdG9wczpsaXN0IC41aW4nPkNob29zZSAmcXVvdDtCdWlsZCZxdW90OwogICAgIG1lbnUsIHNlbGVjdCAmcXVvdDtTZXQgQWN0aXZlIENvbmZpZ3VyYXRpb24mcXVvdDssIGFuZCBzZWxlY3QgJnF1b3Q7V2luMzIKICAgICBSZWxlYXNlJnF1b3Q7IG9yICZxdW90O1dpbjMyIERlYnVnJnF1b3Q7LjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsNCBsZXZlbDEgbGZvMzc7dGFiLXN0b3BzOmxpc3QgLjVpbic+QW5vdGhlciB3YXkgaXMgdG8gc2VsZWN0CiAgICAgJnF1b3Q7Q3VzdG9taXplJnF1b3Q7IGluIHRoZSAmcXVvdDtUb29scyZxdW90OyBtZW51LCBzZWxlY3QgdGhlCiAgICAgJnF1b3Q7VG9vbGJhcnMmcXVvdDsgdGFiLCBlbmFibGUgJnF1b3Q7QnVpbGQmcXVvdDsgaW5zdGVhZCBvZiAmcXVvdDtCdWlsZAogICAgIE1pbmliYXImcXVvdDssIGFuZCBjbGljayBvbiAmcXVvdDtDbG9zZSZxdW90Oy4gVGhpcyB3aWxsIGJyaW5nIHVwIGEKICAgICB0b29sYmFyIHdoaWNoIHlvdSBjYW4gbW92ZSBhc2lkZSB0aGUgb3RoZXIgcGVybWFuZW50IHRvb2xiYXJzIGF0IHRoZSB0b3AKICAgICBvZiB0aGUgTVNWQyB3aW5kb3cuIFRoZSBhZHZhbnRhZ2UgaXMgdGhhdCB5b3Ugbm93IGhhdmUgYW4gZWFzeS10by1yZWFjaAogICAgIHBvcC11cCBtZW51IHRoYXQgd2lsbCBhbHdheXMgc2hvdyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGFjdGl2ZQogICAgIGNvbmZpZ3VyYXRpb24uJm5ic3A7IE9yLCB5b3UgY2FuIGRyYWcgdGhlIHByb2plY3QgYW5kIGNvbmZpZ3VyYXRpb24gc2VsZWN0aW9ucwogICAgIGFuZCBkcm9wIHRoZW0gb24gdGhlIG1lbnUgYmFyIGZvciBsYXRlciBzZWxlY3Rpb24uPC9saT4KPC91bD4KCjxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYnVpbGQgZWFjaCBsaWJyYXJ5IGluZGl2aWR1YWxseSwgdXNpbmcgdGhlIHdvcmtzcGFjZXMKaW4gZWFjaCByZXNwZWN0aXZlIGRpcmVjdG9yeS4gVGhleSBoYXZlIHRvIGJlIGJ1aWx0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDEuIGNvbW1vbiA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAyLiBpMThuIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDMuIG1ha2VkYXRhICh3aGljaCBpbnZva2VzIG1ha2Vjb252LApnZW5yYiwgZ2VuY29sLCBnZW5jY29kZSBldGMuKTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDQuIGN0ZXN0ZncgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNS4gaW50bHRlc3QgYW5kIGNpbnRsdHN0LCBpZiB5b3UKd2FudCB0byBydW4gdGhlIHRlc3Qgc3VpdGUuIDxicj4KUmVnYXJkaW5nIHRoZSB0ZXN0IHN1aXRlLCBwbGVhc2UgcmVhZCB0aGUgZGlyZWN0aW9ucyBpbiA8YQpocmVmPSJkb2NzL2ludGx0ZXN0Lmh0bWwiPmRvY3MvaW50bHRlc3QuaHRtbDwvYT4gYW5kIDxhCmhyZWY9ImRvY3MvY2ludGx0c3QuaHRtbCI+ZG9jcy9jaW50bHRzdC5odG1sPC9hPiA8L3A+Cgo8aDM+SG93IHRvIEluc3RhbGwvQnVpbGQgb24gVW5peDwvaDM+Cgo8cD5UaGVyZSBpcyBhIHNldCBvZiBNYWtlZmlsZXMgZm9yIFVuaXggdGhhdCBzdXBwb3J0cyBMaW51eCB3L2djYywgU29sYXJpcwp3L2djYyBhbmQgV29ya3Nob3AgQ0MsIEFJWCB3L3hsYyBhbmQgT1MvMzkwIHdpdGggQysrLjwvcD4KCjxwPkJ1aWxkaW5nIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBvbiBVbml4IHJlcXVpcmVzOiA8L3A+Cgo8cD5BIFVOSVggQysrIGNvbXBpbGVyLCAoZ2NjLCBjYywgeGxjX3IsIGV0Yy4uLikgaW5zdGFsbGVkIG9uIHRoZSB0YXJnZXQKbWFjaGluZS4gQSByZWNlbnQgdmVyc2lvbiBvZiBHTlUgbWFrZSAoMy43KykuJm5ic3A7Jm5ic3A7IE9TLzM5MCBnbnUgdXRpbGl0aWVzCmZvciBib3RoIG1ha2UgKGdtYWtlKSBhbmQgemlwIChnemlwL2d1bnppcCkgY2FuIGJlIGZvdW5kIGF0IHRoZSBNS1Mgd2ViIHNpdGUgYXQKPGEgaHJlZj0iaHR0cDovL3d3dy5ta3MuY29tIj5odHRwOi8vd3d3Lm1rcy5jb208L2E+LiAmbmJzcDsgUGxlYXNlIGRvIGEgc2VhcmNoCm9uICZxdW90O29zLzM5MCZxdW90Oy48L3A+Cgo8cD5UaGUgc3RlcHMgYXJlOiA8L3A+Cgo8b2wgc3RhcnQ9MSB0eXBlPTE+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+VW56aXAgdGhlIGljdVhYWFgudGFyIChvcgogICAgIGljdVhYWFgudGd6KSBmaWxlLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+QmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3QgcHJvZ3JhbXMKICAgICBvciBzYW1wbGVzLCBwbGVhc2Ugc2V0IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSA8c3Ryb25nPklDVV9EQVRBPC9zdHJvbmc+LAogICAgIHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBkYXRhIGRpcmVjdG9yeSwgdG8gaW5kaWNhdGUgd2hlcmUgdGhlIGxvY2FsZSBkYXRhCiAgICAgZmlsZXMgYW5kIGNvbnZlcnNpb24gbWFwcGluZyB0YWJsZXMgYXJlLiZuYnNwOyBJZiB0aGlzIHZhcmlhYmxlIGlzIG5vdAogICAgIHNldCwgdGhlIGRlZmF1bHQgdXNlciBkYXRhIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5DaGFuZ2UgZGlyZWN0b3J5IHRvIHRoZQogICAgICZxdW90O2ljdS9zb3VyY2UmcXVvdDsuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5JZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQsCiAgICAgcGxlYXNlIHNldCB0aGUgZXhlY3V0YWJsZSBmbGFnIGZvciB0aGUgZm9sbG93aW5nIGZpbGVzIChieSBleGVjdXRpbmcKICAgICAnY2htb2QgK3gnIGNvbW1hbmQpOiBjb25maWd1cmUsIGluc3RhbGwuc2ggYW5kIGNvbmZpZy4qLCA8L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDIgbGV2ZWwxIGxmbzQwO3RhYi1zdG9wczpsaXN0IC41aW4nPllvdSBhbHNvIG5lZWQgdG8gc2V0IG90aGVyCiAgICAgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBkaWZmZXJlbnQgYnVpbGQgc3lzdGVtcy4gVXNlIHRoaXMgPGEKICAgICBocmVmPSJkb2NzL2J1aWxkX2Vudi5odG0iPnRhYmxlPC9hPiBvciBwcm92aWRlZCA8YQogICAgIGhyZWY9InNvdXJjZS9ydW5Db25maWd1cmVJQ1UiPnNjcmlwdDwvYT4uPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5UeXBlICZxdW90Oy4vY29uZmlndXJlJnF1b3Q7CiAgICAgb3IgdHlwZSAmcXVvdDsuL2NvbmZpZ3VyZSAtLWhlbHAmcXVvdDsgdG8gcHJpbnQgdGhlIGF2YWlsYWJsZSBvcHRpb25zLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsMiBsZXZlbDEgbGZvNDA7dGFiLXN0b3BzOmxpc3QgLjVpbic+VHlwZSAmcXVvdDttYWtlJnF1b3Q7IHRvIGNvbXBpbGUKICAgICB0aGUgbGlicmFyaWVzIGFuZCBhbGwgdGhlIGRhdGEgZmlsZXMuJm5ic3A7IE9uIE9TLzM5MCwgYm90aCBJRUVFIGJpbmFyeQogICAgIGZsb2F0aW5nIHBvaW50IGFuZCBuYXRpdmUgUy8zOTAgaGV4YWRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgY2FsY3VsYXRpb25zCiAgICAgYXJlIHN1cHBvcnRlZC4gJm5ic3A7IFRoZSBkZWZhdWx0IGlzIHRvIGJ1aWxkIHdpdGggbmF0aXZlIGZsb2F0aW5nLXBvaW50CiAgICAgc3VwcG9ydC4mbmJzcDsgUGxlYXNlIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgSUVFRTM5MD0xIGlmIHlvdSB3b3VsZAogICAgIGxpa2UgdG8gbWFrZSB0aGUgSUNVIERMTHMgd2l0aCBJRUVFIGZsb2F0aW5nIHBvaW50IHN1cHBvcnQuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5PcHRpb25hbGx5LCB0eXBlICZxdW90O21ha2UKICAgICBjaGVjayZxdW90OyB0byB2ZXJpZnkgdGhlIHRlc3Qgc3VpdGUuPC9saT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwyIGxldmVsMSBsZm80MDt0YWItc3RvcHM6bGlzdCAuNWluJz5UeXBlICZxdW90O01ha2UKICAgICBpbnN0YWxsJnF1b3Q7IHRvIGluc3RhbGwuPC9saT4KPC9vbD4KCjxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gYnVpbGQgZWFjaCBsaWJyYXJ5IGluZGl2aWR1YWxseSwgdXNpbmcgdGhlIE1ha2VmaWxlcwppbiBlYWNoIHJlc3BlY3RpdmUgZGlyZWN0b3J5LiBUaGV5IGhhdmUgdG8gYmUgYnVpbHQgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjogPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMS4gY29tbW9uIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDIuIGkxOG4gPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMy4gbWFrZWNvbnYgPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNC4gZ2VucmI8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA1LiBnZW5jb2w8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA2LiBnZW50ejxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDcuIGdlbmNjb2RlPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgOC4gY3Rlc3RmdyA8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA5LiBpbnRsdGVzdCBhbmQgY2ludGx0c3QsIGlmIHlvdQp3YW50IHRvIHJ1biB0aGUgdGVzdCBzdWl0ZS4gPGJyPgpSZWdhcmRpbmcgdGhlIHRlc3Qgc3VpdGUsIHBsZWFzZSByZWFkIHRoZSBkaXJlY3Rpb25zIGluIDxhCmhyZWY9ImRvY3MvaW50bHRlc3QuaHRtbCI+ZG9jcy9pbnRsdGVzdC5odG1sPC9hPiBhbmQgPGEKaHJlZj0iZG9jcy9jaW50bHRzdC5odG1sIj5kb2NzL2NpbnRsdHN0Lmh0bWw8L2E+IDwvcD4KCjxQPgo8QSBOQU1FPSJocHV4X2RhdGFfbm90ZSI+CjxIND5Ob3RlIGFib3V0IEhQL1VYIGRhdGEgbGlicmFyaWVzOjwvSDQ+CjxVTD4gCiAgIDxMST5IUC9VWCBoYXMgYSBkb2N1bWVudGVkIGNoYXJhY3RlcmlzdGljIHdoZXJlIHRoZSBzaGxfdW5sb2FkKCkgZnVuY3Rpb24KICAgICBhbHdheXMgdW5sb2FkcyBhIGxpYnJhcnksIHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkgdGltZXMgdGhlIGxpYnJhcnkgaGFzIAogICAgIGJlZW4gbG9hZGVkLiAgTW9zdCBvcGVyYXRpbmcgc3lzdGVtcyByZWZlcmVuY2UtY291bnQgbGlicmFyaWVzIGFzIHRoZXkgCiAgICAgYXJlIG9wZW5lZC4gIEluIHRoZSBmdXR1cmUgKEppdHRlcmJ1ZyA0MTQpIHRoaXMgbWF5IGJlIGNvcnJlY3RlZCBpbiB0aGUKICAgICBJQ1UsIGJ1dCBhdCBwcmVzZW50IHdlIHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSBieSBzaW1wbHkgTk9UIGV2ZXIgCiAgICAgdW5sb2FkaW5nIHNoYXJlZCBsaWJyYXJpZXMuICBUaGlzIG1lYW5zIHRoYXQgb25jZSBhIGRhdGEgbGlicmFyeQogICAgIGlzIGxvYWRlZCAoZXg6IGxpYmljdWRhdGEuc2wpIGJ5IGEgcHJvY2VzcywgaXQgY2Fubm90IGJlCiAgICAgdW5sb2FkZWQgYW5kIHJlcGxhY2VkIHdpdGhvdXQgc3RvcHBpbmcgYW5kIHJlc3RhcnRpbmcgdGhlIHByb2Nlc3MuCjwvVUw+Cgo8aDE+PGEgbmFtZT1kYXRhaGFuZGxpbmc+SG93IElDVSBoYW5kbGVzIGRhdGE8L2E+PC9oMT4KCjxzcGFuIHN0eWxlPSdtc28tYm9va21hcms6ZGF0YWhhbmRsaW5nJz48L3NwYW4+Cgo8aDM+PHU+SG93IHRvIGFkZCBhIGxvY2FsZSBkYXRhIGZpbGU8L3U+PC9oMz4KCjxwPlRvIGFkZCBsb2NhbGUgZGF0YSBmaWxlcyB0byBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZG8gdGhlCmZvbGxvd2luZzogPC9wPgoKPHAgc3R5bGU9J21hcmdpbi1yaWdodDouNWluO21hcmdpbi1sZWZ0Oi41aW4nPjEuIENyZWF0ZSBhIGZpbGUgY29udGFpbmluZyB0aGUKa2V5LXZhbHVlIHBhaXJzIHdoaWNoIHZhbHVlIHlvdSBhcmUgb3ZlcnJpZGluZyBmcm9tIHRoZSBwYXJlbnQgbG9jYWxlIGRhdGEKZmlsZS4gPGJyPgombmJzcDsmbmJzcDsmbmJzcDsgTWFrZSBzdXJlIHRoZSBmaWxlbmFtZSBpcyB0aGUgbG9jYWxlIElEIHdpdGggdGhlIGV4dGVuc2lvbgomcXVvdDsudHh0JnF1b3Q7LiBXZSByZWNvbW1lbmQgeW91IGNvcHkgcGFyZW50IGZpbGUgYW5kIGNoYW5nZSB0aGUgdmFsdWVzIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRoYXQgbmVlZCB0byBiZSBjaGFuZ2VkLCByZW1vdmUgYWxsIG90aGVyIGtleS1wYWlycy4gQmUgc3VyZQp0byB1cGRhdGUgdGhlIGxvY2FsZSBJRCBrZXkgKHRoZSBvdXRtb3N0IGJyYWNlKSB3aXRoIDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7IHRoZSBuYW1lIG9mIHRoZSBsb2NhbGUgaWQgeW91ciBhIGNyZWF0aW5nLjwvcD4KCjxwIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tbGVmdDouNWluJz4yLiBOYW1lIHRoZSBmaWxlIHdpdGggbG9jYWxlIElECnlvdSBhcmUgY3JlYXRpbmcgd2l0aCBhICZxdW90Oy50eHQmcXVvdDsgYXQgdGhlIGVuZC48L3A+Cgo8cCBzdHlsZT0nbWFyZ2luLXJpZ2h0OjEuMGluO21hcmdpbi1sZWZ0OjEuMGluJz5lLmcuJm5ic3A7Jm5ic3A7Jm5ic3A7CmZyX0JGLnR4dCA8YnI+CldvdWxkIGNyZWF0ZSBhIGxvY2FsZSB0aGF0IGluaGVyaXRzIGFsbCB0aGUga2V5LXZhbHVlIHBhaXJzIGZyb20gZnIudHh0LjwvcD4KCjxwIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tbGVmdDouNWluJz4zLiBBZGQgdGhlIG5hbWUgb2YgdGhhdCBmaWxlCih3aXRob3V0IHRoZSAmcXVvdDsudHh0JnF1b3Q7IGV4dGVuc2lvbikgYXMgYSBzaW5nbGUgbGluZSBpbgomcXVvdDtpbmRleC50eHQmcXVvdDsgZmlsZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgZGlyZWN0b3J5IChpY3UvZGF0YS8pLjwvcD4KCjxwIHN0eWxlPSdtYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tbGVmdDouNWluJz40LiBSZWdlbmVyYXRlIHRoZSBkYXRhIERMTApmaWxlLiZuYnNwOyBQbGVhc2Ugc2VlICZxdW90OzxhIGhyZWY9IiNIb3dUb0luc3RhbGwiPkhvdyB0byBJbnN0YWxsPC9hPiZxdW90OwpzZWN0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gaG93IHRvIHZlcmlmeSB0aGUgSUNVIHJlbGVhc2UuPC9wPgoKPHA+PGEgbmFtZT1hZGRyYmRhdGF0b2FwcD48L2E+PGI+PHU+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMy41cHQnPkhvdyB0byBhZGQKcmVzb3VyY2UgYnVuZGxlIGRhdGEgdG8geW91ciBhcHBsaWNhdGlvbjwvc3Bhbj48L3U+PC9iPiA8L3A+Cgo8cD5BZGRpbmcgcmVzb3VyY2UgYnVuZGxlIGRhdGEgdG8geW91ciBhcHBsaWNhdGlvbiBpcyBxdWl0ZSBzaW1wbGU6IDwvcD4KCjxwPkNyZWF0ZSByZXNvdXJjZSBidW5kbGUgZmlsZXMgd2l0aCB0aGUgcmlnaHQgZm9ybWF0IGFuZCBuYW1lcyBpbiBhIGRpcmVjdG9yeQpmb3IgcmVzb3VyY2UgYnVuZGxlcyB5b3UgY3JlYXRlIGluIHlvdXIgYXBwbGljYXRpb24gZGlyZWN0b3J5IHRyZWUuKGZvciBtb3JlCmluZm9ybWF0aW9uIG9mIHRoYXQgZm9ybWF0IG9mIHRoZXNlIGZpbGVzIHNlZSA8YQpocmVmPSIuLi9pY3VodG1sL1Jlc291cmNlQnVuZGxlLmh0bWwjRE9DLkRPQ1UiPnJlc291cmNlIGJ1bmRsZSBkb2N1bWVudGF0aW9uPC9hPgpvciZuYnNwOyA8YQpocmVmPSJodHRwOi8vd3d3LmlibS5jb20vamF2YS9lZHVjYXRpb24vaW50ZXJuYXRpb25hbC11bmljb2RlL3VuaWNvZGVjLmh0bWwiPnJlc291cmNlCmJ1bmRsZSBmb3JtYXQpPC9hPi4gPGJyPgpQbGVhc2Ugbm90ZSB0aGF0IHJlc291cmNlIGJ1bmRsZSB0YWcgbmFtZXMgc2hvdWxkIGNvbnRhaW4gb25seSBpbnZhcmlhbnQgNy1iaXQKQVNDSUkgY2hhcmFjdGVycyAoZS5nLiBvbmVzIGZyb20gdGhlIGZvbGxvd2luZyBzZXQ6IEEtWiwgYS16LCAwLTksICZsdDtTUCZndDssCiZxdW90OywgJSwgJmFtcDssIGAsICgsICksICosICssICwsIC0sIC4sIC8sIDosIDssICZsdDssID0sICZndDssID8sIF8pLjxicj4KVXNlIHRoYXQgc2FtZSBkaXJlY3RvcnkgbmFtZSAoYWJzb2x1dGUgcGF0aCkgd2hlbiBpbnN0YW50aWF0aW5nIGEgcmVzb3VyY2UKYnVuZGxlIGF0IHJ1biB0aW1lLjwvcD4KCjxoMz48YSBuYW1lPVdoZXJlQ29sbGF0aW9uPjwvYT48dT5XaGVyZSBDb2xsYXRpb24gRGF0YSBpcyBzdG9yZWQ8L3U+PC9oMz4KCjxwPkNvbGxhdGlvbiBkYXRhIGlzIHN0b3JlZCBpbiBhIHNpbmdsZSBkaXJlY3Rvcnkgb24gYSBsb2NhbCBkaXNrLiBFYWNoCmxvY2FsZSdzIGRhdGEgaXMgc3RvcmVkIGluIGEgY29ycmVzcG9uZGluZyBBU0NJSSB0ZXh0IGZpbGUgaW5kaWNhdGVkIGJ5IGEKJnF1b3Q7Q29sbGF0aW9uRWxlbWVudHMmcXVvdDsgdGFnIC4gRm9yIGluc3RhbmNlLCB0aGUgZGF0YSBmb3IgZGVfQ0ggaXMgc3RvcmVkCndpdGggYSB0YWcgJnF1b3Q7Q29sbGF0aW9uRWxlbWVudHMmcXVvdDsgaW4gYSBmaWxlIG5hbWVkICZxdW90O2RlX0NILnR4dCZxdW90Oy4KUmVhZGluZyB0aGUgY29sbGF0aW9uIGRhdGEgZnJvbSB0aGVzZSBmaWxlcyBjYW4gYmUgdGltZS1jb25zdW1pbmcsIGVzcGVjaWFsbHkKZm9yIGxhcmdlIHBpZWNlcyBvZiBkYXRhIHRoYXQgb2NjdXIgaW4gbGFuZ3VhZ2VzIHN1Y2ggYXMgSmFwYW5lc2UuIEZvciB0aGlzCnJlYXNvbiwgdGhlIENvbGxhdGlvbiBGcmFtZXdvcmsgaW1wbGVtZW50cyBhIHNlY29uZCBmaWxlIGZvcm1hdCwgYQpwZXJmb3JtYW5jZS1vcHRpbWl6ZWQsIG5vbi1wb3J0YWJsZSwgYmluYXJ5IGZvcm1hdC4gVGhlc2UgYmluYXJ5IGZpbGVzIGFyZQpnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSB0aGUgZnJhbWV3b3JrIHRoZSBmaXJzdCB0aW1lIGEgY29sbGF0aW9uIHRhYmxlIGlzCnBhcnNlZC4gVGhleSBoYXZlIG5hbWVzIG9mIHRoZSBmb3JtICZxdW90O2RlX0NILmNvbCZxdW90Oy4gT25jZSB0aGUgZmlsZXMgYXJlCmdlbmVyYXRlZCBieSB0aGUgZnJhbWV3b3JrLCBmdXR1cmUgbG9hZGluZyBvZiB0aG9zZSBjb2xsYXRpb25zIG9jY3VyIGZyb20gdGhlCmJpbmFyeSBmaWxlLCByYXRoZXIgdGhhbiB0aGUgdGV4dCBmaWxlLCBhdCBtdWNoIGhpZ2hlciBzcGVlZC4gPC9wPgoKPHA+SW4gZ2VuZXJhbCwgeW91IGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCB3aXRoIHRoZXNlIGZpbGVzLiBUaGV5IGNhbgpiZSBnZW5lcmF0ZWQgZGlyZWN0bHkgYnkgdXNpbmcgdGhlICZxdW90O2dlbmNvbCZxdW90OyB0b29sLiZuYnNwOyBJbiBhZGRpdGlvbiwKdGhleSBjYW4gYWxzbyBiZSBnZW5lcmF0ZWQgYW5kIHVzZWQgYXV0b21hdGljYWxseSBieSB0aGUgZnJhbWV3b3JrLCB3aXRob3V0CmludGVydmVudGlvbiBvbiB5b3VyIHBhcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBzaXR1YXRpb25zIGluIHdoaWNoIHlvdSB3aWxsIGhhdmUKdG8gcmVnZW5lcmF0ZSB0aGVtLiBUbyBkbyBzbywgeW91IG11c3QgbWFudWFsbHkgZGVsZXRlIHRoZSAmcXVvdDsuY29sJnF1b3Q7CmZpbGVzIGZyb20geW91ciBjb2xsYXRpb24gZGF0YSBkaXJlY3RvcnkgYW5kIHJlLXJ1biB0aGUgZ2VuY29sIHRvb2wuPC9wPgoKPHA+WW91IHdpbGwgbmVlZCB0byByZWdlbmVyYXRlIHlvdXIgJnF1b3Q7LmNvbCZxdW90OyBmaWxlcyBpbiB0aGUgZm9sbG93aW5nCmNpcmN1bXN0YW5jZXM6IDwvcD4KCjxvbCBzdGFydD0xIHR5cGU9MT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0OmwwIGxldmVsMSBsZm80Mzt0YWItc3RvcHM6bGlzdCAuNWluJz5Zb3UgYXJlIG1vdmluZyB5b3VyIGRhdGEgdG8KICAgICBhbm90aGVyIHBsYXRmb3JtLiZuYnNwOyBTaW5jZSB0aGUgJnF1b3Q7LmNvbCZxdW90OyBmaWxlcyBhcmUgbm9uLXBvcnRhYmxlLAogICAgIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGV5IGFyZSByZWdlbmVyYXRlZC48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQzO3RhYi1zdG9wczpsaXN0IC41aW4nPjxiPkRPIE5PVCA8L2I+Y29weSB0aGVtIGZyb20KICAgICBvbmUgcGxhdGZvcm0gdG8gYW5vdGhlci48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQzO3RhYi1zdG9wczpsaXN0IC41aW4nPllvdSBoYXZlIGNoYW5nZWQgdGhlCiAgICAgJnF1b3Q7Q29sbGF0aW9uRWxlbWVudHMmcXVvdDsgZGF0YSBpbiB0aGUgbG9jYWxlJ3MgJnF1b3Q7LnR4dCZxdW90OwogICAgIGZpbGUuJm5ic3A7IE5vdGUgdGhhdCBpZiB5b3UgY2hhbmdlIHRoZSBkZWZhdWx0IHJ1bGVzIGZvciBzb21lIHJlYXNvbiwKICAgICB3aGljaCB1bmRlcmxpZSBhbGwgY29sbGF0aW9ucywgdGhlbiB5b3Ugd2lsbCBoYXZlIHRvIHJlYnVpbGQgQUxMIHlvdXIKICAgICAmcXVvdDsuY29sJnF1b3Q7IGZpbGVzLCBzaW5jZSB0aGV5IGFsbCBhcmUgbWVyZ2VkIHdpdGggdGhlIGRlZmF1bHQgcnVsZQogICAgIHNldC48L2xpPgo8L29sPgoKPGgzPjxhIG5hbWU9Q2hhcnNldENvbnZlcnQ+PC9hPjx1PkNoYXJhY3RlciBTZXQgQ29udmVyc2lvbiBJbmZvcm1hdGlvbjwvdT48L2gzPgoKPHA+VGhlIGNoYXJzZXQgY29udmVyc2lvbiBsaWJyYXJ5IHByb3ZpZGVzIHdheXMgdG8gY29udmVydCBzaW1wbGUgdGV4dCBzdHJpbmdzCihlLmcuLCBjaGFyKikgc3VjaCBhcyBJU08gODg1OS0xIHRvIGFuZCBmcm9tIFVuaWNvZGUuIFRoZSBvYmplY3RpdmUgaXMgdG8KcHJvdmlkZSBjbGVhbiwgc2ltcGxlLCByZWxpYWJsZSwgcG9ydGFibGUgYW5kIGFkYXB0YWJsZSBkYXRhIHN0cnVjdHVyZXMgYW5kCmFsZ29yaXRobXMgdG8gc3VwcG9ydCB0aGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlJ3MgY2hhcmFjdGVyCmNvZGVzZXQgQ29udmVyc2lvbiBBUElzLiBUaGUgY29udmVyc2lvbiBkYXRhIGluIHRoZSBsaWJyYXJ5IG9yaWdpbmF0ZWQgZnJvbSB0aGUKTkxUQyBsYWIgaW4gSUJNLiBUaGUgSUJNIGNoYXJhY3RlciBzZXQgY29udmVyc2lvbiB0YWJsZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZQppbiB0aGUgcHVibGlzaGVkIElCTSBkb2N1bWVudCBjYWxsZWQgJnF1b3Q7Q0hBUkFDVEVSIERBVEEgUkVQUkVTRU5UQVRJT04KQVJDSElURUNUVVJFIC0gUkVGRVJFTkNFIEFORCBSRUdJU1RSWSZxdW90Oy4gVGhlIGNoYXJhY3RlciBzZXQgY29udmVyc2lvbgpsaWJyYXJ5IGluY2x1ZGVzIHNpbmdsZS1ieXRlLCBkb3VibGUtYnl0ZSBhbmQgc29tZSBVQ1MgZW5jb2RpbmdzIHRvIGFuZCBmcm9tIFVuaWNvZGUuClRoaXMgZG9jdW1lbnQgY2FuIGJlIG9yZGVyZWQgdGhyb3VnaCBNZWNoYW5pY3NiZXJnIGFuZCBpdCBjb21lcyB3aXRoIDIgQ0QgUk9Ncwp3aGljaCBoYXZlIG1hY2hpbmUtcmVhZGFibGUgY29udmVyc2lvbiB0YWJsZXMgb24gdGhlbS4gVGhlIGxpY2Vuc2UgYWdyZWVtZW50IGlzCmluY2x1ZGVkIGluIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBhZ3JlZW1lbnQuIDwvcD4KCjxwPkNsaWNrIDxhIGhyZWY9ImRhdGEvY29udnJ0cnMudHh0Ij5oZXJlPC9hPiB0byB2aWV3IGNvbnZlcnRlcnMgaW1wbGVtZW50ZWQgaW4KSUNVLiBUbyBzZWUgY29udmVydGVycyBpbiBhY3Rpb24sIHBsZWFzZSB2aXNpdCA8YQpocmVmPSJodHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZGV2ZWxvcGVyd29ya3Mvb3BlbnNvdXJjZS9pY3UvbG9jYWxlZXhwbG9yZXIvP2NvbnZlcnRlciZhbXA7Ij4KaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvaWN1L2xvY2FsZWV4cGxvcmVyLz9jb252ZXJ0ZXImYW1wOzwvYT48L3A+Cgo8cD5UbyBvcmRlciB0aGUgZG9jdW1lbnQgaW4gdGhlIFVTIHlvdSBjYW4gY2FsbCAxLTgwMC04NzktMjc1NSBhbmQgcmVxdWVzdApkb2N1bWVudCBudW1iZXIgU0MwOS0yMTkwLTAwLiBUaGUgY29zdCBvZiB0aGlzIHB1YmxpY2F0aW9uIGlzICQ3NS4wMCBVUyBub3QKaW5jbHVkaW5nIHRheC4gPC9wPgoKPGgzPjxhIG5hbWU9UHJvZ3JhbW1pbmdOb3Rlcz48L2E+PHU+UHJvZ3JhbW1pbmcgTm90ZXM8L3U+PC9oMz4KCjxoND48dT5SZXBvcnRpbmcgRXJyb3JzPC91PjwvaDQ+Cgo8cD5JbiBvcmRlciBmb3IgdGhlIGNvZGUgdG8gYmUgcG9ydGFibGUsIG9ubHkgYSBzdWJzZXQgb2YgdGhlIEMrKyBsYW5ndWFnZSB0aGF0CndpbGwgY29tcGlsZSBjb3JyZWN0bHkgb24gZXZlbiB0aGUgb2xkZXN0IG9mIEMrKyBjb21waWxlcnMgKGFuZCBhbHNvIHRvIHByb3ZpZGUKYSB1c2FibGUgQyBpbnRlcmZhY2UpIGNhbiBiZSB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggbWVhbnMgdGhhdAp0aGVyZSdzIG5vIHVzZSB0aGUgQysrIGV4Y2VwdGlvbiBtZWNoYW5pc20gaW4gdGhlIGNvZGUuIDwvcD4KCjxwPkFmdGVyIGNvbnNpZGVyaW5nIG1hbnkgYWx0ZXJuYXRpdmVzLCB0aGUgZGVjaXNpb24gd2FzIHRoYXQgZXZlcnkgZnVuY3Rpb24KdGhhdCBjYW4gZmFpbCB0YWtlcyBhbiBlcnJvci1jb2RlIHBhcmFtZXRlciBieSByZWZlcmVuY2UuIFRoaXMgaXMgYWx3YXlzIHRoZQpsYXN0IHBhcmFtZXRlciBpbiB0aGUgZnVuY3Rpb24mIzgyMTc7cyBwYXJhbWV0ZXIgbGlzdC4gVGhlIEVycm9yQ29kZSB0eXBlIGlzIGRlZmluZWQKYXMgYSBlbnVtZXJhdGVkIHR5cGUuIFplcm8gcmVwcmVzZW50cyBubyBlcnJvciwgcG9zaXRpdmUgdmFsdWVzIHJlcHJlc2VudAplcnJvcnMsIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgcmVwcmVzZW50IG5vbi1lcnJvciBzdGF0dXMgY29kZXMuIE1hY3JvcyB3ZXJlCnByb3ZpZGVkLCBTVUNDRVNTIGFuZCBGQUlMVVJFLCB0byBjaGVjayB0aGUgZXJyb3IgY29kZS4gPC9wPgoKPHA+VGhlIEVycm9yQ29kZSBwYXJhbWV0ZXIgaXMgYW4gaW5wdXQtb3V0cHV0IHBhcmFtZXRlci4gRXZlcnkgZnVuY3Rpb24gdGVzdHMKdGhlIGVycm9yIGNvZGUgYmVmb3JlIGRvaW5nIGFueXRoaW5nIGVsc2UsIGFuZCBpbW1lZGlhdGVseSBleGl0cyBpZiBpdCYjODIxNztzIGEKRkFJTFVSRSBlcnJvciBjb2RlLiBJZiB0aGUgZnVuY3Rpb24gZmFpbHMgbGF0ZXIgb24sIGl0IHNldHMgdGhlIGVycm9yIGNvZGUKYXBwcm9wcmlhdGVseSBhbmQgZXhpdHMgd2l0aG91dCBkb2luZyBhbnkgb3RoZXIgd29yayAoZXhjZXB0LCBvZiBjb3Vyc2UsIGFueQpjbGVhbnVwIGl0IGhhcyB0byBkbykuIElmIHRoZSBmdW5jdGlvbiBlbmNvdW50ZXJzIGEgbm9uLWVycm9yIGNvbmRpdGlvbiBpdAp3YW50cyB0byBzaWduYWwgKHN1Y2ggYXMgJnF1b3Q7ZW5jb3VudGVyZWQgYW4gdW5tYXBwZWQgY2hhcmFjdGVyJnF1b3Q7IGluCnRyYW5zY29kaW5nKSwgaXQgc2V0cyB0aGUgZXJyb3IgY29kZSBhcHByb3ByaWF0ZWx5IGFuZCBjb250aW51ZXMuIE90aGVyd2lzZSwKdGhlIGZ1bmN0aW9uIGxlYXZlcyB0aGUgZXJyb3IgY29kZSB1bmNoYW5nZWQuIDwvcD4KCjxwPkdlbmVyYWxseSwgb25seSBmdW5jdGlvbnMgdGhhdCBkb24mIzgyMTc7dCB0YWtlIGFuIEVycm9yQ29kZSBwYXJhbWV0ZXIsIGJ1dCBjYWxsCmZ1bmN0aW9ucyB0aGF0IGRvLCBoYXZlIHRvIGRlY2xhcmUgb25lLiBBbG1vc3QgYWxsIGZ1bmN0aW9ucyB0aGF0IHRha2UgYW4KRXJyb3JDb2RlIHBhcmFtZXRlciBhbmQgYWxzbyBjYWxsIG90aGVyIGZ1bmN0aW9ucyB0aGF0IGRvIG1lcmVseSBoYXZlIHRvCnByb3BhZ2F0ZSB0aGUgZXJyb3IgY29kZSB0aGV5IHdlcmUgcGFzc2VkIGRvd24gdG8gdGhlIGZ1bmN0aW9ucyB0aGV5IGNhbGwuCkZ1bmN0aW9ucyB0aGF0IGRlY2xhcmUgYSBuZXcgRXJyb3JDb2RlIHBhcmFtZXRlciBtdXN0IGluaXRpYWxpemUgaXQgdG8KWkVST19FUlJPUiBiZWZvcmUgY2FsbGluZyBhbnkgb3RoZXIgZnVuY3Rpb25zLiA8L3A+Cgo8cD5UaGUgcmF0aW9uYWxlIGhlcmUgaXMgdG8gYWxsb3cgYSBmdW5jdGlvbiB0byBjYWxsIHNldmVyYWwgZnVuY3Rpb25zICh0aGF0CnRha2UgZXJyb3IgY29kZXMpIGluIGEgcm93IHdpdGhvdXQgaGF2aW5nIHRvIGNoZWNrIHRoZSBlcnJvciBjb2RlIGFmdGVyIGVhY2gKb25lLiBbQSBmdW5jdGlvbiB1c3VhbGx5IHdpbGwgaGF2ZSB0byBjaGVjayB0aGUgZXJyb3IgY29kZSBiZWZvcmUgZG9pbmcgYW55Cm90aGVyIHByb2Nlc3NpbmcsIGhvd2V2ZXIsIHNpbmNlIGl0IGlzIHN1cHBvc2VkIHRvIHN0b3AgaW1tZWRpYXRlbHkgYWZ0ZXIKcmVjZWl2aW5nIGFuIGVycm9yIGNvZGUuXSBQcm9wYWdhdGluZyB0aGUgZXJyb3ItY29kZSBwYXJhbWV0ZXIgZG93biB0aGUgY2FsbApjaGFpbiBzYXZlcyB0aGUgcHJvZ3JhbW1lciBmcm9tIGhhdmluZyB0byBkZWNsYXJlIG9uZSBldmVyeXdoZXJlLCBhbmQgYWxzbwphbGxvd3MgdXMgdG8gbW9yZSBjbG9zZWx5IG1pbWljIHRoZSBDKysgZXhjZXB0aW9uIHByb3RvY29sLiA8L3A+Cgo8aDQ+PHU+QyBGdW5jdGlvbiBhbmQgRGF0YSBUeXBlIE5hbWluZzwvdT48L2g0PgoKPHA+PGI+RnVuY3Rpb24gbmFtZXMuPC9iPiBJZiBhIGZ1bmN0aW9uIGlzIGlkZW50aWNhbCAob3IgYWxtb3N0IGlkZW50aWNhbCkgdG8KYW4gQU5TSSBvciBQT1NJWCBmdW5jdGlvbiwgd2UgZ2l2ZSBpdCB0aGUgc2FtZSBuYW1lIGFuZCAoYXMgbXVjaCBhcyBwb3NzaWJsZSkKdGhlIHNhbWUgcGFyYW1ldGVyIGxpc3QuIEEgJnF1b3Q7dSZxdW90OyBpcyBwcmVwZW5kZWQgb250byB0aGUgYmVnaW5uaW5nIG9mIHRoZQpuYW1lLiA8L3A+Cgo8cD5Gb3IgZnVuY3Rpb25zIHRoYXQgZXhpc3QgcHJpb3IgdG8gdmVyc2lvbiAxLjIuMSwgdGhhdCB0aGUgZnVuY3Rpb24gbmFtZQpzaG91bGQgYmVnaW4gd2l0aCBhIGxvd2VyLWNhc2UgJnF1b3Q7dSZxdW90Oy4gQWZ0ZXIgdGhlICZxdW90O3UmcXVvdDsgaXMgYQpzaG9ydCBjb2RlIGlkZW50aWZ5aW5nIHRoZSBzdWJzeXN0ZW0gaXQgYmVsb25ncyB0byAoZS5nLiwgJnF1b3Q7bG9jJnF1b3Q7LAomcXVvdDtyYiZxdW90OywgJnF1b3Q7Y252JnF1b3Q7LCAmcXVvdDtjb2xsJnF1b3Q7LCBldGMuKS4gVGhpcyBjb2RlIGlzCnNlcGFyYXRlZCBmcm9tIHRoZSBhY3R1YWwgZnVuY3Rpb24gbmFtZSBieSBhbiB1bmRlcnNjb3JlLCBhbmQgdGhlIGFjdHVhbApmdW5jdGlvbiBuYW1lIGNhbiBiZSBhbnl0aGluZy4gRm9yIGV4YW1wbGUsIDwvcD4KCjxwcmUgc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0OgouNWluO21hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+VUNoYXIqIHVsb2NfZ2V0TGFuZ3VhZ2UoLi4uKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPnZvaWQgdWxvY19zZXREZWZhdWx0TG9jYWxlKC4uLik7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5VQ2hhciogdXJlc19nZXRTdHJpbmcoLi4uKTs8L3NwYW4+PC9wcmU+Cgo8cD48Yj5TdHJ1Y3QgYW5kIGVudW0gdHlwZSBuYW1lcy48L2I+IEZvciBzdHJ1Y3RzIGFuZCBlbnVtIHR5cGVzLCB0aGUgcnVsZSBpcwp0aGF0IHRoZWlyIG5hbWVzIGJlZ2luIHdpdGggYSBjYXBpdGFsICZxdW90O1UuJnF1b3Q7IFRoZXJlIGlzIG5vIHVuZGVyc2NvcmUgZm9yCnN0cnVjdCBuYW1lcy48L3A+Cgo8cHJlPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBVUmVzb3VyY2VCdW5kbGU7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZT48c3BhbgpzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVUNvbGxhdG9yOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmU+PHNwYW4Kc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9zcGFuPlVDb2xsYXRpb25SZXN1bHQ7PC9zcGFuPjwvcHJlPgoKPHA+PGI+RW51bSB2YWx1ZSBuYW1lcy48L2I+IEVudW1lcmF0aW9uIHZhbHVlcyBoYXZlIG5hbWVzIHRoYXQgYmVnaW4gd2l0aAomcXVvdDtVWFhYJnF1b3Q7IHdoZXJlIFhYWCBzdGFuZHMgZm9yIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbmFsIGNhdGVnb3J5LjwvcD4KCjxwcmUgc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0OgouNWluO21hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+VU5VTV9ERUNJTUFMOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+VUNPTF9HUkVBVEVSOzwvc3Bhbj48L3ByZT4KCjxwPjxiPk1hY3JvIG5hbWVzLjwvYj4gTWFjcm8gbmFtZXMgYXJlIGluIGFsbCBjYXBzLCBidXQgdGhlcmUgYXJlIGN1cnJlbnRseSBubwpvdGhlciByZXF1aXJlbWVudHMuIDwvcD4KCjxwPjxiPkNvbnN0YW50IG5hbWVzLjwvYj4gTWFueSBjb25zdGFudCBuYW1lcyAoY29uc3RhbnRzIGRlZmluZWQgd2l0aAomcXVvdDtjb25zdCZxdW90Oywgbm90IG1hY3JvcyBkZWZpbmVkIHdpdGggJnF1b3Q7I2RlZmluZSZxdW90OyB0aGF0IGFyZSB1c2VkIGFzCmNvbnN0YW50cykgYmVnaW4gd2l0aCBhIGxvd2VyY2FzZSBrLCBidXQgdGhpcyBpc24mIzgyMTc7dCB1bml2ZXJzYWxseSBlbmZvcmNlZC4gPC9wPgoKPGg0Pjx1PlByZWZsaWdodGluZyBhbmQgT3ZlcmZsb3cgSGFuZGxpbmc8L3U+PC9oND4KCjxwPkluIElDVSdzIEMgQVBJcywgdGhlIHVzZXIgbmVlZHMgdG8gYWRoZXJlIHRvIHRoZSBmb2xsb3dpbmcgcHJpbmNpcGxlcyBmb3IKY29uc2lzdGVuY3kgYWNyb3NzIGFsbCBmdW5jdGlvbmFsIGNhdGVnb3JpZXM6IDwvcD4KCjxvbCBzdGFydD0xIHR5cGU9MT4KIDxsaSBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwogICAgIG1zby1saXN0Omw4IGxldmVsMSBsZm80Njt0YWItc3RvcHM6bGlzdCAuNWluJz5BbGwgdGhlIFVuaWNvZGUgc3RyaW5nCiAgICAgcHJvY2Vzc2luZyBzaG91bGQgYmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mIGEgVUNoYXIqIGJ1ZmZlciB0aGF0IGlzIGFsd2F5cwogICAgIG51bGwgdGVybWluYXRlZC48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDggbGV2ZWwxIGxmbzQ2O3RhYi1zdG9wczpsaXN0IC41aW4nPlRoZSBBUElzIGFzc3VtZSB0aGF0IHRoZQogICAgIGlucHV0IHN0cmluZyBwYXJhbWV0ZXJzIGFyZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBmaXgtc2l6ZWQgY2hhcmFjdGVyCiAgICAgYnVmZmVycy48L2xpPgogPGxpIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CiAgICAgbXNvLWxpc3Q6bDggbGV2ZWwxIGxmbzQ2O3RhYi1zdG9wczpsaXN0IC41aW4nPldoZW4gdGhlIHZhbHVlIGEgZnVuY3Rpb24gaXMKICAgICBnb2luZyB0byByZXR1cm4gaXMgYWxyZWFkeSBzdG9yZWQgYXMgYSBjb25zdGFudCB2YWx1ZSBpbiBzdGF0aWMgc3BhY2UKICAgICAoZS5nLiwgaXQmIzgyMTc7cyBjb21pbmcgZnJvbSBhIGZpeGVkIHRhYmxlLCBvciBpcyBzdG9yZWQgaW4gYSBjYWNoZSksIHRoZQogICAgIGZ1bmN0aW9uIHdpbGwganVzdCByZXR1cm4gdGhlIGNvbnN0IFVDaGFyKiBwb2ludGVyLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOCBsZXZlbDEgbGZvNDY7dGFiLXN0b3BzOmxpc3QgLjVpbic+V2hlbiB0aGUgZnVuY3Rpb24gY2FuJiM4MjE3O3QKICAgICByZXR1cm4gYSBVQ2hhciogdG8gc3RvcmFnZSB0aGUgdXNlciBkb2VzbiYjODIxNzt0IGhhdmUgdG8gZGVsZXRlLCB0aGUgY2FsbGVyCiAgICAgbmVlZHMgdG8gcGFzcyBpbiBhIHBvaW50ZXIgdG8gYSBjaGFyYWN0ZXIgYnVmZmVyIHRoYXQgdGhlIGZ1bmN0aW9uIGNhbgogICAgIGZpbGwgd2l0aCB0aGUgcmVzdWx0LiBUaGlzIHBvaW50ZXIgbmVlZHMgdG8gYmUgYWNjb21wYW5pZWQgYnkgYSBpbnQzMl90CiAgICAgcGFyYW1ldGVyIHRoYXQgZ2l2ZXMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlci48L2xpPgo8L29sPgoKPHA+VG8gZmluZCBvdXQgaG93IGxhcmdlIHRoZSByZXN1bHQgYnVmZmVyIHNob3VsZCBiZSwgSUNVIHByb3ZpZGVzIGEgPHN0cm9uZz5wcmVmbGlnaHRpbmc8L3N0cm9uZz4KQyBpbnRlcmZhY2UuJm5ic3A7IFRoZSBpbnRlcmZhY2Ugd29ya3MgbGlrZSB0aGlzOiA8L3A+Cgo8b2wgc3RhcnQ9MSB0eXBlPTE+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOSBsZXZlbDEgbGZvNDk7dGFiLXN0b3BzOmxpc3QgLjVpbic+V2hlbiB1c2luZyB0aGUgJnF1b3Q7PGI+cHJlZmxpZ2h0aW5nPC9iPiZxdW90OwogICAgIG9wdGlvbjogeW91IG5lZWQgdG8gcGFzcyB0aGUgZnVuY3Rpb24gYSBOVUxMIHBvaW50ZXIgZm9yIHRoZSBidWZmZXIKICAgICBwb2ludGVyLCBhbmQgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSByZXN1bHQuIFlvdSBjYW4KICAgICB0aGVuIGNob29zZSB0byBhbGxvY2F0ZSBhIGJ1ZmZlciBvZiB0aGUgY29ycmVjdCBzaXplIGFuZCByZS1ydW4gdGhlCiAgICAgb3BlcmF0aW9uIGlmIHlvdSB3b3VsZCBsaWtlIHRvLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOSBsZXZlbDEgbGZvNDk7dGFiLXN0b3BzOmxpc3QgLjVpbic+QWZ0ZXIgYWxsb2NhdGluZyBhIGJ1ZmZlciBvZgogICAgIHNvbWUgcmVhc29uYWJsZSBzaXplIG9uIHRoZSBzdGFjayBhbmQgcGFzc2VzIHRoYXQgdG8gdGhlIGZ1bmN0aW9uLCBpZiB0aGUKICAgICByZXN1bHQgY2FuIGZpdCBpbiB0aGF0IGJ1ZmZlciwgZXZlcnl0aGluZyZuYnNwOyB3b3JrcyBmaW5lLiBJZiB0aGUgcmVzdWx0CiAgICAgZG9lc24mIzgyMTc7dCBmaXQsIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgYWN0dWFsIHNpemUgbmVlZGVkLiZuYnNwOyBZb3UKICAgICBjYW4gdGhlbiBhbGxvY2F0ZSBhIGJ1ZmZlciBvZiB0aGUgY29ycmVjdCBzaXplIG9uIHRoZSBoZWFwIGFuZCB0cnkgY2FsbGluZwogICAgIHRoZSBzYW1lIGZ1bmN0aW9uIGFnYWluLjwvbGk+CiA8bGkgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKICAgICBtc28tbGlzdDpsOSBsZXZlbDEgbGZvNDk7dGFiLXN0b3BzOmxpc3QgLjVpbic+Tm93IHlvdSBoYXZlIGNyZWF0ZWQgYQogICAgIGJ1ZmZlciBvZiBzb21lIHJlYXNvbmFibGUgc2l6ZSBvbiB0aGUgc3RhY2sgYW5kIHBhc3NlcyBpdCB0byB0aGUKICAgICBmdW5jdGlvbi4mbmJzcDsgSWYgeW91IGRvbid0IGNhcmUgYWJvdXQgdGhlIGNvbXBsZXRlbmVzcyBvZiB0aGUgcmVzdWx0IGFuZAogICAgIHRoZSBhbGxvY2F0ZWQgYnVmZmVyIGlzIHRvbyBzbWFsbCwgeW91IGNhbiBjb250aW51ZSBvbiB1c2luZyB0aGUgdHJ1bmNhdGVkCiAgICAgcmVzdWx0LjwvbGk+Cjwvb2w+Cgo8cD5UaGUgZm9sbG93aW5nIHRocmVlIG9wdGlvbnMgZGVtb25zdHJhdGVzIGhvdyB0byB1c2UgdGhlIHByZWZsaWdodGluZwppbnRlcmZhY2UsIDwvcD4KCjxwcmUgc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0OgouNWluO21hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+LyoqJm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsqIEBwYXJhbSByZXN1bHQgaXMgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBhY3R1YWwgcmVzdWx0IHdpbGwgYmUuPG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsqIEBwYXJhbSBtYXhSZXN1bHRTaXplIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGUgYnVmZmVyIHBvaW50ZWQgdG8gYmUgcmVzdWx0IGhhcyByb29tIGZvci4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyogQHJldHVybiBUaGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUgcmVzdWx0IChjb3VudGluZyB0aGUgdGVybWluYXRpbmcgbnVsbCk8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyovPG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5pbnQzMl90IGRvU29tZXRoaW5nKCAvKiBpbnB1dCBwYXJhbXMgKi8sIFVDaGFyKiByZXN1bHQsPG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW50MzJfdCBtYXhSZXN1bHRTaXplLCBVRXJyb3JDb2RlKiBlcnIpOzwvc3Bhbj48L3ByZT4KCjxwPkluIHRoaXMgc2FtcGxlLCBpZiB0aGUgYWN0dWFsIHJlc3VsdCBkb2VzbiYjODIxNzt0IGZpdCBpbiB0aGUgc3BhY2UgYXZhaWxhYmxlIGluIDxzcGFuCnN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPm1heFJlc3VsdFNpemU8L3NwYW4+LCB0aGlzCmZ1bmN0aW9uIHJldHVybnMgdGhlIGFtb3VudCBvZiBzcGFjZSBuZWNlc3NhcnkgdG8gaG9sZCB0aGUgcmVzdWx0LCBhbmQgcmVzdWx0CmhvbGRzIGFzIG1hbnkgY2hhcmFjdGVycyBvZiB0aGUgYWN0dWFsIHJlc3VsdCBhcyBwb3NzaWJsZS4gSWYgeW91IGRvbiYjODIxNzt0IGNhcmUKYWJvdXQgdGhpcywgbm8gZnVydGhlciBhY3Rpb24gaXMgbmVjZXNzYXJ5LiBJZiB5b3UgPGk+ZG8gPC9pPmNhcmUgYWJvdXQgdGhlCnRydW5jYXRlZCBjaGFyYWN0ZXJzLCB5b3UgY2FuIHRoZW4gYWxsb2NhdGUgYSBidWZmZXIgb24gdGhlIGhlYXAgb2YgdGhlIHNpemUKc3BlY2lmaWVkIGJ5IHRoZSByZXR1cm4gdmFsdWUgYW5kIGNhbGwgdGhlIGZ1bmN0aW9uIGFnYWluLCBwYXNzaW5nIDxpPnRoYXQgPC9pPmJ1ZmZlciYjODIxNztzCmFkZHJlc3MgZm9yIHJlc3VsdC4gPC9wPgoKPHA+QWxsIHByZWZsaWdodGluZyBmdW5jdGlvbnMgaGF2ZSBhIGZpbGwtaW4gPHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7CmZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPkVycm9yQ29kZTwvc3Bhbj4gcGFyYW1ldGVyIChhbmQgZm9sbG93IHRoZSBub3JtYWwgPHNwYW4Kc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Iic+RXJyb3JDb2RlPC9zcGFuPiBydWxlcyksCmV2ZW4gaWYgdGhleSBhcmUgbm90IGN1cnJlbnRseSBkb2luZyBzby4gQnVmZmVyIG92ZXJmbG93IHdvdWxkIGJlIHRyZWF0ZWQgYXMgYQpGQUlMVVJFIGVycm9yIGNvbmRpdGlvbiwgYnV0IHdvdWxkIDxpPm5vdDwvaT4gYmUgcmVwb3J0ZWQgd2hlbiB0aGUgY2FsbGVyCnBhc3NlcyBpbiBOVUxMIGZvciA8c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiQ291cmllciBOZXciJz5hY3R1YWxSZXN1bHRTaXplPC9zcGFuPgoocHJlc3VtYWJseSwgYSBOVUxMIGZvciB0aGlzIHBhcmFtZXRlciBtZWFucyB0aGUgY2xpZW50IGRvZXNuJiM4MjE3O3QgY2FyZSBpZiBoZSBnb3QKYSBidWZmZXIgb3ZlcmZsb3cpLiBBbGwgb3RoZXIgZmFpbGluZyBlcnJvciBjb25kaXRpb25zIHdpbGwgb3ZlcndyaXRlIHRoZQomcXVvdDtidWZmZXIgb3ZlcmZsb3cmcXVvdDsgZXJyb3IsIGUuZy4gPHNwYW4gc3R5bGU9J2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPk1JU1NJTkdfUkVTT1VSQ0VfRVJST1I8L3NwYW4+CmV0Yy4uPC9wPgoKPGg0Pjx1PkFycmF5cyBhcyByZXR1cm4gdHlwZXM8L3U+PC9oND4KCjxwPlJldHVybmluZyBhbiBhcnJheSBvZiBzdHJpbmdzIGlzIGZhaXJseSBlYXN5IGluIEMrKywgYnV0IHZlcnkgaGFyZCBpbiBDLgpJbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgYXJyYXkgcG9pbnRlciBkaXJlY3RseSwgd2Ugb3B0ZWQgZm9yIGFuIGl0ZXJhdGl2ZQppbnRlcmZhY2UgaW5zdGVhZDogc3BsaXQgdGhlIGZ1bmN0aW9uIGludG8gdHdvIGZ1bmN0aW9ucy4mbmJzcDsgT25lIHJldHVybnMgdGhlCm51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXksIGFuZCB0aGUgb3RoZXIgb25lIHJldHVybnMgYSBzaW5nbGUgc3BlY2lmaWVkCmVsZW1lbnQgZnJvbSB0aGUgYXJyYXkuPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5pbnQzMl90IGNvdW50QXJyYXlJdGVtcygvKiBwYXJhbXMgKi8pOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+aW50MzJfdCBnZXRBcnJheUVsZW1lbnQoaW50MzJfdCBlbGVtZW50SW5kZXgsIC8qIG90aGVyIHBhcmFtcyAqLyw8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBVQ2hhciogcmVzdWx0LCBpbnQzMl90IG1heFJlc3VsdFNpemUsIFVFcnJvckNvZGUqIGVycik7PC9zcGFuPjwvcHJlPgoKPHA+SW4gdGhpcyBjYXNlLCBpdGVyYXRpbmcgYWNyb3NzIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIGFycmF5IHdvdWxkIGFtb3VudCB0bwphIGNhbGwgdG8gdGhlIGNvdW50KCkgZnVuY3Rpb24gZm9sbG93ZWQgYnkgbXVsdGlwbGUgY2FsbHMgdG8gdGhlIGdldEVsZW1lbnQoKQpmdW5jdGlvbi4gPC9wPgoKPHByZSBzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6Ci41aW47bWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5mb3IgKGkgPSAwOyBpICZsdDsgY291bnRBcnJheUl0ZW1zKC4uLik7IGkrKykgezxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFVDaGFyIGVsZW1lbnRbNTBdOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGdldEFycmF5SXRlbShpLCAuLi4sIGVsZW1lbnQsIDUwLCAmYW1wO2Vycik7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLyogZG8gc29tZXRoaW5nIHdpdGggZWxlbWVudCAqLzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+fTwvc3Bhbj48L3ByZT4KCjxwPkluIHRoZSBjYXNlIG9mIHRoZSByZXNvdXJjZSBidW5kbGUgPHNwYW4gc3R5bGU9J2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyInPnVyZXNfWFhYWDwvc3Bhbj4KZnVuY3Rpb25zIHJldHVybmluZyAyLWRpbWVuc2lvbmFsIGFycmF5cywgdGhlIGdldEVsZW1lbnQoKSBmdW5jdGlvbiB0YWtlcyBib3RoCnggYW5kIHkgY29vcmRpbmF0ZXMgZm9yIHRoZSBkZXNpcmVkIGVsZW1lbnQsIGFuZCB0aGUgY291bnQoKSBmdW5jdGlvbiByZXR1cm5zCnRoZSBudW1iZXIgb2YgYXJyYXlzICh4IGF4aXMpLiAmbmJzcDsgU2luY2UgdGhlIHNpemUgb2YgZWFjaCBhcnJheSBlbGVtZW50IGluCnRoZSByZXNvdXJjZSAyLUQgYXJyYXlzIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWUsIHRoaXMgcHJvdmlkZXMgYW4gZWFzeS10by11c2UKQyBpbnRlcmZhY2UuIDwvcD4KCjxwcmUgc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0OgouNWluO21hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+dm9pZCBjb3VudEFycmF5SXRlbXMoaW50MzJfdCogcm93cywgaW50MzJfdCogY29sdW1ucyw8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBvdGhlciBwYXJhbXMgKi8pOzxvOnA+PC9vOnA+PC9zcGFuPjwvcHJlPjxwcmUKc3R5bGU9J21hcmdpbi10b3A6MGluO21hcmdpbi1yaWdodDouNWluO21hcmdpbi1ib3R0b206MGluO21hcmdpbi1sZWZ0Oi41aW47Cm1hcmdpbi1ib3R0b206LjAwMDFwdCc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo3LjVwdCc+PCFbaWYgIXN1cHBvcnRFbXB0eVBhcmFzXT4mbmJzcDs8IVtlbmRpZl0+PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz5pbnQzMl90IGdldDJkQXJyYXlFbGVtZW50KGludDMyX3Qgcm93SW5kZXgsJm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaW50MzJfdCBjb2xJbmRleCw8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBvdGhlciBwYXJhbXMgKi8sJm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVUNoYXIqIHJlc3VsdCwmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT48cHJlCnN0eWxlPSdtYXJnaW4tdG9wOjBpbjttYXJnaW4tcmlnaHQ6LjVpbjttYXJnaW4tYm90dG9tOjBpbjttYXJnaW4tbGVmdDouNWluOwptYXJnaW4tYm90dG9tOi4wMDAxcHQnPjxzcGFuIHN0eWxlPSdmb250LXNpemU6Ny41cHQnPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQzMl90IG1heFJlc3VsdFNpemUsPG86cD48L286cD48L3NwYW4+PC9wcmU+PHByZQpzdHlsZT0nbWFyZ2luLXRvcDowaW47bWFyZ2luLXJpZ2h0Oi41aW47bWFyZ2luLWJvdHRvbTowaW47bWFyZ2luLWxlZnQ6LjVpbjsKbWFyZ2luLWJvdHRvbTouMDAwMXB0Jz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjcuNXB0Jz4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVUVycm9yQ29kZSogZXJyKTs8L3NwYW4+PC9wcmU+Cgo8aDM+PGEgbmFtZT1XaGVyZVRvRmluZE1vcmU+PC9hPjx1PldoZXJlIHRvIEZpbmQgTW9yZSBJbmZvcm1hdGlvbjwvdT48L2gzPgoKPHA+PGEgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2ljdS8iPmh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9pY3UvPC9hPgppcyBhIHBvaW50ZXIgdG8gZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvcgpVbmljb2RlLiA8L3A+Cgo8cD48YSBocmVmPSJkb2NzL3VkYXRhLmh0bWwiPmRvY3MvdWRhdGEuaHRtbDwvYT4gaXMgYSByYXcgZHJhZnQgb2YgSUNVIGRhdGEKaGFuZGxpbmcuPC9wPgoKPHA+PGEgaHJlZj0iLi4vaWN1aHRtbC9haW5kZXguaHRtbCI+aHRtbC9haW5kZXguaHRtbDwvYT4gaXMgYW4gYWxwaGFiZXRpY2FsCmluZGV4IHRvIGRldGFpbGVkIEFQSSBkb2N1bWVudGF0aW9uLiA8YnI+CjxhIGhyZWY9Ii4uL2ljdWh0bWwvSElFUmphdmEuaHRtbCI+aHRtbC9ISUVSamF2YS5odG1sPC9hPiBpcyBhIGhpZXJhcmNoaWNhbAppbmRleCB0byBkZXRhaWxlZCBBUEkgZG9jdW1lbnRhdGlvbi4gPC9wPgoKPHA+PGEgaHJlZj0iZG9jcy9jb2xsYXRlLmh0bWwiPmRvY3MvY29sbGF0ZS5odG1sPC9hPiBpcyBhbiBvdmVydmlldyB0bwpDb2xsYXRpb24uIDwvcD4KCjxwPjxhIGhyZWY9ImRvY3MvQnJlYWtJdGVyYXRvci5odG1sIj5kb2NzL0JyZWFrSXRlcmF0b3IuaHRtbDwvYT4gaXMgYSBkaWFncmFtCnNob3dpbmcgaG93IEJyZWFrSXRlcmF0b3IgcHJvY2Vzc2VzIHRleHQgZWxlbWVudHMuIDwvcD4KCjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9kZXZlbG9wZXIvdW5pY29kZS8iPmh0dHA6Ly93d3cuaWJtLmNvbS9kZXZlbG9wZXIvdW5pY29kZS88L2E+IGlzIGEKcG9pbnRlciB0byBpbmZvcm1hdGlvbiBvbiBob3cgdG8gbWFrZSBhcHBsaWNhdGlvbnMgZ2xvYmFsLiA8YnI+CiZuYnNwOyA8L3A+Cgo8aDM+PGEgbmFtZT1TdWJtaXR0aW5nQ29tbWVudHM+PC9hPjx1PlN1Ym1pdHRpbmcgQ29tbWVudHMsIFJlcXVlc3RpbmcgRmVhdHVyZXMKYW5kIFJlcG9ydGluZyBCdWdzPC91PjwvaDM+Cgo8cD5UbyBzdWJtaXQgY29tbWVudHMsIHJlcXVlc3QgZmVhdHVyZXMgYW5kIHJlcG9ydCBidWdzLCBwbGVhc2UgY29udGFjdAp1cy4mbmJzcDsgV2hpbGUgd2UgYXJlIG5vdCBhYmxlIHRvIHJlc3BvbmQgaW5kaXZpZHVhbGx5IHRvIGVhY2ggY29tbWVudCwgd2UgZG8KcmV2aWV3IGFsbCBjb21tZW50cy4gU2VuZCBJbnRlcm5ldCBlbWFpbCB0byA8YQpocmVmPSJtYWlsdG86aWN1QG9zcy5zb2Z0d2FyZS5pYm0uY29tIj5pY3VAb3NzLnNvZnR3YXJlLmlibS5jb208L2E+LjwvcD4KCgo8ZGl2IGNsYXNzPU1zb05vcm1hbCBhbGlnbj1jZW50ZXIgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz4KCjxociBzaXplPTIgd2lkdGg9IjEwMCUiIGFsaWduPWNlbnRlcj4KCjwvZGl2PgoKCjxwPkNvcHlyaWdodCCpIDE5OTctMjAwMCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZApvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPGJyPgpJQk0gQ2VudGVyIGZvciBKYXZhIFRlY2hub2xvZ3kgU2lsaWNvbiBWYWxsZXksIDxicj4KMTAyNzUgTiBEZSBBbnphIEJsdmQuLCBDdXBlcnRpbm8sIENBIDk1MDE0IDxicj4KQWxsIHJpZ2h0cyByZXNlcnZlZC4gPC9wPgoKCjxkaXYgY2xhc3M9TXNvTm9ybWFsIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPgoKPGhyIHNpemU9MiB3aWR0aD0iMTAwJSIgYWxpZ249Y2VudGVyPgoKPC9kaXY+Cgo8L2Rpdj4KCjwvYm9keT4KCjwvaHRtbD4K