PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIKIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzMiI+CiAgPHRpdGxlPlJlYWRNZSBmb3IgSUNVNEo8L3RpdGxlPgo8IS0tCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgoqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS0+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KaDMuZG9jIHsgYmFja2dyb3VuZDogI0NDQ0NGRiB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyIgbGFuZz0iRU4tVVMiCiBsaW5rPSIjMDAwMGZmIiB2bGluaz0iIzgwMDA4MCI+CjxoMj5JbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKTwvaDI+CjxoMz5SZWFkIE1lIGZvciBJQ1U0SiAzLjYuMTwvaDM+CjxociBzaXplPSIyIiB3aWR0aD0iMTAwJSI+CjxwPjxiPlJlbGVhc2UgRGF0ZTwvYj48YnI+CkFwcmlsIDE2LCAyMDA3PGJyPgo8L3A+CjxwPjxiPk5vdGU6PC9iPiBUaGlzIGlzIGFuIHVwZGF0ZSByZWxlYXNlIG9mIElDVTRKIDMuNi4gIEl0IGNvbnRhaW5zIGJ1ZyBmaXhlcwphbmQgYWRkcyBpbXBsZW1lbnRhdGlvbnMgb2YgaW5oZXJpdGVkIEFQSSwgYnV0IGRvZXMgbm90IGludHJvZHVjZSBuZXcgQVBJIG9yCmZ1bmN0aW9uYWxpdHkuICBUaGVzZSBjaGFuZ2VzIHdpbGwgYmUgcm9sbGVkIGludG8gdGhlIG5leHQgcmVsZWFzZSBvZiBJQ1U0Si4KPC9wPgo8cD5Gb3IgdGhlIG1vc3QgcmVjZW50IHJlbGVhc2UsIHNlZSB0aGUgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2Rvd25sb2FkLyI+IElDVTRKCmRvd25sb2FkIHNpdGU8L2E+LiA8L3A+CjxoMyBjbGFzcz0iZG9jIj5Db250ZW50czwvaDM+Cjx1bCB0eXBlPSJkaXNjIj4KICA8bGk+PGEgaHJlZj0iI2ludHJvZHVjdGlvbiI+SW50cm9kdWN0aW9uIHRvIElDVTRKPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNuZXdzIj5XaGF0IElzIE5ldyBJbiBUaGlzIFJlbGVhc2U/PC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNsaWNlbnNlIj5MaWNlbnNlIEluZm9ybWF0aW9uPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNQbGF0Zm9ybURlcGVuZGVuY2llcyI+UGxhdGZvcm0gRGVwZW5kZW5jaWVzPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNkb3dubG9hZCI+SG93IHRvIERvd25sb2FkIElDVTRKPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9IiNXaGF0Q29udGFpbiI+VGhlIFN0cnVjdHVyZSBhbmQgQ29udGVudHMgb2YgSUNVNEo8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI0FQSSI+V2hlcmUgdG8gR2V0IERvY3VtZW50YXRpb248L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI0hvd1RvTW9kdWxhcml6ZSI+SG93IHRvIG1vZHVsYXJpemUgSUNVNEo8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI3RyeWluZ291dCI+VHJ5aW5nIE91dCBJQ1U0SjwvYT48L2xpPgogIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzIj5JQ1U0SiBSZXNvdXJjZSBJbmZvcm1hdGlvbjwvYT48L2xpPgogIDxsaT48YSBocmVmPSIjV2hlcmVUb0ZpbmRNb3JlIj5XaGVyZSB0byBGaW5kIE1vcmUgSW5mb3JtYXRpb248L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iI1N1Ym1pdHRpbmdDb21tZW50cyI+U3VibWl0dGluZyBDb21tZW50cywgUmVxdWVzdGluZwpGZWF0dXJlcyBhbmQgUmVwb3J0aW5nIEJ1Z3M8L2E+PC9saT4KPC91bD4KPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9ImludHJvZHVjdGlvbiI+PC9hPkludHJvZHVjdGlvbiB0byBJQ1U0SjwvaDM+CjxwPlRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgKElDVSkgbGlicmFyeSBwcm92aWRlcwpyb2J1c3QgYW5kCmZ1bGwtZmVhdHVyZWQgVW5pY29kZSBzZXJ2aWNlcyBvbiBhIHdpZGUgdmFyaWV0eSBvZiBwbGF0Zm9ybXMuIElDVQpzdXBwb3J0cyB0aGUKbW9zdCBjdXJyZW50IHZlcnNpb24gb2YgdGhlIFVuaWNvZGUgc3RhbmRhcmQsIGluY2x1ZGluZyBzdXBwb3J0IGZvcgpzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgKG5lZWRlZCBmb3IgR0IgMTgwMzAgcmVwZXJ0b2lyZSBzdXBwb3J0KS48L3A+CjxwPkphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsIHByb2dyYW1zLCBhbmQgSUJNIGFuZAp0aGUKSUNVIHRlYW0gcGxheWVkIGEga2V5IHJvbGUgaW4gcHJvdmlkaW5nIGdsb2JhbGl6YXRpb24gdGVjaG5vbG9neSB0bwpKYXZhLiBCdXQgYmVjYXVzZSBvZiBpdHMgbG9uZyByZWxlYXNlIHNjaGVkdWxlLCBKYXZhIGNhbm5vdCBhbHdheXMga2VlcAp1cCB3aXRoIGV2b2x2aW5nIHN0YW5kYXJkcy4gVGhlIElDVSB0ZWFtIGNvbnRpbnVlcyB0byBleHRlbmQgSmF2YSdzClVuaWNvZGUgYW5kIGludGVybmF0aW9uYWxpemF0aW9uIHN1cHBvcnQsIGZvY3VzaW5nIG9uIGltcHJvdmluZwpwZXJmb3JtYW5jZSwKa2VlcGluZyBjdXJyZW50IHdpdGggdGhlIFVuaWNvZGUgc3RhbmRhcmQsIGFuZCBwcm92aWRpbmcgcmljaGVyIEFQSXMsCndoaWxlCnJlbWFpbmluZyBhcyBjb21wYXRpYmxlIGFzIHBvc3NpYmxlIHdpdGggdGhlIG9yaWdpbmFsIEphdmEgdGV4dCBhbmQKaW50ZXJuYXRpb25hbGl6YXRpb24gQVBJIGRlc2lnbi48L3A+CjxwPklDVTRKIGlzIGFuIGFkZC1vbiB0byB0aGUgcmVndWxhciBKVk0gdGhhdCBwcm92aWRlczoKPC9wPgo8dWw+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj48Yj5Db2xsYXRpb248L2I+PC9hPgomIzgyMTE7IHJ1bGUtYmFzZWQsIHVwLXRvLWRhdGUgVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtIChVQ0EpIHNvcnRpbmcgb3JkZXI8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvciBmYXN0IG11bHRpbGluZ3VhbCBzdHJpbmcgY29tcGFyaXNvbjsgZmFzdGVyCmFuZCBtb3JlIGNvbXBsZXRlIHRoYW4KdGhlIEpESzwvbGk+CiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9zdHJpbmdzLmh0bWwiPjxiPlN1cHBsZW1lbnRhcnkKQ2hhcmFjdGVyczwvYj48L2E+ICYjODIxMTsgU3RyaW5nIG1hbmlwdWxhdGlvbiBhbmQgY2hhcmFjdGVyIHByb3BlcnRpZXM8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBwcm9wZXIgR0IgMTgwMzAgYW5kIEpJUyAyMTMKcmVwZXJ0b2lyZSBzdXBwb3J0PC9saT4KICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NoYXJzZXREZXRlY3Rpb24uaHRtbCI+PGI+Q2hhcnNldApEZXRlY3Rpb248L2I+PC9hPiAmIzgyMTE7IFJlY29nbml0aW9uIG9mIHZhcmlvdXMgc2luZ2xlIGFuZCBtdWx0aWJ5dGUgY2hhcnNldHM8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZWZ1bCBmb3IgcmVjb2duaXppbmcgdW50YWdnZWQgdGV4dCBkYXRhPC9saT4KICA8bGk+PGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS91bmljb2RlU2V0Lmh0bWwiPjxiPlVuaWNvZGVTZXQ8L2I+PC9hPgomIzgyMTE7IHN0YW5kYXJkIHNldCBvcGVyYXRpb25zIG9wdGltaXplZCBmb3Igc2V0cyBvZiBVbmljb2RlIGNoYXJhY3RlcnM8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VuaWNvZGVTZXRzIGNhbiBiZSBidWlsdCBmcm9tIHN0cmluZyBwYXR0ZXJucwp1c2luZyBhbnkgVW5pY29kZSBwcm9wZXJ0aWVzLjwvbGk+CiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9UcmFuc2Zvcm0uaHRtbCI+PGI+VHJhbnNmb3JtczwvYj48L2E+CiYjODIxMTsgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIFVuaWNvZGUgdGV4dCBjb252ZXJzaW9uczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5jbHVkaW5nIEZ1bGwvSGFsZndpZHRoIGNvbnZlcnNpb25zLApOb3JtYWxpemF0aW9uLCBDYXNlIGNvbnZlcnNpb25zLCBIZXgKY29udmVyc2lvbnMsIGFuZCB0cmFuc2xpdGVyYXRpb25zIGJldHdlZW4gc2NyaXB0cyAoNTArIHBhaXJzKTwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvbm9ybWFsaXphdGlvbi5odG1sIj48Yj5Vbmljb2RlCk5vcm1hbGl6YXRpb248L2I+PC9hPiAmIzgyMTE7IE5GQywgTkZELCBORktELCBORktDPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGb3IgY2Fub25pY2FsIHRleHQgcmVwcmVzZW50YXRpb25zLCBuZWVkZWQgZm9yClhNTCBhbmQgdGhlIG5ldDwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvZGF0ZUNhbGVuZGFyLmh0bWwiPjxiPkludGVybmF0aW9uYWwKQ2FsZW5kYXJzPC9iPjwvYT4gJiM4MjExOyBBcmFiaWMsIEJ1ZGRoaXN0LCBIZWJyZXcsIEphcGFuZXNlLCBFdGhpb3BpYywgSXNsYW1pYywgQ29wdGljIGFuZCBDaGluZXNlIGNhbGVuZGFyczxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3QgcHJlc2VudGF0aW9uIG9mIGRhdGVzIGluCmNlcnRhaW4gY291bnRyaWVzPC9saT4KICA8bGk+PGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9mb3JtYXROdW1iZXJzLmh0bWwiPjxiPk51bWJlcgpGb3JtYXQKRW5oYW5jZW1lbnRzPC9iPjwvYT4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCwgZXRjLjxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW5oYW5jZW1lbnRzIHRvIHRoZSBub3JtYWwgSmF2YSBudW1iZXIKZm9ybWF0dGluZy4gVGhlIHNwZWxsLW91dCBmb3JtYXQgaXMKdXNlZCBmb3IgY2hlY2tzIGFuZCBzaW1pbGFyIGRvY3VtZW50czwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1sIj48Yj5FbmhhbmNlZApXb3JkLUJyZWFrIERldGVjdGlvbjwvYj48L2E+ICYjODIxMTsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVxdWlyZWQgZm9yIGNvcnJlY3Qgc3VwcG9ydCBvZiBUaGFpPC9saT4KICA8bGk+PGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9jb21wcmVzc2lvbi5odG1sIj48Yj5Vbmljb2RlClRleHQKQ29tcHJlc3Npb248L2I+PC9hPiAmIzgyMTE7IFN0YW5kYXJkIGNvbXByZXNzaW9uIG9mIFVuaWNvZGUgdGV4dDxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3VpdGFibGUgZm9yIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgZmllbGRzLAp3aGVyZSBMWlcgYW5kIHNpbWlsYXIgc2NoZW1lcwpkbyBub3QgYXBwbHk8L2xpPgogIDxsaT48YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NvbnZlcnNpb24uaHRtbCI+PGI+Q2hhcnNldCBDb252ZXJzaW9uPC9iPjwvYT4gJiM4MjExOyBDb252ZXJzaW9uIHRvIGFuZCBmcm9tIGRpZmZlcmVudCBjaGFyc2V0cy48YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BsdWdzIGludG8gSkRLJ3MgQ2hhcnNldFByb3ZpZGVyIFNlcnZpY2UgUHJvdmlkZXIgSW50ZXJmYWNlIChTUEkpPC9saT4KCjwvdWw+CjxibG9ja3F1b3RlPgogIDxwPjxiPk5vdGU6PC9iPiBXZSBjb250aW51ZSB0byBwcm92aWRlIGFzc2lzdGFuY2UgdG8gU3VuLCBhbmQgaW4gc29tZQpjYXNlcywgSUNVNEogc3VwcG9ydCBoYXMgYmVlbiByb2xsZWQgaW50byBhIGxhdGVyIHJlbGVhc2Ugb2YgSmF2YS4gRm9yCmV4YW1wbGUsIHRoZSBUaGFpIHdvcmQtYnJlYWsgaXMgbm93IGluIEphdmEgMS40LiBIb3dldmVyLCB0aGUgbW9zdApjdXJyZW50IGFuZCBjb21wbGV0ZSB2ZXJzaW9uIGlzIGFsd2F5cyBmb3VuZCBpbiBJQ1U0Si48L3A+CjwvYmxvY2txdW90ZT4KPCEtLQoKPHA+PGI+SUNVNEogaXMgYW4gYWRkLW9uIGxpYnJhcnkgdGhhdCBleHRlbmRzIEphdmEncyBnbG9iYWxpemF0aW9uCgogICAgdGVjaG5vbG9neS48L2I+IEphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsCgogICAgcHJvZ3JhbXMsIGJ1dCBKYXZhIGRvZXMgbm90IHlldCBwcm92aWRlIGFsbCB0aGUgZ2xvYmFsaXphdGlvbgoKICAgIGZlYXR1cmVzIHRoYXQgc29tZSBwcm9kdWN0cyByZXF1aXJlLiAgSUJNIHBsYXllZCBhIGtleSByb2xlIGluCgogICAgcHJvdmlkaW5nIGdsb2JhbGl6YXRpb24gdGVjaG5vbG9neSB0byBTdW4gZm9yIHVzZSBpbiBKYXZhLiAgT3ZlcgoKICAgIHRoZSBwYXN0IHNldmVuIHllYXJzLCB0aGUgSUNVIHRlYW0gaGFzIGNvbnRpbnVlZCB0byBlbmhhbmNlIGFuZAoKICAgIGV4dGVuZCB0aGlzIHRlY2hub2xvZ3kuICBJQk0gbWFrZXMgdGhpcyB0ZWNobm9sb2d5IGF2YWlsYWJsZQoKICAgIGluIEphdmEgdGhyb3VnaCB0aGUgSUNVNEogb3Blbi1zb3VyY2UgcHJvamVjdC48L3A+CgoKCjxwPklDVTRKIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgdG9vbHM6CgogICAgPHVsPgoKICAgIDxsaT48Yj5Vbmljb2RlIE5vcm1hbGl6YXRpb248L2I+ICYjODIxMTsgTkZDLCBORkQsIE5GS0QsIE5GS0M8YnI+CgogICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2R1Y2VzIGNhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9ucywgbmVlZGVkIGZvciBYTUwgYW5kIHRoZSBuZXQuCgogICAgPGxpPjxiPkludGVybmF0aW9uYWwgQ2FsZW5kYXJzPC9iPiAmIzgyMTE7IEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgYW5kIEphcGFuZXNlPGJyPgoKICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXF1aXJlZCBmb3IgY29ycmVjdCBwcmVzZW50YXRpb24gb2YgZGF0ZXMgaW4gc29tZSBjb3VudHJpZXMuCgogICAgPGxpPjxiPk51bWJlciBGb3JtYXQgRW5oYW5jZW1lbnRzPC9iPiAmIzgyMTE7IFNjaWVudGlmaWMgTm90YXRpb24sIFNwZWxsZWQtb3V0IE51bWJlcnM8YnI+CgogICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuaGFuY2VzIHN0YW5kYXJkIEphdmEgbnVtYmVyIGZvcm1hdHRpbmcuIFRoZSBzcGVsbGVkLW91dCBmb3JtYXQgaXMgdXNlZAoKZm9yIGNoZWNrcyBhbmQgc2ltaWxhciBkb2N1bWVudHMuCgogICAgPGxpPjxiPkVuaGFuY2VkIHdvcmQtYnJlYWsgZGV0ZWN0aW9uPC9iPiAmIzgyMTE7IFJ1bGUtYmFzZWQsIHN1cHBvcnRzIFRoYWk8YnI+CgogICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHN1cHBvcnQgb2YgVGhhaS4KCiAgICA8bGk+PGI+VW5pY29kZSBUZXh0IENvbXByZXNzaW9uPC9iPiAmIzgyMTE7IFN0YW5kYXJkIGNvbXByZXNzaW9uIG9mIFVuaWNvZGUgdGV4dDxicj4KCiAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3VpdGFibGUgZm9yIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgZmllbGRzLCB3aGVyZSBMWlcgYW5kIHNpbWlsYXIgc2NoZW1lcwoKZG8gbm90IGFwcGx5LgoKICAgIDxsaT48Yj5Db2xsYXRpb248L2I+ICYjODIxMTsgUnVsZS1iYXNlZCwgdXAtdG8tZGF0ZSBVbmljb2RlIENvbGxhdGlvbiBBbGdvcml0aG0gKFVDQSkgc29ydGluZyBvcmRlcjxicj4KCiAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGZhc3QgbXVsdGlsaW5ndWFsIHN0cmluZyBjb21wYXJpc29uCgogICAgPGxpPjxiPlRyYW5zZm9ybXM8L2I+ICYjODIxMTsgUnVsZS1iYXNlZCB0cmFuc2Zvcm1hdGlvbnMgb2YgdW5pY29kZSBkYXRhPGJyPgoKICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtVc2VmdWwgZm9yIGFuYWx5c2lzIGFuZCB0cmFuc2xpdGVyYXRpb24KCiAgICA8L3VsPgoKICAgICAgICAKCkluIHNvbWUgY2FzZXMsIHRoZSBhYm92ZSBzdXBwb3J0IGhhcyBiZWVuIHJvbGxlZCBpbnRvIGEgbGF0ZXIgcmVsZWFzZSBvZgoKSmF2YS4gRm9yIGV4YW1wbGUsIHRoZSBUaGFpIHdvcmQtYnJlYWsgaXMgbm93IGluIEphdmEgMS40LiBIb3dldmVyLCB0aGUgbW9zdAoKY3VycmVudCBhbmQgY29tcGxldGUgdmVyc2lvbiBvZiB0aGlzIHN1cHBvcnQgaXMgYWx3YXlzIGZvdW5kIGluIElDVTRKLgoKLS0+CjxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJuZXdzIj48L2E+V2hhdCBJcyBOZXcgSW4gVGhpcyBSZWxlYXNlPzwvaDM+CjxzdHJvbmc+SUNVNEogMy42PC9zdHJvbmc+Cjx1bD4KICAgIDxsaT48c3Ryb25nPlVuaWNvZGU8L3N0cm9uZz46IElDVSB1c2VzIGFuZCBzdXBwb3J0cyBVbmljb2RlIDUuMCwgd2hpY2ggaXMgdGhlCiAgICBsYXRlc3QgbWFqb3IgcmVsZWFzZSBvZiBVbmljb2RlLiBVbmljb2RlIDUuMCB3aWxsIGJlIHVzZWQgaW4gbWFueQogICAgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucywgYW5kIHRoaXMgdmVyc2lvbiBvZiBJQ1UgaXMgaW1wb3J0YW50CiAgICBtYWludGFpbiBpbnRlcm9wZXJhYmlsaXR5IHdpdGggdGhlc2UgbmV3IG9wZXJhdGluZyBzeXN0ZW1zIGFuZCBhcHBsaWNhdGlvbnMuCiAgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgNS4wIGNhbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy9wcmVzcy9wci11Y2Q1LjAuaHRtbCI+VW5pY29kZSBwcmVzcwogICAgcmVsZWFzZTwvYT4uPC9saT4KICAgIDxsaT48c3Ryb25nPkxvY2FsZSBEYXRhPC9zdHJvbmc+OiBJQ1UgdXNlcyBhbmQgc3VwcG9ydHMgZGF0YSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvcHJlc3MvcHItY2xkcjEuNC5odG1sIj5Db21tb24gTG9jYWxlIERhdGEKICAgIFJlcG9zaXRvcnkgKENMRFIpIDEuNDwvYT4sIHdoaWNoIGluY2x1ZGVzIG1hbnkgaW1wcm92ZW1lbnRzIGluIHF1YWxpdHkKICAgIGFuZCBxdWFudGl0eSBvZiBkYXRhLiBUaGVyZSBpcyAyNSUgbW9yZSBDTERSIGxvY2FsZSBkYXRhIGluIDI0NSBsb2NhbGVzIGluIElDVS48L2xpPgogICAgPGxpPjxzdHJvbmc+R2xvYmFsaXphdGlvbiBQcmVmZXJlbmNlczwvc3Ryb25nPjogQSBuZXcgZmxleGlibGUgY29udGFpbmVyIGZvciBsb2NhbGUgZGF0YSB3YXMgYWRkZWQuPC9saT4KICAgIDxsaT48c3Ryb25nPkZvcm1hdHRpbmc8L3N0cm9uZz46IEEgPHN0cm9uZz5wcmV2aWV3PC9zdHJvbmc+IG9mIHRoZSBmbGV4aWJsZSBkYXRlL3RpbWUgZm9ybWF0IGdlbmVyYXRvciBoYXMgYmVlbiBhZGRlZC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0ZSBhbmQgdGltZSBmb3JtYXQgcGF0dGVybnMgdG8gYmUgZ2VuZXJhdGVkIHRoYXQgYXJlIHZhbGlkIGZvciBzcGVjaWZpYyBsb2NhbGVzLjwvbGk+CiAgICA8bGk+PHN0cm9uZz5DaGFyc2V0IENvbnZlcnNpb248L3N0cm9uZz46IEEgPHN0cm9uZz5wcmV2aWV3PC9zdHJvbmc+IG9mIHRoZSBJQ1U0SiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0IEFQSSB3YXMgYWRkZWQuPC9saT4KPC91bD4KPHA+PGk+PGZvbnQgY29sb3I9InJlZCI+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBEbyBub3QgdXNlIHByZXZpZXcgQVBJcyBpbiBwcm9kdWN0aW9uIGNvZGUuIFRoZXkgbWF5IGNoYW5nZSBkcmFzdGljYWxseSBpbiBzdWJzZXF1ZW50IHJlbGVhc2VzLjwvZm9udD48L2k+PC9wPgo8c3Ryb25nPklDVTRKIDMuNi4xPC9zdHJvbmc+Cjx1bD4KICAgIDxsaT48c3Ryb25nPkJ1ZyBmaXhlczwvc3Ryb25nPjogIFRoaXMgcmVsZWFzZSBjb250YWlucyBmb2xsb3dpbmcgYnVnIGZpeGVzCiAgICAobm90IGEgY29tcGxldGUgbGlzdCkKICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvNTQwMiI+CiAgICAgICAgICAgIFRpY2tldCM1NDAyOiBJQ1UncyBEYXRlRm9ybWF0IGlzIHNsb3cgY29tcGFyZWQgd2l0aCB0aGUgSkRLIHZlcnNpb248L2E+IC0gCiAgICAgICAgICAgIFRoZSBmaXggYWxzbyByZXNvbHZlZCBmb2xsb3dpbmcgcmVsYXRlZCBidWdzIC0gCiAgICAgICAgICAgICM8YSBocmVmPSJodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvNTE2OCI+NTE2ODwvYT4sCiAgICAgICAgICAgICM8YSBocmVmPSJodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvNTE4NyI+NTE4NzwvYT4sCiAgICAgICAgICAgICM8YSBocmVmPSJodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvNTI4MSI+NTI4MTwvYT4sCiAgICAgICAgICAgICM8YSBocmVmPSJodHRwOi8vYnVncy5pY3UtcHJvamVjdC5vcmcvdHJhYy90aWNrZXQvNTUwOCI+NTUwODwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3MuaWN1LXByb2plY3Qub3JnL3RyYWMvdGlja2V0LzU1MzYiPgogICAgICAgICAgICBUaWNrZXQjNTUzNjogVVJlc291cmNlQnVuZGxlIHRocmVhZCBsb2NrIHByb2JsZW08L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9idWdzLmljdS1wcm9qZWN0Lm9yZy90cmFjL3RpY2tldC81NjE1Ij4KICAgICAgICAgICAgVGlja2V0IzU2MTU6IEJyZWFrSXRlcmF0b3IjZ2V0TGluZUluc3RhbmNlIGZhaWxzIGluIEphcGFuZXNlIGxvY2FsZTwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2J1Z3MuaWN1LXByb2plY3Qub3JnL3RyYWMvdGlja2V0LzU2ODMiPgogICAgICAgICAgICBUaWNrZXQjNTY4MzogSW5jb3JyZWN0IERhdGUgZm9ybWF0IGZvciBDaGluZXNlIGxvY2FsZTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPjxzdHJvbmc+TmV3IHRpbWUgem9uZSBkYXRhPC9zdHJvbmc+OiBSZWxlYXNlIDMuNi4xIHVwZGF0ZXMgdGhlIHRpbWUgem9uZQogICAgZGF0YSB0byB2ZXJzaW9uIDIwMDdlIGZyb20gdGhlIE9sc29uIHRpbWUgem9uZSBkYXRhYmFzZS4gIFRoZXJlIHdhcyBhIElDVSB0aW1lCiAgICB6b25lIGRhdGEgZ2VuZXJhdGlvbiB0b29sJ3MgYnVnIHdoaWNoIGNhdXNlZCBzb21lIG9mZnNldCBjYWxjdWxhdGlvbiBwcm9ibGVtcwogICAgcmVwb3J0ZWQgYnkgVGlja2V0IzxhIGhyZWY9Imh0dHA6Ly9idWdzLmljdS1wcm9qZWN0Lm9yZy90cmFjL3RpY2tldC81MTM1Ij41MTM1PC9hPi4KICAgIFRoZSBidWcgaW4gdGhlIHRvb2wgd2FzIGZpeGVkIGFuZCB0aGUgdmVyc2lvbiBvZiB0aW1lIHpvbmUgZGF0YSBjb250YWluZWQgaW4gdGhpcyByZWxlYXNlCiAgICBubyBsb25nZXIgaGFzIHRoZSBvZmZzZXQgY2FsY3VsYXRpb24gcHJvYmxlbXMuCiAgICA8L2xpPgo8L3VsPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0ibGljZW5zZSI+PC9hPkxpY2Vuc2UgSW5mb3JtYXRpb248L2gzPgo8cD4KVGhlIElDVSBwcm9qZWN0cyAoSUNVNEMgYW5kIElDVTRKKSB1c2UgdGhlIFggbGljZW5zZS4gVGhlIFgKbGljZW5zZSBpcyA8Yj5zdWl0YWJsZSBmb3IgY29tbWVyY2lhbCB1c2U8L2I+IGFuZCBpcyBhIHJlY29tbWVuZGVkIGZyZWUgc29mdHdhcmUgbGljZW5zZQp0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTCBsaWNlbnNlLiBUaGlzIGJlY2FtZQplZmZlY3RpdmUgd2l0aCByZWxlYXNlIDEuOC4xIG9mIElDVTRDIGFuZCByZWxlYXNlIDEuMy4xIG9mIElDVTRKIGluCm1pZC0yMDAxLiBBbGwgbmV3IElDVSByZWxlYXNlcyB3aWxsIGFkb3B0IHRoZSBYIGxpY2Vuc2U7IHByZXZpb3VzIElDVQpyZWxlYXNlcyBjb250aW51ZSB0byB1dGlsaXplIHRoZSBJUEwgKElCTSBQdWJsaWMgTGljZW5zZSkuIFVzZXJzCm9mIHByZXZpb3VzIHJlbGVhc2VzIG9mIElDVSB3aG8gd2FudCB0byBhZG9wdCBuZXcgSUNVIHJlbGVhc2VzIHdpbGwKbmVlZCB0byBhY2NlcHQgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBYIGxpY2Vuc2UuCjwvcD4KPHA+ClRoZSBtYWluIGVmZmVjdCBvZiB0aGUgY2hhbmdlIGlzIHRvIHByb3ZpZGUgR1BMIGNvbXBhdGliaWxpdHkuClRoZSBYIGxpY2Vuc2UgaXMgbGlzdGVkIGFzIEdQTCBjb21wYXRpYmxlLCBzZWUgdGhlIEdOVSBwYWdlIGF0IAo8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvcGhpbG9zb3BoeS9saWNlbnNlLWxpc3QuaHRtbCNHUExDb21wYXRpYmxlTGljZW5zZXMiPgpodHRwOi8vd3d3LmdudS5vcmcvcGhpbG9zb3BoeS9saWNlbnNlLWxpc3QuaHRtbCNHUExDb21wYXRpYmxlTGljZW5zZXM8L2E+LgpUaGlzIG1lYW5zIHRoYXQgR1BMIHByb2plY3RzIGNhbiBub3cgdXNlIElDVSBjb2RlLCBpdCBkb2VzIDxiPm5vdDwvYj4KbWVhbiB0aGF0IHByb2plY3RzIHVzaW5nIElDVSBiZWNvbWUgc3ViamVjdCB0byBHUEwuCjwvcD4KPHA+CiBUaGUgSUJNIHZlcnNpb24gY29udGFpbnMgdGhlIGVzc2VudGlhbCB0ZXh0IG9mIHRoZSBsaWNlbnNlLCBvbWl0dGluZyB0aGUKWC1zcGVjaWZpYyB0cmFkZW1hcmtzIGFuZCBjb3B5cmlnaHQgbm90aWNlcy4gVGhlIGZ1bGwgY29weSBvZiA8YQogaHJlZj0ibGljZW5zZS5odG1sIj5JQ1UncyBsaWNlbnNlPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgZG93bmxvYWQKcGFja2FnZS4KPC9wPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iUGxhdGZvcm1EZXBlbmRlbmNpZXMiPjwvYT5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2gzPgo8cD4gQnkgZGVmYXVsdCBJQ1U0SiBkZXBlbmRzIG9uIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyBvbmx5IGF2YWlsYWJsZQppbiBKREsgMS40LiAgV2UgcHJvdmlkZSB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHZhcmlhbnQgb2YgSUNVNEoKdGhhdCB3aWxsIHJ1biBvbiBKREsgMS4zLCBidXQgbm90IGFsbCBidWlsZCB0YXJnZXRzIHdvcmsgb24gdGhhdApwbGF0Zm9ybS4gQ3VycmVudGx5IDEuMS54IGFuZCAxLjIueCBKVk1zIGFyZSB1bnN1cHBvcnRlZCBhbmQgdW50ZXN0ZWQsCmFuZCB5b3UgdXNlIHRoZSBjb21wb25lbnRzIG9uIHRoZXNlIEpWTXMgYXQgeW91ciBvd24gcmlzay48L3A+CjxwPiBUaGUgcmVmZXJlbmNlIHBsYXRmb3JtcyB3aGljaCB3ZSBzdXBwb3J0IGFuZCB0ZXN0IElDVTRKIG9uIGFyZTo8L3A+Cjx1bD4KICA8bGk+IFdpblhQLCBJQk0gSkRLIDEuNS4wPC9saT4KICA8bGk+IFNvbGFyaXMgNS45LCBTdW4gSkRLIDEuNS4wPC9saT4KICA8bGk+IEFJWCA1LjIsIElCTSBKREsgMS41LjA8L2xpPgo8L3VsPgo8cD5QbGVhc2UgdXNlIHRoZSBtb3N0IHJlY2VudCB1cGRhdGVzIG9mIHRoZSBzdXBwb3J0ZWQgSkRLIHZlcnNpb25zLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB3ZSBoYXZlIGJ1aWx0IGFuZCB0ZXN0ZWQgSUNVNEogb24gdGhlIGZvbGxvd2luZyA8Yj51bnN1cHBvcnRlZDwvYj4KcGxhdGZvcm1zIChub3RlLCBvbmx5IHNvbWUgYnVpbGQvdGVzdCB0YXJnZXRzIHdvcmsgb24gMS4zIHBsYXRmb3Jtcyk6CjwvcD4KPHVsPgo8bGk+IFdpblhQIC8gSUJNIEpESyAxLjQuMiwgMS40LjEsIFN1biBKREsgIDEuNS4wLCAxLjQuMjwvbGk+CjxsaT4gU29sYXJpcyA1LjYgLCBTb2xhcmlzIDUuNyAvIFN1biBKREsgMS40LjIsIDEuNC4xLCAxLjQuMDwvbGk+CjxsaT4gU29sYXJpcyA1LjkgLyBTdW4gSkRLIDEuNC4yLCAxLjQuMSwgMS40LjA8L2xpPgo8bGk+IEFJWCA1LjIgLyBJQk0gSkRLIDEuNC4yLCAxLjQuMTwvbGk+CjxsaT4gQUlYIDUuMSAvIElCTSBKREsgMS40LjIsIDEuNC4xPC9saT4KPGxpPiBSZWRIYXQgRW50ZXJwcmlzZSBMaW51eCAzLyAgSUJNIEpESyAxLjUuMCwgMS40LjIsIFN1biBKREsgIDEuNS4wLCAxLjQuMiwgMS40LjE8L2xpPgo8bGk+IEhQIFVYIFN1biBKREsgIDEuNS4wLCAxLjQuMjwvbGk+CjwvdWw+CjxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJkb3dubG9hZCI+PC9hPkhvdyB0byBEb3dubG9hZCBJQ1U0SjwvaDM+CjxwPlRoZXJlIGFyZSB0d28gd2F5cyB0byBkb3dubG9hZCB0aGUgSUNVNEogcmVsZWFzZXMuCjwvcD4KPHVsIHR5cGU9ImRpc2MiPgogIDxsaT48Yj5PZmZpY2lhbCBSZWxlYXNlIFNuYXBzaG90OjwvYj48YnI+CklmIHlvdSB3YW50IHRvIHVzZSBJQ1U0SiAoYXMgb3Bwb3NlZCB0byBkZXZlbG9waW5nIGl0KSwgeW91ciBiZXN0IGJldAppcyB0byBkb3dubG9hZCBhbiBvZmZpY2lhbCwgcGFja2FnZWQgdmVyc2lvbiBvZiB0aGUgSUNVNEogc291cmNlCmNvZGUuIFRoZXNlIHZlcnNpb25zIGFyZSB0ZXN0ZWQgbW9yZSB0aG9yb3VnaGx5IHRoYW4gZGF5LXRvLWRheQpkZXZlbG9wbWVudCBidWlsZHMsIGFuZCB0aGV5IGFyZSBwYWNrYWdlZCBpbiBqYXIgZmlsZXMgZm9yIGNvbnZlbmllbnQKZG93bmxvYWQuIFRoZXNlIHBhY2thZ2VkIGZpbGVzIGNhbiBiZSBmb3VuZCBhdCB0aGUgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2Rvd25sb2FkLyI+SUNVIERvd25sb2FkcyBwYWdlPC9hPi4KQSBwYWNrYWdlZCBzbmFwc2hvdCBpcyBuYW1lZCA8Yj5pY3U0ai1YWFgtc3JjLmphcjwvYj4sIHdoZXJlIFhYWAppcyB0aGUgcmVsZWFzZSB2ZXJzaW9uIG51bWJlci4gUGxlYXNlIHVuamFyIHRoaXMgZmlsZS4gSXQKd2lsbCByZWNvbnN0cnVjdCB0aGUgc291cmNlIGRpcmVjdG9yeS48L2xpPgo8L3VsPgo8dWwgdHlwZT0iZGlzYyI+CiAgPGxpPjxiPlN1YnZlcnNpb24gU291cmNlIFJlcG9zaXRvcnk6PC9iPjxicj4KSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGRldmVsb3BpbmcgZmVhdHVyZXMsIHBhdGNoZXMsIG9yIGJ1ZyBmaXhlcyBmb3IKSUNVNEosIHlvdSBzaG91bGQgcHJvYmFibHkgYmUgd29ya2luZyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUKSUNVNEogc291cmNlIGNvZGUuIFlvdSB3aWxsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgb3V0IG9mIG91ciBTdWJ2ZXJzaW9uCnJlcG9zaXRvcnkgdG8gZW5zdXJlIHRoYXQgeW91IGhhdmUgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgYWxsIG9mCnRoZSBmaWxlcy4gVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBkbyB0aGlzLiBQbGVhc2UgZm9sbG93IHRoZQpkaXJlY3Rpb25zIHRoYXQgYXJlIGNvbnRhaW5lZCBvbiB0aGUgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3JlcG9zaXRvcnkvIj5Tb3VyY2UKIFJlcG9zaXRvcnkgcGFnZTwvYT4gZm9yIGRldGFpbHMuCiAgPC9saT4KPC91bD4KPHA+Rm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gZG93bmxvYWQgSUNVNEogZGlyZWN0bHkgZnJvbSB0aGUgd2ViCnNpdGUsIHBsZWFzZSBzZWUgdGhlIElDVSBkb3dubG9hZHMgcGFnZSBhdCA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG93bmxvYWQvIj5odHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb3dubG9hZC88L2E+CjwvcD4KPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IldoYXRDb250YWluIj48L2E+VGhlIFN0cnVjdHVyZSBhbmQgQ29udGVudHMgb2YKSUNVNEo8L2gzPgo8cD5CZWxvdywgPGI+JFJvb3Q8L2I+IGlzIHRoZSBwbGFjZW1lbnQgb2YgdGhlIGljdSBkaXJlY3RvcnkgaW4geW91cgpmaWxlIHN5c3RlbSwgbGlrZQoiZHJpdmU6XC4uLlxpY3U0aiIgaW4geW91ciBlbnZpcm9ubWVudC4gImRyaXZlOlwuLi4iIHN0YW5kcyBmb3IgYW55CmRyaXZlIGFuZCBhbnkgZGlyZWN0b3J5IG9uIHRoYXQgZHJpdmUgdGhhdCB5b3UgY2hvc2UgdG8gaW5zdGFsbCBpY3U0agppbnRvLiA8L3A+CjxwPjxiPkluZm9ybWF0aW9uIGFuZCBidWlsZCBmaWxlczo8L2I+PC9wPgo8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIiB3aWR0aD0iNjIzIj4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPnJlYWRtZS5odG1sPC9iPjxicj4KKHRoaXMgZmlsZSk8L3RkPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QSBkZXNjcmlwdGlvbiBvZiBJQ1U0SgooSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhKTwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5saWNlbnNlLmh0bWw8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+VGhlIFggbGljZW5zZSwgdXNlZCBieQpJQ1U0SjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5idWlsZC54bWw8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QW50IGJ1aWxkIGZpbGUuIFNlZSA8YQogaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+IGZvciBtb3JlCmluZm9ybWF0aW9uPC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KPHA+PGI+VGhlIHNvdXJjZSBkaXJlY3RvcmllcyBtaXJyb3IgdGhlIHBhY2thZ2Ugc3RydWN0dXJlIG9mIHRoZSBjb2RlLjwvYj48YnI+Cjxmb250IGNvbG9yPSJyZWQiPkNvcmU8L2ZvbnQ+IHBhY2thZ2VzIGJlY29tZSBwYXJ0IG9mIHRoZSBJQ1U0SiBqYXIKZmlsZS48YnI+Cjxmb250IGNvbG9yPSJyZWQiPkFQSTwvZm9udD4gcGFja2FnZXMgY29udGFpbiBjbGFzc2VzIHdpdGggc3VwcG9ydGVkCkFQSS4gPGJyPgo8Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD4gY2xhc3NlcyBhcmUgQ29yZSBhbmQgQVBJLCBidXQgY2FuIGJlCnJlbW92ZWQgZnJvbSBpY3U0ai5qYXIsIGFuZCBjYW4gYmUgYnVpbHQgaW50byB0aGVpciBvd24gamFyLjwvcD4KPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIgogd2lkdGg9IjYyMyI+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvY2hhcnNldDxicj4KICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJIChQcmV2aWV3KTwvZm9udD48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZXMgdGhhdCBwcm92aWRlIENoYXJzZXQgY29udmVyc2lvbgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2Rldjxicj4KICAgICAgPGZvbnQgY29sb3I9InJlZCI+Tm9uLUNvcmUsIE5vbi1BUEk8L2ZvbnQ+PC90aD4KICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlBhY2thZ2VzIHVzZWQgZm9yCmludGVybmFsIGRldmVsb3BtZW50OgogICAgICA8dWw+CiAgICAgICAgPGxpPkRhdGE6IGRhdGEgdXNlZCBieSB0ZXN0cyBhbmQgaW4gYnVpbGRpbmcgSUNVPC9saT4KICAgICAgICA8bGk+RGVtb3M6IENhbGVuZGFyLCBIb2xpZGF5LCBCcmVhayBJdGVyYXRvciwgUnVsZS1iYXNlZCBOdW1iZXIKRm9ybWF0LCBUcmFuc2Zvcm1hdGlvbnM8YnI+CihTZWUgPGEgaHJlZj0iI3RyeWluZ291dCI+YmVsb3c8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQpkZW1vcy4pPC9saT4KICAgICAgICA8bGk+VGVzdHM6IEFQSSBhbmQgY292ZXJhZ2UgdGVzdHMgb2YgYWxsIGZ1bmN0aW9uYWxpdHkuPGJyPgpGb3IgaW5mb3JtYXRpb24gYWJvdXQgcnVubmluZyB0aGUgdGVzdHMsIHNlZQokUm9vdC9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLjwvbGk+CiAgICAgICAgPGxpPlRvb2xzOiB0b29scyB1c2VkIHRvIGJ1aWxkIGRhdGEgdGFibGVzLCBldGMuPC9saT4KICAgICAgPC91bD4KICAgICAgPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS9pbXBsPGJyPgogICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBOb24tQVBJPC9mb250PjwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5UaGVzZSBhcmUgdXRpbGl0eSBjbGFzc2VzCnVzZWQgZnJvbSBkaWZmZXJlbnQgSUNVNEogY29yZSBwYWNrYWdlcy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2xhbmc8YnI+CiAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q2hhcmFjdGVyIHByb3BlcnRpZXMKcGFja2FnZS48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L21hdGg8YnI+CiAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QWRkaXRpb25hbCBtYXRoIGNsYXNzZXMuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL2ljdS90ZXh0PGJyPgogICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBBUEk8L2ZvbnQ+PC90aD4KICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFkZGl0aW9uYWwgdGV4dCBjbGFzc2VzLgpUaGVzZSBhZGQgdG8sIGFuZCBpbiBzb21lIGNhc2VzIHJlcGxhY2UsIHJlbGF0ZWQgY29yZSBKYXZhIGNsYXNzZXM6CiAgICAgIDx1bD4KICAgICAgICA8bGk+QXJhYmljIHNoYXBpbmcgPC9saT4KICAgICAgICA8bGk+QnJlYWsgaXRlcmF0aW9uIDwvbGk+CiAgICAgICAgPGxpPkRhdGUgZm9ybWF0dGluZyA8L2xpPgogICAgICAgIDxsaT5OdW1iZXIgZm9ybWF0dGluZyA8L2xpPgogICAgICAgIDxsaT5UcmFuc2xpdGVyYXRpb24gPC9saT4KICAgICAgICA8bGk+Tm9ybWFsaXphdGlvbiA8L2xpPgogICAgICAgIDxsaT5TdHJpbmcgbWFuaXB1bGF0aW9uIDwvbGk+CiAgICAgICAgPGxpPkNvbGxhdGlvbiA8L2xpPgogICAgICAgIDxsaT5TdHJpbmcgc2VhcmNoIDwvbGk+CiAgICAgICAgPGxpPlVuaWNvZGUgY29tcHJlc3Npb24gPC9saT4KICAgICAgICA8bGk+VW5pY29kZSBzZXRzIDwvbGk+CiAgICAgIDwvdWw+CiAgICAgIDwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvdXRpbDxicj4KICAgICAgPGZvbnQgY29sb3I9InJlZCI+Q29yZSwgQVBJPC9mb250PjwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5BZGRpdGlvbmFsIHV0aWxpdHkKY2xhc3NlczoKICAgICAgPHVsPgogICAgICAgIDxsaT5DYWxlbmRhcnMgLSBHcmVnb3JpYW4sIEJ1ZGRoaXN0LCBDb3B0aWMsIEV0aGlvcGljLCBIZWJyZXcsIElzbGFtaWMsIEphcGFuZXNlLCBDaGluZXNlIDwvbGk+CiAgICAgICAgPGxpPkhvbGlkYXk8L2xpPgogICAgICAgIDxsaT5UaW1lWm9uZTwvbGk+CiAgICAgICAgPGxpPlZlcnNpb25JbmZvPC9saT4KICAgICAgICA8bGk+SXRlcmF0aW9uPC9saT4KICAgICAgPC91bD4KICAgICAgPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L3NyYy9jb20vaWJtL3JpY2h0ZXh0PGJyPgogICAgICA8Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+U3R5bGVkIHRleHQgZWRpdGluZwpwYWNrYWdlLiBUaGlzIGluY2x1ZGVzIGRlbW9zLCB0ZXN0cywgYW5kIEdVSXMgZm9yIGVkaXRpbmcgYW5kCmRpc3BsYXlpbmcgc3R5bGVkIHRleHQuIFRoZSByaWNodGV4dCBwYWNrYWdlIHByb3ZpZGVzIGEgc2Nyb2xsYWJsZQpkaXNwbGF5LCB0eXBpbmcsIGFycm93LWtleSBzdXBwb3J0LCB0YWJzLCBhbGlnbm1lbnQgYW5kIGp1c3RpZmljYXRpb24sCndvcmQtIGFuZCBzZW50ZW5jZS1zZWxlY3Rpb24gKGJ5IGRvdWJsZS1jbGlja2luZyBhbmQgdHJpcGxlLWNsaWNraW5nLApyZXNwZWN0aXZlbHkpLCB0ZXh0IHN0eWxlcywgY2xpcGJvYXJkIG9wZXJhdGlvbnMgKGN1dCwgY29weSBhbmQgcGFzdGUpCmFuZCBhIGxvZyBvZiBjaGFuZ2VzIGZvciB1bmRvLXJlZG8uIFJpY2h0ZXh0IHVzZXMgSmF2YSdzIFRleHRMYXlvdXQgYW5kCmNvbXBsZXggdGV4dCBzdXBwb3J0IChwcm92aWRlZCB0byBTdW4gYnkgdGhlIElDVTRKIHRlYW0pLjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+CjxwPjxiPkJ1aWxkaW5nIElDVTRKIGNyZWF0ZXMgYW5kIHBvcHVsYXRlcyB0aGUgZm9sbG93aW5nIGRpcmVjdG9yaWVzOjwvYj48L3A+Cjx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgogIDx0Ym9keT4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3QvY2xhc3NlczwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5jb250YWlucyBhbGwgY2xhc3MgZmlsZXM8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3QvZG9jPC90aD4KICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbnRhaW5zIEphdmFEb2MgZm9yIGFsbApwYWNrYWdlczwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cjxicj4KPHA+PGI+SUNVNEogZGF0YSBpcyBzdG9yZWQgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6PC9iPjwvcD4KPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIgogd2lkdGg9IjYyMyI+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Y29kZT5jb20uaWJtLmljdS5pbXBsLmRhdGE8L2NvZGU+PC90aD4KICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkhvbGRzIGRhdGEgdXNlZCBieSB0aGUKSUNVNEogY29yZSBwYWNrYWdlcyAoPGNvZGU+Y29tLmlibS5pY3UubGFuZzwvY29kZT4sIDxjb2RlPmNvbS5pYm0uaWN1LnRleHQ8L2NvZGU+LAogICAgICA8Y29kZT5jb20uaWJtLmljdS51dGlsPC9jb2RlPiwgPGNvZGU+Y29tLmlibS5pY3UubWF0aDwvY29kZT4gYW5kCiAgICAgIDxjb2RlPmNvbS5pYm0uaWN1LnRleHQ8L2NvZGU+KS4gSW4gcGFydGljdWxhciwgYWxsIHJlc291cmNlCmluZm9ybWF0aW9uIGlzIHN0b3JlZCBoZXJlLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Y29kZT5jb20uaWJtLmljdS5kZXYuZGF0YTwvY29kZT48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+SG9sZHMgZGF0YSB0aGF0IGlzIG5vdApwYXJ0IG9mIElDVTRKIGNvcmUsIGJ1dCByYXRoZXIgcGFydCBvZiBhIHRlc3QsIHNhbXBsZSwgb3IgZGVtby48L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgo8YnI+CjxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJBUEkiPjwvYT5XaGVyZSB0byBnZXQgRG9jdW1lbnRhdGlvbjwvaDM+CjxwPlRoZSA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvIj5JQ1UgdXNlcidzCmd1aWRlPC9hPiBjb250YWlucyBsb3RzIG9mIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgSUNVLCBpbiBpdHMgQywKQysrLCBhbmQgSmF2YSBpbmNhcm5hdGlvbnMuPC9wPgo8cD5UaGUgY29tcGxldGUgQVBJIGRvY3VtZW50YXRpb24gZm9yIElDVTRKIChqYXZhZG9jKSBpcyBhdmFpbGFibGUgb24KdGhlIElDVTRKIHdlYiBzaXRlLCBhbmQgY2FuIGJlIGJ1aWx0IGZyb20gdGhlIHNvdXJjZXM6CjwvcD4KPHVsPgogIDxsaT48YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovIj5JbmRleAp0byBhbGwgSUNVNEogQVBJPC9hPjwvbGk+CiAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5odG1sIj5DaGFyc2V0IERldGVjdG9yPC9hPiAmIzgyMTE7IERldGVjdGlvbiBvZiBjaGFyc2V0IGZyb20gYSBieXRlIHN0cmVhbTwvbGk+CiAgPGxpPkludGVybmF0aW9uYWwgQ2FsZW5kYXJzICYjODIxMTsgPGEKICAgIDxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmh0bWwiPkJ1ZGRoaXN0PC9hPiwKICAgIDxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuaHRtbCI+Q2hpbmVzZTwvYT4sCiAgICA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuaHRtbCI+Q29wdGljPC9hPiwKICAgIDxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9FdGhpb3BpY0NhbGVuZGFyLmh0bWwiPkV0aGlvcGljPC9hPiwKICAgIDxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9HcmVnb3JpYW5DYWxlbmRhci5odG1sIj5HcmVnb3JpYW48L2E+LAogICAgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0hlYnJld0NhbGVuZGFyLmh0bWwiPkhlYnJldzwvYT4sCiAgICA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmh0bWwiPklzbGFtaWM8L2E+LAogICAgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0phcGFuZXNlQ2FsZW5kYXIuaHRtbCI+SmFwYW5lc2U8L2E+LjwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmh0bWwiPlVuaWNvZGUKTm9ybWFsaXphdGlvbjwvYT4gJiM4MjExOyBDYW5vbmljYWwgdGV4dCByZXByZXNlbnRhdGlvbiBmb3IgVzNDLjwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuaHRtbCI+TnVtYmVyCkZvcm1hdCBFbmhhbmNlbWVudHM8L2E+ICYjODIxMTsgU2NpZW50aWZpYyBOb3RhdGlvbiwgU3BlbGxlZCBvdXQuPC9saT4KICA8bGk+PGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuaHRtbCI+RW5oYW5jZWQKd29yZC1icmVhayBkZXRlY3Rpb248L2E+ICYjODIxMTsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTwvbGk+CiAgPGxpPjxhCiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5odG1sIj5UcmFuc2xpdGVyYXRpb248L2E+CiYjODIxMTsgQSBnZW5lcmFsIGZyYW1ld29yayBmb3Igb252ZXJ0aW5nIHRleHQgZnJvbSBvbmUgZm9ybWF0IHRvIGFub3RoZXIsCmUuZy4gQ3lyaWxsaWMgdG8gTGF0aW4sIG9yIEhleCB0byBVbmljb2RlLiA8L2xpPgogIDxsaT5Vbmljb2RlIFRleHQgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVDb21wcmVzc29yLmh0bWwiPkNvbXByZXNzaW9uPC9hPgomYW1wOyA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZURlY29tcHJlc3Nvci5odG1sIj5EZWNvbXByZXNzaW9uPC9hPgomIzgyMTE7IDI6MSBjb21wcmVzc2lvbiBvbiBFbmdsaXNoIFVuaWNvZGUgdGV4dC48L2xpPgogIDxsaT5Db2xsYXRpb24gLSA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuaHRtbCI+UnVsZS1iYXNlZApzb3J0aW5nPC9hPiwgPGEKIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5odG1sIj5FZmZpY2llbnQKbXVsdGktbGluZ3VhbCBzZWFyY2hpbmc8L2E+IDwvbGk+CjwvdWw+CjxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJIb3dUb0luc3RhbGxKYXZhYyI+PC9hPkhvdyB0byBJbnN0YWxsIGFuZCBCdWlsZDwvaDM+CjxwPlRvIGluc3RhbGwgSUNVNEosIHNpbXBseSBwbGFjZSB0aGUgcHJlYnVpbHQgamFyIGZpbGUgPHN0cm9uZz5pY3U0ai5qYXI8L3N0cm9uZz4Kb24geW91cgpKYXZhIENMQVNTUEFUSC4gSWYgeW91IG5lZWQgQ2hhcnNldCBBUEkgc3VwcG9ydCBwbGVhc2UgcGxhY2UgPHN0cm9uZz5pY3U0ai1jaGFyc2V0cy5qYXI8L3N0cm9uZz4gb24geW91ciBjbGFzcyBwYXRoLgpObyBvdGhlciBmaWxlcyBhcmUgbmVlZGVkLjwvcD4KPHA+PGI+RWNsaXBzZSB1c2Vyczo8L2I+IFNlZSB0aGUgSUNVNEogc2l0ZSBmb3IgaW5mb3JtYXRpb24gb248YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG9jcy9lY2xpcHNlX2hvd3RvL2VjbGlwc2VfaG93dG8uaHRtbCI+CmhvdyB0byBjb25maWd1cmUgRWNsaXBzZTwvYT4gdG8gYnVpbGQgSUNVNEouPC9wPgo8cD5UbyBidWlsZCBJQ1U0SiwgeW91IHdpbGwgbmVlZCBhIEphdmEyIEpESyBhbmQgdGhlIEFudCBidWlsZCBzeXN0ZW0uCldlIHN0cm9uZ2x5IHJlY29tbWVuZCB1c2luZyB0aGUgQW50IGJ1aWxkIHN5c3RlbSB0byBidWlsZCBJQ1U0Si4KSXQncyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIGJvdGggdGhlIEpESyBhbmQgQW50IHNvbWV3aGVyZSA8ZW0+b3V0c2lkZTwvZW0+CnRoZSBJQ1U0SiBkaXJlY3RvcnkuIEZvciBleGFtcGxlLCBvbiBMaW51eCB5b3UgbWlnaHQgaW5zdGFsbCB0aGVzZSBpbgovdXNyL2xvY2FsLjwvcD4KPHVsPgogIDxsaT5JbnN0YWxsIGEgcmVjZW50IEpESywgdmVyc2lvbiAxLjQueCB3aWxsIHdvcmsuPC9saT4KICA8bGk+SW5zdGFsbCB0aGUgPGEgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnLyI+PHN0cm9uZz5BbnQ8L3N0cm9uZz48L2E+CmJ1aWxkIHN5c3RlbS4gQW50IGlzIGEgcG9ydGFibGUsIEphdmEtYmFzZWQgYnVpbGQgc3lzdGVtIHNpbWlsYXIgdG8KbWFrZS4gSUNVNEogdXNlcyBBbnQgYmVjYXVzZSBpdCBpbnRyb2R1Y2VzIG5vIG90aGVyIGRlcGVuZGVuY2llcywgaXQncwpwb3J0YWJsZSwgYW5kIGl0J3MgZWFzaWVyIHRvIG1hbmFnZSB0aGFuIGEgY29sbGVjdGlvbiBvZiBtYWtlZmlsZXMuIFdlCmN1cnJlbnRseSBidWlsZCBJQ1U0SiB1c2luZyBhIHNpbmdsZSBtYWtlZmlsZSBvbiBib3RoIFdpbmRvd3MgOXggYW5kCkxpbnV4IHVzaW5nIEFudC4gVGhlIGJ1aWxkIHN5c3RlbSByZXF1aXJlcyBBbnQgMS42IG9yIGxhdGVyLgogICAgPHA+SW5zdGFsbGluZyBBbnQgaXMgc3RyYWlnaHRmb3J3YXJkLiBEb3dubG9hZCBpdCAoc2VlIDxhCiBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvYmluZG93bmxvYWQuY2dpIj5odHRwOi8vYW50LmFwYWNoZS5vcmcvYmluZG93bmxvYWQuY2dpPC9hPiksCmV4dHJhY3QgaXQgb250byB5b3VyIHN5c3RlbSwgc2V0IHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQgYWRkCml0cyBiaW4gZGlyZWN0b3J5IHRvIHlvdXIgcGF0aC4gRm9yIGV4YW1wbGU6IDwvcD4KICAgIDxwcmU+ICAgIHNldCBKQVZBX0hPTUU9QzpcamRrMS41LjA8YnI+ICAgIHNldCBBTlRfSE9NRT1DOlxhbnQ8YnI+ICAgIHNldCBQQVRIPSVQQVRIJTslQU5UX0hPTUUlXGJpbjwvcHJlPgogICAgPHA+U2VlIHRoZSBjdXJyZW50IEFudCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLjwvcD4KICA8L2xpPgo8L3VsPgo8cD5PbmNlIHRoZSBKREsgYW5kIEFudCBhcmUgaW5zdGFsbGVkLCBidWlsZGluZyBpcyBqdXN0IGEgbWF0dGVyIG9mCnR5cGluZyA8c3Ryb25nPmFudDwvc3Ryb25nPiBpbiB0aGUgSUNVNEogcm9vdCBkaXJlY3RvcnkuIFRoaXMgY2F1c2VzCnRoZSBBbnQgYnVpbGQgc3lzdGVtIHRvIHBlcmZvcm0gYSBidWlsZCBhcyBzcGVjaWZpZWQgYnkgdGhlIGZpbGUKPHN0cm9uZz5idWlsZC54bWw8L3N0cm9uZz4sIGxvY2F0ZWQgaW4gdGhlIElDVTRKIHJvb3QgZGlyZWN0b3J5LiBZb3UKY2FuIGdpdmUgQW50IG9wdGlvbnMgbGlrZSAtdmVyYm9zZSwgYW5kIHlvdSBjYW4gc3BlY2lmeSB0YXJnZXRzLiBBbnQKd2lsbCBvbmx5IGJ1aWxkIHdoYXQncyBiZWVuIGNoYW5nZWQgYW5kIHdpbGwgcmVzb2x2ZSBkZXBlbmRlbmNpZXMKcHJvcGVybHkuIEZvciBleGFtcGxlOjwvcD4KPGJsb2NrcXVvdGU+CiAgPHByZT5GOlxpY3U0aiZndDthbnQgdGVzdHM8YnI+QnVpbGRmaWxlOiBidWlsZC54bWw8YnI+UHJvamVjdCBiYXNlIGRpciBzZXQgdG86IEY6XGljdTRqPGJyPkV4ZWN1dGluZyBUYXJnZXQ6IGNvcmU8YnI+Q29tcGlsaW5nIDcxIHNvdXJjZSBmaWxlcyB0byBGOlxpY3U0alxjbGFzc2VzPGJyPkV4ZWN1dGluZyBUYXJnZXQ6IHRlc3RzPGJyPkNvbXBpbGluZyAyNCBzb3VyY2UgZmlsZXMgdG8gRjpcaWN1NGpcY2xhc3Nlczxicj5Db21wbGV0ZWQgaW4gMTkgc2Vjb25kczwvcHJlPgo8L2Jsb2NrcXVvdGU+CjxpPk5vdGU6IFRoZSBhYm92ZSBvdXRwdXQgaXMgYW4gZXhhbXBsZS4gVGhlIG51bWJlcnMgYXJlIGxpa2VseSB0byBiZSBkaWZmZXJlbnQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIElDVTRKLjwvaT4KPHA+VGhlIGZvbGxvd2luZyBhcmUgc29tZSB0YXJnZXRzIHRoYXQgeW91IGNhbiBwcm92aWRlIHRvIDxiPmFudDwvYj4uCkZvciBtb3JlIHRhcmdldHMgcnVuIDxjb2RlPmFudCAtcHJvamVjdGhlbHA8L2NvZGU+IG9yIHNlZSB0aGUgYnVpbGQueG1sIGZpbGUuPC9wPgo8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiCiB3aWR0aD0iNjIzIj4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmFsbDwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCBhbGwgdGFyZ2V0cy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y29yZTwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgbWFpbiBjbGFzcwpmaWxlcyBpbiB0aGUgc3ViZGlyZWN0b3J5IDxzdHJvbmc+Y2xhc3Nlczwvc3Ryb25nPi4gSWYgbm8gdGFyZ2V0IGlzCnNwZWNpZmllZCwgY29yZSBpcyBhc3N1bWVkLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj50ZXN0czwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgdGVzdCBjbGFzcwpmaWxlcy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+ZGVtb3M8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIGRlbW9zLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj50b29sczwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgdG9vbHMuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmRvY3M8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UnVuIGphdmFkb2Mgb3ZlciB0aGUgbWFpbgpjbGFzcyBmaWxlcywgZ2VuZXJhdGluZyBhbiBIVE1MIGRvY3VtZW50YXRpb24gdHJlZSBpbiB0aGUgc3ViZGlyZWN0b3J5IDxzdHJvbmc+ZG9jPC9zdHJvbmc+LjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5qYXI8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q3JlYXRlIGEgamFyIGFyY2hpdmUgPHN0cm9uZz5pY3U0ai5qYXI8L3N0cm9uZz4KaW4gdGhlIHJvb3QgSUNVNEogZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIG1haW4gY2xhc3MgZmlsZXMuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmphclNyYzwvdGg+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5MaWtlIHRoZSA8c3Ryb25nPmphcjwvc3Ryb25nPgp0YXJnZXQsIGJ1dCBjb250YWluaW5nIG9ubHkgdGhlIHNvdXJjZSBmaWxlcy4gPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmphckRvY3M8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+TGlrZSB0aGUgPHN0cm9uZz5qYXI8L3N0cm9uZz4KdGFyZ2V0LCBidXQgY29udGFpbmluZyBvbmx5IHRoZSBkb2NzLiA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+cmljaGVkaXQ8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIHJpY2hlZGl0IGNvcmUKY2xhc3MgZmlsZXMgYW5kIHRlc3RzLiA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+cmljaGVkaXRKYXI8L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q3JlYXRlIHRoZSByaWNoZWRpdCBqYXIKZmlsZSAod2hpY2ggY29udGFpbnMgb25seSB0aGUgcmljaGVkaXQgY29yZSBjbGFzcyBmaWxlcykuIFRoZSBmaWxlIDxzdHJvbmc+cmljaGVkaXQuamFyPC9zdHJvbmc+CndpbGwgYmUgY3JlYXRlZCBpbiB0aGUgPHN0cm9uZz4uL3JpY2hlZGl0PC9zdHJvbmc+IHN1YmRpcmVjdG9yeS4gQW55CmV4aXN0aW5nIGZpbGUgb2YgdGhhdCBuYW1lIHdpbGwgYmUgb3ZlcndyaXR0ZW4uPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnJpY2hlZGl0WmlwPC90aD4KICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkNyZWF0ZSBhIHppcCBhcmNoaXZlIG9mCnRoZSByaWNoZWRpdCBkb2NzIGFuZCBqYXIgZmlsZSBmb3IgZGlzdHJpYnV0aW9uLiBUaGUgemlwIGZpbGUgPHN0cm9uZz5yaWNoZWRpdC56aXA8L3N0cm9uZz4Kd2lsbCBiZSBjcmVhdGVkIGluIHRoZSA8c3Ryb25nPi4vcmljaGVkaXQ8L3N0cm9uZz4gc3ViZGlyZWN0b3J5LiBBbnkKZXhpc3RpbmcgZmlsZSBvZiB0aGF0IG5hbWUgd2lsbCBiZSBvdmVyd3JpdHRlbi48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y2xlYW48L3RoPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+UmVtb3ZlIGFsbCBidWlsdCB0YXJnZXRzLApsZWF2aW5nIHRoZSBzb3VyY2UuPC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWQgdGhlIEFudCBkb2N1bWVudGF0aW9uIGFuZCB0aGUgPHN0cm9uZz5idWlsZC54bWw8L3N0cm9uZz4KZmlsZS48L3A+CjxwPkFmdGVyIGRvaW5nIGEgYnVpbGQgaXQgaXMgYSBnb29kIGlkZWEgdG8gcnVuIGFsbCB0aGUgaWN1NGogdGVzdHMgYnkKdHlwaW5nPGJyPgo8dHQ+ImFudCBjaGVjayI8L3R0PiBvcgoiamF2YQotY2xhc3NwYXRoICRSb290L2NsYXNzZXMKY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCAtbm90aHJvdyIuPC9wPgo8cD4oSWYgeW91IGFyZSBhbGxlcmdpYyB0byBidWlsZCBzeXN0ZW1zLCBhcyBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZwpBbnQgeW91IGNhbiBidWlsZCBieSBydW5uaW5nIGphdmFjIGFuZCBqYXZhZG9jIGRpcmVjdGx5LiBUaGlzCmlzIG5vdCByZWNvbW1lbmRlZC4gWW91IG1heSBoYXZlIHRvIG1hbnVhbGx5IGNyZWF0ZSBkZXN0aW5hdGlvbgpkaXJlY3Rvcmllcy4pPC9wPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iSG93VG9Nb2R1bGFyaXplIj48L2E+SG93IHRvIG1vZHVsYXJpemUgSUNVNEo8L2gzPgo8cD5Tb21lIGNsaWVudHMgbWF5IG5vdCB3aXNoIHRvIHNoaXAgYWxsIG9mIElDVTRKIHdpdGggdGhlaXIKYXBwbGljYXRpb24sIHNpbmNlIHRoZSBhcHBsaWNhdGlvbiBtaWdodCBvbmx5IHVzZSBhIHNtYWxsIHBhcnQgb2YKSUNVNEouCklDVTRKIHJlbGVhc2UgMi42IGFuZCBsYXRlciBwcm92aWRlIGJ1aWxkIG9wdGlvbnMgdG8gYnVpbGQgaW5kaXZpZHVhbApJQ1U0SiAnbW9kdWxlcycgZm9yIGEgbW9yZSBjb21wYWN0IGRpc3RyaWJ1dGlvbi4KVGhlIG1vZHVsZXMgYXJlIGJhc2VkIG9uIGEgc2VydmljZSBhbmQgdGhlIEFQSXMgdGhhdCBkZWZpbmUgaXQsIGUuZy4sCnRoZSBub3JtYWxpemVyIG1vZHVsZSBzdXBwb3J0cyBhbGwgdGhlIEFQSXMgb2YgdGhlIE5vcm1hbGl6ZXIgY2xhc3MKKGFuZCBzb21lIG90aGVycykuIFRlc3RzIGNhbiBiZSBydW4gdG8gdmVyaWZ5IHRoYXQgdGhlIEFQSXMgc3VwcG9ydGVkCmJ5IHRoZSBtb2R1bGUgZnVuY3Rpb24gY29ycmVjdGx5LgpCZWNhdXNlIG9mIGludGVybmFsIGNvZGUgZGVwZW5kZW5jaWVzLCBhIG1vZHVsZSBjb250YWlucyBleHRyYSBjbGFzc2VzCnRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUncyBjb3JlIHNlcnZpY2UgQVBJLiBTb21lIG9yIG1vc3Qgb2YgdGhlCkFQSXMgb2YgdGhlc2UgZXh0cmEgY2xhc3NlcyB3aWxsIG5vdCB3b3JrLiA8Yj5Pbmx5IHRoZSBtb2R1bGUncyBjb3JlCnNlcnZpY2UgQVBJIGlzIGd1YXJhbnRlZWQuPC9iPiBPdGhlciBBUElzIG1heSB3b3JrIHBhcnRpYWxseSBvciBub3QgYXQKYWxsLCBzbyBjbGllbnQgY29kZSBzaG91bGQgYXZvaWQgdGhlbS48L3A+CjxwPgpJbmRpdmlkdWFsIG1vZHVsZXMgYXJlIG5vdCBidWlsdCBkaXJlY3RseSBpbnRvIHRoZWlyIG93biBzZXBhcmF0ZSBqYXIKZmlsZXMuIFNpbmNlIHRoZWlyIGRlcGVuZGVuY2llcwpvZnRlbiBvdmVybGFwLCB1c2luZyBzZXBhcmF0ZSBtb2R1bGVzIHRvICdhZGQgb24nIElDVTRKIGZ1bmN0aW9uYWxpdHkKd291bGQgcmVzdWx0IGluCnVud2FudGVkIGR1cGxpY2F0aW9uIG9mIGNsYXNzIGZpbGVzLiBJbnN0ZWFkLCBidWlsZGluZyBhIG1vZHVsZSBjYXVzZXMKYSBzdWJzZXQgb2YgSUNVNEoncwpjbGFzc2VzIHRvIGJlIGJ1aWx0IGFuZCBwdXQgaW50byBJQ1U0SidzIHN0YW5kYXJkIGJ1aWxkIGRpcmVjdG9yeS4KQWZ0ZXIgb25lIG9yIG1vcmUgbW9kdWxlIHRhcmdldHMgYXJlIGJ1aWx0LCB0aGUgJ21vZHVsZUphcicgdGFyZ2V0IGNhbgp0aGVuIGJlCmJ1aWx0LCB3aGljaCBwYWNrYWdlcyB0aGUgY2xhc3MgZmlsZXMgaW50byBhICdtb2R1bGUgamFyLicgT3RoZXIgdGhhbgp0aGUgZmFjdCB0aGF0IGl0CmNvbnRhaW5zIGZld2VyIGNsYXNzIGZpbGVzLCBsaXR0bGUgZGlzdGluZ3Vpc2hlcyB0aGlzIGphciBmaWxlIGZyb20gYQpmdWxsIElDVTRKIGphciBmaWxlLAphbmQgaW4gZmFjdCB0aGV5IHNoYXJlIHRoZSBzYW1lIG5hbWUuPC9wPgo8cD4KQ3VycmVudGx5IElDVTRKIGNhbiBiZSBkaXZpZGVkIGludG8gdGhlIGZvbGxvd2luZyBtb2R1bGVzOgo8L3A+CjxwPjxiPktleTo8L2I+PC9wPgo8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIiB3aWR0aD0iNjIzIj4KICA8dGJvZHk+CiAgICA8dHI+CgogICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPk1vZHVsZSBOYW1lPC9iPjwvdGg+CiAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+PGI+QW50IFRhcmdldHM8L2I+PC90aD4KICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5UZXN0IFBhY2thZ2UgU3VwcG9ydGVkPC9iPjwvdGg+CiAgICAgIDx0aCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlNpemWHPC9iPjwvdGg+CiAgICA8L3RyPgogICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgoKICAgICAgPHRkIGNvbHNwYW49IjQiPgogICAgICA8dGFibGU+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZSo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+TWFpbiBDbGFzc2VzhiA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgoKICAgICAgPC90YWJsZT4KICAgICAgPC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KPGI+PGZvbnQgc2l6ZT0iMiI+KiBjb20uaWJtLiBzaG91bGQgYmUgcHJlcGVuZGVkIHRvIHRoZSBwYWNrYWdlIG5hbWVzCmxpc3RlZC4KPGJyPgqGIENsYXNzIG5hbWUgaW4gYm9sZCBpbmRpY2F0ZXMgY29yZSBzZXJ2aWNlIEFQSS4gT25seSBBUElzIGluIHRoZXNlIGNsYXNzZXMgYXJlCmZ1bGx5IHN1cHBvcnRlZC4KPGJyPgqHIFNpemVzIGFyZSBvZiB0aGUgY29tcHJlc3NlZCBqYXIgZmlsZSBjb250YWluaW5nIG9ubHkgdGhpcyBtb2R1bGUuClRoZXNlIHNpemVzIGFyZSBhcHByb3hpbWF0ZSBmb3IgcmVsZWFzZSAzLjYuCjwvZm9udD48L2I+CjxwPjxiPk1vZHVsZXM6PC9iPjwvcD4KCjx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgoKICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Tm9ybWFsaXplcjwvdGg+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+bm9ybWFsaXplciwgbm9ybWFsaXplclRlc3RzPC90ZD4KICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyPC90ZD4KICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+Njk4Jm5ic3A7S0I8L3RkPgoKICAgIDwvdHI+CiAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CiAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CiAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CgogICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCiAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJEaXJlY3Rpb24sCiAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAogICAgICAgICAgICAgIFVQcm9wZXJ0eSwKICAgICAgICAgICAgICBVU2NyaXB0CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IsCiAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCiAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLCAKICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCiAgICAgICAgICAgICAgQ29sbGF0b3IsCiAgICAgICAgICAgICAgPGI+Tm9ybWFsaXplcjwvYj4sCiAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAogICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdGlvciwKICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCiAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCiAgICAgICAgICAgICAgVW5pY29kZVNldCwKICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCiAgICAgICAgICAgICAgVVRGMTYKICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCiAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAogICAgICAgICAgICAgIEZyZWV6YWJsZSwKICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCiAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAogICAgICAgICAgICAgIFVMb2NhbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFZlcnNpb25JbmZvCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5Db2xsYXRvcjwvdGg+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29sbGF0b3IsIGNvbGxhdG9yVGVzdHM8L3RkPgogICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yPC90ZD4KICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MiwwMzEmbmJzcDtLQjwvdGQ+CgogICAgPC90cj4KICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KCiAgICAgICAgICAgICAgVUNoYXJhY3RlciwKICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnksCiAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAogICAgICAgICAgICAgIFVQcm9wZXJ0eSwKICAgICAgICAgICAgICBVU2NyaXB0CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIEJyZWFrRGljdGlvbmFyeSwKICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLAogICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAogICAgICAgICAgICAgIDxiPkNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgPGI+Q29sbGF0aW9uS2V5PC9iPiwKICAgICAgICAgICAgICA8Yj5Db2xsYXRvcjwvYj4sCiAgICAgICAgICAgICAgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICA8Yj5Ob3JtYWxpemVyPC9iPiwKICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCiAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCiAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCiAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICA8Yj5SdWxlQmFzZWRDb2xsYXRvcjwvYj4sCiAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCiAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAogICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAogICAgICAgICAgICAgIFVuaWNvZGVTZXQsCiAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAogICAgICAgICAgICAgIFVURjE2CiAgICAgICAgICAgIDwvdGQ+CgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAogICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKICAgICAgICAgICAgICBDb21wYWN0Qnl0ZUFycmF5LAogICAgICAgICAgICAgIEZyZWV6YWJsZSwKICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCiAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAogICAgICAgICAgICAgIFVMb2NhbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFZlcnNpb25JbmZvCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5DYWxlbmRhcjwvdGg+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y2FsZW5kYXIsIGNhbGVuZGFyVGVzdHM8L3RkPgogICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyPC90ZD4KICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MiwwMDYmbmJzcDtLQjwvdGQ+CgogICAgPC90cj4KICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgogICAgICAgIDx0Ym9keT4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KCiAgICAgICAgICAgICAgVUNoYXJhY3RlciwKICAgICAgICAgICAgICBVQ2hhcmFjdGVyQ2F0ZWdvcnksCiAgICAgICAgICAgICAgVUNoYXJhY3RlckVudW1zLAogICAgICAgICAgICAgIFVQcm9wZXJ0eSwKICAgICAgICAgICAgICBVU2NyaXB0CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lm1hdGg6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIDxiPkJpZ0RlY2ltYWw8L2I+LAogICAgICAgICAgICAgIE1hdGhDb250ZXh0CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgoKICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLAogICAgICAgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yLAogICAgICAgICAgICAgIDxiPkNoaW5lc2VEYXRlRm9ybWF0PC9iPiwKICAgICAgICAgICAgICA8Yj5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHM8L2I+LAogICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciwKICAgICAgICAgICAgICBDb2xsYXRpb25LZXksCiAgICAgICAgICAgICAgQ29sbGF0b3IsCiAgICAgICAgICAgICAgPGI+RGF0ZUZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgPGI+RGF0ZUZvcm1hdFN5bWJvbHM8L2I+LAogICAgICAgICAgICAgIDxiPkRlY2ltYWxGb3JtYXQ8L2I+LAogICAgICAgICAgICAgIDxiPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9iPiwKICAgICAgICAgICAgICBNZXNzYWdlRm9ybWF0LAogICAgICAgICAgICAgIE5vcm1hbGl6ZXIsCiAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LAogICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKICAgICAgICAgICAgICBSZXBsYWNlYWJsZSwKICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZywKICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQsCiAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZUZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCiAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBVRm9ybWF0LAogICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCiAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCiAgICAgICAgICAgICAgVW5pY29kZVNldCwKICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCiAgICAgICAgICAgICAgVVRGMTYKICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIDxiPkJ1ZGRoaXN0Q2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCiAgICAgICAgICAgICAgPGI+Q2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKICAgICAgICAgICAgICA8Yj5DaGluZXNlQ2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIDxiPkNvcHRpY0NhbGVuZGFyPC9iPiwKICAgICAgICAgICAgICA8Yj5DdXJyZW5jeTwvYj4sCiAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQsCiAgICAgICAgICAgICAgPGI+RGF0ZVJ1bGU8L2I+LAogICAgICAgICAgICAgIDxiPkVhc3RlckhvbGlkYXk8L2I+LAogICAgICAgICAgICAgIDxiPkV0aGlvcGljQ2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIEZyZWV6YWJsZSwKICAgICAgICAgICAgICA8Yj5HcmVnb3JpYW5DYWxlbmRhcjwvYj4sCiAgICAgICAgICAgICAgPGI+SGVicmV3Q2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIDxiPkhlYnJld0hvbGlkYXk8L2I+LAogICAgICAgICAgICAgIDxiPkhvbGlkYXk8L2I+LAogICAgICAgICAgICAgIDxiPklzbGFtaWNDYWxlbmRhcjwvYj4sCiAgICAgICAgICAgICAgPGI+SmFwYW5lc2VDYWxlbmRhcjwvYj4sCiAgICAgICAgICAgICAgTWVhc3VyZSwKICAgICAgICAgICAgICBNZWFzdXJlVW5pdCwKICAgICAgICAgICAgICA8Yj5SYW5nZURhdGVSdWxlPC9iPiwKICAgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZVJ1bGU8L2I+LAogICAgICAgICAgICAgIDxiPlNpbXBsZUhvbGlkYXk8L2I+LAogICAgICAgICAgICAgIDxiPlNpbXBsZVRpbWVab25lPC9iPiwKICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCiAgICAgICAgICAgICAgPGI+VGltZVpvbmU8L2I+LAogICAgICAgICAgICAgIFVMb2NhbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKICAgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFZlcnNpb25JbmZvCiAgICAgICAgICAgIDwvdGQ+CgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0l0ZXJhdG9yPC90aD4KICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5icmVha0l0ZXJhdG9yLApicmVha0l0ZXJhdG9yVGVzdHM8L3RkPgoKICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5icmVha2l0ZXJhdG9yPC90ZD4KICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MSw4OTMmbmJzcDtLQjwvdGQ+CiAgICA8L3RyPgogICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgogICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgogICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CiAgICAgICAgPHRib2R5PgoKICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBVQ2hhcmFjdGVyLAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKICAgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uLAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKICAgICAgICAgICAgICBVUHJvcGVydHksCiAgICAgICAgICAgICAgVVNjcmlwdAogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgPGI+QnJlYWtEaWN0aW9uYXJ5PC9iPiwKICAgICAgICAgICAgICA8Yj5CcmVha0l0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCiAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIENvbGxhdG9yLAogICAgICAgICAgICAgIDxiPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIE5vcm1hbGl6ZXIsCiAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAogICAgICAgICAgICAgIDxiPlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAogICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAogICAgICAgICAgICAgIFN5bWJvbFRhYmxlLAogICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciwKICAgICAgICAgICAgICBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLAogICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCiAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCiAgICAgICAgICAgICAgVW5pY29kZVNldCwKICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCiAgICAgICAgICAgICAgVVRGMTY8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS51dGlsOjwvdGQ+CgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCiAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKICAgICAgICAgICAgICBGcmVlemFibGUsCiAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKICAgICAgICAgICAgICBVTG9jYWxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCiAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKICAgICAgICAgICAgICBWZXJzaW9uSW5mbwogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+QmFzaWMgUHJvcGVydGllczwvdGg+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+cHJvcGVydGllc0Jhc2ljLApwcm9wZXJ0aWVzQmFzaWNUZXN0czwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjgwMiZuYnNwO0tCPC90ZD4KICAgIDwvdHI+CiAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CgogICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgogICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXI8L2I+LAogICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckRpcmVjdGlvbjwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckVudW1zPC9iPiwKICAgICAgICAgICAgICA8Yj5VUHJvcGVydHk8L2I+LAogICAgICAgICAgICAgIDxiPlVTY3JpcHQ8L2I+LAogICAgICAgICAgICAgIDxiPlVTY3JpcHRSdW48L2I+CgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBCcmVha0RpY3Rpb25hcnksCiAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCiAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIENvbGxhdG9yLAogICAgICAgICAgICAgIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IsCiAgICAgICAgICAgICAgTm9ybWFsaXplciwKICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCiAgICAgICAgICAgICAgUmVwbGFjZWFibGUsCiAgICAgICAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcsCiAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IsCiAgICAgICAgICAgICAgVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwKICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAogICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAogICAgICAgICAgICAgIFVuaWNvZGVTZXQsCiAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAogICAgICAgICAgICAgIDxiPlVURjE2PC9iPgogICAgICAgICAgICA8L3RkPgoKICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCiAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKICAgICAgICAgICAgICBGcmVlemFibGUsCiAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKICAgICAgICAgICAgICBVTG9jYWxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCiAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKICAgICAgICAgICAgICBWZXJzaW9uSW5mbwogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgoKICAgICAgPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+RnVsbCBQcm9wZXJ0aWVzPC90aD4KICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5wcm9wZXJ0aWVzRnVsbCwKcHJvcGVydGllc0Z1bGxUZXN0czwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjEsODM3Jm5ic3A7S0I8L3RkPgoKICAgIDwvdHI+CiAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CiAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CiAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CgogICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXI8L2I+LAogICAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckRpcmVjdGlvbjwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckVudW1zPC9iPiwKICAgICAgICAgICAgICA8Yj5VUHJvcGVydHk8L2I+LAogICAgICAgICAgICAgIDxiPlVTY3JpcHQ8L2I+LAogICAgICAgICAgICAgIDxiPlVTY3JpcHRSdW48L2I+CiAgICAgICAgICAgIDwvdGQ+CgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBCcmVha0RpY3Rpb25hcnksCiAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKICAgICAgICAgICAgICBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLAogICAgICAgICAgICAgIDxiPk5vcm1hbGl6ZXI8L2I+LAogICAgICAgICAgICAgIFJhd0NvbGxhdGlvbktleSwKICAgICAgICAgICAgICA8Yj5SZXBsYWNlYWJsZTwvYj4sCiAgICAgICAgICAgICAgPGI+UmVwbGFjZWFibGVTdHJpbmc8L2I+LAogICAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsCiAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IsCiAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCiAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5Vbmljb2RlRmlsdGVyPC9iPiwKICAgICAgICAgICAgICA8Yj5Vbmljb2RlTWF0Y2hlcjwvYj4sCiAgICAgICAgICAgICAgPGI+VW5pY29kZVNldDwvYj4sCiAgICAgICAgICAgICAgPGI+VW5pY29kZVNldEl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5VVEYxNjwvYj4KCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCiAgICAgICAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLAogICAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXksCiAgICAgICAgICAgICAgRnJlZXphYmxlLAogICAgICAgICAgICAgIDxiPlJhbmdlVmFsdWVJdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgU3RyaW5nVG9rZW5pemVyLAogICAgICAgICAgICAgIFVMb2NhbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiwKICAgICAgICAgICAgICA8Yj5WYWx1ZUl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5WZXJzaW9uSW5mbzwvYj4KCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgIDwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPkZvcm1hdHRpbmc8L3RoPgoKICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5mb3JtYXQsIGZvcm1hdFRlc3RzPC90ZD4KICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ8L3RkPgogICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj4zLDIwNyZuYnNwO0tCPC90ZD4KICAgIDwvdHI+CiAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CiAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CiAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KCiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIFVDaGFyYWN0ZXIsCiAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5LAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKICAgICAgICAgICAgICBVUHJvcGVydHksCiAgICAgICAgICAgICAgVVNjcmlwdAogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5tYXRoOjwvdGQ+CgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgPGI+QmlnRGVjaW1hbDwvYj4KICAgICAgICAgICAgICBNYXRoQ29udGV4dAogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KCiAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCwKICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMsCiAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAogICAgICAgICAgICAgIENvbGxhdGlvbktleSwKICAgICAgICAgICAgICBDb2xsYXRvciwKICAgICAgICAgICAgICA8Yj5EYXRlRm9ybWF0PC9iPiwKICAgICAgICAgICAgICA8Yj5EYXRlRm9ybWF0U3ltYm9sczwvYj4sCiAgICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2I+LAogICAgICAgICAgICAgIE1lYXN1cmVGb3JtYXQsCiAgICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCwKICAgICAgICAgICAgICBOb3JtYWxpemVyLAogICAgICAgICAgICAgIDxiPk51bWJlckZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAogICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAogICAgICAgICAgICAgIDxiPlJ1bGVCYXNlZE51bWJlckZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+U2ltcGxlRGF0ZUZvcm1hdDwvYj4sCiAgICAgICAgICAgICAgU3ltYm9sVGFibGUsCiAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IsCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBVRm9ybWF0LAogICAgICAgICAgICAgIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIsCiAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIsCiAgICAgICAgICAgICAgVW5pY29kZVNldCwKICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IsCiAgICAgICAgICAgICAgVVRGMTYKICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIDxiPkJ1ZGRoaXN0Q2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIsCiAgICAgICAgICAgICAgPGI+Q2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKICAgICAgICAgICAgICA8Yj5DaGluZXNlQ2FsZW5kYXI8L2I+LAogICAgICAgICAgICAgIDxiPkNvcHRpY0NhbGVuZGFyPC9iPiwKICAgICAgICAgICAgICA8Yj5DdXJyZW5jeTwvYj4sCiAgICAgICAgICAgICAgQ3VycmVuY3lBbW91bnQsCiAgICAgICAgICAgICAgPGI+RXRoaW9waWNDYWxlbmRhcjwvYj4sCiAgICAgICAgICAgICAgRnJlZXphYmxlLAogICAgICAgICAgICAgIDxiPkdyZWdvcmlhbkNhbGVuZGFyPC9iPiwKICAgICAgICAgICAgICA8Yj5IZWJyZXdDYWxlbmRhcjwvYj4sCiAgICAgICAgICAgICAgPGI+SXNsYW1pY0NhbGVuZGFyPC9iPiwKICAgICAgICAgICAgICA8Yj5KYXBhbmVzZUNhbGVuZGFyPC9iPiwKICAgICAgICAgICAgICBNZWFzdXJlLAogICAgICAgICAgICAgIE1lYXN1cmVVbml0LAogICAgICAgICAgICAgIDxiPlJhbmdlVmFsdWVJdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgPGI+U2ltcGxlVGltZVpvbmU8L2I+LAogICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKICAgICAgICAgICAgICA8Yj5UaW1lWm9uZTwvYj4sCiAgICAgICAgICAgICAgVUxvY2FsZSwKICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAogICAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IsCiAgICAgICAgICAgICAgVmVyc2lvbkluZm8KICAgICAgICAgICAgPC90ZD4KCiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGFibGU+CiAgICAgIDwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPlN0cmluZ1ByZXAsIElETkE8L3RoPgogICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPnN0cmluZ1ByZXAsIHN0cmluZ1ByZXBUZXN0czwvdGQ+CgogICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA8L3RkPgogICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj43MjUmbmJzcDtLQjwvdGQ+CiAgICA8L3RyPgogICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgogICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgogICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CiAgICAgICAgPHRib2R5PgoKICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBVQ2hhcmFjdGVyLAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJDYXRlZ29yeSwKICAgICAgICAgICAgICBVQ2hhcmFjdGVyRGlyZWN0aW9uLAogICAgICAgICAgICAgIFVDaGFyYWN0ZXJFbnVtcywKICAgICAgICAgICAgICBVUHJvcGVydHksCiAgICAgICAgICAgICAgVVNjcmlwdAogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciwKICAgICAgICAgICAgICBDYW5vbmljYWxJdGVyYXRvciwKICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCiAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIENvbGxhdG9yLAogICAgICAgICAgICAgIDxiPklETkE8L2I+LAogICAgICAgICAgICAgIE5vcm1hbGl6ZXIsCiAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5LAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlLAogICAgICAgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nLAogICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLAogICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLAogICAgICAgICAgICAgIDxiPlN0cmluZ1ByZXA8L2I+LAogICAgICAgICAgICAgIDxiPlN0cmluZ1BhcnNlRXhjZXB0aW9uPC9iPiwKICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IsCiAgICAgICAgICAgICAgVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwKICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAogICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAogICAgICAgICAgICAgIFVuaWNvZGVTZXQsCiAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yLAogICAgICAgICAgICAgIFVURjE2CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KCiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4KICAgICAgICAgICAgICBCeXRlQXJyYXlXcmFwcGVyLAogICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZywKICAgICAgICAgICAgICBGcmVlemFibGUsCiAgICAgICAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLAogICAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciwKICAgICAgICAgICAgICBVTG9jYWxlLAogICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSwKICAgICAgICAgICAgICBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24sCiAgICAgICAgICAgICAgVmFsdWVJdGVyYXRvciwKICAgICAgICAgICAgICBWZXJzaW9uSW5mbwogICAgICAgICAgICA8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICA8L3Rib2R5PgogICAgICA8L3RhYmxlPgogICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+VHJhbnNmb3JtczwvdGg+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+dHJhbnNsaXRlcmF0b3IsCnRyYW5zbGl0ZXJhdG9yVGVzdHM8L3RkPgogICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0PC90ZD4KICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+OTg4Jm5ic3A7S0I8L3RkPgogICAgPC90cj4KICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KCiAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CiAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KICAgICAgICA8dGJvZHk+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlcjwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3RlckNhdGVnb3J5PC9iPiwKICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRGlyZWN0aW9uPC9iPiwKICAgICAgICAgICAgICA8Yj5VQ2hhcmFjdGVyRW51bXM8L2I+LAogICAgICAgICAgICAgIDxiPlVQcm9wZXJ0eTwvYj4sCiAgICAgICAgICAgICAgPGI+VVNjcmlwdDwvYj4sCiAgICAgICAgICAgICAgPGI+VVNjcmlwdFJ1bjwvYj4KCiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPgogICAgICAgICAgICAgIDxiPkJyZWFrRGljdGlvbmFyeTwvYj4sCiAgICAgICAgICAgICAgPGI+QnJlYWtJdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IsCiAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLAogICAgICAgICAgICAgIENvbGxhdGlvbktleSwKICAgICAgICAgICAgICBDb2xsYXRvciwKICAgICAgICAgICAgICA8Yj5EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5Ob3JtYWxpemVyPC9iPiwKICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXksCiAgICAgICAgICAgICAgPGI+UmVwbGFjZWFibGU8L2I+LAogICAgICAgICAgICAgIDxiPlJlcGxhY2VhYmxlU3RyaW5nPC9iPiwKICAgICAgICAgICAgICA8Yj5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciwKICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciwKICAgICAgICAgICAgICBTeW1ib2xUYWJsZSwKICAgICAgICAgICAgICA8Yj5UcmFuc2xpdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyLAogICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyLAogICAgICAgICAgICAgIDxiPlVuaWNvZGVTZXQ8L2I+LAogICAgICAgICAgICAgIDxiPlVuaWNvZGVTZXRJdGVyYXRvcjwvYj4sCiAgICAgICAgICAgICAgPGI+VVRGMTY8L2I+CgogICAgICAgICAgICA8L3RkPgogICAgICAgICAgICA8dGQ+IDxicj4KICAgICAgICAgICAgPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgogICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+CiAgICAgICAgICAgICAgQnl0ZUFycmF5V3JhcHBlciwKICAgICAgICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcsCiAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheSwKICAgICAgICAgICAgICBGcmVlemFibGUsCiAgICAgICAgICAgICAgPGI+UmFuZ2VWYWx1ZUl0ZXJhdG9yPC9iPiwKICAgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIsCiAgICAgICAgICAgICAgVUxvY2FsZSwKICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUsCiAgICAgICAgICAgICAgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLAogICAgICAgICAgICAgIDxiPlZhbHVlSXRlcmF0b3I8L2I+LAogICAgICAgICAgICAgIDxiPlZlcnNpb25JbmZvPC9iPgoKICAgICAgICAgICAgPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgICAgPC90ZD4KICAgIDwvdHI+CjwhLS0gdHI+CgogICAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+PGI+TW9kdWxlIE5hbWU8L2I+PC90aD4KCiAgICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5BbnQgVGFyZ2V0czwvYj48L3RoPgoKICAgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlRlc3QgUGFja2FnZSBTdXBwb3J0ZWQ8L2I+PC90aD4KCiAgICAgICAgPHRoIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+PGI+U2l6ZTwvYj48L3RoPgoKPC90ciAtLT4KICA8L3Rib2R5Pgo8L3RhYmxlPgo8cD5CdWlsZGluZyBhbnkgb2YgdGhlc2UgbW9kdWxlcyBpcyBhcyBlYXN5IGFzIHNwZWNpZnlpbmcgYSBidWlsZAp0YXJnZXQgdG8gdGhlIEFudCBidWlsZCBzeXN0ZW0sIGUuZzoKPGJyPgpUbyBidWlsZCBhIG1vZHVsZSB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIE5vcm1hbGl6ZXIgQVBJOiA8L3A+CjxvbD4KICA8bGk+IEJ1aWxkIHRoZSBtb2R1bGUuIDxicj4KICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplciA8L2NvZGU+IDwvbGk+CiAgPGxpPiBCdWlsZCB0aGUgamFyIGNvbnRhaW5pbmcgdGhlIG1vZHVsZS4gPGJyPgogICAgPGNvZGU+YW50IG1vZHVsZUphciA8L2NvZGU+IDwvbGk+CiAgPGxpPiBCdWlsZCB0aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUuIDxicj4KICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplclRlc3RzIDwvY29kZT4gPC9saT4KICA8bGk+IFJ1biB0aGUgdGVzdHMgYW5kIHZlcmlmeSB0aGF0IHRoZSBzZWxmIHRlc3RzIHBhc3MuIDxicj4KICAgIDxjb2RlPiBqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3Nlcwpjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIC1ub3Rocm93IC13IDwvY29kZT4gPC9saT4KPC9vbD4KSWYgbW9yZSB0aGFuIG9uZSBtb2R1bGUgaXMgcmVxdWlyZWQsIHRoZSBtb2R1bGUgYnVpbGQgdGFyZ2V0cyBjYW4gYmUKY29uY2F0ZW5hdGVkLCBlLmc6CjxvbD4KICA8bGk+IEJ1aWxkIHRoZSBtb2R1bGVzLiA8YnI+CiAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXIgY29sbGF0b3IgPC9jb2RlPiA8L2xpPgogIDxsaT4gQnVpbGQgdGhlIGphciBjb250YWluaW5nIHRoZSBtb2R1bGVzLiA8YnI+CiAgICA8Y29kZT5hbnQgbW9kdWxlSmFyIDwvY29kZT4gPC9saT4KICA8bGk+IEJ1aWxkIHRoZSB0ZXN0cyBmb3IgdGhlIG1vZHVsZS4gPGJyPgogICAgPGNvZGU+IGFudCBub3JtYWxpemVyVGVzdHMgY29sbGF0b3JUZXN0cyA8L2NvZGU+IDwvbGk+CiAgPGxpPiBSdW4gdGhlIHRlc3RzIGFuZCB2ZXJpZnkgdGhhdCB0aGV5IHBhc3MuIDxicj4KICAgIDxjb2RlPiBqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3Nlcwpjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIC1ub3Rocm93IC13IDwvY29kZT4gPC9saT4KPC9vbD4KVGhlIGphciBzaG91bGQgYmUgYnVpbHQgYmVmb3JlIHRoZSB0ZXN0cywgc2luY2UgZm9yIHNvbWUgdGFyZ2V0cwpidWlsZGluZyB0aGUgdGVzdHMgd2lsbCBjYXVzZSBhZGRpdGlvbmFsIGNsYXNzZXMgdG8gYmUgY29tcGlsZWQgdGhhdAphcmUgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBmb3IgdGhlIG1vZHVsZSBpdHNlbGYuCjxoNT4gTm90ZXM6IDwvaDU+Cjx1bD4KICA8bGk+UmVnYXJkbGVzcyBvZiB3aGV0aGVyIElDVTRKIGlzIGJ1aWx0IGFzIGEgd2hvbGUgb3IgYXMgbW9kdWxlcywKdGhlIGphciBmaWxlIHByb2R1Y2VkIGlzIG5hbWVkIDxlbT5pY3U0ai5qYXI8L2VtPi48L2xpPgogIDxsaT5UbyBhc2NlcnRhaW4gaWYgYW4gaWN1NGouamFyIGNvbnRhaW5zIGFsbCBvZiBJQ1U0SiBvciBub3QsIHBsZWFzZQpzZWUgdGhlIG1hbmlmZXN0IGZpbGUgaW4gdGhlIGphcjwvbGk+CiAgPGxpPlRoZSB0YXJnZXQgbW9kdWxlSmFyIGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgb3RoZXIgdGFyZ2V0LiBJdCBqdXN0CmNyZWF0ZXMgYSBqYXIgb2YgYWxsIGNsYXNzIGZpbGVzIHVuZGVyCiRpY3U0al9yb290L2NsYXNzZXMvY29tL2libS9pY3UvLCBleGNsdWRpbmcgdGhlIGNsYXNzcyBmaWxlcyBpbgokaWN1NGpfcm9vdC9jbGFzc2VzL2NvbS9pYm0vaWN1L2RldiBmb2xkZXI8L2xpPgogIDxsaT5UaGUgbGlzdCBvZiBtb2R1bGUgYnVpbGQgdGFyZ2V0cyBjYW4gYmUgb2J0YWluZWQgYnkgcnVubmluZyB0aGUKY29tbWFuZDogPGNvZGU+YW50IC1wcm9qZWN0aGVscDwvY29kZT48L2xpPgo8L3VsPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0idHJ5aW5nb3V0Ij48L2E+VHJ5aW5nIE91dCBJQ1U0SjwvaDM+CjxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlIGRlbW9zIHByb3ZpZGVkIHdpdGggSUNVNEogYXJlIGZvciB0aGUKbW9zdCBwYXJ0IHVuZG9jdW1lbnRlZC4gVGhpcyBsaXN0IGNhbiBzaG93IHlvdSB3aGVyZSB0byBsb29rLCBidXQKeW91J2xsCmhhdmUgdG8gZXhwZXJpbWVudCBhIGJpdC4gVGhlIGRlbW9zICh3aXRoIHRoZQpleGNlcHRpb24gb2YgcmljaGVkaXQpIGFyZSA8c3Ryb25nPnVuc3VwcG9ydGVkPC9zdHJvbmc+IGFuZCBtYXkgY2hhbmdlCm9yIGRpc2FwcGVhciB3aXRob3V0IG5vdGljZS48L3A+CjxwPlRoZSBpY3U0ai5qYXIgZmlsZSBjb250YWlucyBvbmx5IHRoZSBjb3JlIElDVTRKIGNsYXNzZXMsIG5vdCB0aGUKZGVtbyBjbGFzc2VzLCBzbyB1bmxlc3MgeW91IGJ1aWxkIElDVTRKIHRoZXJlIGlzIGxpdHRsZSB0byB0cnkgb3V0Lgo8L3A+CjxoND5DaGFyc2V0PC9oND4KVG8gdHJ5IG91dCB0aGUgPHN0cm9uZz5DaGFyc2V0PC9zdHJvbmc+IHBhY2thZ2UsIGJ1aWxkIDxzdHJvbmc+aWN1NGouamFyPC9zdHJvbmc+IGFuZCA8c3Ryb25nPmljdTRqLWNoYXJzZXRzLmphcjwvc3Ryb25nPiB1c2luZyAnamFyJyB0YXJnZXQuCllvdSBjYW4gdXNlIHRoZSBjaGFyc2V0cyBieSBwbGFjaW5nIHRoZXNlIGZpbGVzIG9uIHlvdXIgY2xhc3NwYXRoLgo8YmxvY2txdW90ZT48dHQ+amF2YSAtY3AgJFJvb3QvaWN1NGouamFyOiRSb290L2ljdTRqLWNoYXJzZXRzLmphciAmbHQ7eW91ciBwcm9ncmFtJmd0OzwvdHQ+PC9ibG9ja3F1b3RlPgo8aDQ+UmljaCBFZGl0PC9oND4KVG8gdHJ5IG91dCB0aGUgPHN0cm9uZz5yaWNoZWRpdDwvc3Ryb25nPiBwYWNrYWdlLCBmaXJzdCBidWlsZCB0aGUKcmljaGVkaXRKYXIgdGFyZ2V0LgpUaGlzIGlzIGEgJ3J1bm5hYmxlJyBqYXIgZmlsZS4gVG8gcnVuIHRoZSByaWNoZWRpdCBkZW1vLCB0eXBlOgo8YmxvY2txdW90ZT48dHQ+amF2YSAtamFyICRSb290L3JpY2hlZGl0L3JpY2hlZGl0LmphcjwvdHQ+PC9ibG9ja3F1b3RlPgpUaGlzIHdpbGwgcHJlc2VudCBhbiBlbXB0eSBlZGl0IHBhbmUgd2l0aCBhbiBhd3QgaW50ZXJmYWNlLgo8cD5XaXRoIGEgZnVsbGVyIGNvbW1hbmQgbGluZSB5b3UgY2FuIHRyeSBvdXQgb3RoZXIgb3B0aW9ucywgZm9yCmV4YW1wbGU6PC9wPgo8YmxvY2txdW90ZT48dHQ+amF2YSAtY2xhc3NwYXRoICRSb290L3JpY2hlZGl0L3JpY2hlZGl0Lmphcgpjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8gWy1zd2luZ11bZmlsZV08L3R0PjwvYmxvY2txdW90ZT4KPHA+VGhpcyB3aWxsIHVzZSBhbiBhd3QgR1VJLCBvciBhIHN3aW5nIEdVSSBpZgo8dHQ+LXN3aW5nPC90dD4gaXMgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuIEl0IHdpbGwgb3BlbiBhIHRleHQKZmlsZSBpZiBvbmUgaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBpdCB3aWxsIG9wZW4gYSBibGFuayBwYWdlLiBDbGljawp0byB0eXBlLjwvcD4KPHA+CllvdSBjYW4gYWRkIHRhYnMgdG8gdGhlIHRhYiBydWxlciBieSBjbGlja2luZyBpbiB0aGUgcnVsZXIgd2hpbGUKaG9sZGluZyBkb3duIHRoZSBjb250cm9sIGtleS4KQ2xpY2tpbmcgb24gYW4gZXhpc3RpbmcgdGFiIGNoYW5nZXMgYmV0d2VlbiBsZWZ0LCByaWdodCwgY2VudGVyLCBhbmQKZGVjaW1hbCB0YWJzLiBEcmFnZ2luZwphIHRhYiBtb3ZlcyBpdCwgZHJhZ2dpbmcgaXQgb2ZmIHRoZSBydWxlciByZW1vdmVzIGl0LjwvcD4KPHA+CllvdSBjYW4gZXhwZXJpbWVudCB3aXRoIGNvbXBsZXggdGV4dCBieSB1c2luZyB0aGUga2V5bWFwIGZ1bmN0aW9ucy4KUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBhcmUgbWFpbmx5IGZvciBkZW1vIHB1cnBvc2VzLCBmb3IgcmVhbCB3b3JrCndpdGggQXJhYmljIG9yIEhlYnJldyB5b3Ugd2lsbCB3YW50IHRvIHVzZSBhbiBpbnB1dCBtZXRob2QuIFlvdSB3aWxsCm5lZWQgdG8gdXNlIGEgZm9udCB0aGF0IHN1cHBvcnRzIEFyYWJpYyBvciBIZWJyZXcsICdMdWNpZGEgU2FucycKKHByb3ZpZGVkCndpdGggSmF2YSkgc3VwcG9ydHMgdGhlc2UgbGFuZ3VhZ2VzLjwvcD4KPGg0Pk90aGVyIGRlbW9zPC9oND4KPHA+VGhlIG90aGVyIGRlbW8gcHJvZ3JhbXMgYXJlIDxzdHJvbmc+bm90IHN1cHBvcnRlZDwvc3Ryb25nPiBhbmQKZXhpc3Qgb25seSB0byBsZXQgeW91CmV4cGVyaW1lbnQgd2l0aCB0aGUgSUNVNEogY2xhc3Nlcy4gRmlyc3QsIGJ1aWxkIElDVTRKIHVzaW5nIDx0dD5hbnQmbmJzcDthbGw8L3R0Pi4KVGhlbiB0cnkKb25lIG9mIHRoZSBmb2xsb3dpbmc6CjwvcD4KPHVsPgogIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMKY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXIuQ2FsZW5kYXJBcHA8L3R0PiA8L2xpPgogIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMKY29tLmlibS5pY3UuZGV2LmRlbW8uaG9saWRheS5Ib2xpZGF5Q2FsZW5kYXJEZW1vPC90dD4gPC9saT4KICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzCmNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmkuVGV4dEJvdW5kRGVtbzwvdHQ+PGJyPgooQ2xpY2sgaW4gdGhlIHRleHQsIHRoZW4gdXNlIDx0dD5jdHJsLU48L3R0PiBhbmQgPHR0PmN0cmwtUDwvdHQ+IHRvCnNlbGVjdCB0aGUgbmV4dCBvciBwcmV2aW91cyBibG9jayBvZiB0ZXh0LikgPC9saT4KICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJibmYuUmJuZkRlbW88L3R0PgogIDwvbGk+CiAgPGxpPjx0dD5qYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdC5EZW1vPC90dD4KICA8L2xpPgo8L3VsPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0icmVzb3VyY2VzIj5JQ1U0SiBSZXNvdXJjZSBJbmZvcm1hdGlvbjwvYT48L2gzPgpTdGFydGluZyB3aXRoIHJlbGVhc2UgMi4xLCBJQ1U0SiBpbmNsdWRlcyBpdHMgb3duCnJlc291cmNlIGluZm9ybWF0aW9uCndoaWNoIGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIEpESyByZXNvdXJjZSBpbmZvcm1hdGlvbi4gKE5vdGUsCmluIElDVTRKIDMuMiBhbmQgMy40LCB0aW1lIHpvbmUgaW5mb3JtYXRpb24gc3RpbGwgZGVwZW5kcyBvbiB0aGUKdW5kZXJseWluZyBKREspLiBUaGUKbmV3IElDVTRKIGluZm9ybWF0aW9uIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGluZm9ybWF0aW9uIGluIElDVTRDIGFuZAptYW55CnJlc291cmNlcyBhcmUsIGluIGZhY3QsIHRoZSBzYW1lIGJpbmFyeSBmaWxlcyB0aGF0IElDVTRDIHVzZXMuCjxwPgpCeSBkZWZhdWx0IHRoZSBJQ1U0SiBkaXN0cmlidXRpb24gaW5jbHVkZXMgYWxsIG9mIHRoZSBzdGFuZGFyZCByZXNvdXJjZQppbmZvcm1hdGlvbi4gSXQgaXMgbG9jYXRlZCB1bmRlciB0aGUgZGlyZWN0b3J5IGNvbS9pYm0vaWN1L2ltcGwvZGF0YS4KRGVwZW5kaW5nIG9uIHRoZSBzZXJ2aWNlLCB0aGUgZGF0YSBpcyBpbiBkaWZmZXJlbnQgbG9jYXRpb25zIGFuZCBpbgpkaWZmZXJlbnQgZm9ybWF0cy4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHdpbGwgY29udGludWUgdG8gY2hhbmdlCmZyb20gcmVsZWFzZSB0byByZWxlYXNlLCBzbyBjbGllbnRzIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBleGFjdApvcmdhbml6YXRpb24Kb2YgdGhlIGRhdGEgaW4gSUNVNEouPC9wPgo8dWw+CiAgPGxpPlRoZSBwcmltYXJ5IDxiPmxvY2FsZSBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5IDx0dD5pY3VkdDM2YjwvdHQ+LAphcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMgd2hvc2UgbmFtZXMgYXJlIHRoZSBsb2NhbGUgaWRlbnRpZmllcnMuIApMb2NhbGUgbmFtaW5nIGlzIGRvY3VtZW50ZWQgdGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTwvY29kZT4KY2xhc3MsIGFuZCB0aGUgdXNlIG9mIHRoZXNlIG5hbWVzIGluIHNlYXJjaGluZyBmb3IgcmVzb3VyY2VzIGlzIGRvY3VtZW50ZWQgCmluIDxjb2RlPmphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT4uCiAgPC9saT4KICA8bGk+VGhlIDxiPmNvbGxhdGlvbiBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5IDx0dD5pY3VkdDM2Yi9jb2xsPC90dD4sCmFzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcy48L2xpPgogIDxsaT5UaGUgPGI+cnVsZS1iYXNlZCB0cmFuc2xpdGVyYXRvciBkYXRhPC9iPiBpcyB1bmRlciB0aGUgZGlyZWN0b3J5Cjx0dD5pY3VkdDM2Yi90cmFuc2xpdDwvdHQ+IGFzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcy4gICg8Yj5Ob3RlOjwvYj4gdGhlCkhhbiB0cmFuc2xpdGVyYXRvciB0ZXN0IGRhdGEgaXMgbm8gbG9uZ2VyIGluY2x1ZGVkIGluIHRoZSBjb3JlIGljdTRqLmphciAKZmlsZSBieSBkZWZhdWx0Lik8L2xpPgogIDxsaT5UaGUgPGI+cnVsZS1iYXNlZCBudW1iZXIgZm9ybWF0IGRhdGE8L2I+IGlzIHVuZGVyIHRoZSBkaXJlY3RvcnkKPHR0PmljdWR0MzZiL3JibmY8L3R0PiBhcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMuCiAgPGxpPlRoZSA8Yj5icmVhayBpdGVyYXRvciBkYXRhPC9iPiBpcyBkaXJlY3RseSB1bmRlciB0aGUgZGF0YQpkaXJlY3RvcnksIGFzIGEgc2V0IG9mIDx0dD4iLmJyayI8L3R0PiBmaWxlcywgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZQp0eXBlIG9mIGJyZWFrIGFuZCB0aGUgbG9jYWxlIHdoZXJlIHRoZXJlIGFyZSBsb2NhbGUtc3BlY2lmaWMgdmVyc2lvbnMuPC9saT4KICA8bGk+VGhlIDxiPmhvbGlkYXkgZGF0YTwvYj4gaXMgdW5kZXIgdGhlIDx0dD5kYXRhPC90dD4gZGlyZWN0b3J5LAphcyBhIHNldCBvZiA8dHQ+Ii5jbGFzcyI8L3R0PiBmaWxlcywgbmFtZWQgPHR0PiJIb2xpZGF5QnVuZGxlXyI8L3R0Pgpmb2xsb3dlZCBieSB0aGUgbG9jYWxlIElELjwvbGk+CiAgPGxpPlRoZSA8Yj5jaGFyYWN0ZXIgcHJvcGVydHkgZGF0YTwvYj4gYXMgd2VsbCBhcyBhc3NvcnRlZCA8Yj5ub3JtYWxpemF0aW9uCmRhdGE8L2I+IGFuZCBkZWZhdWx0IDxiPnVuaWNvZGUgY29sbGF0aW9uIGFsZ29yaXRobSAoVUNBKSBkYXRhPC9iPgppcyBmb3VuZCB1bmRlciB0aGUgPHR0PmRhdGE8L3R0PiBkaXJlY3RvcnkgYXMgYSBzZXQgb2YgPHR0PiIuaWN1IjwvdHQ+CmZpbGVzLiA8L2xpPgo8L3VsPgo8cD4KU29tZSBvZiB0aGUgZGF0YSBmaWxlcyBhbGlhcyBvciBvdGhlcndpc2UgcmVmZXJlbmNlIGRhdGEgZnJvbSBvdGhlcgpkYXRhIGZpbGVzLiBPbmUgcmVhc29uIGZvciB0aGlzIGlzIGJlY2F1c2Ugc29tZSBsb2NhbGUgbmFtZXMgaGF2ZQpjaGFuZ2VkLiBGb3IgZXhhbXBsZSwgPHR0PmhlX0lMPC90dD4gdXNlZCB0byBiZSA8dHQ+aXdfSUw8L3R0Pi4gSW4Kb3JkZXIgdG8gc3VwcG9ydCBib3RoIG5hbWVzIGJ1dCBub3QgZHVwbGljYXRlIHRoZSBkYXRhLCBvbmUgb2YgdGhlCnJlc291cmNlIGZpbGVzIHJlZmVycyB0byB0aGUgb3RoZXIgZmlsZSdzIGRhdGEuIEluIG90aGVyIGNhc2VzLCBhCmZpbGUgbWF5IGFsaWFzIGEgcG9ydGlvbiBvZiBhbm90aGVyIGZpbGUncyBkYXRhIGluIG9yZGVyIHRvIHNhdmUKc3BhY2UuIEN1cnJlbnRseSBJQ1U0SiBwcm92aWRlcyBubyB0b29sIGZvciByZXZlYWxpbmcgdGhlc2UKZGVwZW5kZW5jaWVzLjwvcD4KPGJsb2NrcXVvdGU+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAgSmF2YSdzIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MKc2lsZW50bHkgY29udmVydHMgdGhlIGxhbmd1YWdlIGNvZGUgPHR0PiJoZSI8L3R0PiB0byA8dHQ+Iml3IjwvdHQ+CndoZW4geW91IGNvbnN0cnVjdCB0aGUgTG9jYWxlIChmb3IgdmVyc2lvbnMgb2YgSmF2YSB0aHJvdWdoIEphdmEgNSkuIFRodXMKSmF2YSBjYW5ub3QgYmUgdXNlZCB0byBsb2NhdGUgcmVzb3VyY2VzIHRoYXQgdXNlIHRoZSA8dHQ+ImhlIjwvdHQ+Cmxhbmd1YWdlIGNvZGUuIElDVSwgb24gdGhlIG90aGVyIGhhbmQsIGRvZXMgbm90IHBlcmZvcm0gdGhpcwpjb252ZXJzaW9uIGluIFVMb2NhbGUsIGFuZCBpbnN0ZWFkIHVzZXMgYWxpYXNpbmcgaW4gdGhlIGxvY2FsZSBkYXRhIHRvCnJlcHJlc2VudCB0aGUgc2FtZSBzZXQgb2YgZGF0YSB1bmRlciBkaWZmZXJlbnQgbG9jYWxlCmlkcy48L2Jsb2NrcXVvdGU+CjxwPgpSZXNvdXJjZSBmaWxlcyB0aGF0IHVzZSBsb2NhbGUgaWRzIGZvcm0gYSBoaWVyYXJjaHksIHdpdGggdXAgdG8gZm91cgpsZXZlbHM6IGEgcm9vdCwgbGFuZ3VhZ2UsIHJlZ2lvbiAoY291bnRyeSksIGFuZCB2YXJpYW50LiBTZWFyY2hlcyBmb3IKbG9jYWxlIGRhdGEgYXR0ZW1wdCB0byBtYXRjaCBhcyBmYXIgZG93biB0aGUgaGllcmFyY2h5IGFzIHBvc3NpYmxlLApmb3IgZXhhbXBsZSwgPHR0PiJoZV9JTCI8L3R0PiB3aWxsIG1hdGNoIDx0dD5oZV9JTDwvdHQ+LCBidXQKPHR0PiJoZV9VUyI8L3R0PiB3aWxsIG1hdGNoIDx0dD5oZTwvdHQ+IChzaW5jZSB0aGVyZSBpcyBubyA8dHQ+VVM8L3R0Pgp2YXJpYW50IGZvciBoZSwgYW5kIDx0dD4ieHhfWVk8L3R0PiB3aWxsIG1hdGNoIHJvb3QgKHRoZQpkZWZhdWx0IGZhbGxiYWNrIGxvY2FsZSkgc2luY2UgdGhlcmUgaXMgbm8gPHR0Pnh4PC90dD4gbGFuZ3VhZ2UgY29kZQppbiB0aGUgbG9jYWxlIGhpZXJhcmNoeS4gQWdhaW4sIHNlZQo8Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+IGZvciBtb3JlIGluZm9ybWF0aW9uLgo8L3A+CjxwPgo8c3Ryb25nPkN1cnJlbnRseSBJQ1U0SiBwcm92aWRlcyBubyB0b29sIGZvciByZXZlYWxpbmcgdGhlc2UKZGVwZW5kZW5jaWVzPC9zdHJvbmc+IGJldHdlZW4gZGF0YSBmaWxlcywgc28gdHJpbW1pbmcgdGhlIGRhdGEKZGlyZWN0bHkgaW4gdGhlIElDVTRKIHByb2plY3QgaXMgYSBoaXQtb3ItbWlzcyBhZmZhaXIuIFRoZSBrZXkgcG9pbnQKd2hlbiB5b3UgcmVtb3ZlIGRhdGEgaXMgdG8gbWFrZSBzdXJlIHRvIHJlbW92ZSBhbGwgZGVwZW5kZW5jaWVzIG9uCnRoYXQgZGF0YSBhcyB3ZWxsLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSA8dHQ+aGUucmVzPC90dD4sIHlvdQpuZWVkIHRvIHJlbW92ZSA8dHQ+aGVfSUwucmVzPC90dD4sIHNpbmNlIGl0IGlzIGxvd2VyIGluIHRoZSBoaWVyYXJjaHksCmFuZCB5b3UgbXVzdCByZW1vdmUgaXcucmVzLCBzaW5jZSBpdCByZWZlcmVuY2VzIDx0dD5oZS5yZXM8L3R0PiwgYW5kCjx0dD5pd19JTC5yZXM8L3R0Piwgc2luY2UgaXQgZGVwZW5kcyBvbiBpdCAoYW5kIGFsc28gcmVmZXJlbmNlcwo8dHQ+aGVfSUwucmVzPC90dD4pLgo8L3A+CjxwPgpVbmZvcnR1bmF0ZWx5LCB0aGUgamFyIHRvb2wgaW4gdGhlIEpESyBwcm92aWRlcyBubyB3YXkgdG8gcmVtb3ZlIGl0ZW1zCmZyb20gYSBqYXIgZmlsZS4gVGh1cyB5b3UgaGF2ZSB0byBleHRyYWN0IHRoZSByZXNvdXJjZXMsIHJlbW92ZSB0aGUKb25lcyB5b3UgZG9uJ3Qgd2FudCwgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IGphciBmaWxlIHdpdGggdGhlIHJlbWluaW5nCnJlc291cmNlcy4gU2VlIHRoZSBqYXIgdG9vbCBpbmZvcm1hdGlvbiBmb3IgaG93IHRvIGRvIHRoaXMuIEJlZm9yZQoncmVqYXJpbmcnIHRoZSBmaWxlcywgYmUgc3VyZSB0byB0aG9yb3VnaGx5IHRlc3QgeW91ciBhcHBsaWNhdGlvbiB3aXRoCnRoZSByZW1haW5pbmcgcmVzb3VyY2VzLCBtYWtpbmcgc3VyZSBlYWNoIHJlcXVpcmVkIHJlc291cmNlIGlzCnByZXNlbnQuCjwvcD4KPGg0PlVzaW5nIGFkZGl0aW9uYWwgcmVzb3VyY2UgZmlsZXMgd2l0aCBJQ1U0SjwvaDQ+CjxibG9ja3F1b3RlPgogIDx0YWJsZSBjZWxscGFkZGluZz0iMyIgZnJhbWU9ImJvcmRlciIgcnVsZXM9Im5vbmUiIHdpZHRoPSI1MCUiPgogICAgPHRib2R5PgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPjxmb250IGNvbG9yPSJyZWQiIHNpemU9IisxIj5XYXJuaW5nOjwvZm9udD4gUmVzb3VyY2UKZmlsZSBmb3JtYXRzIGNhbiBjaGFuZ2UgYWNyb3NzIHJlbGVhc2VzIG9mIElDVTRKITwvYj48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPlRoZSBmb3JtYXQgb2YgSUNVNEogcmVzb3VyY2VzIGlzIG5vdCBwYXJ0IG9mIHRoZSBBUEkuCkNsaWVudHMgd2hvIGRldmVsb3AgdGhlaXIgb3duIHJlc291cmNlcyBmb3IgdXNlIHdpdGggSUNVNEogc2hvdWxkIGJlCnByZXBhcmVkIHRvCnJlZ2VuZXJhdGUgdGhlbSB3aGVuIHRoZXkgbW92ZSB0byBuZXcgcmVsZWFzZXMgb2YgSUNVNEouPC90ZD4KICAgICAgPC90cj4KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KPC9ibG9ja3F1b3RlPgo8cD4KV2UgYXJlIHN0aWxsIGRldmVsb3BpbmcgSUNVNEoncyByZXNvdXJjZSBtZWNoYW5pc20uIEN1cnJlbnRseSBpdCAKaXMgbm90IHBvc3NpYmxlIHRvIG1peCBpY3UncyBuZXcgYmluYXJ5IDx0dD4ucmVzPC90dD4KcmVzb3VyY2VzCndpdGggdHJhZGl0aW9uYWwgamF2YS1zdHlsZSA8dHQ+LmNsYXNzPC90dD4gb3IgPHR0Pi50eHQ8L3R0PgpyZXNvdXJjZXMuIFdlIG1pZ2h0CmFsbG93IGZvciB0aGlzIGluIGEgZnV0dXJlIHJlbGVhc2UsIGJ1dCBzaW5jZSB0aGUgcmVzb3VyY2UgZGF0YSBhbmQKZm9ybWF0IGlzIG5vdCBmb3JtYWxseQpzdXBwb3J0ZWQsIHlvdSBydW4gdGhlIHJpc2sgb2YgaW5jb21wYXRpYmlsaXRpZXMgd2l0aCBmdXR1cmUgcmVsZWFzZXMKb2YgSUNVNEouCjwvcD4KPHA+ClJlc291cmNlIGRhdGEgaW4gSUNVNEogaXMgY2hlY2tlZCBpbiB0byB0aGUgcmVwb3NpdG9yeSBhcyBhIGphciBmaWxlCmNvbnRhaW5pbmcgdGhlIHJlc291cmNlIGJpbmFyaWVzLCA8dHQ+aWN1ZGF0YS5qYXI8L3R0Pi4gVGhpcwptZWFucyB0aGF0IGluc3BlY3RpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZXNlIHJlc291cmNlcyBpcyBkaWZmaWN1bHQuClRoZXkgY3VycmVudGx5IGFyZSBjb21waWxlZCBmcm9tIElDVTRDIDx0dD4udHh0PC90dD4gZmlsZSBkYXRhLiBZb3UKY2FuIHZpZXcgdGhlIGNvbnRlbnRzIG9mIHRoZSBJQ1U0QyB0ZXh0IHJlc291cmNlIGZpbGVzIHRvIHVuZGVyc3RhbmQKdGhlIGNvbnRlbnRzIG9mIHRoZSBJQ1U0SiByZXNvdXJjZXMuCjwvcD4KPHA+ClRoZSBmaWxlcyBpbiA8dHQ+aWN1ZGF0YS5qYXI8L3R0PiBnZXQgZXh0cmFjdGVkIHRvIDx0dD5jb20vaWJtL2ljdS9pbXBsL2RhdGE8L3R0Pgppbgp0aGUgYnVpbGQgZGlyZWN0b3J5IHdoZW4gdGhlICdjb3JlJyB0YXJnZXQgaXMgYnVpbHQuCkJ1aWxkaW5nIHRoZSA8dHQ+J3Jlc291cmNlcyc8L3R0PiB0YXJnZXQgd2lsbCBmb3JjZSB0aGUKcmVzb3VyY2VzIHRvIG9uY2UgYWdhaW4gYmUgZXh0cmFjdGVkLiBFeHRyYWN0aW9uIHdpbGwKb3ZlcndyaXRlIGFueSBjb3JyZXNwb25kaW5nIHJlc291cmNlIGZpbGVzIGFscmVhZHkgaW4gdGhhdCBkaXJlY3RvcnkuCjwvcD4KPGg0PjxhIG5hbWU9InJlc291cmNlc0lDVTRDIj5CdWlsZGluZyBJQ1U0SiBSZXNvdXJjZXMgZnJvbSBJQ1U0QzwvYT48L2g0Pgo8aDU+UmVxdWlyZW1lbnRzPC9oNT4KPHVsPgogIDxsaT48YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG93bmxvYWQvIj5JQ1U0QzwvYT48L2xpPgogIDxsaT5Db21waWxlcnMgYW5kIHRvb2xzIHJlcXVpcmVkIGZvciBidWlsZGluZyA8YQogaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3UvcmVhZG1lLmh0bWw/dmlldz1jbyNIb3dUb0J1aWxkIj5JQ1U0QzwvYT4uPC9saT4KICA8bGk+SmF2YSBTREsgdmVyc2lvbiAxLjQuMCBvciBhYm92ZS48L2xpPgogIDxsaT5QZXJsIHZlcnNpb24gNSBvciBhYm92ZS48L2xpPgo8L3VsPgo8aDU+IFByb2NlZHVyZTwvaDU+CjxvbD4KICA8bGk+IERvd25sb2FkIGFuZCBidWlsZCBJQ1U0QyBvbiBhIFdpbmRvd3MgbWFjaGluZS4gRm9yIGluc3RydWN0aW9ucyBvbgpkb3dubG9hZGluZyBhbmQgYnVpbGRpbmcgSUNVNEMsIHBsZWFzZSBjbGljayA8YQogaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3UvcmVhZG1lLmh0bWw/dmlldz1jbyNIb3dUb0J1aWxkIj5oZXJlPC9hPi48L2xpPgogIDxsaT4gQ2hhbmdlIGRpcmVjdG9yeSB0byA8aT4kaWN1X3Jvb3Q8L2k+L3NvdXJjZS90b29scy9nZW5yYiA8L2xpPgogIDxsaT4gTGF1bmNoIGdlbmR0amFyLnBsIGZyb20gdGhhdCBkaXJlY3RvcnkgaXRzZWxmIHdpdGggdGhlIGNvbW1hbmQgPGJyPgpnZW5kdGphci5wbCAtLWljdS1yb290PTxpPiRpY3Vfcm9vdDwvaT4gLS1qYXI9PGk+JGpka19ob21lL2JpbjwvaT4KLS1pY3U0ai1yb290PTxpPiRpY3U0al9yb290PC9pPiAtLXZlcnNpb249PGk+JGljdV92ZXJzaW9uPC9pPiA8YnI+CmUuZzogZ2VuZHRqYXIucGwgLS1pY3Utcm9vdD1cd29ya1xpY3UgLS1qYXI9XGpkazEuNC4xXGJpbgotLWljdTRqLXJvb3Q9XHdvcmtcaWN1NGogLS12ZXJzaW9uPTMuMCA8YnI+CkV4ZWN1dGlvbiBvZiBnZW5kdGphci5wbCBzY3JpcHQgd2lsbCBjcmVhdGUgdGhlIHJlcXVpcmVkIGphciBmaWxlcyBpbgp0aGUgJGljdV9yb290XHNvdXJjZVx0b29sc1xnZW5yYlx0ZW1wIGRpcmVjdG9yeS48L2xpPgogIDxsaT4gTW92ZSBpY3VkYXRhLmphciB0byA8aT4kaWN1NGpfcm9vdDwvaT4vc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YQpkaXJlY3RvcnkuPC9saT4KICA8bGk+IE1vdmUgdGVzdGRhdGEuamFyIHRvIDxpPiRpY3U0al9yb290PC9pPi9zcmMvY29tL2libS9kZXYvZGF0YQpkaXJlY3RvcnkuPC9saT4KICA8bGk+IEJ1aWxkIHJlc291cmNlcyB0YXJnZXQgb2YgYW50IHRvIHVucGFjayB0aGUgamFyIGZpbGVzIHdpdGggdGhlCmZvbGxvd2luZyBjb21tYW5kLiA8YnI+CiAgICA8aT4kYW50X2hvbWU8L2k+L2Jpbi9hbnQgcmVzb3VyY2VzPC9saT4KPC9vbD4KPGg1PiBHZW5lcmF0aW5nIERhdGEgZnJvbSBDTERSIDwvaDU+CjxpPiBOb3RlOiBUaGlzIHByb2NlZHVyZSBhc3N1bWVzIHRoYXQgYWxsIDMgc291cmNlcyBhcmUgaW4gc2libGluZyBkaXJlY3RvcmllczwvaT4KPG9sPgogICAgPGxpPkNoZWNrb3V0IENMRFI8L2xpPgogICAgPGxpPlVwZGF0ZSA8aT4kY2xkcl9yb290PC9pPi9jb21tb24gdG8gJ3JlbGVhc2UtMS00JyB0YWc8L2xpPgogICAgPGxpPlVwZGF0ZSA8aT4kY2xkcl9yb290PC9pPi90b29scyB0byAncmVsZWFzZS0xLTQnIHRhZzwvbGk+CiAgICA8bGk+Q2hlY2tvdXQgSUNVIHdpdGggdGFnICdyZWxlYXNlLTMtNic8L2xpPgogICAgPGxpPkNoZWNrb3V0IElDVTRKIHdpdGggdGFnICdyZWxlYXNlLTMtNic8L2xpPgogICAgPGxpPkJ1aWxkIElDVTRKPC9saT4KICAgIDxsaT5CdWlsZCBJQ1U0QzwvbGk+CiAgICA8bGk+Q2hhbmdlIHRvIDxpPiRjbGRyX3Jvb3Q8L2k+L3Rvb2xzL2phdmEgZGlyZWN0b3J5PC9saT4KICAgIDxsaT5CdWlsZCBDTERSIHVzaW5nIGFudCBhZnRlciBwb2ludGluZyBJQ1U0Sl9DTEFTU0VTIGVudiB2YXIgdG8gdGhlIG5ld2x5IGJ1aWxkIElDVTRKPC9saT4KICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdDwvaT4vc291cmNlL2RhdGEgZGlyZWN0b3J5PC9saT4KICAgIDxsaT5Gb2xsb3cgdGhlIGluc3RydWN0aW9ucyBpbiB0aGUgY2xkci1pY3UtcmVhZG1lLnR4dDwvbGk+CiAgICA8bGk+QnVpbGQgSUNVIGRhdGEgZnJvbSBDTERSPC9saT4KICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdC9zb3VyY2UvdG9vbHMvZ2VucmI8L2k+PC9saT4KICAgIDxsaT5ydW4gLi9nZW5kdGphci5wbDwvbGk+CiAgICA8bGk+Y2QgdG8gPGk+JGljdTRqX3Jvb3Q8L2k+IGRpcjwvbGk+CiAgICA8bGk+QnVpbGQgYW5kIHRlc3QgaWN1NGo8L2xpPgo8L29sPgoKPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IldoZXJlVG9GaW5kTW9yZSI+PC9hPldoZXJlIHRvIEZpbmQgTW9yZQpJbmZvcm1hdGlvbjwvaDM+CjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS8iPmh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS88L2E+CmlzIGEKcG9pbnRlciB0byBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yClVuaWNvZGUgaW4gSmF2YSA8L3A+CjxwPjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uLyI+aHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vPC9hPgppcyBhIHBvaW50ZXIgdG8KaW5mb3JtYXRpb24gb24gaG93IHRvIG1ha2UgYXBwbGljYXRpb25zIGdsb2JhbC4gPC9wPgo8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iU3VibWl0dGluZ0NvbW1lbnRzIj48L2E+U3VibWl0dGluZyBDb21tZW50cywKUmVxdWVzdGluZyBGZWF0dXJlcyBhbmQKUmVwb3J0aW5nIEJ1Z3M8L2gzPgo8cD5Zb3VyIGNvbW1lbnRzIGFyZSBpbXBvcnRhbnQgdG8gbWFraW5nIElDVTRKIHN1Y2Nlc3NmdWwuIFdlIGFyZQpjb21taXR0ZWQKdG8gZml4aW5nIGFueSBidWdzLCBhbmQgd2lsbCB1c2UgeW91ciBmZWVkYmFjayB0byBoZWxwIHBsYW4gZnV0dXJlCnJlbGVhc2VzLjwvcD4KPHA+VG8gc3VibWl0IGNvbW1lbnRzLCByZXF1ZXN0IGZlYXR1cmVzIGFuZCByZXBvcnQgYnVncywgY29udGFjdCB1cwp0aHJvdWdoIHRoZSA8YQogaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvY29udGFjdHMuaHRtbCI+SUNVIFN1cHBvcnQKbWFpbGluZyBsaXN0PC9hPi48YnI+CldoaWxlIHdlIGFyZSBub3QgYWJsZSB0byByZXNwb25kIGluZGl2aWR1YWxseSB0byBlYWNoIGNvbW1lbnQsIHdlIGRvCnJldmlldyBhbGwgY29tbWVudHMuPC9wPgo8YnI+Cjxicj4KPGgyPlRoYW5rIHlvdSBmb3IgeW91ciBpbnRlcmVzdCBpbiBJQ1U0SiE8L2gyPgo8YnI+CjxociBhbGlnbj0iY2VudGVyIiBzaXplPSIyIiB3aWR0aD0iMTAwJSI+CjxwPjxpPjxmb250IHNpemU9Ii0xIj5Db3B5cmlnaHQgJmNvcHk7IDIwMDItMjAwNyBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzCk1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMKUmVzZXJ2ZWQuPGJyPgo0NDAwIE5vcnRoIEZpcnN0IFN0cmVldCwgU2FuIEpvcyZlYWN1dGU7LCBDQSA5NTE5MywgVVNBCjwvZm9udD48L2k+PC9wPgo8L2JvZHk+CjwvaHRtbD4K