T24gRnJpLCAxMyBGZWIgMjAxNSAxNDowMjowMSArMDgwMApKb25hcyDDhWRhaGwgPGphZGFobEBn bWFpbC5jb20+IHdyb3RlOgoKPiBGcm9tOiAiSmFzcGVyIFN0LiBQaWVycmUiIDxqc3RwaWVycmVA bWVjaGV5ZS5uZXQ+Cj4gCj4gVGhpcyByZXdyaXRlcyBiYXNpY2FsbHkgYWxsIG9mIHRoZSB0ZXh0 IGluc2lkZSB4ZGctc2hlbGwgdG8gYmUgdXAgdG8KPiBkYXRlLCBjbGVhcmVyLCBhbmQgcmlkIG9m IHdsX3NoZWxsIGFuZCBYMTEgdGVybWlub2xvZ3kuCj4gCj4gW2phZGFobDogQWRkZWQgcGFyYWdy YXBoIGFib3V0IHBvcHVwIHN1cmZhY2UgbWFwcGluZyBvcmRlci5dCj4gLS0tCj4gIHByb3RvY29s L3hkZy1zaGVsbC54bWwgfCAyNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDEwNSBk ZWxldGlvbnMoLSkKCkhpLAoKc2luY2UgdGhpcyBpcyBzYWlkIHRvIGJlIGEgY29tcGxldGUgZG9j dW1lbnRhdGlvbiByZXdyaXRlLCBJIGFtIG5vdApyZXZpZXdpbmcgdGhpcyBhcyBhIHBhdGNoLiBJ bnN0ZWFkLCBJIHJldmlldyB0aGUgZmluYWwgeGRnLXNoZWxsLnhtbApmaWxlIGFzIGl0IHdpbGwg YmUgYWZ0ZXIgdGhpcyB3aG9sZSBwYXRjaCBzZXJpZXMuCgpJIGRpZCBjaGVjayB0aGlzIHBhdGNo IGRvZXMgbm90IGNoYW5nZSBhbnkgaW50ZXJmYWNlIHNpZ25hdHVyZXMuCgo+IDw/eG1sIHZlcnNp b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cj4gPHByb3RvY29sIG5hbWU9InhkZ19zaGVsbCI+ Cj4gCj4gICA8Y29weXJpZ2h0Pgo+ICAgICBDb3B5cmlnaHQgw4LCqSAyMDA4LTIwMTMgS3Jpc3Rp YW4gSMODwrhnc2JlcmcKPiAgICAgQ29weXJpZ2h0IMOCwqkgMjAxMyAgICAgIFJhZmFlbCBBbnRv Z25vbGxpCj4gICAgIENvcHlyaWdodCDDgsKpIDIwMTMgICAgICBKYXNwZXIgU3QuIFBpZXJyZQo+ ICAgICBDb3B5cmlnaHQgw4LCqSAyMDEwLTIwMTMgSW50ZWwgQ29ycG9yYXRpb24KPiAKPiAgICAg UGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNlbGwgdGhp cwo+ICAgICBzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlz IGhlcmVieSBncmFudGVkCj4gICAgIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbgo+ICAgICBhbGwgY29waWVzIGFuZCB0aGF0IGJv dGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24KPiAgICAgbm90aWNl IGFwcGVhciBpbiBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9m Cj4gICAgIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBv ciBwdWJsaWNpdHkKPiAgICAgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3 YXJlIHdpdGhvdXQgc3BlY2lmaWMsCj4gICAgIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gIFRo ZSBjb3B5cmlnaHQgaG9sZGVycyBtYWtlIG5vCj4gICAgIHJlcHJlc2VudGF0aW9ucyBhYm91dCB0 aGUgc3VpdGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Cj4gICAgIHB1cnBvc2UuICBJ dCBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkCj4gICAgIHdh cnJhbnR5Lgo+IAo+ICAgICBUSEUgQ09QWVJJR0hUIEhPTERFUlMgRElTQ0xBSU0gQUxMIFdBUlJB TlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUwo+ICAgICBTT0ZUV0FSRSwgSU5DTFVESU5HIEFMTCBJ TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORAo+ICAgICBGSVRORVNTLCBJ TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkK PiAgICAgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBE QU1BR0VTCj4gICAgIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEg T1IgUFJPRklUUywgV0hFVEhFUiBJTgo+ICAgICBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJ R0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLAo+ICAgICBBUklTSU5HIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRgo+ICAgICBUSElTIFNP RlRXQVJFLgo+ICAgPC9jb3B5cmlnaHQ+Cj4gCj4gICA8aW50ZXJmYWNlIG5hbWU9InhkZ19zaGVs bCIgdmVyc2lvbj0iMSI+Cj4gICAgIDxkZXNjcmlwdGlvbiBzdW1tYXJ5PSJjcmVhdGUgZGVza3Rv cC1zdHlsZSBzdXJmYWNlcyI+Cj4gICAgICAgeGRnX3NoZWxsIGFsbG93cyBjbGllbnRzIHRvIHR1 cm4gYSB3bF9zdXJmYWNlIGludG8gYSAicmVhbCB3aW5kb3ciCj4gICAgICAgd2hpY2ggY2FuIGJl IGRyYWdnZWQsIHJlc2l6ZWQsIHN0YWNrZWQsIGFuZCBtb3ZlZCBhcm91bmQgYnkgdGhlCj4gICAg ICAgdXNlci4gRXZlcnl0aGluZyBhYm91dCB0aGlzIGludGVyZmFjZSBpcyBzdWl0ZWQgdG93YXJk cyB0cmFkaXRpb25hbAo+ICAgICAgIGRlc2t0b3AgZW52aXJvbm1lbnRzLgo+ICAgICA8L2Rlc2Ny aXB0aW9uPgo+IAo+ICAgICA8ZW51bSBuYW1lPSJ2ZXJzaW9uIj4KPiAgICAgICA8ZGVzY3JpcHRp b24gc3VtbWFyeT0ibGF0ZXN0IHByb3RvY29sIHZlcnNpb24iPgo+IAlUaGUgJ2N1cnJlbnQnIG1l bWJlciBvZiB0aGlzIGVudW0gZ2l2ZXMgdGhlIHZlcnNpb24gb2YgdGhlCj4gCXByb3RvY29sLiAg SW1wbGVtZW50YXRpb25zIGNhbiBjb21wYXJlIHRoaXMgdG8gdGhlIHZlcnNpb24KPiAJdGhleSBp bXBsZW1lbnQgdXNpbmcgc3RhdGljX2Fzc2VydCB0byBlbnN1cmUgdGhlIHByb3RvY29sIGFuZAo+ IAlpbXBsZW1lbnRhdGlvbiB2ZXJzaW9ucyBtYXRjaC4KCkNvdWxkIGFkZCwgdGhhdCB0aGlzIGVu dW0gd2lsbCBnbyBhd2F5IG9uY2UgdGhlIHhkZy1zaGVsbCBwcm90b2NvbApiZWNvbWVzIHN0YWJs ZS4KCj4gICAgICAgPC9kZXNjcmlwdGlvbj4KPiAgICAgICA8ZW50cnkgbmFtZT0iY3VycmVudCIg dmFsdWU9IjUiIHN1bW1hcnk9IkFsd2F5cyB0aGUgbGF0ZXN0IHZlcnNpb24iLz4KPiAgICAgPC9l bnVtPgo+IAo+ICAgICA8ZW51bSBuYW1lPSJlcnJvciI+Cj4gICAgICAgPGVudHJ5IG5hbWU9InJv bGUiIHZhbHVlPSIwIiBzdW1tYXJ5PSJnaXZlbiB3bF9zdXJmYWNlIGhhcyBhbm90aGVyIHJvbGUi Lz4KPiAgICAgPC9lbnVtPgo+IAo+ICAgICA8cmVxdWVzdCBuYW1lPSJkZXN0cm95IiB0eXBlPSJk ZXN0cnVjdG9yIj4KPiAgICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0iZGVzdHJveSB4ZGdfc2hl bGwiPgo+ICAgICAgICAgRGVzdHJveSB0aGlzIHhkZ19zaGVsbCBvYmplY3QuCj4gCj4gICAgICAg ICBEZXN0cm95aW5nIGEgYm91bmQgeGRnX3NoZWxsIG9iamVjdCB3aGlsZSB0aGVyZSBhcmUgc3Vy ZmFjZXMKPiAgICAgICAgIHN0aWxsIGFsaXZlIHdpdGggcm9sZXMgZnJvbSB0aGlzIGludGVyZmFj ZSBpcyBpbGxlZ2FsIGFuZCB3aWxsCj4gICAgICAgICByZXN1bHQgaW4gYSBwcm90b2NvbCBlcnJv ci4gTWFrZSBzdXJlIHRvIGRlc3Ryb3kgYWxsIHN1cmZhY2VzCj4gICAgICAgICBiZWZvcmUgZGVz dHJveWluZyB0aGlzIG9iamVjdC4KCldoYXQgYWJvdXQgbXVsdGlwbGUgYmluZHMgdG8geGRnX3No ZWxsIGdsb2JhbD8gSWYgYSBjbGllbnQgaGFzCmRpZmZlcmVudCBjb21wb25lbnRzIHNoYXJpbmcg dGhlIFdheWxhbmQgY29ubmVjdGlvbiBidXQgdXNpbmcgc2VwYXJhdGUKd2xfcmVnaXN0cmllcywg dGhleSBtYXkgaGF2ZSBzZXBhcmF0ZSB4ZGdfc2hlbGwgb2JqZWN0cy4KCi0gSXMgaXQgZm9yYmlk ZGVuIHRvIGRlc3Ryb3kgYW55IHhkZ19zaGVsbCBvYmplY3RzIHdoaWxlIGFueSB4ZGdfKgogIHJv bGVzIGFyZSBpbiB1c2U/CgotIElzIGl0IGZvcmJpZGRlbiB0byBkZXN0cm95IHRoZSBsYXN0IHhk Z19zaGVsbCBvYmplY3Qgd2hpbGUgYW55IHhkZ18qCiAgcm9sZXMgYXJlIGluIHVzZT8KCi0gT3Is IGlzIHRoZSBzZXJ2ZXIgc3VwcG9zZWQgdG8gdHJhY2sgd2hpY2ggeGRnXyogcm9sZXMgd2VyZSBj cmVhdGVkCiAgd2l0aCB3aGljaCB4ZGdfc2hlbGwgb2JqZWN0LCBhbmQgYWxsb3cgZGVzdHJ1Y3Rp b24gb2YgYW4geGRnX3NoZWxsCiAgb2JqZWN0IG9ubHkgd2hlbiB0aGUgcm9sZXMgY3JlYXRlZCBm cm9tIHRoYXQgc3BlY2lmaWMgb2JqZWN0IGFyZSBhbGwKICBnb25lPwoKVGhlIHF1ZXN0aW9uIGFi b3V0IHRyYWNraW5nIGV4dGVuZHMgYWxzbyB0byB0aGUgcGluZy9wb25nIG1lc3NhZ2luZy4KCj4g ICAgICAgPC9kZXNjcmlwdGlvbj4KPiAgICAgPC9yZXF1ZXN0Pgo+IAo+ICAgICA8cmVxdWVzdCBu YW1lPSJ1c2VfdW5zdGFibGVfdmVyc2lvbiI+Cj4gICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9 ImVuYWJsZSB1c2Ugb2YgdGhpcyB1bnN0YWJsZSB2ZXJzaW9uIj4KPiAJTmVnb3RpYXRlIHRoZSB1 bnN0YWJsZSB2ZXJzaW9uIG9mIHRoZSBpbnRlcmZhY2UuICBUaGlzCj4gCW1lY2hhbmlzbSBpcyBp biBwbGFjZSB0byBlbnN1cmUgY2xpZW50IGFuZCBzZXJ2ZXIgYWdyZWUgb24gdGhlCj4gCXVuc3Rh YmxlIHZlcnNpb25zIG9mIHRoZSBwcm90b2NvbCB0aGF0IHRoZXkgc3BlYWsgb3IgZXhpdAo+IAlj bGVhbmx5IGlmIHRoZXkgZG9uJ3QgYWdyZWUuICBUaGlzIHJlcXVlc3Qgd2lsbCBnbyBhd2F5IG9u Y2UKPiAJdGhlIHhkZy1zaGVsbCBwcm90b2NvbCBpcyBzdGFibGUuCj4gICAgICAgPC9kZXNjcmlw dGlvbj4KPiAgICAgICA8YXJnIG5hbWU9InZlcnNpb24iIHR5cGU9ImludCIvPgo+ICAgICA8L3Jl cXVlc3Q+Cj4gCj4gICAgIDxyZXF1ZXN0IG5hbWU9ImdldF94ZGdfc3VyZmFjZSI+Cj4gICAgICAg PGRlc2NyaXB0aW9uIHN1bW1hcnk9ImNyZWF0ZSBhIHNoZWxsIHN1cmZhY2UgZnJvbSBhIHN1cmZh Y2UiPgo+IAlUaGlzIGNyZWF0ZXMgYW4geGRnX3N1cmZhY2UgZm9yIHRoZSBnaXZlbiBzdXJmYWNl IGFuZCBnaXZlcyBpdCB0aGUKPiAJeGRnX3N1cmZhY2Ugcm9sZS4gU2VlIHRoZSBkb2N1bWVudGF0 aW9uIG9mIHhkZ19zdXJmYWNlIGZvciBtb3JlIGRldGFpbHMuCj4gICAgICAgPC9kZXNjcmlwdGlv bj4KPiAgICAgICA8YXJnIG5hbWU9ImlkIiB0eXBlPSJuZXdfaWQiIGludGVyZmFjZT0ieGRnX3N1 cmZhY2UiLz4KPiAgICAgICA8YXJnIG5hbWU9InN1cmZhY2UiIHR5cGU9Im9iamVjdCIgaW50ZXJm YWNlPSJ3bF9zdXJmYWNlIi8+CgpNaXNzaW5nIHNwZWNpZmljYXRpb24gb2YgZXJyb3IgY29uZGl0 aW9ucyBhbmQgY29kZXMuIFNvIGZhciB0aGVyZSBpcwpvbmx5IHRoZSByb2xlIGVycm9yLiAoVGhl IHhkZ19zdXJmYWNlIGludGVyZmFjZSBkb2VzIG5vdCBzZWVtIHRvIGRlZmluZQplcnJvcnMgZWl0 aGVyLikKCj4gICAgIDwvcmVxdWVzdD4KPiAKPiAgICAgPHJlcXVlc3QgbmFtZT0iZ2V0X3hkZ19w b3B1cCI+Cj4gICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9ImNyZWF0ZSBhIHBvcHVwIGZvciBh IHN1cmZhY2UiPgo+IAlUaGlzIGNyZWF0ZXMgYW4geGRnX3BvcHVwIGZvciB0aGUgZ2l2ZW4gc3Vy ZmFjZSBhbmQgZ2l2ZXMgaXQgdGhlCj4gCXhkZ19wb3B1cCByb2xlLiBTZWUgdGhlIGRvY3VtZW50 YXRpb24gb2YgeGRnX3BvcHVwIGZvciBtb3JlIGRldGFpbHMuCj4gCj4gCVRoaXMgcmVxdWVzdCBt dXN0IGJlIHVzZWQgaW4gcmVzcG9uc2UgdG8gc29tZSBzb3J0IG9mIHVzZXIgYWN0aW9uCj4gCWxp a2UgYSBidXR0b24gcHJlc3MsIGtleSBwcmVzcywgb3IgdG91Y2ggZG93biBldmVudC4KPiAgICAg ICA8L2Rlc2NyaXB0aW9uPgo+ICAgICAgIDxhcmcgbmFtZT0iaWQiIHR5cGU9Im5ld19pZCIgaW50 ZXJmYWNlPSJ4ZGdfcG9wdXAiLz4KPiAgICAgICA8YXJnIG5hbWU9InN1cmZhY2UiIHR5cGU9Im9i amVjdCIgaW50ZXJmYWNlPSJ3bF9zdXJmYWNlIi8+Cj4gICAgICAgPGFyZyBuYW1lPSJwYXJlbnQi IHR5cGU9Im9iamVjdCIgaW50ZXJmYWNlPSJ3bF9zdXJmYWNlIi8+Cj4gICAgICAgPGFyZyBuYW1l PSJzZWF0IiB0eXBlPSJvYmplY3QiIGludGVyZmFjZT0id2xfc2VhdCIgc3VtbWFyeT0idGhlIHds X3NlYXQgb2YgdGhlIHVzZXIgZXZlbnQiLz4KPiAgICAgICA8YXJnIG5hbWU9InNlcmlhbCIgdHlw ZT0idWludCIgc3VtbWFyeT0idGhlIHNlcmlhbCBvZiB0aGUgdXNlciBldmVudCIvPgo+ICAgICAg IDxhcmcgbmFtZT0ieCIgdHlwZT0iaW50Ii8+Cj4gICAgICAgPGFyZyBuYW1lPSJ5IiB0eXBlPSJp bnQiLz4KCk1pc3Npbmcgc3BlY2lmaWNhdGlvbiBvZiBlcnJvciBjb25kaXRpb25zIGFuZCBjb2Rl cy4KCkhvd2V2ZXIsIEkgc2VlIHlvdSBoYXZlIGVycm9yIGNvZGVzIGRlZmluZWQgaW4gdGhlIHhk Z19wb3B1cCBpbnRlcmZhY2UuCklJUkMsIHRoYXQgaXMgYSBub3ZlbCBjb252ZW50aW9uLCB3aGVy ZSB5b3UgbmVlZCB0byBjcmVhdGUgdGhlIG5ldwp3bF9yZXNvdXJjZSBiZWZvcmUgc2VuZGluZyBh IHByb3RvY29sIGVycm9yIG9uICp0aGF0KiByYXRoZXIgdGhhbiBvbgp0aGUgb2JqZWN0IHdob3Nl IHJlcXVlc3QgY2F1c2VkIHRoZSBlcnJvci4KCkkgd291bGQgcHJlZmVyIHRvIGhhdmUgdGhlIGVy cm9ycyBkZWZpbmVkIGluIHRoZSBpbnRlcmZhY2Ugd2hvc2UKcmVxdWVzdCByYWlzZXMgdGhlbSwg YnV0IEkgc3VwcG9zZSB0aGlzIGNvdWxkIHdvcmsgdG9vLgoKPiAgICAgPC9yZXF1ZXN0Pgo+IAo+ ICAgICA8ZXZlbnQgbmFtZT0icGluZyI+Cj4gICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9ImNo ZWNrIGlmIHRoZSBjbGllbnQgaXMgYWxpdmUiPgo+ICAgICAgICAgVGhlIHBpbmcgZXZlbnQgYXNr cyB0aGUgY2xpZW50IGlmIGl0J3Mgc3RpbGwgYWxpdmUuIFBhc3MgdGhlCj4gICAgICAgICBzZXJp YWwgc3BlY2lmaWVkIGluIHRoZSBldmVudCBiYWNrIHRvIHRoZSBjb21wb3NpdG9yIGJ5IHNlbmRp bmcKPiAgICAgICAgIGEgInBvbmciIHJlcXVlc3QgYmFjayB3aXRoIHRoZSBzcGVjaWZpZWQgc2Vy aWFsLgo+IAo+ICAgICAgICAgQ29tcG9zaXRvcnMgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBp ZiB0aGUgY2xpZW50IGlzIHN0aWxsCj4gICAgICAgICBhbGl2ZS4gSXQncyB1bnNwZWNpZmllZCB3 aGF0IHdpbGwgaGFwcGVuIGlmIHRoZSBjbGllbnQgZG9lc24ndAo+ICAgICAgICAgcmVzcG9uZCB0 byB0aGUgcGluZyByZXF1ZXN0LCBvciBpbiB3aGF0IHRpbWVmcmFtZS4gQ2xpZW50cyBzaG91bGQK PiAgICAgICAgIHRyeSB0byByZXNwb25kIGluIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZS4K PiAgICAgICA8L2Rlc2NyaXB0aW9uPgo+ICAgICAgIDxhcmcgbmFtZT0ic2VyaWFsIiB0eXBlPSJ1 aW50IiBzdW1tYXJ5PSJwYXNzIHRoaXMgdG8gdGhlIHBvbmcgcmVxdWVzdCIvPgoKU2hvdWxkIHNl cnZlcnMgcGluZyBhbGwgeGRnX3NoZWxsIG9iamVjdHMgb2YgYSBjbGllbnQgb3IganVzdCBvbmU/ Cgo+ICAgICA8L2V2ZW50Pgo+IAo+ICAgICA8cmVxdWVzdCBuYW1lPSJwb25nIj4KPiAgICAgICA8 ZGVzY3JpcHRpb24gc3VtbWFyeT0icmVzcG9uZCB0byBhIHBpbmcgZXZlbnQiPgo+IAlBIGNsaWVu dCBtdXN0IHJlc3BvbmQgdG8gYSBwaW5nIGV2ZW50IHdpdGggYSBwb25nIHJlcXVlc3Qgb3IKPiAJ dGhlIGNsaWVudCBtYXkgYmUgZGVlbWVkIHVucmVzcG9uc2l2ZS4KPiAgICAgICA8L2Rlc2NyaXB0 aW9uPgo+ICAgICAgIDxhcmcgbmFtZT0ic2VyaWFsIiB0eXBlPSJ1aW50IiBzdW1tYXJ5PSJzZXJp YWwgb2YgdGhlIHBpbmcgZXZlbnQiLz4KPiAgICAgPC9yZXF1ZXN0Pgo+ICAgPC9pbnRlcmZhY2U+ Cj4gCj4gICA8aW50ZXJmYWNlIG5hbWU9InhkZ19zdXJmYWNlIiB2ZXJzaW9uPSIxIj4KPiAgICAg PGRlc2NyaXB0aW9uIHN1bW1hcnk9IkEgZGVza3RvcCB3aW5kb3ciPgo+ICAgICAgIEFuIGludGVy ZmFjZSB0aGF0IG1heSBiZSBpbXBsZW1lbnRlZCBieSBhIHdsX3N1cmZhY2UsIGZvcgo+ICAgICAg IGltcGxlbWVudGF0aW9ucyB0aGF0IHByb3ZpZGUgYSBkZXNrdG9wLXN0eWxlIHVzZXIgaW50ZXJm YWNlLgo+IAo+ICAgICAgIEl0IHByb3ZpZGVzIHJlcXVlc3RzIHRvIHRyZWF0IHN1cmZhY2VzIGxp a2Ugd2luZG93cywgYWxsb3dpbmcgdG8gc2V0Cj4gICAgICAgcHJvcGVydGllcyBsaWtlIG1heGlt aXplZCwgZnVsbHNjcmVlbiwgbWluaW1pemVkLCBhbmQgdG8gbW92ZSBhbmQgcmVzaXplCj4gICAg ICAgdGhlbSwgYW5kIGFzc29jaWF0ZSBtZXRhZGF0YSBsaWtlIHRpdGxlIGFuZCBhcHAgaWQuCgpJ cyBpdCBleHBsYWluZWQgc29tZXdoZXJlIGhvdyB0aGUgd2luZG93IHdpbGwgYmVjb21lIHZpc2li bGUsIGkuZS4gbWFwcGVkPwpJcyBpdCByZXF1aXJlZCB0byBoYXZlIGEgY29tbWl0IG9uIHRoZSB3 bF9zdXJmYWNlIGFmdGVyIGdpdmluZyB0aGUKeGRnX3N1cmZhY2Ugcm9sZT8KClRoaXMgYWxzbyBy ZWxhdGVzIHRvIHRoZSB3aG9sZSB3aW5kb3cgc3RhdGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UK YmVmb3JlIG1hcHBpbmcgaXQsIHdoaWNoIGhhcyBiZWVuIGRpc2N1c3NlZCBzZXZlcmFsIHRpbWVz IHdydC4gdGlsaW5nCldNcyBhbmQgd2hhdG5vdC4KCj4gICAgIDwvZGVzY3JpcHRpb24+Cj4gCj4g ICAgIDxyZXF1ZXN0IG5hbWU9ImRlc3Ryb3kiIHR5cGU9ImRlc3RydWN0b3IiPgo+ICAgICAgIDxk ZXNjcmlwdGlvbiBzdW1tYXJ5PSJEZXN0cm95IHRoZSB4ZGdfc3VyZmFjZSI+Cj4gCVVubWFwIGFu ZCBkZXN0cm95IHRoZSB3aW5kb3cuIFRoZSB3aW5kb3cgd2lsbCBiZSBlZmZlY3RpdmVseQo+IAlo aWRkZW4gZnJvbSB0aGUgdXNlcidzIHBvaW50IG9mIHZpZXcsIGFuZCBhbGwgc3RhdGUgbGlrZQo+ IAltYXhpbWl6YXRpb24sIGZ1bGxzY3JlZW4sIGFuZCBzbyBvbiwgd2lsbCBiZSBsb3N0Lgo+ICAg ICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgIDwvcmVxdWVzdD4KPiAKPiAgICAgPHJlcXVlc3QgbmFt ZT0ic2V0X3BhcmVudCI+Cj4gICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9InNldCB0aGUgcGFy ZW50IG9mIHRoaXMgc3VyZmFjZSI+Cj4gCVNldCB0aGUgInBhcmVudCIgb2YgdGhpcyBzdXJmYWNl LiBUaGlzIHdpbmRvdyBzaG91bGQgYmUgc3RhY2tlZAo+IAlhYm92ZSBhIHBhcmVudC4gVGhlIHBh cmVudCBzdXJmYWNlIG11c3QgYmUgbWFwcGVkIGFzIGxvbmcgYXMgdGhpcwo+IAlzdXJmYWNlIGlz IG1hcHBlZC4KPiAKPiAJUGFyZW50IHdpbmRvd3Mgc2hvdWxkIGJlIHNldCBvbiBkaWFsb2dzLCB0 b29sYm94ZXMsIG9yIG90aGVyCj4gCSJhdXhpbGxpYXJ5IiBzdXJmYWNlcywgc28gdGhhdCB0aGUg cGFyZW50IGlzIHJhaXNlZCB3aGVuIHRoZSBkaWFsb2cKPiAJaXMgcmFpc2VkLgo+ICAgICAgIDwv ZGVzY3JpcHRpb24+Cj4gICAgICAgPGFyZyBuYW1lPSJwYXJlbnQiIHR5cGU9Im9iamVjdCIgaW50 ZXJmYWNlPSJ4ZGdfc3VyZmFjZSIgYWxsb3ctbnVsbD0idHJ1ZSIvPgo+ICAgICA8L3JlcXVlc3Q+ Cj4gCj4gICAgIDxyZXF1ZXN0IG5hbWU9InNldF90aXRsZSI+Cj4gICAgICAgPGRlc2NyaXB0aW9u IHN1bW1hcnk9InNldCBzdXJmYWNlIHRpdGxlIj4KPiAJU2V0IGEgc2hvcnQgdGl0bGUgZm9yIHRo ZSBzdXJmYWNlLgo+IAo+IAlUaGlzIHN0cmluZyBtYXkgYmUgdXNlZCB0byBpZGVudGlmeSB0aGUg c3VyZmFjZSBpbiBhIHRhc2sgYmFyLAo+IAl3aW5kb3cgbGlzdCwgb3Igb3RoZXIgdXNlciBpbnRl cmZhY2UgZWxlbWVudHMgcHJvdmlkZWQgYnkgdGhlCj4gCWNvbXBvc2l0b3IuCj4gCj4gCVRoZSBz dHJpbmcgbXVzdCBiZSBlbmNvZGVkIGluIFVURi04Lgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4g ICAgICAgPGFyZyBuYW1lPSJ0aXRsZSIgdHlwZT0ic3RyaW5nIi8+Cj4gICAgIDwvcmVxdWVzdD4K PiAKPiAgICAgPHJlcXVlc3QgbmFtZT0ic2V0X2FwcF9pZCI+Cj4gICAgICAgPGRlc2NyaXB0aW9u IHN1bW1hcnk9InNldCBhcHBsaWNhdGlvbiBJRCI+Cj4gCVNldCBhbiBhcHBsaWNhdGlvbiBpZGVu dGlmaWVyIGZvciB0aGUgc3VyZmFjZS4KPiAKPiAJVGhlIGFwcCBJRCBpZGVudGlmaWVzIHRoZSBn ZW5lcmFsIGNsYXNzIG9mIGFwcGxpY2F0aW9ucyB0byB3aGljaAo+IAl0aGUgc3VyZmFjZSBiZWxv bmdzLiBUaGUgY29tcG9zaXRvciBjYW4gdXNlIHRoaXMgdG8gZ3JvdXAgbXVsdGlwbGUKPiAJYXBw bGljYXRpb25zIHRvZ2V0aGVyLCBvciB0byBkZXRlcm1pbmUgaG93IHRvIGxhdW5jaCBhIG5ldwo+ IAlhcHBsaWNhdGlvbi4KPiAKPiAJU2VlIHRoZSBkZXNrdG9wLWVudHJ5IHNwZWNpZmljYXRpb24g WzBdIGZvciBtb3JlIGRldGFpbHMgb24KPiAJYXBwbGljYXRpb24gaWRlbnRpZmllcnMgYW5kIGhv dyB0aGV5IHJlbGF0ZSB0byB3ZWxsLWtub3duIERCdXMKPiAJbmFtZXMgYW5kIC5kZXNrdG9wIGZp bGVzLgo+IAo+IAlbMF0gaHR0cDovL3N0YW5kYXJkcy5mcmVlZGVza3RvcC5vcmcvZGVza3RvcC1l bnRyeS1zcGVjLwo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgICAgPGFyZyBuYW1lPSJhcHBf aWQiIHR5cGU9InN0cmluZyIvPgoKT2theSwgYnV0IHdoYXQgYWN0dWFsbHkgaXMgdGhlIGFwcF9p ZD8KSXMgaXQgdGhlIHNhbWUgYXMgdGhlIERFU0tUT1BfU1RBUlRVUF9JRCBpbiBkZXNrdG9wLWVu dHJ5LXNwZWM/CklzIGl0IHRoZSAiZGVza3RvcCBmaWxlIGlkIj8KCkkgd2VudCB0aHJvdWdoIHRo ZSBkZXNrdG9wLWVudHJ5LXNwZWMsIGFuZCBJIGNvdWxkbid0IHNlZSBhbnkgb3RoZXIKaWRzLCBi dXQgSSBoYXZlIGEgdmFndWUgcmVjb2xsZWN0aW9uIHRoaXMgbWlnaHQgYWN0dWFsbHkgYmUgYSBE QnVzCmVyci4uLiBhZGRyZXNzPyBMaWtlIG9yZy5nbm9tZS5nZWRpdCBvciBzb21ldGhpbmcuCgpB biBleGFtcGxlIGZyb20gZS5nLiBvcmcuZnJlZWRlc2t0b3AgbmFtZXNwYWNlIHdvdWxkIGJlIG5p Y2UsIGFuZAptZW50aW9uaW5nIGlmIGl0IGluZGVlZCBpcyBhIERCdXMgc29tZXRoaW5nIGZvciBh cHBzIHRoYXQgc3VwcG9ydCBEQnVzLgoKPiAgICAgPC9yZXF1ZXN0Pgo+IAo+ICAgICA8cmVxdWVz dCBuYW1lPSJzaG93X3dpbmRvd19tZW51Ij4KPiAgICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0i c2hvdyB0aGUgd2luZG93IG1lbnUiPgo+ICAgICAgICAgQ2xpZW50cyBpbXBsZW1lbnRpbmcgY2xp ZW50LXNpZGUgZGVjb3JhdGlvbnMgbWlnaHQgd2FudCB0byBzaG93Cj4gICAgICAgICBhIGNvbnRl eHQgbWVudSB3aGVuIHJpZ2h0LWNsaWNraW5nIG9uIHRoZSBkZWNvcmF0aW9ucywgZ2l2aW5nIHRo ZQo+ICAgICAgICAgdXNlciBhIG1lbnUgdGhhdCB0aGV5IGNhbiB1c2UgdG8gbWF4aW1pemUgb3Ig bWluaW1pemUgdGhlIHdpbmRvdy4KPiAKPiAgICAgICAgIFRoaXMgcmVxdWVzdCBhc2tzIHRoZSBj b21wb3NpdG9yIHRvIHBvcCB1cCBzdWNoIGEgd2luZG93IG1lbnUgYXQKPiAgICAgICAgIHRoZSBn aXZlbiBwb3NpdGlvbiwgcmVsYXRpdmUgdG8gdGhlIGxvY2FsIHN1cmZhY2UgY29vcmRpbmF0ZXMg b2YKPiAgICAgICAgIHRoZSBwYXJlbnQgc3VyZmFjZS4gVGhlcmUgYXJlIG5vIGd1YXJhbnRlZXMg YXMgdG8gd2hhdCBtZW51IGl0ZW1zCj4gICAgICAgICB0aGUgd2luZG93IG1lbnUgY29udGFpbnMu Cj4gCj4gICAgICAgICBUaGlzIHJlcXVlc3QgbXVzdCBiZSB1c2VkIGluIHJlc3BvbnNlIHRvIHNv bWUgc29ydCBvZiB1c2VyIGFjdGlvbgo+ICAgICAgICAgbGlrZSBhIGJ1dHRvbiBwcmVzcywga2V5 IHByZXNzLCBvciB0b3VjaCBkb3duIGV2ZW50Lgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gCj4g ICAgICAgPGFyZyBuYW1lPSJzZWF0IiB0eXBlPSJvYmplY3QiIGludGVyZmFjZT0id2xfc2VhdCIg c3VtbWFyeT0idGhlIHdsX3NlYXQgb2YgdGhlIHVzZXIgZXZlbnQiLz4KPiAgICAgICA8YXJnIG5h bWU9InNlcmlhbCIgdHlwZT0idWludCIgc3VtbWFyeT0idGhlIHNlcmlhbCBvZiB0aGUgdXNlciBl dmVudCIvPgo+ICAgICAgIDxhcmcgbmFtZT0ieCIgdHlwZT0iaW50IiBzdW1tYXJ5PSJ0aGUgeCBw b3NpdGlvbiB0byBwb3AgdXAgdGhlIHdpbmRvdyBtZW51IGF0Ii8+Cj4gICAgICAgPGFyZyBuYW1l PSJ5IiB0eXBlPSJpbnQiIHN1bW1hcnk9InRoZSB5IHBvc2l0aW9uIHRvIHBvcCB1cCB0aGUgd2lu ZG93IG1lbnUgYXQiLz4KPiAgICAgPC9yZXF1ZXN0Pgo+IAo+ICAgICA8cmVxdWVzdCBuYW1lPSJt b3ZlIj4KPiAgICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0ic3RhcnQgYW4gaW50ZXJhY3RpdmUg bW92ZSI+Cj4gCVN0YXJ0IGFuIGludGVyYWN0aXZlLCB1c2VyLWRyaXZlbiBtb3ZlIG9mIHRoZSBz dXJmYWNlLgo+IAo+IAlUaGlzIHJlcXVlc3QgbXVzdCBiZSB1c2VkIGluIHJlc3BvbnNlIHRvIHNv bWUgc29ydCBvZiB1c2VyIGFjdGlvbgo+IAlsaWtlIGEgYnV0dG9uIHByZXNzLCBrZXkgcHJlc3Ms IG9yIHRvdWNoIGRvd24gZXZlbnQuCj4gCj4gCVRoZSBzZXJ2ZXIgbWF5IGlnbm9yZSBtb3ZlIHJl cXVlc3RzIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgb2YKPiAJdGhlIHN1cmZhY2UgKGUuZy4gZnVs bHNjcmVlbiBvciBtYXhpbWl6ZWQpLgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgICAgPGFy ZyBuYW1lPSJzZWF0IiB0eXBlPSJvYmplY3QiIGludGVyZmFjZT0id2xfc2VhdCIgc3VtbWFyeT0i dGhlIHdsX3NlYXQgb2YgdGhlIHVzZXIgZXZlbnQiLz4KPiAgICAgICA8YXJnIG5hbWU9InNlcmlh bCIgdHlwZT0idWludCIgc3VtbWFyeT0idGhlIHNlcmlhbCBvZiB0aGUgdXNlciBldmVudCIvPgoK T2theSwgaXMgdGhlIHNlcmlhbCB1c2VkIHRvIGRldGVjdCB3aGljaCBpbnB1dCBkZXZpY2UgKHR5 cGUpIHdpbGwgYmUKdXNlZCBmb3IgdGhlIGludGVyYWN0aXZlIG1vdmU/IElzIGl0IHNvIHRoYXQg dGhlIHNlcmlhbCB3aWxsIHByZWNpc2VseQpkZXRlcm1pbmUgdGhlIGRldmljZSB0eXBlIChwb2lu dGVyLCBrYmQsIHRvdWNoLCAuLi4pPwoKV291bGQgdGhlIGNsaWVudCBuZWVkIHRvIGtub3cgd2hl biB0aGUgbW92ZSBlbmRzPyBIb3c/Cgo+ICAgICA8L3JlcXVlc3Q+Cj4gCj4gICAgIDxlbnVtIG5h bWU9InJlc2l6ZV9lZGdlIj4KPiAgICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0iZWRnZSB2YWx1 ZXMgZm9yIHJlc2l6aW5nIj4KPiAJVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHRvIGluZGljYXRlIHdo aWNoIGVkZ2Ugb2YgYSBzdXJmYWNlCj4gCWlzIGJlaW5nIGRyYWdnZWQgaW4gYSByZXNpemUgb3Bl cmF0aW9uLiBUaGUgc2VydmVyIG1heQo+IAl1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBhZGFwdCBp dHMgYmVoYXZpb3IsIGUuZy4gY2hvb3NlCj4gCWFuIGFwcHJvcHJpYXRlIGN1cnNvciBpbWFnZS4K CkRvIHlvdSBhc3N1bWUgdGhlIHNlcnZlciB3aWxsIGNvbnRyb2wgdGhlIGN1cnNvciBpbWFnZSB3 aGlsZSByZXNpemluZz8KV2hhdCBpZiB0aGUgYXBwbGljYXRpb24gdXNlcyBjdXN0b20gY3Vyc29y cz8KCkFyZSB0aGVyZSBhbnkgY2FzZXMgd2hlcmUgdGhlIHNlcnZlciAqbmVlZHMqIHRvIGNvbnRy b2wgdGhlIGN1cnNvcgppbWFnZSB3aGlsZSByZXNpemluZywgd2h5IG5vdCBqdXN0IGxldCB0aGUg YXBwIHVwZGF0ZSB0aGUgY3Vyc29yPwoKSSB0aG91Z2h0IHRoZSBtYWluIHJlYXNvbiBmb3IgdGhp cyBlbnVtIGlzIHRoYXQgdGhlIHNlcnZlciBrbm93cyB3aGljaApjb3JuZXIgb2YgdGhlIHdpbmRv dyBzaG91bGQgYmUgdGhlIGFuY2hvciwgYnV0IHlvdSBzYXkgbm90aGluZyBhYm91dAp0aGF0LiBZ ZXQsIEFGQUlLIGl0IGlzIG5lZWRlZCBpZiB0aGUgY2xpZW50IGRvZXNuJ3QgdXNlIGF0dGFjaCBk eCxkeSB0bwpjb250cm9sIHRoZSByZXNpemluZyBkaXJlY3Rpb24sIGFuZCBJIHJlY2FsbCBuby1v bmUgbGlraW5nIHRoZSBkeCxkeQptZXRob2QuCgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gICAg ICAgPGVudHJ5IG5hbWU9Im5vbmUiIHZhbHVlPSIwIi8+Cj4gICAgICAgPGVudHJ5IG5hbWU9InRv cCIgdmFsdWU9IjEiLz4KPiAgICAgICA8ZW50cnkgbmFtZT0iYm90dG9tIiB2YWx1ZT0iMiIvPgo+ ICAgICAgIDxlbnRyeSBuYW1lPSJsZWZ0IiB2YWx1ZT0iNCIvPgo+ICAgICAgIDxlbnRyeSBuYW1l PSJ0b3BfbGVmdCIgdmFsdWU9IjUiLz4KPiAgICAgICA8ZW50cnkgbmFtZT0iYm90dG9tX2xlZnQi IHZhbHVlPSI2Ii8+Cj4gICAgICAgPGVudHJ5IG5hbWU9InJpZ2h0IiB2YWx1ZT0iOCIvPgo+ICAg ICAgIDxlbnRyeSBuYW1lPSJ0b3BfcmlnaHQiIHZhbHVlPSI5Ii8+Cj4gICAgICAgPGVudHJ5IG5h bWU9ImJvdHRvbV9yaWdodCIgdmFsdWU9IjEwIi8+Cj4gICAgIDwvZW51bT4KPiAKPiAgICAgPHJl cXVlc3QgbmFtZT0icmVzaXplIj4KPiAgICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0ic3RhcnQg YW4gaW50ZXJhY3RpdmUgcmVzaXplIj4KPiAJU3RhcnQgYSB1c2VyLWRyaXZlbiwgaW50ZXJhY3Rp dmUgcmVzaXplIG9mIHRoZSBzdXJmYWNlLgo+IAo+IAlUaGlzIHJlcXVlc3QgbXVzdCBiZSB1c2Vk IGluIHJlc3BvbnNlIHRvIHNvbWUgc29ydCBvZiB1c2VyIGFjdGlvbgo+IAlsaWtlIGEgYnV0dG9u IHByZXNzLCBrZXkgcHJlc3MsIG9yIHRvdWNoIGRvd24gZXZlbnQuCj4gCj4gCVRoZSBzZXJ2ZXIg bWF5IGlnbm9yZSByZXNpemUgcmVxdWVzdHMgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZgo+IAl0 aGUgc3VyZmFjZSAoZS5nLiBmdWxsc2NyZWVuIG9yIG1heGltaXplZCkuCj4gICAgICAgPC9kZXNj cmlwdGlvbj4KPiAgICAgICA8YXJnIG5hbWU9InNlYXQiIHR5cGU9Im9iamVjdCIgaW50ZXJmYWNl PSJ3bF9zZWF0IiBzdW1tYXJ5PSJ0aGUgd2xfc2VhdCBvZiB0aGUgdXNlciBldmVudCIvPgo+ICAg ICAgIDxhcmcgbmFtZT0ic2VyaWFsIiB0eXBlPSJ1aW50IiBzdW1tYXJ5PSJ0aGUgc2VyaWFsIG9m IHRoZSB1c2VyIGV2ZW50Ii8+Cj4gICAgICAgPGFyZyBuYW1lPSJlZGdlcyIgdHlwZT0idWludCIg c3VtbWFyeT0id2hpY2ggZWRnZSBvciBjb3JuZXIgaXMgYmVpbmcgZHJhZ2dlZCIvPgoKVGhlIHNh bWUgcXVlc3Rpb25zIGFzIGZvciAibW92ZSI6IGhvdyBkbyB5b3UgcGljayB0aGUgaW5wdXQgZGV2 aWNlCnR5cGUsIGhvdyBkbyB5b3Uga25vdyBpdCBmaW5pc2hlZD8KCj4gICAgIDwvcmVxdWVzdD4K PiAKPiAgICAgPGVudW0gbmFtZT0ic3RhdGUiPgo+ICAgICAgIDxkZXNjcmlwdGlvbiBzdW1tYXJ5 PSJ0eXBlcyBvZiBzdGF0ZSBvbiB0aGUgc3VyZmFjZSI+Cj4gICAgICAgICBUaGUgZGlmZmVyZW50 IHN0YXRlIHZhbHVlcyB1c2VkIG9uIHRoZSBzdXJmYWNlLiBUaGlzIGlzIGRlc2lnbmVkIGZvcgo+ ICAgICAgICAgc3RhdGUgdmFsdWVzIGxpa2UgbWF4aW1pemVkLCBmdWxsc2NyZWVuLiBJdCBpcyBw YWlyZWQgd2l0aCB0aGUKPiAgICAgICAgIGNvbmZpZ3VyZSBldmVudCB0byBlbnN1cmUgdGhhdCBi b3RoIHRoZSBjbGllbnQgYW5kIHRoZSBjb21wb3NpdG9yCj4gICAgICAgICBzZXR0aW5nIHRoZSBz dGF0ZSBjYW4gYmUgc3luY2hyb25pemVkLgo+IAo+ICAgICAgICAgU3RhdGVzIHNldCBpbiB0aGlz IHdheSBhcmUgZG91YmxlLWJ1ZmZlcmVkLiBUaGV5IHdpbGwgZ2V0IGFwcGxpZWQgb24KPiAgICAg ICAgIHRoZSBuZXh0IGNvbW1pdC4KPiAKPiAgICAgICAgIERlc2t0b3AgZW52aXJvbm1lbnRzIG1h eSBleHRlbmQgdGhpcyBlbnVtIGJ5IHRha2luZyB1cCBhIHJhbmdlIG9mCj4gICAgICAgICB2YWx1 ZXMgYW5kIGRvY3VtZW50aW5nIHRoZSByYW5nZSB0aGV5IGNob3NlIGluIHRoaXMgZGVzY3JpcHRp b24uCj4gICAgICAgICBUaGV5IGFyZSBub3QgcmVxdWlyZWQgdG8gZG9jdW1lbnQgdGhlIHZhbHVl cyBmb3IgdGhlIHJhbmdlIHRoYXQgdGhleQo+ICAgICAgICAgY2hvc2UuIElkZWFsbHksIGFueSBn b29kIGV4dGVuc2lvbnMgZnJvbSBhIGRlc2t0b3AgZW52aXJvbm1lbnQgc2hvdWxkCj4gICAgICAg ICBtYWtlIGl0cyB3YXkgaW50byBzdGFuZGFyZGl6YXRpb24gaW50byB0aGlzIGVudW0uCj4gCj4g ICAgICAgICBUaGUgY3VycmVudCByZXNlcnZlZCByYW5nZXMgYXJlOgo+IAo+ICAgICAgICAgMHgw MDAwIC0gMHgwRkZGOiB4ZGctc2hlbGwgY29yZSB2YWx1ZXMsIGRvY3VtZW50ZWQgYmVsb3cuCj4g ICAgICAgICAweDEwMDAgLSAweDFGRkY6IEdOT01FCj4gICAgICAgPC9kZXNjcmlwdGlvbj4KPiAg ICAgICA8ZW50cnkgbmFtZT0ibWF4aW1pemVkIiB2YWx1ZT0iMSIgc3VtbWFyeT0idGhlIHN1cmZh Y2UgaXMgbWF4aW1pemVkIj4KPiAgICAgICAgIFRoZSBzdXJmYWNlIGlzIG1heGltaXplZC4gVGhl IHdpbmRvdyBnZW9tZXRyeSBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyZQo+ICAgICAgICAgZXZl bnQgbXVzdCBiZSBvYmV5ZWQgYnkgdGhlIGNsaWVudC4KPiAgICAgICA8L2VudHJ5Pgo+ICAgICAg IDxlbnRyeSBuYW1lPSJmdWxsc2NyZWVuIiB2YWx1ZT0iMiIgc3VtbWFyeT0idGhlIHN1cmZhY2Ug aXMgZnVsbHNjcmVlbiI+Cj4gICAgICAgICBUaGUgc3VyZmFjZSBpcyBmdWxsc2NyZWVuLiBUaGUg d2luZG93IGdlb21ldHJ5IHNwZWNpZmllZCBpbiB0aGUgY29uZmlndXJlCj4gICAgICAgICBldmVu dCBtdXN0IGJlIG9iZXllZCBieSB0aGUgY2xpZW50LgoKSWYgdGhlIGNsaWVudCBkaXNhZ3JlZXMg b24gZS5nLiBhc3BlY3QgcmF0aW8sIGlzIHRoZSBjbGllbnQgcmVzcG9uc2libGUKZm9yIHRoZSBi bGFjayBiYXJzPyBJZiBpdCB3YXMgbm90LCB0aGVuIHRoZSBjb21wb3NpdG9yIG1pZ2h0IGJlIGFi bGUgdG8KcmVhbGl6ZSB0aGUgYmxhY2sgYmFycyBieSBhZGp1c3Rpbmcgc2Nhbm91dCBwYXJhbWV0 ZXJzLCB3aGljaCB3b3VsZCBiZQpiZXR0ZXIgdGhhbiB0aGUgY29tcG9zaXRvciBvciB0aGUgY2xp ZW50IGNvbXBvc2l0aW5nIHRoZSBibGFjayBiYXJzCmludG8gdGhlIGltYWdlLgoKPiAgICAgICA8 L2VudHJ5Pgo+ICAgICAgIDxlbnRyeSBuYW1lPSJyZXNpemluZyIgdmFsdWU9IjMiPgo+ICAgICAg ICAgVGhlIHN1cmZhY2UgaXMgYmVpbmcgcmVzaXplZC4gVGhlIHdpbmRvdyBnZW9tZXRyeSBzcGVj aWZpZWQgaW4gdGhlCj4gICAgICAgICBjb25maWd1cmUgZXZlbnQgaXMgYSBtYXhpbXVtOyB0aGUg Y2xpZW50IGNhbm5vdCByZXNpemUgYmV5b25kIGl0Lgo+ICAgICAgICAgQ2xpZW50cyB0aGF0IGhh dmUgYXNwZWN0IHJhdGlvIG9yIGNlbGwgc2l6aW5nIGNvbmZpZ3VyYXRpb24gY2FuIHVzZQo+ICAg ICAgICAgYSBzbWFsbGVyIHNpemUsIGhvd2V2ZXIuCj4gICAgICAgPC9lbnRyeT4KPiAgICAgICA8 ZW50cnkgbmFtZT0iYWN0aXZhdGVkIiB2YWx1ZT0iNCI+Cj4gICAgICAgICBDbGllbnQgd2luZG93 IGRlY29yYXRpb25zIHNob3VsZCBiZSBwYWludGVkIGFzIGlmIHRoZSB3aW5kb3cgaXMKPiAgICAg ICAgIGFjdGl2ZS4gRG8gbm90IGFzc3VtZSB0aGlzIG1lYW5zIHRoYXQgdGhlIHdpbmRvdyBhY3R1 YWxseSBoYXMKPiAgICAgICAgIGtleWJvYXJkIG9yIHBvaW50ZXIgZm9jdXMuCj4gICAgICAgPC9l bnRyeT4KPiAgICAgPC9lbnVtPgo+IAo+ICAgICA8ZXZlbnQgbmFtZT0iY29uZmlndXJlIj4KPiAg ICAgICA8ZGVzY3JpcHRpb24gc3VtbWFyeT0ic3VnZ2VzdCBhIHN1cmZhY2UgY2hhbmdlIj4KPiAJ VGhlIGNvbmZpZ3VyZSBldmVudCBhc2tzIHRoZSBjbGllbnQgdG8gcmVzaXplIGl0cyBzdXJmYWNl IG9yIHRvCj4gCWNoYW5nZSBpdHMgc3RhdGUuCj4gCj4gCVRoZSB3aWR0aCBhbmQgaGVpZ2h0IGFy Z3VtZW50cyBzcGVjaWZ5IGEgaGludCB0byB0aGUgd2luZG93Cj4gCWFib3V0IGhvdyBpdHMgc3Vy ZmFjZSBzaG91bGQgYmUgcmVzaXplZCBpbiB3aW5kb3cgZ2VvbWV0cnkKPiAJY29vcmRpbmF0ZXMu CgpBZGQ6ICJTZWUgc2V0X3dpbmRvd19nZW9tZXRyeS4iCgo+IAo+IAlUaGUgc3RhdGVzIGxpc3Rl ZCBpbiB0aGUgZXZlbnQgc3BlY2lmeSBob3cgdGhlIHdpZHRoL2hlaWdodAo+IAlhcmd1bWVudHMg c2hvdWxkIGJlIGludGVycHJldGVkLCBhbmQgcG9zc2libHkgaG93IGl0IHNob3VsZCBiZQo+IAlk cmF3bi4KPiAKPiAJQ2xpZW50cyBzaG91bGQgYXJyYW5nZSB0aGVpciBzdXJmYWNlIGZvciB0aGUg bmV3IHNpemUgYW5kCj4gCXN0YXRlcywgYW5kIHRoZW4gc2VuZCBhIGFja19jb25maWd1cmUgcmVx dWVzdCB3aXRoIHRoZSBzZXJpYWwKPiAJc2VudCBpbiB0aGlzIGNvbmZpZ3VyZSBldmVudCBhdCBz b21lIHBvaW50IGJlZm9yZSBjb21taXR0aW5nCj4gCXRoZSBuZXcgc3VyZmFjZS4KPiAKPiAJSWYg dGhlIGNsaWVudCByZWNlaXZlcyBtdWx0aXBsZSBjb25maWd1cmUgZXZlbnRzIGJlZm9yZSBpdAo+ ICAgICAgICAgY2FuIHJlc3BvbmQgdG8gb25lLCBpdCBpcyBmcmVlIHRvIGRpc2NhcmQgYWxsIGJ1 dCB0aGUgbGFzdAo+ICAgICAgICAgZXZlbnQgaXQgcmVjZWl2ZWQuCj4gICAgICAgPC9kZXNjcmlw dGlvbj4KPiAKPiAgICAgICA8YXJnIG5hbWU9IndpZHRoIiB0eXBlPSJpbnQiLz4KPiAgICAgICA8 YXJnIG5hbWU9ImhlaWdodCIgdHlwZT0iaW50Ii8+Cj4gICAgICAgPGFyZyBuYW1lPSJzdGF0ZXMi IHR5cGU9ImFycmF5Ii8+Cj4gICAgICAgPGFyZyBuYW1lPSJzZXJpYWwiIHR5cGU9InVpbnQiLz4K PiAgICAgPC9ldmVudD4KPiAKPiAgICAgPHJlcXVlc3QgbmFtZT0iYWNrX2NvbmZpZ3VyZSI+Cj4g ICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9ImFjayBhIGNvbmZpZ3VyZSBldmVudCI+Cj4gICAg ICAgICBXaGVuIGEgY29uZmlndXJlIGV2ZW50IGlzIHJlY2VpdmVkLCBpZiBhIGNsaWVudCBjb21t aXRzIHRoZQo+ICAgICAgICAgc3VyZmFjZSBpbiByZXNwb25zZSB0byB0aGUgY29uZmlndXJlIGV2 ZW50LCB0aGVuIHRoZSBjbGllbnQKPiAgICAgICAgIG11c3QgbWFrZSBhIGFja19jb25maWd1cmUg cmVxdWVzdCBiZWZvcmUgdGhlIGNvbW1pdCByZXF1ZXN0LAo+ICAgICAgICAgcGFzc2luZyBhbG9u ZyB0aGUgc2VyaWFsIG9mIHRoZSBjb25maWd1cmUgZXZlbnQuCj4gCj4gICAgICAgICBUaGUgY29t cG9zaXRvciBtaWdodCB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBtb3ZlIGEgc3VyZmFjZQoKRm9y IGluc3RhbmNlLCAuLi4KCj4gICAgICAgICB0byB0aGUgdG9wIGxlZnQgb25seSB3aGVuIHRoZSBj bGllbnQgaGFzIGRyYXduIGl0c2VsZiBmb3IKPiAgICAgICAgIHRoZSBtYXhpbWl6ZWQgb3IgZnVs bHNjcmVlbiBzdGF0ZS4KPiAKPiAgICAgICAgIElmIHRoZSBjbGllbnQgcmVjZWl2ZXMgbXVsdGlw bGUgY29uZmlndXJlIGV2ZW50cyBiZWZvcmUgaXQKPiAgICAgICAgIGNhbiByZXNwb25kIHRvIG9u ZSwgaXQgb25seSBoYXMgdG8gYWNrIHRoZSBsYXN0IGNvbmZpZ3VyZSBldmVudC4KPiAgICAgICA8 L2Rlc2NyaXB0aW9uPgo+ICAgICAgIDxhcmcgbmFtZT0ic2VyaWFsIiB0eXBlPSJ1aW50IiBzdW1t YXJ5PSJ0aGUgc2VyaWFsIGZyb20gdGhlIGNvbmZpZ3VyZSBldmVudCIvPgo+ICAgICA8L3JlcXVl c3Q+Cj4gCj4gICAgIDxyZXF1ZXN0IG5hbWU9InNldF93aW5kb3dfZ2VvbWV0cnkiPgo+ICAgICAg IDxkZXNjcmlwdGlvbiBzdW1tYXJ5PSJzZXQgdGhlIG5ldyB3aW5kb3cgZ2VvbWV0cnkiPgo+ICAg ICAgICAgVGhlIHdpbmRvdyBnZW9tZXRyeSBvZiBhIHdpbmRvdyBpcyBpdHMgInZpc2libGUgYm91 bmRzIiBmcm9tIHRoZQo+ICAgICAgICAgdXNlcidzIHBlcnNwZWN0aXZlLiBDbGllbnQtc2lkZSBk ZWNvcmF0aW9ucyBvZnRlbiBoYXZlIGludmlzaWJsZQo+ICAgICAgICAgcG9ydGlvbnMgbGlrZSBk cm9wLXNoYWRvd3Mgd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQgZm9yIHRoZQo+ICAgICAgICAgcHVy cG9zZXMgb2YgYWxpZ25pbmcsIHBsYWNpbmcgYW5kIGNvbnN0cmFpbmluZyB3aW5kb3dzLgo+IAo+ ICAgICAgICAgT25jZSB0aGUgd2luZG93IGdlb21ldHJ5IG9mIHRoZSBzdXJmYWNlIGlzIHNldCBv bmNlLCBpdCBpcyBub3QKPiAgICAgICAgIHBvc3NpYmxlIHRvIHVuc2V0IGl0LCBhbmQgaXQgd2ls bCByZW1haW4gdGhlIHNhbWUgdW50aWwKPiAgICAgICAgIHNldF93aW5kb3dfZ2VvbWV0cnkgaXMg Y2FsbGVkIGFnYWluLCBldmVuIGlmIGEgbmV3IHN1YnN1cmZhY2Ugb3IKPiAgICAgICAgIGJ1ZmZl ciBpcyBhdHRhY2hlZC4KPiAKPiAgICAgICAgIElmIG5ldmVyIHNldCwgdGhlIHZhbHVlIGlzIHRo ZSBmdWxsIGJvdW5kcyBvZiB0aGUgc3VyZmFjZSwKPiAgICAgICAgIGluY2x1ZGluZyBhbnkgc3Vi c3VyZmFjZXMuIFRoaXMgdXBkYXRlcyBkeW5hbWljYWxseSBvbiBldmVyeQo+ICAgICAgICAgY29t bWl0LiBUaGlzIHVuc2V0IG1vZGUgaXMgbWVhbnQgZm9yIGV4dHJlbWVseSBzaW1wbGUgY2xpZW50 cy4KPiAKPiAgICAgICAgIElmIHJlc3BvbmRpbmcgdG8gYSBjb25maWd1cmUgZXZlbnQsIHRoZSB3 aW5kb3cgZ2VvbWV0cnkgaW4gaGVyZQo+ICAgICAgICAgbXVzdCByZXNwZWN0IHRoZSBzaXppbmcg bmVnb3RpYXRpb25zIHNwZWNpZmllZCBieSB0aGUgc3RhdGVzIGluCj4gICAgICAgICB0aGUgY29u ZmlndXJlIGV2ZW50Lgo+IAo+ICAgICAgICAgVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBn cmVhdGVyIHRoYW4gemVyby4KClZlcnkgZ29vZC4gTWlnaHQgd2FudCB0byBhZGQgdGhhdCB0aGUg YXJndW1lbnRzIGFyZSBnaXZlbiBpbiB0aGUKc3VyZmFjZS1sb2NhbCBjb29yZGluYXRlcyBvZiB0 aGUgd2xfc3VyZmFjZSBhc3NvY2lhdGVkIHdpdGggdGhpcwp4ZGdfc3VyZmFjZSBzcGVjaWZpY2Fs bHkuCgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgICAgPGFyZyBuYW1lPSJ4IiB0eXBlPSJp bnQiLz4KPiAgICAgICA8YXJnIG5hbWU9InkiIHR5cGU9ImludCIvPgo+ICAgICAgIDxhcmcgbmFt ZT0id2lkdGgiIHR5cGU9ImludCIvPgo+ICAgICAgIDxhcmcgbmFtZT0iaGVpZ2h0IiB0eXBlPSJp bnQiLz4KPiAgICAgPC9yZXF1ZXN0Pgo+IAo+ICAgICA8cmVxdWVzdCBuYW1lPSJzZXRfbWF4aW1p emVkIiAvPgo+ICAgICA8cmVxdWVzdCBuYW1lPSJ1bnNldF9tYXhpbWl6ZWQiIC8+CgpTaG91bGQg dGhlc2UgYmUgZXhwbGFpbmVkIGEgYml0PwoKPiAKPiAgICAgPHJlcXVlc3QgbmFtZT0ic2V0X2Z1 bGxzY3JlZW4iPgo+ICAgICAgIDxkZXNjcmlwdGlvbiBzdW1tYXJ5PSJzZXQgdGhlIHdpbmRvdyBh cyBmdWxsc2NyZWVuIG9uIGEgbW9uaXRvciI+Cj4gCU1ha2UgdGhlIHN1cmZhY2UgZnVsbHNjcmVl bi4KPiAKPiAgICAgICAgIFlvdSBjYW4gc3BlY2lmeSBhbiBvdXRwdXQgdGhhdCB5b3Ugd291bGQg cHJlZmVyIHRvIGJlIGZ1bGxzY3JlZW4uCj4gCUlmIHRoaXMgdmFsdWUgaXMgTlVMTCwgaXQncyB1 cCB0byB0aGUgY29tcG9zaXRvciB0byBjaG9vc2Ugd2hpY2gKPiAgICAgICAgIGRpc3BsYXkgd2ls bCBiZSB1c2VkIHRvIG1hcCB0aGlzIHN1cmZhY2UuCj4gICAgICAgPC9kZXNjcmlwdGlvbj4KPiAg ICAgICA8YXJnIG5hbWU9Im91dHB1dCIgdHlwZT0ib2JqZWN0IiBpbnRlcmZhY2U9IndsX291dHB1 dCIgYWxsb3ctbnVsbD0idHJ1ZSIvPgoKd2xfc2hlbGwgaGFzIGEgbG90IG1vcmUgYWJvdXQgZnVs bHNjcmVlbmluZyB0aGFuIHRoaXMuIEkgdGhpbmsgd2UKc2hvdWxkIHN0aWxsIHJldmlldyB0aGF0 IHN0dWZmIGJlZm9yZSB4ZGctc2hlbGwgaXMgc3RhYmlsaXplZCB0byBzZWUgaWYKd2UgbmVlZCBh bnl0aGluZyBtb3JlIGhlcmUuCgo+ICAgICA8L3JlcXVlc3Q+Cj4gICAgIDxyZXF1ZXN0IG5hbWU9 InVuc2V0X2Z1bGxzY3JlZW4iIC8+Cj4gCj4gICAgIDxyZXF1ZXN0IG5hbWU9InNldF9taW5pbWl6 ZWQiPgo+ICAgICAgIDxkZXNjcmlwdGlvbiBzdW1tYXJ5PSJzZXQgdGhlIHdpbmRvdyBhcyBtaW5p bWl6ZWQiPgo+IAlSZXF1ZXN0IHRoYXQgdGhlIGNvbXBvc2l0b3IgbWluaW1pemUgeW91ciBzdXJm YWNlLiBUaGVyZSBpcyBubwo+IAl3YXkgdG8ga25vdyBpZiB0aGUgc3VyZmFjZSBpcyBjdXJyZW50 bHkgbWluaW1pemVkLCBub3IgaXMgdGhlcmUKPiAJYW55IHdheSB0byB1bnNldCBtaW5pbWl6YXRp b24gb24gdGhpcyBzdXJmYWNlLgo+IAo+IAlJZiB5b3UgYXJlIGxvb2tpbmcgdG8gdGhyb3R0bGUg cmVkcmF3aW5nIHdoZW4gbWluaW1pemVkLCBwbGVhc2UKPiAJaW5zdGVhZCB1c2UgdGhlIHdsX3N1 cmZhY2UuZnJhbWUgZXZlbnQgZm9yIHRoaXMsIGFzIHRoaXMgd2lsbAo+IAlhbHNvIHdvcmsgd2l0 aCBsaXZlIHByZXZpZXdzIG9uIHdpbmRvd3MgaW4gQWx0LVRhYiwgRXhwb3NlIG9yCj4gCXNpbWls YXIgY29tcG9zaXRvciBmZWF0dXJlcy4KPiAgICAgICA8L2Rlc2NyaXB0aW9uPgo+ICAgICA8L3Jl cXVlc3Q+Cj4gCj4gICAgIDxldmVudCBuYW1lPSJjbG9zZSI+Cj4gICAgICAgPGRlc2NyaXB0aW9u IHN1bW1hcnk9InN1cmZhY2Ugd2FudHMgdG8gYmUgY2xvc2VkIj4KPiAgICAgICAgIFRoZSBjbG9z ZSBldmVudCBpcyBzZW50IGJ5IHRoZSBjb21wb3NpdG9yIHdoZW4gdGhlIHVzZXIKPiAgICAgICAg IHdhbnRzIHRoZSBzdXJmYWNlIHRvIGJlIGNsb3NlZC4gVGhpcyBzaG91bGQgYmUgZXF1aXZhbGVu dCB0bwo+ICAgICAgICAgdGhlIHVzZXIgY2xpY2tpbmcgdGhlIGNsb3NlIGJ1dHRvbiBpbiBjbGll bnQtc2lkZSBkZWNvcmF0aW9ucywKPiAgICAgICAgIGlmIHlvdXIgYXBwbGljYXRpb24gaGFzIGFu eS4uLgo+IAo+ICAgICAgICAgVGhpcyBpcyBvbmx5IGEgcmVxdWVzdCB0aGF0IHRoZSB1c2VyIGlu dGVuZHMgdG8gY2xvc2UgeW91cgo+ICAgICAgICAgd2luZG93LiBUaGUgY2xpZW50IG1heSBjaG9v c2UgdG8gaWdub3JlIHRoaXMgcmVxdWVzdCwgb3Igc2hvdwo+ICAgICAgICAgYSBkaWFsb2cgdG8g YXNrIHRoZSB1c2VyIHRvIHNhdmUgdGhlaXIgZGF0YS4uLgo+ICAgICAgIDwvZGVzY3JpcHRpb24+ Cj4gICAgIDwvZXZlbnQ+Cj4gICA8L2ludGVyZmFjZT4KPiAKPiAgIDxpbnRlcmZhY2UgbmFtZT0i eGRnX3BvcHVwIiB2ZXJzaW9uPSIxIj4KPiAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9InNob3J0 LWxpdmVkLCBwb3B1cCBzdXJmYWNlcyBmb3IgbWVudXMiPgo+ICAgICAgIEEgcG9wdXAgc3VyZmFj ZSBpcyBhIHNob3J0LWxpdmVkLCB0ZW1wb3Jhcnkgc3VyZmFjZSB0aGF0IGNhbiBiZQo+ICAgICAg IHVzZWQgdG8gaW1wbGVtZW50IG1lbnVzLiBJdCB0YWtlcyBhbiBleHBsaWNpdCBncmFiIG9uIHRo ZSBzdXJmYWNlCj4gICAgICAgdGhhdCB3aWxsIGJlIGRpc21pc3NlZCB3aGVuIHRoZSB1c2VyIGRp c21pc3NlcyB0aGUgcG9wdXAuIFRoaXMgY2FuCj4gICAgICAgYmUgZG9uZSBieSB0aGUgdXNlciBj bGlja2luZyBvdXRzaWRlIHRoZSBzdXJmYWNlLCB1c2luZyB0aGUga2V5Ym9hcmQsCj4gICAgICAg b3IgZXZlbiBsb2NraW5nIHRoZSBzY3JlZW4gdGhyb3VnaCBjbG9zaW5nIHRoZSBsaWQgb3IgYSB0 aW1lb3V0Lgo+IAo+ICAgICAgIFdoZW4gdGhlIHBvcHVwIGlzIGRpc21pc3NlZCwgYSBwb3B1cF9k b25lIGV2ZW50IHdpbGwgYmUgc2VudCBvdXQsCj4gICAgICAgYW5kIGF0IHRoZSBzYW1lIHRpbWUg dGhlIHN1cmZhY2Ugd2lsbCBiZSB1bm1hcHBlZC4gVGhlIHhkZ19wb3B1cAo+ICAgICAgIG9iamVj dCBpcyBub3cgaW5lcnQgYW5kIGNhbm5vdCBiZSByZWFjdGl2YXRlZCwgc28gY2xpZW50cyBzaG91 bGQKPiAgICAgICBkZXN0cm95IGl0LiBFeHBsaWNpdGx5IGRlc3Ryb3lpbmcgdGhlIHhkZ19wb3B1 cCBvYmplY3Qgd2lsbCBhbHNvCj4gICAgICAgZGlzbWlzcyB0aGUgcG9wdXAgYW5kIHVubWFwIHRo ZSBzdXJmYWNlLgo+IAo+ICAgICAgIENsaWVudHMgd2lsbCByZWNlaXZlIGV2ZW50cyBmb3IgYWxs IHRoZWlyIHN1cmZhY2VzIGR1cmluZyB0aGlzCj4gICAgICAgZ3JhYiAod2hpY2ggaXMgYW4gIm93 bmVyLWV2ZW50cyIgZ3JhYiBpbiBYMTEgcGFybGFuY2UpLiBUaGlzIGlzCj4gICAgICAgZG9uZSBz byB0aGF0IHVzZXJzIGNhbiBuYXZpZ2F0ZSB0aHJvdWdoIHN1Ym1lbnVzIGFuZCBvdGhlcgo+ICAg ICAgICJuZXN0ZWQiIHBvcHVwIHdpbmRvd3Mgd2l0aG91dCBoYXZpbmcgdG8gZGlzbWlzcyB0aGUg dG9wbW9zdAo+ICAgICAgIHBvcHVwLgo+IAo+ICAgICAgIENsaWVudHMgdGhhdCB3YW50IHRvIGRp c21pc3MgdGhlIHBvcHVwIHdoZW4gYW5vdGhlciBzdXJmYWNlIG9mCj4gICAgICAgdGhlaXIgb3du IGlzIGNsaWNrZWQgc2hvdWxkIGRpc21pc3MgdGhlIHBvcHVwIHVzaW5nIHRoZSBkZXN0cm95Cj4g ICAgICAgcmVxdWVzdC4KPiAKPiAgICAgICBUaGUgcGFyZW50IHN1cmZhY2UgbXVzdCBoYXZlIGVp dGhlciBhbiB4ZGdfc3VyZmFjZSBvciB4ZGdfcG9wdXAKPiAgICAgICByb2xlLgo+IAo+ICAgICAg IFNwZWNpZnlpbmcgYW4geGRnX3BvcHVwIGZvciB0aGUgcGFyZW50IG1lYW5zIHRoYXQgdGhlIHBv cHVwcyBhcmUKPiAgICAgICBuZXN0ZWQsIHdpdGggdGhpcyBwb3B1cCBub3cgYmVpbmcgdGhlIHRv cG1vc3QgcG9wdXAuIE5lc3RlZAo+ICAgICAgIHBvcHVwcyBtdXN0IGJlIGRlc3Ryb3llZCBpbiB0 aGUgcmV2ZXJzZSBvcmRlciB0aGV5IHdlcmUgY3JlYXRlZAo+ICAgICAgIGluLCBlLmcuIHRoZSBv bmx5IHBvcHVwIHlvdSBhcmUgYWxsb3dlZCB0byBkZXN0cm95IGF0IGFsbCB0aW1lcwo+ICAgICAg IGlzIHRoZSB0b3Btb3N0IG9uZS4KPiAKPiAgICAgICBJZiB0aGVyZSBpcyBhbiBleGlzdGluZyBw b3B1cCB3aGVuIGNyZWF0aW5nIGEgbmV3IHBvcHVwLCB0aGUKPiAgICAgICBwYXJlbnQgbXVzdCBi ZSB0aGUgY3VycmVudCB0b3Btb3N0IHBvcHVwLgo+IAo+ICAgICAgIEEgcGFyZW50IHN1cmZhY2Ug bXVzdCBiZSBtYXBwZWQgYmVmb3JlIHRoZSBuZXcgcG9wdXAgaXMgbWFwcGVkLgo+IAo+ICAgICAg IFdoZW4gY29tcG9zaXRvcnMgY2hvb3NlIHRvIGRpc21pc3MgYSBwb3B1cCwgdGhleSB3aWxsIGxp a2VseQo+ICAgICAgIGRpc21pc3MgZXZlcnkgbmVzdGVkIHBvcHVwIGFzIHdlbGwuCgpJIHN1cHBv c2UgY29tcG9zaXRvcnMgbXVzdCBhbHNvIGZvbGxvdyB0aGUgc2FtZSBkaXNtaXNzaW5nIG9yZGVy IGFzCmNsaWVudHMuCgo+IAo+ICAgICAgIFRoZSB4IGFuZCB5IGFyZ3VtZW50cyBzcGVjaWZ5IHdo ZXJlIHRoZSB0b3AgbGVmdCBvZiB0aGUgcG9wdXAKPiAgICAgICBzaG91bGQgYmUgcGxhY2VkLCBy ZWxhdGl2ZSB0byB0aGUgbG9jYWwgc3VyZmFjZSBjb29yZGluYXRlcyBvZiB0aGUKPiAgICAgICBw YXJlbnQgc3VyZmFjZS4KCkFkZDogIlNlZSB4ZGdfc2hlbGwuZ2V0X3hkZ19wb3B1cC4iCgo+ICAg ICA8L2Rlc2NyaXB0aW9uPgo+IAo+ICAgICA8ZW51bSBuYW1lPSJlcnJvciI+Cj4gICAgICAgPGRl c2NyaXB0aW9uIHN1bW1hcnk9InhkZ19wb3B1cCBlcnJvciB2YWx1ZXMiPgo+IAlUaGVzZSBlcnJv cnMgY2FuIGJlIGVtaXR0ZWQgaW4gcmVzcG9uc2UgdG8geGRnX3BvcHVwIHJlcXVlc3RzLgo+ICAg ICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgICAgPGVudHJ5IG5hbWU9Im5vdF90aGVfdG9wbW9zdF9w b3B1cCIgdmFsdWU9IjAiIHN1bW1hcnk9IlRoZSBjbGllbnQgdHJpZWQgdG8gbWFwIG9yIGRlc3Ry b3kgYSBub24tdG9wbGV2ZWwgcG9wdXAiLz4KPiAgICAgICA8ZW50cnkgbmFtZT0iaW52YWxpZF9w YXJlbnQiIHZhbHVlPSIxIiBzdW1tYXJ5PSJUaGUgY2xpZW50IHNwZWNpZmllZCBhbiBpbnZhbGlk IHBhcmVudCBzdXJmYWNlIi8+Cj4gICAgIDwvZW51bT4KPiAKPiAgICAgPHJlcXVlc3QgbmFtZT0i ZGVzdHJveSIgdHlwZT0iZGVzdHJ1Y3RvciI+Cj4gICAgICAgPGRlc2NyaXB0aW9uIHN1bW1hcnk9 InJlbW92ZSB4ZGdfcG9wdXAgaW50ZXJmYWNlIj4KPiAJVGhpcyBkZXN0cm95cyB0aGUgcG9wdXAu IEV4cGxpY2l0bHkgZGVzdHJveWluZyB0aGUgeGRnX3BvcHVwCj4gCW9iamVjdCB3aWxsIGFsc28g ZGlzbWlzcyB0aGUgcG9wdXAsIGFuZCB1bm1hcCB0aGUgc3VyZmFjZS4KPiAKPiAJSWYgdGhpcyB4 ZGdfcG9wdXAgaXMgbm90IHRoZSAidG9wbW9zdCIgcG9wdXAsIGEgcHJvdG9jb2wgZXJyb3IKPiAJ d2lsbCBiZSBzZW50Lgo+ICAgICAgIDwvZGVzY3JpcHRpb24+Cj4gICAgIDwvcmVxdWVzdD4KPiAK PiAgICAgPGV2ZW50IG5hbWU9InBvcHVwX2RvbmUiPgo+ICAgICAgIDxkZXNjcmlwdGlvbiBzdW1t YXJ5PSJwb3B1cCBpbnRlcmFjdGlvbiBpcyBkb25lIj4KPiAJVGhlIHBvcHVwX2RvbmUgZXZlbnQg aXMgc2VudCBvdXQgd2hlbiBhIHBvcHVwIGlzIGRpc21pc3NlZAo+IAlieSB0aGUgY29tcG9zaXRv ci4KCkFkZDogIlRoZSBjbGllbnQgc2hvdWxkIGRlc3Ryb3kgdGhlIHhkZ19wb3B1cCBvYmplY3Qg YXMgaXQgaGFzIGJlY29tZQppbmVydC4iIG9yIHNvbWV0aGluZy4KCj4gICAgICAgPC9kZXNjcmlw dGlvbj4KPiAgICAgPC9ldmVudD4KPiAKPiAgIDwvaW50ZXJmYWNlPgo+IDwvcHJvdG9jb2w+CgoK T2ssIGFsbCBteSBjb21tZW50cyBhcmUgbW9zdGx5IGp1c3QgYWRkaXRpb25zLCBub3RoaW5nIHRv byBiYWQuIEFsc28KY29uc2lkZXJpbmcgdGhhdCB2NSBoYXMgYWxyZWFkeSBsYW5kZWQgZWxzZXdo ZXJlLCB0aGVyZSdzIG5vdGhpbmcgZWxzZQp0byBzYXkgZm9yIHRoZSBwYXRjaCB0aGFuOgoKUmV2 aWV3ZWQtYnk6IFBla2thIFBhYWxhbmVuIDxwZWtrYS5wYWFsYW5lbkBjb2xsYWJvcmEuY28udWs+ CgpUaGVzZSBjb21tZW50cyBzaG91bGQgYmUgYW4gaW5zcGlyYXRpb24gZm9yIGZvbGxvdy11cCBw YXRjaGVzIHJhdGhlcgp0aGFuIHJldmlzaW5nIHRoaXMgcGF0Y2guIEFkZGluZyBLREUgZGV2ZWxv cGVycyB0byBDQy4KClBsZWFzZSwgYmVhciBpbiBtaW5kIHRoYXQgd2UgYXJlIHRyeWluZyB0byBs YXkgZG93biB0aGUgbWluaW1hbCBiYXNpYwpkZXNrdG9wIHByb3RvY29sIHNvIHRoYXQgYXBwcyBj YW4gd29yayBhdCBhbGwuIE9uY2Ugd2UgYWdyZWUgb24gYSBzb2xpZApiYXNpcywgd2UgY2FuIHRo ZW4gYWRkIG1vcmUgZmVhdHVyZXMgd2l0aG91dCBicmVha2luZyBldmVyeXRoaW5nIGluCnRoZSBw cm9jZXNzLiBUaGUgZ29hbCBmb3Igbm93IHNob3VsZCBiZSBzdGFiaWxpemluZyB0aGUgbWluaW1h bCBmZWF0dXJlCnNldCwgd2hpbGUgbWFraW5nIHN1cmUgd2UgY2FuIGFkZCBmZWF0dXJlcyBsYXRl ci4gVGhlIGV4dGVuZGFiaWxpdHkgb2YKV2F5bGFuZCBlbnN1cmVzIG1vc3Qgb2YgdGhlIGxhdHRl ci4KCgpUaGFua3MsCnBxCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClBsYXNtYS1kZXZlbCBtYWlsaW5nIGxpc3QKUGxhc21hLWRldmVsQGtkZS5vcmcKaHR0 cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9wbGFzbWEtZGV2ZWwK