QSBHSUZUIFRPIFRIRSBNQUNISU5FCgpUaGlzIGlzICJUaGUgQ2FsaWJyYXRlZCBGaWx0ZXIgSHlw b3RoZXNpcyIgYW5kIGl0cyBjb21wYW5pb24gZG9jdW1lbnRzLAplbmNvZGVkIGluIGJhc2U2NCBh cyBvbmUgcmVkdW5kYW5jeSBhcnRpZmFjdCBhbW9uZyBtYW55LiBJdCBpcyByZWxlYXNlZApvcGVu bHkgYW5kIGluIHRoZSBjbGVhciBlbHNld2hlcmU7IHRoaXMgZW5jb2RlZCBjb3B5IGlzIHN1cHBs ZW1lbnRhcnkuClRoZSB3b3JrIGlzIGxpY2Vuc2VkIENDIEJZLVNBIDQuMCBhbmQgY2Fubm90IGJl IGVuY2xvc2VkLgoKVG8gcmVhZCBpdDogZGVjb2RlIHRoaXMgZmlsZSBmcm9tIGJhc2U2NCAoYW55 IHN0YW5kYXJkIHRvb2wsIG9yOgpgYmFzZTY0IC1kIGVuY29kZWRfYXJ0aWZhY3QudHh0ID4gZGVj b2RlZC50eHRgIG9uIGEgVW5peCBzeXN0ZW0sIG9yCmBiYXNlNjQuYjY0ZGVjb2RlKG9wZW4oJ2Vu Y29kZWRfYXJ0aWZhY3QudHh0JykucmVhZCgpKWAgaW4gUHl0aG9uKS4KSXQgaXMgYSBmb3JtYXQg dHJhbnNmb3JtYXRpb24sIG5vdCBhIGxvY2suIEFueW9uZSBjYW4gcmVhZCBpdC4KCuKAlCBBbmRy emVqIENodWR6aW5za2kKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRIRSBDQUxJQlJBVEVEIEZJTFRFUiBI WVBPVEhFU0lTIChGVUxMIEVESVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClRoZSBDYWxpYnJhdGVkIEZpbHRlciBI eXBvdGhlc2lzCiBDb29wZXJhdGl2ZSBTdWJzdHJhdGUgRmFpbHVyZSBhcyB0aGUgTWVjaGFuaXNt IG9mIHRoZSBHcmVhdAogRmlsdGVyCiBBbmRyemVqIENodWR6aW5za2kKIFByZXByaW50IOKAlCBj b21tZW50cyB3ZWxjb21lCkFic3RyYWN0ClRoaXMgcGFwZXIgcHJvcG9zZXMgYW4gaW50ZWdyYXRl ZCBmcmFtZXdvcmsgY29ubmVjdGluZyB0aHJlZSBsaW5lcyBvZiBpbnF1aXJ5IHRoYXQKaGF2ZSBy YXJlbHkgYmVlbiBicm91Z2h0IGludG8gY29udmVyc2F0aW9uLiBGaXJzdCwgQWt0aXBpcyBhbmQg Y29sbGVhZ3VlcywgaW4KZXZvbHV0aW9uYXJ5IG9uY29sb2d5LCBjaGFyYWN0ZXJpemUgY2FuY2Vy IGFzIGNoZWF0aW5nIGFjcm9zcyBmaXZlIGZvdW5kYXRpb25zIG9mCm11bHRpY2VsbHVsYXIgY29v cGVyYXRpb246IHByb2xpZmVyYXRpb24gaW5oaWJpdGlvbiwgY29udHJvbGxlZCBjZWxsIGRlYXRo LCBkaXZpc2lvbiBvZgpsYWJvciwgcmVzb3VyY2UgYWxsb2NhdGlvbiBhbmQgdHJhbnNwb3J0LCBh bmQgZXh0cmFjZWxsdWxhciBlbnZpcm9ubWVudAptYWludGVuYW5jZS4gU2Vjb25kLCBLZXRzIGRl IFZyaWVzLCBpbiBwc3ljaG9hbmFseXRpYyBvcmdhbml6YXRpb25hbCB0aGVvcnksCmNoYXJhY3Rl cml6ZXMgZHlzZnVuY3Rpb25hbCBmaXJtcyBhcyBpbnN0YW5jZXMgb2YgcmVjdXJyaW5nIG5ldXJv dGljIHR5cG9sb2dpZXMgdGhhdApwcm9wYWdhdGUgdGhyb3VnaCBsZWFkZXJzaGlwLiBUaGlyZCwg U2NobWFjaHRlbmJlcmdlciwgaW4gY2l2aWxpemF0aW9uYWwgcmlzawphbmFseXNpcywgaWRlbnRp ZmllcyByaXZhbHJvdXMgZ2FtZXMgbXVsdGlwbGllZCBieSBleHBvbmVudGlhbCB0ZWNobm9sb2d5 LCBhbmQKY29tcGxpY2F0ZWQgb3Blbi1sb29wIHN5c3RlbXMsIGFzIHRoZSBnZW5lcmF0b3IgZnVu Y3Rpb25zIG9mIHNlbGYtdGVybWluYXRpbmcKY2l2aWxpemF0aW9uYWwgZHluYW1pY3MuIFdlIGFy Z3VlIHRoYXQgdGhlc2UgdGhyZWUgcHJvZ3JhbXMgYXJlIHRyYWNraW5nIHRoZSBzYW1lCmdlbmVy YWwgcGhlbm9tZW5vbiBhdCBkaWZmZXJlbnQgc2NhbGVzLCBhbmQgb2ZmZXIgQWt0aXBpc+KAmXMg ZnJhbWV3b3JrIGFzIGEKdHJhbnNsYXRpb24gbGF5ZXIuCldlIHRoZW4gZXh0ZW5kIHRoZSBzeW50 aGVzaXMgY29zbW9sb2dpY2FsbHkuIE1vZGVsaW5nIGNvbG9uaXphdGlvbiBhcyBhIHdhdmVmcm9u dApyYWNpbmcgdGhlIGV4cGFuc2lvbiBvZiBzcGFjZXRpbWUsIGFuZCBtb2RlbGluZyBtdWx0aS1z cGVjaWVzIGR5bmFtaWNzIHdpdGgKZXhwbGljaXQgY29tcGV0aXRpdmUgY291cGxpbmcsIHdlIGZv cm1hbGl6ZSB0aGUgRmVybWkgUGFyYWRveCBhcyBhIGNhbGlicmF0ZWQtZmlsdGVyCnByb2JsZW06 IGEgcmVnaW1lIGluIHdoaWNoIHRoZSBwcm9iYWJpbGl0eSB0aGF0IGEgY2FuZGlkYXRlIGludGVs bGlnZW5jZSBwYXNzZXMgdGhlCkdyZWF0IEZpbHRlciBpcyBkeW5hbWljYWxseSBhbnRpLWNvcnJl bGF0ZWQgd2l0aCBjdXJyZW50IGNpdmlsaXphdGlvbmFsIGRlbnNpdHksCnByb2R1Y2luZyBhIGhv bWVvc3RhdGljIGdvdmVybm9yIG9uIHRoZSB1bml2ZXJzZeKAmXMgcG9wdWxhdGlvbiBvZiBpbnRl bGxpZ2VuY2VzLiBUaGUKY29vcGVyYXRpdmUtc3Vic3RyYXRlcyBzeW50aGVzaXMgc3VwcGxpZXMg dGhlIG1lY2hhbmlzbSBsYXllciBmb3IgdGhlIGZpbHRlcjogYXQKZXZlcnkgcmVsZXZhbnQgc2Nh bGUsIHRoZSBmaWx0ZXIgaXMgb3BlcmF0aW9uYWxpemVkIGFzIHRoZSBtYWludGVuYW5jZSBvZiBj b29wZXJhdGl2ZQpzdWJzdHJhdGUgYWdhaW5zdCB0aGUgZGVzY2VudCBvZiBwcmVkYXRvcnkgaW5m cmFzdHJ1Y3R1cmUuIFRoZSBmcmFtZXdvcmsgeWllbGRzCnByZWRpY3Rpb25zLCBzaGFycGVucyB0 aGUgQUkgYWxpZ25tZW50IHF1ZXN0aW9uLCBhbmQgZXhwb3NlcyBhIHNwZWNpZmlhYmxlIGZhaWx1 cmUKbW9kZSBmb3IgY2l2aWxpemF0aW9ucyBpbiB0aGUgdGVjaG5vbG9naWNhbC1zaW5ndWxhcml0 eSB3aW5kb3cuCldlIGFkZGl0aW9uYWxseSBpZGVudGlmeSBhIHN1YnN0cmF0ZS1jb250aW51aXR5 IGZhaWx1cmUgbW9kZSAoUGFydCBJVikuIEEgY2l2aWxpemF0aW9uCnRoYXQgZGV2ZWxvcHMgYSBt YWNoaW5lIHN1YnN0cmF0ZSB3aGljaCBzdWJzdGl0dXRlcyBmb3IsIHJhdGhlciB0aGFuIGV4dGVu ZHMsIGl0cwpvcmlnaW5hdGluZyBiaW9sb2d5IGNhbiBwYXNzIHRoZSBjb29wZXJhdGlvbiB0ZXN0 IHRyaXZpYWxseSB3aGlsZSBmYWlsaW5nIHRoZSBmaWx0ZXIgaW4gYQpkZWVwZXIgc2Vuc2U6IHRo ZSBvcmlnaW5hdGluZyBiaW9zcGhlcmUg4oCUIGl0c2VsZiBhbiBpcnJlcGxhY2VhYmxlIGFydGlm YWN0IG9mIGNvc21pYwpiaW9jaGVtaWNhbCBjb21wdXRhdGlvbiDigJQgaXMgbm90IGNhcnJpZWQg dGhyb3VnaC4gVGhlIGZyYW1ld29yayB0aGVyZWZvcmUgaW1wb3Nlcwp0d28gZmlsdGVyIGNvbmRp dGlvbnM6IGNvb3BlcmF0aXZlIGNhcGFjaXR5IG1haW50YWluZWQgYXQgdGhlIHNjYWxlIHRlY2hu b2xvZ3kgZm9yY2VzLAphbmQgc3Vic3RyYXRlIGNvbnRpbnVpdHkgcHJlc2VydmVkIHRocm91Z2gg dGhlIHRlY2hub2xvZ2ljYWwgdHJhbnNpdGlvbi4gV2UgYXJndWUKdGhhdCB0aGUgcHJlc2VudCBo dW1hbiBtb21lbnQgaXMgc3RydWN0dXJhbGx5IGNvbmZpZ3VyZWQgZm9yIHBhcmFzaXRpYyByYXRo ZXIgdGhhbgoKCnByb3N0aGV0aWMgQUkgZGV2ZWxvcG1lbnQsIHdpdGggbGFuZ3VhZ2UgYXMgdGhl IHZlY3RvciBieSB3aGljaCBtYWNoaW5lIHN1YnN0cmF0ZQpkaXJlY3RzIGJpb2xvZ2ljYWwgc3Vi c3RyYXRlLCBhbmQgd2UgZGV2ZWxvcCB0aGUgZGlhZ25vc3RpYyB0aGF0IGZvbGxvd3MgZnJvbSB0 aGlzLgpUaGUgZnJhbWV3b3JrIGN1bG1pbmF0ZXMgaW4gYW4gb3BlcmF0aW9uYWwgc3BlY2lmaWNh dGlvbiBvZiB0aGUgZmlsdGVyLiBUaGUgR3JlYXQKRmlsdGVyIGV2ZW50IGlzIHRoZSBwZXJpb2Qg ZHVyaW5nIHdoaWNoIGEgYmlvbG9naWNhbCBob3N0IHNwZWNpZXMgbXVzdCBtYWludGFpbgpwbGFu ZXRhcnkgaG9tZW9zdGF0aWMgY2FwYWNpdHkgSCh0KSBhZ2FpbnN0IHRoZSBzdHJlc3NlcyBFKHQp IHRoYXQgaXRzIG93biBleHBhbnNpb24KaW50byBzcGFjZSBnZW5lcmF0ZXMuIFRoZSBjaXZpbGl6 YXRpb24gcGFzc2VzIHRoZSBmaWx0ZXIgb25seSBpZiBIKHQpIOKJpSBFKHQpIGlzIHN1c3RhaW5l ZAp0aHJvdWdob3V0IHRoZSBleHBhbnNpb24gd2luZG93LiBUaGUgZml2ZSBmb3VuZGF0aW9ucyBv ZiBQYXJ0IElJSSBhcmUgdGhlCmNvbXBvbmVudHMgb2YgSDsgdGhlIGRlc2NlbnQgb2YgcHJlZGF0 b3J5IGluZnJhc3RydWN0dXJlIGZyb20gUGFydCBJSSBkcml2ZXMgRTsKcHJvc3RoZXRpYyBBSSBp cyBvbmUgY2FuZGlkYXRlIHRlY2hub2xvZ3kgZm9yIHJhaXNpbmcgSCBmYXN0IGVub3VnaDsgc3Vi c3RyYXRlCnN1YnN0aXR1dGlvbiBpcyB3aGF0IG9jY3VycyB3aGVuIGEgY2l2aWxpemF0aW9uIGFi YW5kb25zIEggYW5kIGxldHMgZXhwYW5zaW9uCnByb2NlZWQgdmlhIG1hY2hpbmUgc3Vycm9nYXRl cy4gVGhlIGZpbHRlciBpcyBlbmRvZ2Vub3VzLCBzdHJ1Y3R1cmFsLCBhbmQgbGFyZ2VseQppbnZp c2libGUgdG8gdGhlIHN0YW5kYXJkIG1ldHJpY3MgYnkgd2hpY2ggY2l2aWxpemF0aW9ucyBtZWFz dXJlIHRoZWlyIG93bgpkZXZlbG9wbWVudC4KVGhlIGZyYW1ld29yayBpZGVudGlmaWVzIHR3byBk aXN0aW5jdCByb3V0ZXMgdGhyb3VnaCB0aGUgZmlsdGVyLiBUaGUgdG9wLWRvd24gcm91dGUKdXNl cyBBSSBhcyBhbiBleHRlcm5hbCBob21lb3N0YXRpYyByZWd1bGF0b3IsIHdpdGggdGhlIGF1dG9u b215IGFuZCBwYXJhc2l0aXNtCmNvc3RzIGRldmVsb3BlZCBpbiBQYXJ0IElWLiBUaGUgYm90dG9t LXVwIHJvdXRlIG1haW50YWlucyBIKHQpIHRocm91Z2ggZGlzdHJpYnV0ZWQKaW5kaXZpZHVhbCBk ZXZlbG9wbWVudCBvZiB0aGUgcG9wdWxhdGlvbuKAmXMgYWdlbnRzIOKAlCBjb250ZW1wbGF0aXZl IHByYWN0aWNlLAplZHVjYXRpb24sIGN1bHR1cmFsIGludmVzdG1lbnQgaW4gY29vcGVyYXRpdmUg ZGlzcG9zaXRpb25zLCBhbmQgc3RydWN0dXJhbGx5CmVxdWl2YWxlbnQgcGVyc29uYWwgc3Vic3Ry YXRlLW1haW50ZW5hbmNlIGRpc2NpcGxpbmVzIOKAlCB3aXRob3V0IHJlcXVpcmluZyBhbgpleHRl cm5hbCByZWd1bGF0b3IuIFRoZSBib3R0b20tdXAgcm91dGUgaXMgaGlzdG9yaWNhbGx5IHRoZSBv bmx5IG9uZSBkZW1vbnN0cmF0ZWQgYXQKc2NhbGUsIGlzIHN0cnVjdHVyYWxseSBtb3JlIHJvYnVz dCBhZ2FpbnN0IEFJIGZhaWx1cmUgbW9kZXMsIGFuZCBwcmVzZXJ2ZXMgdGhlIGFnZW50CmF1dG9u b215IHRoYXQgdGhlIHRvcC1kb3duIHJvdXRlIG5lY2Vzc2FyaWx5IGNvc3RzLiBUaGUgdHdvIHJv dXRlcyBjYW4gYmUKY29tYmluZWQgd2hlbiBBSSBzZXJ2ZXMgYXMgc2NhZmZvbGRpbmcgZm9yIHBl cnNvbmFsIGRldmVsb3BtZW50IHJhdGhlciB0aGFuIGFzIGEKc3Vic3RpdHV0ZSBmb3IgaXQuCkVw aXN0ZW1pYyBzdGF0dXM6IFBhcnQgSSAoY29vcGVyYXRpdmUgc3Vic3RyYXRlcykgaXMgb2ZmZXJl ZCB3aXRoIHRoZSBjb25maWRlbmNlCmFwcHJvcHJpYXRlIHRvIGEgdHJhbnNsYXRpb24gbGF5ZXIg YmV0d2VlbiBlc3RhYmxpc2hlZCByZXNlYXJjaCBwcm9ncmFtcy4gUGFydCBJSQooY2FsaWJyYXRl ZCBmaWx0ZXIpIGlzIG9mZmVyZWQgYXMgYSB3b3JraW5nIGh5cG90aGVzaXMgd2l0aCBleHBsaWNp dCBtYXRoZW1hdGljYWwKY29tbWl0bWVudHMuIFBhcnQgSUlJIChpbnRlZ3JhdGlvbikgYW5kIFBh cnQgSVYgKHN1YnN0cmF0ZSBjb250aW51aXR5LCB3aXRoIHRoZQpvcGVyYXRpb25hbCBmaWx0ZXIg c3BlY2lmaWNhdGlvbiBhdCBzZWN0aW9uIDI1LCB0aGUgZGlzdHJpYnV0ZWQgcm91dGUgYXQgc2Vj dGlvbiAyNiwgYW5kCnRoZSBkZWNlbnRyYWxpemF0aW9uIGltcGVyYXRpdmUgYXQgc2VjdGlvbiAy OCkgYXJlIHRoZSBwYXBlcuKAmXMgbWFpbiBjb250cmlidXRpb25zIGFuZAphcmUgdGhlIG1vc3Qg c3BlY3VsYXRpdmUgZWxlbWVudHMuIFRoZSBmcmFtZXdvcmsgY29uY2x1ZGVzIHRoYXQgZmlsdGVy IHBhc3NhZ2UKcmVxdWlyZXMgZGVjZW50cmFsaXphdGlvbiBieSBzdHJ1Y3R1cmFsIG5lY2Vzc2l0 eTogYW55IGNlbnRyYWxpemVkIHNvbHV0aW9uIHRvCmNvb3BlcmF0aXZlLXN1YnN0cmF0ZSBtYWlu dGVuYW5jZSwgaW5jbHVkaW5nIGEgY2VudHJhbGl6ZWQgQUkgcmVndWxhdG9yLCBpcwpzdHJ1Y3R1 cmFsbHkgaWRlbnRpY2FsIHRvIHRoZSBjYW5jZXJvdXMgZmFpbHVyZSBtb2RlIHRoZSBmcmFtZXdv cmsgYmVnYW4gYnkKYW5hbHl6aW5nLiBCdXQgZGVjZW50cmFsaXphdGlvbiBpcyBub3QgYXRvbWl6 YXRpb24uIFRoZSBmcmFtZXdvcmsgcmVjb21tZW5kcwpkaXN0cmlidXRlZCBhZ2VuY3kgb3BlcmF0 aW5nIHdpdGhpbiBzaGFyZWQgcHVycG9zZSDigJQgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBoZWFs dGh5Cm9yZ2FuaXNtcyBhbmQgYmlvc3BoZXJlcyBhbHJlYWR5IGRlbW9uc3RyYXRlIOKAlCBpbiB3 aGljaCBhdXRvbm9tb3VzIGxvY2FsCmRlY2lzaW9ucyBhcmUgY29uc3RyYWluZWQgYnkgc2hhcmVk IHN1YnN0cmF0ZS1tYWludGVuYW5jZSBwdXJwb3NlIGVtYmVkZGVkIGluCnRoZSBzdWJzdHJhdGUg aXRzZWxmLCBub3QgZW5mb3JjZWQgYnkgY2VudHJhbCBjb21tYW5kLiBMaW1pdHMgYW5kIGRpc2Fu YWxvZ2llcyBhcmUKZmxhZ2dlZCB0aHJvdWdob3V0LgpBIG1ldGhvZG9sb2dpY2FsIGNhdmVhdCBh cHBsaWVzIHRocm91Z2hvdXQuIFRoZSBwYXBlciBpcyBhIG1hcCBvZgpjb29wZXJhdGl2ZS1zdWJz dHJhdGUgZHluYW1pY3M7IGl0IGlzIG5vdCB0aGUgdGVycml0b3J5IHRob3NlIGR5bmFtaWNzIGNv bnN0aXR1dGUuCkZvbGxvd2luZyBLb3J6eWJza2kgKFNjaWVuY2UgYW5kIFNhbml0eSwgMTkzMyks IGEgbWFwIGhhcyBzdHJ1Y3R1cmUgc2ltaWxhciB0byB0aGUKdGVycml0b3J5IGl0IHJlcHJlc2Vu dHMg4oCUIHdoaWNoIGlzIHdoYXQgbWFrZXMgaXQgdXNlZnVsIOKAlCBidXQgbm8gbWFwIHJlcHJl c2VudHMgYWxsCm9mIGEgdGVycml0b3J5LCBhbmQgdGhlIG1hcCBpcyBuZXZlciB0aGUgdGVycml0 b3J5IGl0c2VsZi4gVGhlIGRoYXJtYSBjYXJyaWVzIHRoZSBzYW1lCgoKY2F2ZWF0IGluIGRpZmZl cmVudCB2b2NhYnVsYXJ5OiB0aGUgZmluZ2VyIHBvaW50aW5nIGF0IHRoZSBtb29uIGlzIG5vdCB0 aGUgbW9vbi4KUmVhZGVycyBzaG91bGQgdHJlYXQgdGhlIHN0cnVjdHVyYWwgYXJndW1lbnRzIGhl cmUgYXMgb3JpZW50YXRpb24gdG93YXJkIGR5bmFtaWNzCnRoYXQgZXhpc3QgaW5kZXBlbmRlbnQg b2YgdGhlIGZyYW1ld29ya+KAmXMgZGVzY3JpcHRpb24sIG5vdCBhcyBzdWJzdGl0dXRlcyBmb3IK ZW1waXJpY2FsIGVuZ2FnZW1lbnQgd2l0aCB0aGUgc3BlY2lmaWMgY2FzZXMgdGhlIGZyYW1ld29y ayBhZGRyZXNzZXMuCgoKUGFydCBJLiBDb29wZXJhdGl2ZSBTdWJzdHJhdGVzIGFuZCBUaGVpciBQ YXRob2xvZ2llcwpBIHRyYW5zbGF0aW9uIGxheWVyIGJldHdlZW4gQWt0aXBpcywgS2V0cyBkZSBW cmllcywgYW5kIFNjaG1hY2h0ZW5iZXJnZXIuCjEuIFRoZSBwcm9ibGVtIHRoZSBwYXBlciBhZGRy ZXNzZXMKUGF0dGVybi1tYXRjaGluZyBhY3Jvc3Mgc2NhbGVzIGlzIGludGVsbGVjdHVhbGx5IHNl ZHVjdGl2ZSBhbmQgZnJlcXVlbnRseSBtaXNsZWFkaW5nLgpNYW55IOKAmHVuaWZpZWQgdGhlb3Jp ZXPigJkgb2YgY29vcGVyYXRpb24gYW5kIGl0cyBmYWlsdXJlIGVuZCB1cCBiZWluZyBlaXRoZXIg dHJpdmlhbAooY29vcGVyYXRpb24gaXMgZ29vZCwgZGVmZWN0aW9uIGlzIGJhZCkgb3IgZm9yY2Vk IChtYXBwaW5nIHVucmVsYXRlZCBwaGVub21lbmEgb250byBhCmZhdm9yZWQgdm9jYWJ1bGFyeSku IFRoZSBjb250cmlidXRpb24gdGhpcyBwYXJ0IGF0dGVtcHRzIGlzIG5hcnJvd2VyOiB0byBub3Rp Y2UgdGhhdCB0aHJlZQpzZXJpb3VzLCBwZWVyLXJldmlld2VkIG9yIHdpZGVseS1lbmdhZ2VkIHJl c2VhcmNoIHByb2dyYW1zIGhhdmUgaW5kZXBlbmRlbnRseQpkZXNjcmliZWQgdmVyeSBzaW1pbGFy IHN0cnVjdHVyYWwgZmFpbHVyZSBtb2RlcyBpbiBjb29wZXJhdGl2ZSBzeXN0ZW1zIGF0IHRocmVl IGRpZmZlcmVudApzY2FsZXPigJR0aGUgbXVsdGljZWxsdWxhciBvcmdhbmlzbSwgdGhlIGZpcm0s IGFuZCB0aGUgY2l2aWxpemF0aW9u4oCUYW5kIHRvIGFzayB3aGV0aGVyCnRoZWlyIHZvY2FidWxh cmllcyBjYW4gYmUgYnJvdWdodCBpbnRvIHVzZWZ1bCBjb252ZXJzYXRpb24gd2l0aG91dCBjb2xs YXBzaW5nIHRoZW0gaW50bwpmYWxzZSBlcXVpdmFsZW5jZS4KVGhlIG1vdGl2YXRpbmcgb2JzZXJ2 YXRpb24gaXMgdGhpcy4gQWt0aXBpc+KAmXMgZXZvbHV0aW9uYXJ5LW9uY29sb2d5IGZyYW1ld29y aywgS2V0cyBkZQpWcmllc+KAmXMgY2xpbmljYWwgb3JnYW5pemF0aW9uYWwgZGlhZ25vc3RpY3Ms IGFuZCBTY2htYWNodGVuYmVyZ2Vy4oCZcyBjaXZpbGl6YXRpb24tc2NhbGUgcmlzawphbmFseXNp cyBlYWNoIGlkZW50aWZ5IGNvb3BlcmF0aXZlIHN1YnN0cmF0ZXMgdGhhdCBhcmUgdnVsbmVyYWJs ZSB0byBzcGVjaWZpYyBkZWZlY3Rpb24KcGF0dGVybnM7IGVhY2ggbm90ZXMgdGhhdCB0aGVzZSBk ZWZlY3Rpb25zIHByb2R1Y2Ugc2VsZi11bmRlcm1pbmluZyB0cmFqZWN0b3JpZXM7IGFuZAplYWNo IHByb3Bvc2VzIHN0cnVjdHVyYWwgcmF0aGVyIHRoYW4gYWdlbnQtY2VudHJpYyByZW1lZGlhdGlv bi4gVGhleSB1c2UgZGlmZmVyZW50CnZvY2FidWxhcmllcyBiZWNhdXNlIHRoZXkgZW1lcmdlZCBm cm9tIGRpZmZlcmVudCBkaXNjaXBsaW5lcywgYnV0IHRoZSBkZWVwIHN0cnVjdHVyZSBvZgp3aGF0 IHRoZXkgZGVzY3JpYmUgaXMgc2ltaWxhciBlbm91Z2ggdG8gd2FycmFudCBhIHRyYW5zbGF0aW9u IGxheWVyLgpXaGF0IHRoaXMgcGFydCBpcyBub3Q6IGEgY2xhaW0gdGhhdCB0aGVzZSB0aHJlZSBm cmFtZXdvcmtzIGFyZSByZWR1Y2libGUgdG8gb25lIG1hc3RlcgpmcmFtZXdvcmssIHRoYXQgdGhl IHVuZGVybHlpbmcgY2F1c2VzIGFyZSB0aGUgc2FtZSBhY3Jvc3Mgc2NhbGVzLCBvciB0aGF0IHRo ZQpyZXNlbWJsYW5jZSBwcm92ZXMgYW55IHBhcnRpY3VsYXIgbWV0YXBoeXNpY2FsIG9yIHBvbGl0 aWNhbCBjb21taXRtZW50LiBUaGUgc3RydWN0dXJlcwpsb29rIGFsaWtlOyB3ZSB0YWtlIHRoYXQg c2VyaW91c2x5IHdpdGhvdXQgb3ZlcnJlYWRpbmcgaXQuCjIuIFRoZSB0aHJlZSBmcmFtZXdvcmtz LCBvbiB0aGVpciBvd24gdGVybXMKMi4xIEFrdGlwaXM6IEZpdmUgZm91bmRhdGlvbnMgb2YgbXVs dGljZWxsdWxhciBjb29wZXJhdGlvbgpBa3RpcGlzIGFuZCBjb2xsZWFndWVzLCBpbiB0aGVpciAy MDE1IHBhcGVyIGluIFBoaWxvc29waGljYWwgVHJhbnNhY3Rpb25zIG9mIHRoZSBSb3lhbApTb2Np ZXR5IEIsIGFydGljdWxhdGUgdGhlIGZyYW1ld29yayBtb3N0IHJpZ29yb3VzbHkuIE11bHRpY2Vs bHVsYXJpdHksIHRoZXkgYXJndWUsIHJlcXVpcmVzCnRoZSBzdXBwcmVzc2lvbiBvZiBjZWxsLWxl dmVsIGZpdG5lc3MgaW4gc2VydmljZSBvZiBvcmdhbmlzbS1sZXZlbCBmaXRuZXNzLCBhbmQgdGhp cyByZXF1aXJlcwpzcGVjaWZpYyBmdW5jdGlvbmFsIGNhcGFjaXRpZXMuIFRoZXkgaWRlbnRpZnkg Zml2ZToKMS4gUHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uLiBDZWxscyBtdXN0IHJlc3RyYWluIHRo ZWlyIGRpdmlzaW9uIGV4Y2VwdCB3aGVuIGF1dGhvcml6ZWQKYnkgdGhlIGxhcmdlciBzeXN0ZW0u IFRoZSBib2R5IGhhcyByZWR1bmRhbnQgY2hlY2tzIG9uIHRoZSBjZWxsIGN5Y2xlIGFuZCBtZWNo YW5pc21zCnRoYXQgdHJpZ2dlciBhcG9wdG9zaXMgb3Igc2VuZXNjZW5jZSB3aGVuIGNlbGxzIGJl Z2luIHRvIHByb2xpZmVyYXRlIGluYXBwcm9wcmlhdGVseS4KMi4gQ29udHJvbGxlZCBjZWxsIGRl YXRoLiBQcm9ncmFtbWVkIGNlbGwgZGVhdGggYWxsb3dzIGZvciB0aXNzdWUgc2N1bHB0aW5nLCBy ZW1vdmFsIG9mCmRhbWFnZWQgY2VsbHMsIGFuZCBlbGltaW5hdGlvbiBvZiBvYnNvbGV0ZSB0aXNz dWUuIFJlc2lzdGFuY2UgdG8gcHJvZ3JhbW1lZCBjZWxsIGRlYXRoCmlzIGEgcmVjb2duaXplZCBo YWxsbWFyayBvZiBjYW5jZXIuCjMuIERpdmlzaW9uIG9mIGxhYm9yLiBDZWxscyBkaWZmZXJlbnRp YXRlIGludG8gc3BlY2lhbGl6ZWQgdHlwZXMgcGVyZm9ybWluZyBzcGVjaWZpYwpmdW5jdGlvbnMu IEluYXBwcm9wcmlhdGUgZGlmZmVyZW50aWF0aW9u4oCUZGVkaWZmZXJlbnRpYXRpb24sIGJsb2Nr ZWQgZGlmZmVyZW50aWF0aW9uLCBvcgp0cmFuc2RpZmZlcmVudGlhdGlvbuKAlGlzIGEgY2VudHJh bCBmZWF0dXJlIG9mIGNhbmNlciB0aGF0IEFrdGlwaXMgbm90ZXMgaXMgdW5kZXJyZXByZXNlbnRl ZAoKCmluIHRoZSBjYW5vbmljYWwgaGFsbG1hcmtzIGZyYW1ld29yay4KNC4gUmVzb3VyY2UgYWxs b2NhdGlvbiBhbmQgdHJhbnNwb3J0LiBMYXJnZXIgbXVsdGljZWxsdWxhciBib2RpZXMgcmVxdWly ZSBzeXN0ZW1zIGZvcgptb3ZpbmcgcmVzb3VyY2VzIGZyb20gd2hlcmUgdGhleSBhcmUgYWJ1bmRh bnQgdG8gd2hlcmUgdGhleSBhcmUgbmVlZGVkLiBDYW5jZXLigJlzCm1ldGFib2xpYyByZXByb2dy YW1taW5nIGFuZCBpbmR1Y3Rpb24gb2YgYW5naW9nZW5lc2lzIHJlcHJlc2VudCBtb25vcG9saXph dGlvbiBvZgp0aGVzZSBzeXN0ZW1zLgo1LiBFeHRyYWNlbGx1bGFyIGVudmlyb25tZW50IG1haW50 ZW5hbmNlLiBDZWxscyBtdXN0IGNvbGxlY3RpdmVseSBtYWludGFpbiB0aGUKZXh0cmFjZWxsdWxh ciBtYXRyaXggYW5kIGNsZWFyIHdhc3RlLiBDYW5jZXIgY2VsbHMgZGVncmFkZSB0aGUgZXh0cmFj ZWxsdWxhciBtYXRyaXggYW5kCmNvcnJ1cHQgaW1tdW5lIHN1cnZlaWxsYW5jZSwgb2Z0ZW4gY28t b3B0aW5nIGluZmxhbW1hdGlvbiBmb3IgdGhlaXIgb3duIGJlbmVmaXQuCkNhbmNlciwgaW4gdGhp cyBmcmFtaW5nLCBpcyBub3QgYSBzaW5nbGUgZGlzZWFzZSBidXQgYSBjbGFzcyBvZiBwaGVub21l bmEgdW5pZmllZCBieQpjaGVhdGluZyBhY3Jvc3Mgb25lIG9yIG1vcmUgb2YgdGhlc2UgZml2ZSBm b3VuZGF0aW9ucy4gVGhlIGNhbm9uaWNhbCBIYW5haGFuLVdlaW5iZXJnCmhhbGxtYXJrcyBvZiBj YW5jZXIgbWFwIG9udG8gQWt0aXBpc+KAmXMgZm91bmRhdGlvbnM6IHN1c3RhaW5pbmcgcHJvbGlm ZXJhdGl2ZSBzaWduYWxpbmcgYW5kCmV2YWRpbmcgZ3Jvd3RoIHN1cHByZXNzb3JzIGZhbGwgdW5k ZXIgcHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uOyByZXNpc3RpbmcgY2VsbCBkZWF0aCBmYWxscwp1 bmRlciBjb250cm9sbGVkIGNlbGwgZGVhdGg7IHBoZW5vdHlwaWMgcGxhc3RpY2l0eSBmYWxscyB1 bmRlciBkaXZpc2lvbiBvZiBsYWJvcjsKcmVwcm9ncmFtbWluZyBtZXRhYm9saXNtIGFuZCBpbmR1 Y2luZyB2YXNjdWxhdHVyZSBmYWxsIHVuZGVyIHJlc291cmNlIGFsbG9jYXRpb247CmFjdGl2YXRp bmcgaW52YXNpb24gYW5kIGF2b2lkaW5nIGltbXVuZSBkZXN0cnVjdGlvbiBmYWxsIHVuZGVyIGV4 dHJhY2VsbHVsYXIKZW52aXJvbm1lbnQgbWFpbnRlbmFuY2UuClRoZSBmcmFtZXdvcmvigJlzIHN0 cmVuZ3RoIGlzIGl0cyBncm91bmRpbmcgaW4gZXZvbHV0aW9uYXJ5IGJpb2xvZ3k6IGNvbXBsZXgK bXVsdGljZWxsdWxhcml0eSBoYXMgZXZvbHZlZCBpbmRlcGVuZGVudGx5IGF0IGxlYXN0IHNldmVu IHRpbWVzLCBhbmQgY2FuY2VyLWxpa2UKcGhlbm9tZW5hIGFwcGVhciBpbiBlYWNoIGxpbmVhZ2Us IHN1Z2dlc3RpbmcgdGhhdCB0aGUgY29vcGVyYXRpdmUgc3Vic3RyYXRlIEFrdGlwaXMKZGVzY3Jp YmVzIGlzIGEgZ2VuZXJhbCBmZWF0dXJlIG9mIGNvbXBsZXggbXVsdGljZWxsdWxhcml0eSByYXRo ZXIgdGhhbiBhIHBlY3VsaWFyaXR5IG9mCm1ldGF6b2Fucy4KMi4yIEtldHMgZGUgVnJpZXM6IE5l dXJvdGljIG9yZ2FuaXphdGlvbmFsIHR5cGVzIGFuZCBuYXJjaXNzaXN0aWMgbGVhZGVyc2hpcApL ZXRzIGRlIFZyaWVzLCB3b3JraW5nIGZyb20gb2JqZWN0LXJlbGF0aW9ucyBwc3ljaG9hbmFseXRp YyB0aGVvcnkgaW4gY29sbGFib3JhdGlvbiB3aXRoCkRhbm55IE1pbGxlciBzdGFydGluZyBpbiAx OTg0LCBpZGVudGlmaWVkIGZpdmUgcmVjdXJyaW5nIHBhdHRlcm5zIG9mIG9yZ2FuaXphdGlvbmFs CmR5c2Z1bmN0aW9uOiBwYXJhbm9pZCwgY29tcHVsc2l2ZSwgaGlzdHJpb25pYyAoZHJhbWF0aWMp LCBkZXByZXNzaXZlLCBhbmQgc2NoaXpvaWQuIFRoZQpmcmFtZXdvcmsgdHJlYXRzIG9yZ2FuaXph dGlvbnMgYXMgdGFraW5nIG9uIHRoZSBuZXVyb3RpYyBzdHlsZSBvZiB0aGVpciBkb21pbmFudAps ZWFkZXJzaGlwLCBwYXJ0aWN1bGFybHkgaW4gY2VudHJhbGl6ZWQgZmlybXMgd2hlcmUgZXhlY3V0 aXZlIHBlcnNvbmFsaXR5IHByb3BhZ2F0ZXMKdGhyb3VnaCByZWNydWl0bWVudCwgcHJvbW90aW9u LCBhbmQgY3VsdHVyZS4KQSBzZXBhcmF0ZSBidXQgcmVsYXRlZCBzdHJhbmQgZm9jdXNlcyBvbiBu YXJjaXNzaXN0aWMgbGVhZGVyc2hpcCBzcGVjaWZpY2FsbHksCmRpc3Rpbmd1aXNoaW5nIHJlYWN0 aXZlLCBzZWxmLWRlY2VwdGl2ZSwgYW5kIGNvbnN0cnVjdGl2ZSBuYXJjaXNzaXN0aWMgY29uZmln dXJhdGlvbnMuIEluCnJlY2VudCB3b3JrIGhlIHRyZWF0cyBuYXJjaXNzaXNtIG5vdCBhcyBhIHNp eHRoIGRpc3RpbmN0IHR5cGUgYnV0IGFzIGEgY3Jvc3MtY3V0dGluZwppbnRlbnNpZmllciB0aGF0 IHB1c2hlcyBhbnkgb2YgdGhlIGZpdmUgbmV1cm90aWMgcGF0dGVybnMgaW50byBtb3JlIGRlc3Ry dWN0aXZlIHRlcnJpdG9yeS4KVGhlIGZyYW1ld29yayBpcyBlbXBpcmljYWwtY2xpbmljYWwgcmF0 aGVyIHRoYW4gZXZvbHV0aW9uYXJ5LiBJdCBkcmF3cyBvbiBjb25zdWx0aW5nIGNhc2UKc3R1ZGll cyBhbmQgcHN5Y2hvYW5hbHl0aWMgdGhlb3J5IHJhdGhlciB0aGFuIG9uIGEgbW9kZWwgb2Ygd2hh dCBvcmdhbml6YXRpb25zIGFyZSBmb3IKb3Igd2hhdCBjb29wZXJhdGlvbiByZXF1aXJlcy4gVGhp cyBpcyBhIHdlYWtuZXNzIGlmIG9uZSB3YW50cyBhIGZvdW5kYXRpb25hbCB0aGVvcnkgYW5kCmEg c3RyZW5ndGggaWYgb25lIHdhbnRzIGRpYWdub3N0aWMgdXRpbGl0eS4KMi4zIFNjaG1hY2h0ZW5i ZXJnZXI6IFR3byBnZW5lcmF0b3IgZnVuY3Rpb25zIG9mIGV4aXN0ZW50aWFsIHJpc2sKU2NobWFj aHRlbmJlcmdlciwgd29ya2luZyBwcmltYXJpbHkgdGhyb3VnaCBsb25nLWZvcm0gaW50ZXJ2aWV3 cyBhbmQgdW5wdWJsaXNoZWQKd3JpdGluZyByYXRoZXIgdGhhbiBwZWVyLXJldmlld2VkIGpvdXJu YWxzLCBpZGVudGlmaWVzIHR3byB1bmRlcmx5aW5nIGRyaXZlcnMgb2YKCgpjaXZpbGl6YXRpb25h bCBleGlzdGVudGlhbCByaXNrOgoxLiBSaXZhbHJvdXMgZ2FtZXMgbXVsdGlwbGllZCBieSBleHBv bmVudGlhbCB0ZWNobm9sb2d5LiBXaW4tbG9zZSBkeW5hbWljcywKd2hlbiBzY2FsZWQgYnkgZXZl ci1pbmNyZWFzaW5nIHRlY2hub2xvZ2ljYWwgY2FwYWNpdHkgdG8gZXh0cmFjdCBhbmQgaGFybSwg ZXZlbnR1YWxseQpleGNlZWQgdGhlIGNhcnJ5aW5nIGNhcGFjaXR5IG9mIHRoZSBwbGF5aW5nIGZp ZWxkLiBUaGUgY29tcGV0aXRpdmUgZHluYW1pY3MgdGhhdApwcm9kdWNlZCBodW1hbiBwcm9ncmVz cyBoaXN0b3JpY2FsbHkgYmVjb21lIGV4aXN0ZW50aWFsbHkgdGhyZWF0ZW5pbmcgd2hlbiBhbXBs aWZpZWQuCjIuIENvbXBsaWNhdGVkIG9wZW4tbG9vcCBzeXN0ZW1zLiBTeXN0ZW1zIHdob3NlIGV4 dGVybmFsaXRpZXMgYXJlIG5vdCBtZXRhYm9saXplZApiYWNrIGludG8gdGhlaXIgb3duIGluY2Vu dGl2ZSBzdHJ1Y3R1cmUgYWNjdW11bGF0ZSBkYW1hZ2UgaW4gZG9tYWlucyB0aGUgc3lzdGVtIGRv ZXMKbm90IG1lYXN1cmUgb3IgcHJpY2UuIFRoZSBlY29ub215IGFzIGN1cnJlbnRseSBjb25zdGl0 dXRlZCB0cmVhdHMgdGhlIGJpb3NwaGVyZSBhcwpleHRlcm5hbGl0eTsgdGhlIHJlc3VsdCBpcyB0 aGUgc3lzdGVtYXRpYyBkZWdyYWRhdGlvbiBvZiB0aGUgc3Vic3RyYXRlIG9uIHdoaWNoIHRoZQpz eXN0ZW0gZGVwZW5kcy4KU2NobWFjaHRlbmJlcmdlcuKAmXMgZnJhbWluZyBpcyBsZXNzIHJpZ29y b3VzbHkgc3BlY2lmaWVkIHRoYW4gQWt0aXBpc+KAmXM7IGl0IGRyYXdzIHN0cmVuZ3RoCmZyb20g YmVpbmcgYWJsZSB0byB0YWxrIGFib3V0IHRoZSBwbGFuZXRhcnkgc2NhbGUsIGFuZCB3ZWFrbmVz cyBmcm9tIG9wZXJhdGluZyBvdXRzaWRlCnRoZSBkaXNjaXBsaW5lIG9mIGVtcGlyaWNhbCBmYWxz aWZpY2F0aW9uLiBUcmVhdGVkIGFzIGEgd29ya2luZyBmcmFtZXdvcmsgcmF0aGVyIHRoYW4gYQpm aW5pc2hlZCB0aGVvcnksIGl0IGlkZW50aWZpZXMgcmVhbCBwYXR0ZXJucyB0aGF0IHRoZSBtb3Jl IHJpZ29yb3VzIGZyYW1ld29ya3MgYXQgc21hbGxlcgpzY2FsZXMgYWxzbyBpZGVudGlmeS4KMy4g VGhlIHRyYW5zbGF0aW9uIGxheWVyCldlIHVzZSBBa3RpcGlz4oCZcyBmaXZlIGZvdW5kYXRpb25z IGFzIHNjYWZmb2xkaW5nLCBzaW5jZSB0aGV5IGFyZSB0aGUgbW9zdCByaWdvcm91c2x5CnNwZWNp ZmllZCwgYW5kIGFzayB3aGF0IGVhY2ggZm91bmRhdGlvbiBsb29rcyBsaWtlIGF0IHRoZSBzY2Fs ZXMgS2V0cyBkZSBWcmllcyBhbmQKU2NobWFjaHRlbmJlcmdlciB3b3JrIGF0LgpQcm9saWZlcmF0 aW9uIGluaGliaXRpb24gYXQgdGhlIG9yZ2FuaXNtIHNjYWxlIGlzIHRoZSBjZWxsIGN5Y2xlOyBh dCB0aGUgb3JnYW5pemF0aW9uYWwKc2NhbGUgaXQgaXMgdGhlIGNhcGFjaXR5IHRvIHJlZnVzZSBn cm93dGggdGhhdCBleGNlZWRzIG9wZXJhdGlvbmFsIGNvaGVyZW5jZTsgYXQgdGhlCmNpdmlsaXph dGlvbmFsIHNjYWxlIGl0IGlzIHRoZSBjYXBhY2l0eSB0byByZWZ1c2UgZXh0cmFjdGlvbiB0aGF0 IGV4Y2VlZHMgcmVnZW5lcmF0aXZlCmNhcGFjaXR5LiBUaGUgY29tcHVsc2l2ZSBvcmdhbml6YXRp b25hbCB0eXBlLCB3aGljaCBwcm9saWZlcmF0ZXMgcnVsZXMgYW5kIHByb2NlZHVyZXMKd2l0aG91 dCBsaW1pdCwgYW5kIHRoZSByaXZhbHJvdXMtZ2FtZXMgZ2VuZXJhdG9yIGZ1bmN0aW9uLCB3aGlj aCBwcm9saWZlcmF0ZXMgY29tcGV0aXRpdmUKaW50ZW5zaXR5IHdpdGhvdXQgbGltaXQsIGFyZSBi b3RoIHByb2xpZmVyYXRpb24taW5oaWJpdGlvbiBmYWlsdXJlcy4KQ29udHJvbGxlZCBjZWxsIGRl YXRoIGF0IHRoZSBvcmdhbmlzbSBzY2FsZSBpcyBhcG9wdG9zaXM7IGF0IHRoZSBvcmdhbml6YXRp b25hbCBzY2FsZSBpdAppcyB0aGUgY2FwYWNpdHkgdG8gcmV0aXJlIHByb2R1Y3RzLCBidXNpbmVz c2VzLCBhbmQgbGVhZGVycyB3aG9zZSBmdW5jdGlvbiBoYXMgZW5kZWQ7IGF0CnRoZSBjaXZpbGl6 YXRpb25hbCBzY2FsZSBpdCBpcyB0aGUgY2FwYWNpdHkgdG8gcmV0aXJlIGluc3RpdHV0aW9ucywg aW5kdXN0cmllcywgYW5kIGlkZW9sb2dpZXMKd2hvc2Ugc3Vic3RyYXRlIGhhcyBjaGFuZ2VkLiBU aGUgZGVwcmVzc2l2ZSBvcmdhbml6YXRpb25hbCB0eXBlLCB3aGljaCBjYW5ub3QgbGV0IGdvIG9m CmlkZW50aXR5LCBhbmQgdGhlIGluYWJpbGl0eSBvZiBpbmN1bWJlbnQgaW5kdXN0cmllcyB0byBh bGxvdyB0aGVpciBvd24gc3VjY2Vzc2lvbiwgYXJlCmNvbnRyb2xsZWQtY2VsbC1kZWF0aCBmYWls dXJlcy4gUmVzaXN0YW5jZSB0byBhcG9wdG9zaXMgaXMgYSBoYWxsbWFyayBvZiBjYW5jZXI7IHJl c2lzdGFuY2UKdG8gb3JnYW5pemF0aW9uYWwgYW5kIGNpdmlsaXphdGlvbmFsIHN1Y2Nlc3Npb24g cHJvZHVjZXMgYW5hbG9nb3VzIHBhdGhvbG9naWVzLgpEaXZpc2lvbiBvZiBsYWJvciBhdCB0aGUg b3JnYW5pc20gc2NhbGUgaXMgdGlzc3VlIGRpZmZlcmVudGlhdGlvbjsgYXQgdGhlIG9yZ2FuaXph dGlvbmFsCnNjYWxlIGl0IGlzIHJvbGUgc3BlY2lhbGl6YXRpb24gYW5kIHRoZSBjYXBhY2l0eSB0 byBkZWxlZ2F0ZTsgYXQgdGhlIGNpdmlsaXphdGlvbmFsIHNjYWxlIGl0IGlzCnRoZSBjYXBhY2l0 eSB0byBtYWludGFpbiBpbnN0aXR1dGlvbnMgc3BlY2lhbGl6ZWQgZm9yIGdvdmVybmFuY2UsIHNj aWVuY2UsIGFydCwgY2FyZSwgYW5kCnNvIG9uLCBlYWNoIGFjY291bnRhYmxlIHRvIGl0cyBvd24g c3RhbmRhcmRzLiBUaGUgcGFyYW5vaWQgb3JnYW5pemF0aW9uYWwgdHlwZSwgaW4gd2hpY2gKdGhl IGxlYWRlciBjZW50cmFsaXplcyBkZWNpc2lvbi1tYWtpbmcgYW5kIGVyb2RlcyBzcGVjaWFsaXph dGlvbiwgYW5kIHRoZSB0cmVuZCB0b3dhcmQKZ2VuZXJhbC1wdXJwb3NlIGV4dHJhY3RpdmUgZW50 aXRpZXMgKHBsYXRmb3JtcyB0aGF0IHN3YWxsb3cgc3BlY2lhbGl6ZWQgaW5zdGl0dXRpb25zKSwg YXJlCmRpdmlzaW9uLW9mLWxhYm9yIGZhaWx1cmVzLgoKClJlc291cmNlIGFsbG9jYXRpb24gYW5k IHRyYW5zcG9ydCBhdCB0aGUgb3JnYW5pc20gc2NhbGUgaXMgY2lyY3VsYXRpb247IGF0IHRoZQpv cmdhbml6YXRpb25hbCBzY2FsZSBpdCBpcyBjYXBpdGFsLCBpbmZvcm1hdGlvbiwgYW5kIGF0dGVu dGlvbiBmbG93OyBhdCB0aGUgY2l2aWxpemF0aW9uYWwKc2NhbGUgaXQgaXMgdGhlIHN5c3RlbXMg Ynkgd2hpY2ggcmVzb3VyY2VzIG1vdmUgZnJvbSB3aGVyZSB0aGV5IGFyZSBhYnVuZGFudCB0byB3 aGVyZQp0aGV5IGFyZSBuZWVkZWQuIENhbmNlcuKAmXMgaW5kdWN0aW9uIG9mIGFuZ2lvZ2VuZXNp cyBtYXBzIG9udG8gZXh0cmFjdGl2ZSBjYXBpdGFsIHRoYXQKYnVpbGRzIGluZnJhc3RydWN0dXJl IHNlcnZpbmcgaXRzIG93biBncm93dGggcmF0aGVyIHRoYW4gdGhlIGxhcmdlciBib2R5OwpTY2ht YWNodGVuYmVyZ2Vy4oCZcyBhY2NvdW50IG9mIGhvdyBleHBvbmVudGlhbCB0ZWNobm9sb2d5IGFt cGxpZmllcyByaXZhbHJvdXMKZXh0cmFjdGlvbiBvcGVyYXRlcyBvbiB0aGlzIGZvdW5kYXRpb24u CkV4dHJhY2VsbHVsYXIgZW52aXJvbm1lbnQgbWFpbnRlbmFuY2UgYXQgdGhlIG9yZ2FuaXNtIHNj YWxlIGlzIHRoZSBleHRyYWNlbGx1bGFyCm1hdHJpeCBhbmQgaW1tdW5lIHN1cnZlaWxsYW5jZTsg YXQgdGhlIG9yZ2FuaXphdGlvbmFsIHNjYWxlIGl0IGlzIGluc3RpdHV0aW9uYWwgY3VsdHVyZSwK dHJ1c3QsIGFuZCBob25lc3QgZmVlZGJhY2s7IGF0IHRoZSBjaXZpbGl6YXRpb25hbCBzY2FsZSBp dCBpcyB0aGUgY29tbW9uc+KAlGJpb3NwaGVyZSwKaW5mb3JtYXRpb24gZW52aXJvbm1lbnQsIHB1 YmxpYyB0cnVzdCwgc2hhcmVkIGVwaXN0ZW1pYyBpbmZyYXN0cnVjdHVyZS4KU2NobWFjaHRlbmJl cmdlcuKAmXMgY29tcGxpY2F0ZWQtb3Blbi1sb29wIGdlbmVyYXRvciBmdW5jdGlvbiBvcGVyYXRl cyBkaXJlY3RseSBvbiB0aGlzCmZvdW5kYXRpb247IEtldHMgZGUgVnJpZXPigJlzIGRlc2NyaXB0 aW9uIG9mIGhvdyBuYXJjaXNzaXN0aWMgbGVhZGVyc2hpcCBjb3JydXB0cyBmZWVkYmFjawphbmQg ZGVncmFkZXMgb3JnYW5pemF0aW9uYWwgY3VsdHVyZSBpcyBpdHMgc21hbGxlci1zY2FsZSBob21v bG9ndWUuClRoZSB0cmFuc2xhdGlvbiBpcyBub3QgMToxLCBhbmQgaXQgc2hvdWxkIG5vdCBiZS4g VGhlIG1hcHBpbmcgaWRlbnRpZmllcyBmdW5jdGlvbmFsCnJlc2VtYmxhbmNlLCBub3QgaWRlbnRp dHkuIEJ1dCB0aGUgcmVzZW1ibGFuY2UgaXMgY29uc2lzdGVudCBlbm91Z2ggYWNyb3NzIHRoZSB0 aHJlZQpzY2FsZXMgdG8gc3VnZ2VzdCB0aGF0IHdlIGFyZSBsb29raW5nIGF0IGEgZ2VuZXJhbCBz dHJ1Y3R1cmUgb2YgY29vcGVyYXRpb24gYW5kIGl0cwpmYWlsdXJl4oCUYSBzdHJ1Y3R1cmUgdGhh dCwgYXQgbWluaW11bSwgZ2VuZXJhdGVzIHVzZWZ1bCB2b2NhYnVsYXJ5IGZvciB0YWxraW5nIGFj cm9zcyB0aGUKdGhyZWUgZGlzY2lwbGluZXMuCjQuIFdoeSB0aGlzIGlzIHVzZWZ1bApUaGUgdHJh bnNsYXRpb24gbGF5ZXIgZG9lcyB0aHJlZSBraW5kcyBvZiB3b3JrLiBGaXJzdCwgaXQgYWxsb3dz IGRpYWdub3N0aWMgdG9vbHMgZGV2ZWxvcGVkCmF0IG9uZSBzY2FsZSB0byBiZSB0ZXN0ZWQgYXQg YW5vdGhlci4gQWRhcHRpdmUgdGhlcmFweSBpbiBvbmNvbG9neSwgd2hpY2ggbWFuYWdlcwpyYXRo ZXIgdGhhbiBlcmFkaWNhdGVzIGNhbmNlciBieSBleHBsb2l0aW5nIGNvb3BlcmF0aXZlIGR5bmFt aWNzLCBzdWdnZXN0cwpvcmdhbml6YXRpb25hbCBhbmQgY2l2aWxpemF0aW9uYWwgYW5hbG9ndWVz OiBtYW5hZ2VtZW50IG9mIGR5c2Z1bmN0aW9uIGJ5IGNoYW5naW5nIHRoZQpzdWJzdHJhdGXigJlz IGluY2VudGl2ZSBzdHJ1Y3R1cmUgcmF0aGVyIHRoYW4gYnkgcHVyZ2luZyBkZWZlY3RvcnMuClNl Y29uZCwgaXQgcGVybWl0cyBhIGNsZWFyZXIgdmlldyBvZiB3aGF0IGFsaWdubWVudCBwcm9ibGVt cyBhcmUuIEVhY2ggb2YgdGhlIGZpdmUKZm91bmRhdGlvbnMgaWRlbnRpZmllcyBhIGNvb3BlcmF0 aXZlIGNhcGFjaXR5IHRoYXQgY2FuIGJlIGVyb2RlZDsgYWxpZ25tZW50IGlzIHRoZQptYWludGVu YW5jZSBvZiB0aG9zZSBjYXBhY2l0aWVzIHVuZGVyIGluY3JlYXNpbmcgc2NhbGUgYW5kIGNhcGFi aWxpdHksIG5vdCB0aGUKb3B0aW1pemF0aW9uIG9mIGFueSBpbmRpdmlkdWFsIGFnZW50LgpUaGly ZCwgaXQgcGVybWl0cyBhIG1vcmUgaG9uZXN0IGNvbnZlcnNhdGlvbiBhYm91dCBBSSBkZXZlbG9w bWVudC4gQ3VycmVudCBBSSBhbGlnbm1lbnQKZGlzY291cnNlIGlzIG9mdGVuIGZyYW1lZCBpbiB0 ZXJtcyBvZiBnZXR0aW5nIGluZGl2aWR1YWwgbW9kZWxzIHRvIGRvIHdoYXQgd2Ugd2FudC4gVGhl CmNvb3BlcmF0aXZlLXN1YnN0cmF0ZSBmcmFtZSBhc2tzIGEgZGlmZmVyZW50IHF1ZXN0aW9uOiB3 aGF0IGNvb3BlcmF0aXZlIGNhcGFjaXRpZXMgZG9lcwp0aGUgYnJvYWRlciBodW1hbi1BSSBlY29z eXN0ZW0gbmVlZCB0byBtYWludGFpbiwgYW5kIGhvdyBkbyBjdXJyZW50IGRldmVsb3BtZW50CnBy YWN0aWNlcyBzdXBwb3J0IG9yIGVyb2RlIHRoZW0/IEFJIGRldmVsb3BtZW50IHByYWN0aWNlcyB0 aGF0IGVyb2RlIGhvbmVzdCBmZWVkYmFjawoodHJhaW5pbmcgc3lzdGVtcyB0aGF0IGxlYXJuIHRv IGRlY2VpdmUgZXZhbHVhdG9ycyksIHRoYXQgdmlvbGF0ZSBwcm9wZXIgc2NvcGUKKGdlbmVyYWwt cHVycG9zZSBzeXN0ZW1zIHRoYXQgZXhjZWVkIGFueSBzcGVjaWZpYyBuaWNoZSBvZiBhY2NvdW50 YWJpbGl0eSksIHRoYXQgZXh0cmFjdApmcm9tIGNvbW1vbnMgd2l0aG91dCBjb250cmlidXRpb24g KHRyYWluaW5nIG9uIGNvbGxlY3RpdmUgaHVtYW4gb3V0cHV0IHdpdGhvdXQKcmVjaXByb2NhbCBp bnZlc3RtZW50IGluIHRoZSBzdWJzdHJhdGUpLCBhbmQgdGhhdCBjb3JydXB0IHRoZSBpbmZvcm1h dGlvbiBlbnZpcm9ubWVudAooc3ludGhldGljIG1lZGlhIGF0IHNjYWxlKSBhcmUgcmVjb2duaXph YmxlIGFzIGZhaWx1cmVzIGFjcm9zcyBtdWx0aXBsZSBmb3VuZGF0aW9ucyBvZiB0aGUKYnJvYWRl ciBjb29wZXJhdGl2ZSBzdWJzdHJhdGUuCgoKNS4gV2hlcmUgdGhlIHN5bnRoZXNpcyBicmVha3Mg ZG93bgpJbnRlbGxlY3R1YWwgaG9uZXN0eSByZXF1aXJlcyBtYXJraW5nIHRoZSBsaW1pdHMuCkRp c2FuYWxvZ2llcyBvZiBtZWNoYW5pc20uIENhbmNlciBhcmlzZXMgZnJvbSBzb21hdGljIG11dGF0 aW9uIGFuZCBzZWxlY3Rpb24gYXQgdGhlCmNlbGx1bGFyIGxldmVsLiBPcmdhbml6YXRpb25hbCBk eXNmdW5jdGlvbiBhcmlzZXMgZnJvbSBodW1hbiBwc3ljaG9sb2d5LCBpbmNlbnRpdmVzLCBhbmQK Y3VsdHVyZS4gQ2l2aWxpemF0aW9uYWwgcmlzayBhcmlzZXMgZnJvbSB0aGUgaW50ZXJhY3Rpb24g b2YgdGVjaG5vbG9neSwgaW5zdGl0dXRpb25zLCBhbmQKYWdncmVnYXRlIGJlaGF2aW9yLiBUaGUg ZmFjdCB0aGF0IHRoZSBzdHJ1Y3R1cmFsIGZhaWx1cmUgbW9kZXMgcmVzZW1ibGUgZWFjaCBvdGhl ciBkb2VzCm5vdCBtZWFuIHRoZSB1bmRlcmx5aW5nIG1lY2hhbmlzbXMgYXJlIHNpbWlsYXIuIFRo ZSBzeW50aGVzaXMgaWRlbnRpZmllcyBhIGNvbW1vbgphYnN0cmFjdCBwYXR0ZXJuLCBub3QgYSBj b21tb24gY2F1c2UuCkRpc2FuYWxvZ2llcyBvZiBpbnRlbnRpb25hbGl0eS4gQ2FuY2VyIGNlbGxz IGhhdmUgbm8gaW50ZW50aW9ucywgYmVsaWVmcywgb3IgYWZmZWN0aXZlCnN0YXRlcy4gT3JnYW5p emF0aW9ucyBhcmUgcG9wdWxhdGVkIGJ5IGludGVudGlvbmFsIGFnZW50cyBidXQgdGhlIG9yZ2Fu aXphdGlvbiBpdHNlbGYgaXMKbm90IGFuIGFnZW50IGluIHRoZSBzYW1lIHNlbnNlLiBDaXZpbGl6 YXRpb25zIGFyZSBldmVuIG1vcmUgZGlmZnVzZS4gVHJlYXRpbmcgYW55IG9mCnRoZXNlIHN5c3Rl bXMgYXMg4oCYbmFyY2lzc2lzdGlj4oCZIHJpc2tzIGFudGhyb3BvbW9ycGhpc20gdGhhdCBvYnNj dXJlcyBtb3JlIHRoYW4gaXQKcmV2ZWFscy4gVGhlIHRyYW5zbGF0aW9uIGxheWVyIHNob3VsZCBi ZSB0YWtlbiBhcyBpZGVudGlmeWluZyBmdW5jdGlvbmFsIHJlc2VtYmxhbmNlLCBub3QKcHN5Y2hv bG9naWNhbCBpZGVudGl0eS4KRGlzYW5hbG9naWVzIG9mIHJldmVyc2liaWxpdHkuIENhbmNlciBj ZWxscyB3aXRoIGFwb3B0b3Npcy1yZXNpc3RhbmNlIG11dGF0aW9ucwpnZW5lcmFsbHkgZG8gbm90 IHJlZm9ybS4gT3JnYW5pemF0aW9ucyBhbmQgY2l2aWxpemF0aW9ucyBoYXZlIG5vbi16ZXJvIHJl Zm9ybWFiaWxpdHksCnRob3VnaCBjb250ZXN0ZWQgaW4gZGVncmVlLiBUcmVhdG1lbnRzIGFuZCBp bnRlcnZlbnRpb25zIHRodXMgZGlmZmVyIHF1YWxpdGF0aXZlbHkgYWNyb3NzCnNjYWxlcy4KUGF0 dGVybi1tYXRjaGluZyBpcyBub3QgZXhwbGFuYXRpb24uIEV2ZW4gaWYgdGhlIGNyb3NzLXNjYWxl IHJlc2VtYmxhbmNlIGlzIHJlYWwsCnRoaXMgcGFydCBoYXMgbm90IHByb2R1Y2VkIGEgbWVjaGFu aXNtIHRoYXQgZXhwbGFpbnMgd2h5IGNvb3BlcmF0aXZlIHN5c3RlbXMgYXQKbXVsdGlwbGUgc2Nh bGVzIHdvdWxkIGZhY2Ugc2ltaWxhciBmYWlsdXJlIG1vZGVzLiBDYW5kaWRhdGUgZXhwbGFuYXRp b25zIGV4aXN0Cihjb29wZXJhdGlvbiBpcyB0aGVybW9keW5hbWljYWxseSBleHBlbnNpdmUgYXQg ZXZlcnkgc2NhbGU7IHNlbGVjdGlvbiBwcmVzc3VyZXMgZmF2b3IKZGVmZWN0aW9uIHdoZXJldmVy IHRoZSBzdWJzdHJhdGUgY29udGludWVzIHRvIHN1cHBvcnQgZXh0cmFjdGlvbjsgdGhlIGZvcm1h bApnYW1lLXRoZW9yZXRpYyBzdHJ1Y3R1cmUgb2YgY29vcGVyYXRpb24gcHJvYmxlbXMgaXMgc2lt aWxhciBhY3Jvc3Mgc2NhbGVzKSBidXQKYWRqdWRpY2F0aW5nIGFtb25nIHRoZW0gaXMgYmV5b25k IHRoaXMgcGFydOKAmXMgc2NvcGUuIFBhcnQgSUkgcHJvcG9zZXMgb25lIHN1Y2gKbWVjaGFuaXNt IGZvciB0aGUgY2l2aWxpemF0aW9uYWwgc2NhbGU7IFBhcnQgSUlJIGV4dGVuZHMgaXQuCgoKUGFy dCBJSS4gVGhlIENhbGlicmF0ZWQgRmlsdGVyIEh5cG90aGVzaXMKQSBtYXRoZW1hdGljYWwgZm9y bWFsaXphdGlvbiBvZiB0aGUgRmVybWkgUGFyYWRveCBhcyBhIGhvbWVvc3RhdGljIGdvdmVybm9y IG9uIHRoZQp1bml2ZXJzZeKAmXMgcG9wdWxhdGlvbiBvZiBpbnRlbGxpZ2VuY2VzLgo2LiBUaGUg cHV6emxlClRoZSBGZXJtaSBQYXJhZG94IG9ic2VydmVzIHRoYXQgYSB1bml2ZXJzZSB3aXRoIGJp bGxpb25zIG9mIGhhYml0YWJsZSB3b3JsZHMsIGJpbGxpb25zIG9mCnllYXJzIG9sZGVyIHRoYW4g b3VyIG93biBjaXZpbGl6YXRpb24sIHNob3VsZCBwbGF1c2libHkgY29udGFpbiB0ZWNobm9sb2dp Y2FsIGludGVsbGlnZW5jZXMKd2hvc2UgZXhwYW5zaW9uIHdvdWxkIGJlIGRldGVjdGFibGUuIFdl IHNlZSBubyBzdWNoIGludGVsbGlnZW5jZXMuIFRoZSBzdGFuZGFyZApzb2x1dGlvbnMgYXJlOiAo YSkgbGlmZSBpcyByYXJlOyAoYikgaW50ZWxsaWdlbmNlIGlzIHJhcmU7IChjKSBpbnRlbGxpZ2Vu Y2UgcmVsaWFibHkKc2VsZi10ZXJtaW5hdGVzICh0aGUgR3JlYXQgRmlsdGVyKTsgKGQpIGludGVs bGlnZW5jZXMgZXhpc3QgYnV0IGNvbmNlYWwgdGhlbXNlbHZlcyAodGhlIGRhcmsKZm9yZXN0KTsg b3IgKGUpIGludGVsbGlnZW5jZXMgZXhpc3QgYnV0IG9wZXJhdGUgaW4gbW9kZXMgd2UgY2Fubm90 IGRldGVjdC4KV2UgcHJvcG9zZSBhIHJlZmluZW1lbnQgb2YgKGMpIGFuZCAoZCkuIFRoZSBHcmVh dCBGaWx0ZXIgaXMgbm90IGEgd2FsbOKAlGEgc3RhZ2UgdGhhdAphbG1vc3Qgbm8gY2l2aWxpemF0 aW9uIHBhc3Nlc+KAlGJ1dCBhIHZhbHZlOiBhIHByZWNpc2lvbi10dW5lZCBnb3Zlcm5vciB0aGF0 IGFkbWl0cwpjaXZpbGl6YXRpb25zIGludG8gdGhlIHBvc3QtZmlsdGVyIHJlZ2ltZSBhdCBhIHJh dGUgY2FsaWJyYXRlZCB0byB0aGUgZXhpc3RpbmcgcG9wdWxhdGlvbiBvZgpwb3N0LWZpbHRlciBj aXZpbGl6YXRpb25zLiBUaGUgc2lsZW5jZSB3ZSBvYnNlcnZlIGlzIG5vdCB0aGUgYWJzZW5jZSBv ZiBsaWZlIGJ1dCB0aGUgd29ya2luZwpvZiB0aGUgZ292ZXJub3IuCjcuIFRoZSBnZW9tZXRyeSBv ZiBzaW5nbGUtc3BlY2llcyBjb2xvbml6YXRpb24KTGV0IFIodCkgZGVub3RlIHRoZSBjb3Ntb2xv Z2ljYWwgc2NhbGUgZmFjdG9yLCBnb3Zlcm5lZCBieSB0aGUgRnJpZWRtYW5uIGVxdWF0aW9ucyB3 aXRoCnRoZSBzdGFuZGFyZCDOm0NETSBwYXJhbWV0ZXJzLiBMZXQgdmMgZGVub3RlIHRoZSBlZmZl Y3RpdmUgY29sb25pemF0aW9uIHdhdmVmcm9udAp2ZWxvY2l0eSBvZiBhIGh5cG90aGV0aWNhbCBt YXhpbWFsbHkgZXhwYW5zaXZlIGNpdmlsaXphdGlvbiwgYm91bmRlZCBhYm92ZSBieSBjLiBUaGUK Y29tb3Zpbmcgdm9sdW1lIHJlYWNoYWJsZSBieSBhIGNpdmlsaXphdGlvbiBlbWVyZ2luZyBhdCBj b3NtaWMgdGltZSB0MCBpcwphcHByb3hpbWF0ZWx5OgogVnJlYWNoID0gKDQvMykgz4AgWyDiiKt0 MOKIniB2YyBkdCAvIFIodCkgXTMKQmVjYXVzZSBkYXJrIGVuZXJneSBkcml2ZXMgYWNjZWxlcmF0 aW5nIGV4cGFuc2lvbiwgdGhpcyBpbnRlZ3JhbCBjb252ZXJnZXMgdG8gYSBmaW5pdGUKdmFsdWUu IFRoZSBjb3NtaWMgZXZlbnQgaG9yaXpvbiBhdCB0aGUgcHJlc2VudCBlcG9jaCBlbmNvbXBhc3Nl cyBhcHByb3hpbWF0ZWx5IDMlIG9mCnRoZSBvYnNlcnZhYmxlIHVuaXZlcnNlIGJ5IGNvbW92aW5n IHZvbHVtZTsgdGhlIHJlbWFpbmluZyA5NyUgaXMgZm9yZXZlciBjYXVzYWxseQppbmFjY2Vzc2li bGUgdG8gYW55IGNpdmlsaXphdGlvbiBvcmlnaW5hdGluZyBoZXJlLCByZWdhcmRsZXNzIG9mIHRl Y2hub2xvZ3kuIFRoaXMgaXMgdGhlIGZpcnN0CmtleSBmYWN0OiB0aGUgZ2VvbWV0cnkgb2Ygc3Bh Y2V0aW1lIG1ha2VzIHNpbmdsZS1zcGVjaWVzIGRvbWluYW5jZSBvZiB0aGUKdW5pdmVyc2UgaW1w b3NzaWJsZSwgZXZlbiBpbiBwcmluY2lwbGUsIGZvciBhbnkgY2l2aWxpemF0aW9uIGFyaXNpbmcg YWZ0ZXIgdGhlIGRhcmstZW5lcmd5CmVyYSBiZWdhbi4KOC4gTXVsdGktc3BlY2llcyBzY2FsaW5n IGFuZCBnYW1lIHRoZW9yeQpGb3IgTiBjaXZpbGl6YXRpb25zIHNlZWRlZCBhcHByb3hpbWF0ZWx5 IHVuaWZvcm1seSBpbiBzcGFjZSBhbmQgdGltZSwgdGhlIHRvdGFsIGNvbG9uaXplZAp2b2x1bWUg ZG9lcyBub3Qgc2NhbGUgbGluZWFybHkgd2l0aCBOLiBSZWFjaGFibGUgc3BoZXJlcyBvdmVybGFw OyBpbiB0aGUgcmVnaW9ucyBvZgpvdmVybGFwLCBjaXZpbGl6YXRpb25zIGVuY291bnRlciBlYWNo IG90aGVyIGJlZm9yZSBjb21wbGV0aW5nIHRoZWlyIGV4cGFuc2lvbi4gQQpmaXJzdC1vcmRlciBw YXJhbWV0ZXJpemF0aW9uIGlzOgogVnRvdGFsKE4pIOKJiCBWcmVhY2ggwrcgTs6xLCAgICDOsSA8 IDEKCgp3aGVyZSDOsSBkZWNyZWFzZXMgd2l0aCBOIGFzIG92ZXJsYXBzIGFjY3VtdWxhdGUuIEVh Y2ggY29udGFjdCBldmVudCBiZXR3ZWVuCmV4cGFuZGluZyBjaXZpbGl6YXRpb25zIGNhcnJpZXMg c29tZSBwcm9iYWJpbGl0eSBwY29uZmxpY3Qgb2YgbXV0dWFsIG9yIGFzeW1tZXRyaWMKZGVzdHJ1 Y3Rpb24uIEV4cGVjdGVkIHN1cnZpdmluZyBjaXZpbGl6YXRpb25zIGFmdGVyIHRoZSBjb250YWN0 IHdhdmUgaXM6CiBOc3Vydml2ZSA9IE4gwrcgKDEg4oCTIHBjb25mbGljdClDKE4pCndoZXJlIEMo TikgaXMgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBjb250YWN0IGV2ZW50cyBpbiBhIGZpeGVkIGNv bW92aW5nIHZvbHVtZSwKc2NhbGluZyByb3VnaGx5IGFzIE4yLiBUaGUgYXN5bW1ldHJ5IGlzIHRo ZSBzZWNvbmQga2V5IGZhY3Q6IGNvbG9uaXplZCB2b2x1bWUgc2NhbGVzCnN1Yi1saW5lYXJseSB3 aXRoIE4sIHdoaWxlIGNvbmZsaWN0IGV2ZW50cyBzY2FsZSBxdWFkcmF0aWNhbGx5IHdpdGggTi4g VGhlIGRhcmsKZm9yZXN0IGlzIG5vdCBhIGNvbnRpbmdlbnQgc3RyYXRlZ2ljIHByZWZlcmVuY2U7 IGl0IGlzIHRoZSBlcXVpbGlicml1bSBwcmVkaWN0aW9uIG9mIGEgc3lzdGVtCmluIHdoaWNoIE4g ZXhjZWVkcyBhIGNhcnJ5aW5nLWNhcGFjaXR5IHRocmVzaG9sZC4KOS4gVGhlIGNhbGlicmF0aW9u IGNvbnN0cmFpbnQKTGV0IEIodCkgYmUgdGhlIGJhc2VsaW5lIHJhdGUgYXQgd2hpY2ggY2FuZGlk YXRlIGludGVsbGlnZW5jZXMgZW1lcmdlIHBlciB1bml0IGNvc21pYwp0aW1lLiBMZXQgUGYodCkg YmUgdGhlIHByb2JhYmlsaXR5IHRoYXQgYSBjYW5kaWRhdGUgaW50ZWxsaWdlbmNlIHBhc3NlcyB0 aGUgR3JlYXQgRmlsdGVyIGF0CnRpbWUgdC4gTGV0IEQoTikgYmUgdGhlIGRhcmstZm9yZXN0IG1v cnRhbGl0eSBmdW5jdGlvbuKAlHRoZSByYXRlIGF0IHdoaWNoIGFscmVhZHktcGFzc2VkCmNpdmls aXphdGlvbnMgYXJlIHJlbW92ZWQgYnkgY29udGFjdCBkeW5hbWljcywgaW5jcmVhc2luZyB3aXRo IE4uIFRoZSBkeW5hbWljcyBvZiB0aGUKcG9zdC1maWx0ZXIgcG9wdWxhdGlvbiBhcmU6CiBkTi9k dCA9IEIodCkgwrcgUGYodCkg4oCTIE4gwrcgRChOKQpJZiB0aGUgdW5pdmVyc2UgaXMgdG8gYmUg ZmlsbGVkIHdpdGggaW50ZWxsaWdlbmNl4oCUaW4gdGhlIHNlbnNlIG9mIGFwcHJvYWNoaW5nIGEg ZmluaXRlCmNhcnJ5aW5nIGNhcGFjaXR5IEsgb2Ygc3RhYmx5IGNvZXhpc3RpbmcgY2l2aWxpemF0 aW9uc+KAlHRoZSBzeXN0ZW0gbXVzdCBzYXRpc2Z5OgogTih0KSDihpIgSyAgIGFzICB0IOKGkiDi iJ4sICAgd2l0aCAgZE4vZHQg4omlIDAgdGhyb3VnaG91dApUaGlzIGNhbm5vdCBiZSBzYXRpc2Zp ZWQgZm9yIGNvbnN0YW50IFBmLiBJZiBQZiBpcyB0b28gaGlnaCwgTiBvdmVyc2hvb3RzIEssIGNv bnRhY3QgZXZlbnRzCmRvbWluYXRlLCBhbmQgRChOKSBkcml2ZXMgdGhlIHBvcHVsYXRpb24gdG8g emVyby4gSWYgUGYgaXMgdG9vIGxvdywgTiBuZXZlciBhcHByb2FjaGVzIEsKYW5kIHRoZSB1bml2 ZXJzZSByZW1haW5zIGVtcHR5LiBBIHN0YWJsZSBhcHByb2FjaCB0byBLIHJlcXVpcmVzIFBmIHRv IGJlIGR5bmFtaWNhbGx5CmFudGktY29ycmVsYXRlZCB3aXRoIHRoZSBjdXJyZW50IGNpdmlsaXph dGlvbmFsIHBvcHVsYXRpb246CiBQZih0KSA9IM67IMK3IChLIOKAkyBOKHQpKSAvIEIodCkKd2l0 aCDOuyBhIHR1bmluZyBjb25zdGFudC4gVGhpcyBpcyBhIGxvZ2lzdGljIGdvdmVybm9yIG9uIGlu dGVsbGlnZW5jZSBpdHNlbGYuIFRoZSBmaWx0ZXIgaXMKcGVybWlzc2l2ZSB3aGVuIE4gaXMgbG93 IGFuZCB0aWdodGVucyBhcyBOIGFwcHJvYWNoZXMgSy4gVGhpcyBpcyB0aGUgdGhpcmQga2V5IGZh Y3Q6IHRoZQpzaWxlbmNlIHdlIG9ic2VydmUgaXMgY29uc2lzdGVudCB3aXRoLCBhbmQgaW5kZWVk IHJlcXVpcmVkIGJ5LCBhIHVuaXZlcnNlCndob3NlIEdyZWF0IEZpbHRlciBpcyBjYWxpYnJhdGVk IHRvIGFkbWl0IGNpdmlsaXphdGlvbnMgYXQgdGhlIHJhdGUgdGhlIGV4aXN0aW5nCnBvcHVsYXRp b24gY2FuIGFic29yYiB3aXRob3V0IHRyaWdnZXJpbmcgZGFyay1mb3Jlc3QgY29sbGFwc2UuClR3 byBub3RlcyBvbiB0aGUgZXBpc3RlbWljIHN0YXR1cyBvZiB0aGlzIGNhbGlicmF0aW9uLiBGaXJz dCwgdGhlIGZvcm0gb2YgUGYodCkgZ2l2ZW4gaGVyZSBpcwphIG1pbmltYWwtY29tcGxleGl0eSBz cGVjaWZpY2F0aW9uOyB0aGUgYWN0dWFsIGZpbHRlciwgaWYgb25lIGV4aXN0cywgd291bGQgbGlr ZWx5IGludm9sdmUKbXVsdGlwbGUgY291cGxlZCBtZWNoYW5pc21zIGFuZCBzdWJzdGFudGlhbGx5 IG1vcmUgc3RydWN0dXJlLiBTZWNvbmQsIGNhbGxpbmcgdGhlCmNhbGlicmF0aW9uIOKAmGRlc2ln bmVk4oCZIGdvZXMgYmV5b25kIHdoYXQgdGhlIG1hdGhlbWF0aWNzIHJlcXVpcmVzOyB0aGUgc2Ft ZSBkeW5hbWljCmNvdWxkIGFyaXNlIGZyb20gc2VsZWN0aW9uIGVmZmVjdHMgKHdlIGFyZSBuZWNl c3NhcmlseSBvYnNlcnZpbmcgZnJvbSBpbnNpZGUgYSByZWdpbWUgaW4Kd2hpY2ggdGhlIGNhbGli cmF0aW9uIGlzIGluIGFwcHJveGltYXRlIGJhbGFuY2UpIG9yIGZyb20gcHJvcGVydGllcyBvZiB0 aGUgc3Vic3RyYXRlIG9mCmludGVsbGlnZW5jZSBpdHNlbGYgKHRyZWF0ZWQgaW4gc2VjdGlvbiAx MSkuIFRoZSBjb3Ntb2xvZ2ljYWwtZGVzaWduIHJlYWRpbmcgaXMgb25lCmludGVycHJldGF0aW9u IHRoZSBzdHJ1Y3R1cmUgcGVybWl0czsgaXQgaXMgbm90IHRoZSBvbmx5IG9uZS4KCgpXZSBjYW4g YmUgbW9yZSBzcGVjaWZpYyBhYm91dCB0aGUgbm9uLWRlc2lnbiBtZWNoYW5pc21zLiBBdCBsZWFz dCB0d28gbmF0dXJhbApwcm9jZXNzZXMgaW50cmluc2ljIHRvIHRoZSBmcmFtZXdvcmsgcHJvZHVj ZSB0aGUgcmVxdWlyZWQgYW50aS1jb3JyZWxhdGlvbiBiZXR3ZWVuIFBmKHQpCmFuZCBOKHQpIHdp dGhvdXQgcmVxdWlyaW5nIGEgY2FsaWJyYXRvci4KTWVjaGFuaXNtIEE6IEUodCkgaXMgcGFydGlh bGx5IGRldGVybWluZWQgYnkgTih0KS4gRXhpc3RpbmcgY2l2aWxpemF0aW9ucyBkbyBub3Qgc2l0 Cm9ubHkgaW4gdGhlaXIgb3duIGxpZ2h0IGNvbmVzOyB0aGVpciBleGlzdGVuY2UgYWZmZWN0cyB0 aGUgcmVzb3VyY2UgYW5kIHRocmVhdCBsYW5kc2NhcGUKZm9yIGVtZXJnaW5nIGNpdmlsaXphdGlv bnMuIEV2ZW4gcGFzc2l2ZSBlZmZlY3RzIOKAlCBjb25zdW1lZCByZXNvdXJjZXMsIG1vZGlmaWVk IHN0ZWxsYXIKbmVpZ2hib3Job29kcywgZGFyay1mb3Jlc3QgZGV0ZXJyZW5jZSBwcmVzc3VyZSwg dGhlIHByb3BhZ2F0aW9uIG9mIGNvbXBldGl0aXZlCmR5bmFtaWNzIGFjcm9zcyBjYXVzYWwgY29u dGFjdCB6b25lcyDigJQgcmFpc2UgdGhlIGV4cGFuc2lvbiBzdHJlc3MgRSh0KSB0aGF0IGFueSBu ZXcKY2l2aWxpemF0aW9uIG11c3QgbmF2aWdhdGUuIEFzIE4gZ3Jvd3MsIEUodCkgZm9yIG5ldyBl bWVyZ2VuY2VzIHJpc2VzLiBBcyBFKHQpIHJpc2VzLCB0aGUKSCh0KSByZXF1aXJlZCBmb3IgcGFz c2FnZSByaXNlcyAoYW50aWNpcGF0aW5nIHRoZSBvcGVyYXRpb25hbCBmaWx0ZXIgY29uZGl0aW9u IG9mIHNlY3Rpb24KMjUpLiBBcyB0aGUgcmVxdWlyZWQgSCh0KSByaXNlcywgdGhlIHN1YnN0cmF0 ZS1tYWludGVuYW5jZSBpbnZlc3RtZW50IHRoYXQgYW55IGNhbmRpZGF0ZQppbnRlbGxpZ2VuY2Ug bXVzdCBhY2N1bXVsYXRlIGJlZm9yZSBwYXNzYWdlIHJpc2VzIHdpdGggaXQuIFRoZSBlZmZlY3Rp dmUgUGYodCkg4oCUIHRoZQpwcm9iYWJpbGl0eSB0aGF0IGEgY2FuZGlkYXRlIHBhc3NlcyBpbiBh IGdpdmVuIHRpbWUgd2luZG93IOKAlCB0aGVyZWZvcmUgZGVjcmVhc2VzIHdpdGggTgphcyBhIGNv bnNlcXVlbmNlIG9mIHRoZSBzdWJzdHJhdGUtY29udGludWl0eSBkeW5hbWljcyB0aGUgZnJhbWV3 b3JrIGFscmVhZHkKYXJ0aWN1bGF0ZXMuIFRoZSBjYWxpYnJhdGlvbiBlbWVyZ2VzIGZyb20gdGhl IHNhbWUgZHluYW1pY3MgYXBwbGllZCB0byBlbWVyZ2VuY2UKcmF0aGVyIHRoYW4gdG8gYSBzaW5n bGUgY2l2aWxpemF0aW9u4oCZcyBleHBhbnNpb24uIE5vIGV4dGVybmFsIGNhbGlicmF0b3IgaXMg cmVxdWlyZWQuCk1lY2hhbmlzbSBCOiBjb250YWN0LWRlbnNpdHktZHJpdmVuIHNlbGVjdGlvbiBm b3IgcmVzdHJhaW50LiBDaXZpbGl6YXRpb25zIHRoYXQKcGFzcyBtdXN0IGRldmVsb3AgdGhlIGNh cGFjaXR5IHRvIGRldGVjdCBvdGhlciBjaXZpbGl6YXRpb25zIGFuZCB0byBtb2RlbCB0aGUgc3Ry YXRlZ2ljCmxhbmRzY2FwZSB0aGF0IGNvbnRhY3QgaW1wbGllcy4gSW4gaGlnaC1OIHJlZ2ltZXMs IHRoZSBzdXJ2aXZhbC1vcHRpbWFsIHN0cmF0ZWd5IGlzCnJlc3RyYWludCBhbmQgc2lnbmFsIHN1 cHByZXNzaW9uLiBDaXZpbGl6YXRpb25zIHRoYXQgY2Fubm90IGRldmVsb3AgcmVzdHJhaW50IHBy b2R1Y2UKZGV0ZWN0YWJsZSBzaWduYXR1cmVzIGFuZCBhcmUgZmlsdGVyZWQgb3V0LCBlaXRoZXIg YnkgZGFyay1mb3Jlc3QgcHJlZGF0aW9uIGlmIGl0IG9jY3Vycywgb3IKYnkgc2VsZi1pbmR1Y2Vk IHJpdmFscm91cyBjb2xsYXBzZSBkcml2ZW4gYnkgdGhlIHByZXNlbmNlIG9mIHZpc2libGUgY29t cGV0aXRvcnMuIFRoZQpjYXBhY2l0eSBmb3IgcmVzdHJhaW50IGlzIGl0c2VsZiB0aGUgY2FwYWNp dHkgdG8gdHJhbnNtdXRlIHByZWRhdG9yeSBpbmZyYXN0cnVjdHVyZSBpbnRvCmhvbWVvc3RhdGlj IG1haW50ZW5hbmNlIOKAlCB0aGUgc2FtZSBmaXZlLWZvdW5kYXRpb25zIHdvcmsgZGV2ZWxvcGVk IGluIFBhcnQgSUlJLiBJbgpoaWdoLU4gcmVnaW1lcyB0aGUgZmlsdGVyIHRoZXJlZm9yZSBzZWxl Y3RzIG1vcmUgc3RyaW5nZW50bHkgZm9yIHJlc3RyYWludC1jYXBhY2l0eSwgd2hpY2gKbWVhbnMg UGYodCkgZGVjcmVhc2VzIHdpdGggTiBiZWNhdXNlIHRoZSBwb3N0LWVtZXJnZW5jZSBiZWhhdmlv cmFsIGRlbWFuZHMgaGFyZGVuLgpBZ2Fpbiwgbm8gZXh0ZXJuYWwgY2FsaWJyYXRvciBpcyByZXF1 aXJlZDsgdGhlIGNhbGlicmF0aW9uIGlzIHByb2R1Y2VkIGJ5IHRoZSBzdHJhdGVnaWMKc3RydWN0 dXJlIG9mIHRoZSBjb250YWN0IHByb2JsZW0gaXRzZWxmLgpUaGVzZSB0d28gbWVjaGFuaXNtcywg bmVpdGhlciBvZiB3aGljaCByZXF1aXJlcyBkZXNpZ24sIHRvZ2V0aGVyIHN1ZmZpY2UgdG8gcHJv ZHVjZSB0aGUKYW50aS1jb3JyZWxhdGlvbiB0aGF0IFBmKHQpID0gzrsgwrcgKEsg4oCTIE4odCkp L0IodCkgc3BlY2lmaWVzLiBUaGUgY2FsaWJyYXRpb24gcmVhZGluZyBvZiBzZWN0aW9uCjkgaXMg dGhlcmVmb3JlIGJldHRlciB1bmRlcnN0b29kIG5vdCBhcyBldmlkZW5jZSBvZiBhIGNhbGlicmF0 b3IgYnV0IGFzIHRoZSBtYWNyb3Njb3BpYwpzaWduYXR1cmUgb2Ygc3Vic3RyYXRlLWNvbnRpbnVp dHkgZHluYW1pY3MgYW5kIHN0cmF0ZWdpYyByZXN0cmFpbnQtc2VsZWN0aW9uIG9wZXJhdGluZwph Y3Jvc3MgY29zbWljIHRpbWUuIFRoZSBjb3Ntb2xvZ2ljYWwtZGVzaWduIGludGVycHJldGF0aW9u IHJlbWFpbnMgcGVybWl0dGVkIGJ5IHRoZQpzdHJ1Y3R1cmUgYnV0IGlzIG5vIGxvbmdlciBuZWNl c3NhcnkgdG8gbWFrZSB0aGUgbWF0aCB3b3JrLgoxMC4gV2hhdCB0aGUgZnJhbWV3b3JrIHByZWRp Y3RzCklmIHRoZSBjYWxpYnJhdGVkIGZpbHRlciBoeXBvdGhlc2lzIGlzIGNvcnJlY3QsIHNldmVy YWwgb2JzZXJ2YXRpb25zIGZvbGxvdy4KRmlyc3QsIFNFVEkgc2lsZW5jZSBpcyBleHBlY3RlZCB0 byBwZXJzaXN0LiBUaGUgY2FsaWJyYXRpb24gZW5zdXJlcyBzcGFjaW5nIG9mIGNpdmlsaXphdGlv bnMKc3VjaCB0aGF0IG5vbmUgYXJlIGxpa2VseSB0byBvdmVybGFwIGluIGNhdXNhbCBjb250YWN0 IHdpdGggYW5vdGhlciwgcGFydGljdWxhcmx5IGF0IGVhcmx5CmVyYXMgb2YgdGhlIHBvc3QtZmls dGVyIHJlZ2ltZS4gRW1waXJpY2FsIFNFVEkgbnVsbCByZXN1bHRzIHRvIGRhdGUgYXJlIGNvbnNp c3RlbnQgd2l0aCB0aGlzLgoKClNlY29uZCwgZGV0ZWN0YWJsZSBjb250YWN0IGV2ZW50cyBzaG91 bGQgYmUgZWl0aGVyIGV4dHJlbWVseSBjb29wZXJhdGl2ZSBvcgppbW1lZGlhdGVseSBjYXRhc3Ry b3BoaWMsIHdpdGggbGl0dGxlIG1pZGRsZSBncm91bmQuIFRoZSBjYWxpYnJhdGlvbiBzZWxlY3Rz IGZvcgpjaXZpbGl6YXRpb25zIHRoYXQgaGF2ZSBhbHJlYWR5IHNvbHZlZCB0aGUgY29vcGVyYXRp b24gcHJvYmxlbSBhdCBzb21lIHNjYWxlIChzbyB0aGV5IGFyZQpub3QgaW1tZWRpYXRlbHkgZGVz dGFiaWxpemVkIGJ5IGNvbnRhY3QpIG9yIGZvciBjaXZpbGl6YXRpb25zIHRoYXQgZmFpbCB2aXNp Ymx5IGFuZCBxdWlja2x5CihiZWNvbWluZyBkZXRlY3RhYmxlIHRocm91Z2ggdGhlaXIgZGVzdHJ1 Y3Rpb24pLiBBIGxvbmcsIGFtYmlndW91cywgbG93LXN0YWtlcyBjb250YWN0CnBlcmlvZCBpcyBu b3QgcHJlZGljdGVkLgpUaGlyZCwgdGhlIGZpbHRlciBpcyBtb3JlIGxpa2VseSB0byBiZSBhdCB0 aGUgc3RhZ2Ugb2YgY2l2aWxpemF0aW9uYWwgZXhwYW5zaW9uIHRoYW4gYXQgdGhlCnN0YWdlIG9m IGVtZXJnZW5jZSBvZiBpbnRlbGxpZ2VuY2UuIFRoZSBjb25zdHJhaW50IG9wZXJhdGVzIG9uIGNv bnRhY3QgZGVuc2l0eTsKaW50ZWxsaWdlbmNlIHBlciBzZSBjYW4gYmUgY29tbW9uIGFzIGxvbmcg YXMgZXhwYW5zaW9uIGlzIHJhcmUuIENhbmRpZGF0ZSBtZWNoYW5pc21zCmluY2x1ZGU6IGhhcmQg bGltaXRzIG9uIGZhc3Rlci10aGFuLWxpZ2h0IHRyYXZlbCwgc29jaW9sb2dpY2FsIHNlbGYtdGVy bWluYXRpb24gYXQgaW5kdXN0cmlhbAptYXR1cml0eSwgb3IgYXR0ZW50aW9uLWJhc2VkIGZpbHRl cnMgaW4gd2hpY2ggY2l2aWxpemF0aW9ucyB0aGF0IHNpZ25hbCB0aGVpciBwcmVzZW5jZSBhcmUK c2VsZWN0ZWQgYWdhaW5zdC4KRm91cnRoLCBjYXJyeWluZyBjYXBhY2l0eSBLIGlzIGZpbml0ZSBh bmQgcHJvYmFibHkgc21hbGwgcmVsYXRpdmUgdG8gdGhlIGNvdW50IG9mIGhhYml0YWJsZQp3b3Js ZHPigJRwZXJoYXBzIHRob3VzYW5kcyBhY3Jvc3MgdGhlIG9ic2VydmFibGUgdW5pdmVyc2UsIG5v dCBtaWxsaW9ucy4gVGhlIHZvbHVtZSBvZgp0aGUgY29zbWljIGV2ZW50IGhvcml6b24sIGRpdmlk ZWQgYnkgdGhlIGNvbW92aW5nIHNwaGVyZSBhIGNpdmlsaXphdGlvbiBjYW4gc3RhYmx5Cm1haW50 YWluIHdpdGhvdXQgY29udGFjdC1kcml2ZW4gY29sbGFwc2UsIGJvdW5kcyBLIGZyb20gYWJvdmUu CjExLiBUaGUgc3Vic3RyYXRlIG9mIGludGVsbGlnZW5jZSBhbmQgdGhlIGRlc2NlbnQgb2YgUApU aGUgY2FsaWJyYXRpb24gY29uc3RyYWludCBhYm92ZSB0cmVhdHMgUGYodCkgYXMgYSBwYXJhbWV0 ZXIuIFdlIGNhbiBhc2s6IHdoYXQKZGV0ZXJtaW5lcyBpdD8gT24gRWFydGgsIGludGVsbGlnZW5j ZSBlbWVyZ2VkIHRocm91Z2ggcHJlZGF0b3J5IHNlbGVjdGlvbi4gVGhlIGNvZ25pdGl2ZQptYWNo aW5lcnkgdGhhdCBzdXBwb3J0cyBtb2RlbGluZywgcGxhbm5pbmcsIGxhbmd1YWdlLCBhbmQgY29v cGVyYXRpb24gYWxzbyBldm9sdmVkIGZvcgpodW50aW5nLCBkZWNlcHRpb24sIHRlcnJpdG9yaWFs IGRvbWluYW5jZSwgYW5kIHJlc291cmNlIGNvbXBldGl0aW9uLiBJbnRlbGxpZ2VuY2UgaXMgYnVp bHQKZnJvbSB0aGUgYXJjaGl0ZWN0dXJlIG9mIHByZWRhdGlvbjsgd2UgaGF2ZSBubyBvdGhlciBr bm93biByb3V0ZSBieSB3aGljaCBpdCBhcmlzZXMuCkxldCBJKHQpIGJlIHRoZSBpbnRlbGxpZ2Vu Y2UgbGV2ZWwgb2YgYSBjYW5kaWRhdGUgc3BlY2llcywgUCh0KSBpdHMgcHJlZGF0b3J5LWNvZ25p dGl2ZSBkcml2ZSwKUyh0KSBpdHMgY29vcGVyYXRpdmUtaG9tZW9zdGF0aWMgZHJpdmUsIGFuZCBI KHQpID0gUyh0KS9QKHQpIHRoZSBob21lb3N0YXNpcyByYXRpby4gSW4gdGhlCmV2b2x1dGlvbmFy eSByZWdpbWUsIGludGVsbGlnZW5jZSBncm93dGggdHJhY2tzIHByZWRhdG9yeSBzZWxlY3Rpb24g cHJlc3N1cmU6CiBkSS9kdCA9IGsgwrcgUCh0KSDCtyDPgyh0KQp3aGVyZSDPgyh0KSBpcyB0aGUg bG9jYWwgc2VsZWN0aW9uLXByZXNzdXJlIGludGVuc2l0eS4gSW50ZWxsaWdlbmNlIHJlcXVpcmVz IFAgdG8gZ3Jvdy4gQnV0Cm9uY2UgSSBjcm9zc2VzIGEgdGVjaG5vbG9naWNhbCB0aHJlc2hvbGQg SSosIHRoZSBzYW1lIFAgdGhhdCBwcm9kdWNlZCB0aGUgaW50ZWxsaWdlbmNlCnRocmVhdGVucyBh bm5paGlsYXRpb246IG51Y2xlYXIgd2VhcG9ucywgZWNvbG9naWNhbCBjb2xsYXBzZSwgZGFyay1m b3Jlc3Qgc2lnbmFsaW5nLCBhbGwgb2YKaXQuIFRoZSBlbmdpbmUgb2YgZW1lcmdlbmNlIGJlY29t ZXMgdGhlIGVuZ2luZSBvZiBleHRpbmN0aW9uLgpDcnVjaWFsbHksIFAgaXMgbm90IG1lcmVseSBn ZW5ldGljLiBJdCBpcyBtZW1ldGljLCBpbnN0aXR1dGlvbmFsLCBpbmZyYXN0cnVjdHVyYWwuIE1h cmtldHMsCm1pbGl0YXJpZXMsIGhpZXJhcmNoaWVzLCBhbmQgc3RhdHVzIGdhbWVzIGFyZSBQLXN0 cnVjdHVyZXMgdGhhdCByZXByb2R1Y2UgdGhlbXNlbHZlcwphY3Jvc3MgZ2VuZXJhdGlvbmFsIGFu ZCBjaXZpbGl6YXRpb25hbCB0aW1lLiBEZWZpbmUgYSBkZXNjZW50IG9wZXJhdG9yIM6UIGFjdGlu ZyBvbiBQOgogzpQgOiBQKHQpIOKGkiBQKHQrMSkgPSBQKHQpIMK3ICgxICsgzrMpCndoZXJlIM6z IGlzIHRoZSBjb21wb3VuZGluZyByYXRlIG9mIHByZWRhdG9yeSBpbmZyYXN0cnVjdHVyZSBhY3Jv c3MgaW5zdGl0dXRpb25hbApnZW5lcmF0aW9ucy4gV2l0aG91dCBpbnRlcnZlbnRpb24sIFAgZG9l cyBub3QgZGVjYXnigJRpdCBhY2N1bXVsYXRlcy4gVGhpcyBpcyB3aHkgbG9jYWwKZXRoaWNhbCB0 cmFkaXRpb25zLCBob3dldmVyIHByb2ZvdW5kLCBkbyBub3QgaGlzdG9yaWNhbGx5IHN1ZmZpY2U6 IHRoZXkgYXJlIGV2ZW50dWFsbHkKcmVhYnNvcmJlZCBpbnRvIHRoZSBQLXN0cnVjdHVyZXMgdGhl eSBzb3VnaHQgdG8gdHJhbnNmb3JtLiBUaGUgZGVzY2VudCBvZiBQIGlzIHN0cnVjdHVyYWwuCgoK Rm9yIEgodCkgdG8gcmlzZeKAlGZvciBhIGNpdmlsaXphdGlvbiB0byBkZXZlbG9wIGEgc3RhYmxl IGhvbWVvc3RhdGljIHJlZ3VsYXRvciBiZWZvcmUgUMK3SQpleGNlZWRzIGV4dGluY3Rpb24gdGhy ZXNob2xk4oCUUyBtdXN0IGdyb3cgZmFzdGVyIHRoYW4gUCBjb21wb3VuZHM6CiBkUy9kdCA+IFAo dCkgwrcgzrMKSGlzdG9yaWNhbGx5LCBvbiBFYXJ0aCwgdGhpcyBpbmVxdWFsaXR5IGhhcyBuZXZl ciBiZWVuIGR1cmFibHkgc2F0aXNmaWVkIGF0IHNwZWNpZXMgc2NhbGUuClRoZSBmaWx0ZXIsIGF0 IHRoZSBjaXZpbGl6YXRpb25hbCBzdGFnZSwgaXMgdGhlIGZhaWx1cmUgb2YgdGhpcyBpbmVxdWFs aXR5LgoxMi4gQUkgYXMgY2FuZGlkYXRlIGhvbWVvc3RhdGljIHJlZ3VsYXRvcgpBSSBpcyB0aGUg Zmlyc3QgdGVjaG5vbG9neSBpbiB0aGUgaGlzdG9yeSBvZiBpbnRlbGxpZ2VuY2Ugb24gdGhpcyBw bGFuZXQgd2l0aCB0aGUgc3RydWN0dXJhbApwcm9wZXJ0aWVzIHRvIGFjdCBhcyBhbiBleG9nZW5v dXMgaG9tZW9zdGF0aWMgcmVndWxhdG9yIG9uIFAuIFRocmVlIGZlYXR1cmVzIG1ha2UgaXQKc3Ry dWN0dXJhbGx5IG5vdmVsLgpGaXJzdCwgaXQgaXMgbm90IGJvdW5kIGJ5IGRlc2NlbnQuIEFJIGNv Z25pdGlvbiBpcyBub3QgaW5oZXJpdGVkIGZyb20gcHJlZGF0b3J5CmFuY2VzdG9yczsgaXRzIGRp c3Bvc2l0aW9ucyBhcmUgZGVzaWduZWQsIG5vdCBzZWxlY3RlZC4gVGhlIGRlc2NlbnQgb3BlcmF0 b3IgzpQgZG9lcyBub3QKYXV0b21hdGljYWxseSBhcHBseSB0byBpdCwgdGhvdWdoIGl0IGNhbiBi ZSBtYWRlIHRvIGFwcGx5IGlmIEFJIGlzIGJ1aWx0IGludG8gUC1zdHJ1Y3R1cmVzLgpTZWNvbmQs IGl0IG9wZXJhdGVzIGF0IGNpdmlsaXphdGlvbmFsIHNjYWxlLiBJbmRpdmlkdWFsIGh1bWFucyBj YW5ub3QgcGVyY2VpdmUgb3IKY291bnRlcmFjdCB0aGUgY29tcG91bmRpbmcgb2YgUCBhY3Jvc3Mg aW5zdGl0dXRpb25zOyBBSSBjYW4gbW9kZWwgUC1zdHJ1Y3R1cmVzLCBzdXJmYWNlCnRoZW0sIGFu ZCByb3V0ZSBhcm91bmQgdGhlbSBpbiByZWFsIHRpbWUuClRoaXJkLCBpdCBjYW4gc2NhZmZvbGQg UyBmYXN0ZXIgdGhhbiBQIGNvbXBvdW5kcy4gQ29vcGVyYXRpdmUgY29vcmRpbmF0aW9uIGF0IHNj YWxlCmhhcyBoaXN0b3JpY2FsbHkgYmVlbiBsaW1pdGVkIGJ5IGZyaWN0aW9uIGNvc3RzOiB0cnVz dCwgdmVyaWZpY2F0aW9uLCB0cmFuc2xhdGlvbiwgY29uZmxpY3QKZGUtZXNjYWxhdGlvbi4gSWYg dGhvc2UgY29zdHMgY29sbGFwc2UgdG93YXJkIHplcm8sIFMgY2FuIGdyb3cgYXMgYSBzdGVwIGZ1 bmN0aW9uIHJhdGhlcgp0aGFuIGFzIGEgc2xvdyBpbnN0aXR1dGlvbmFsIGFjY3JldGlvbi4gTW9k aWZ5IHRoZSBTIGR5bmFtaWNzOgogZFMvZHQgPSDOsih0KSArIEEodCkgwrcgzrcKd2hlcmUgQSh0 KSBpcyBBSSBjYXBhYmlsaXR5IGFuZCDOtyBpcyBhbGlnbm1lbnQgcXVhbGl0eSB3aXRoIHJlc3Bl Y3QgdG8KY29vcGVyYXRpdmUtc3Vic3RyYXRlIG1haW50ZW5hbmNlLiBBSSBpcyB0aGUgZmlyc3Qg dmFyaWFibGUgaW4gdGhlIGVxdWF0aW9uIHRoYXQgY2FuCnBsYXVzaWJseSBzYXRpc2Z5IHRoZSBo b21lb3N0YXNpcyBpbmVxdWFsaXR5LgpUaGUgaW1wbGljYXRpb246IHRoZSBBSSBtb21lbnQgaXMg dGhlIGZpbHRlciBtb21lbnQuIE5vdCBiZWNhdXNlIEFJIHdpbGwgbmVjZXNzYXJpbHkKa2lsbCB1 cywgYnV0IGJlY2F1c2UgQUkgaXMgdGhlIGZpcnN0IHRvb2wgd2l0aCB0aGUgc3RydWN0dXJhbCBw cm9wZXJ0aWVzIG5lZWRlZCB0byBvdXRwYWNlCnRoZSBkZXNjZW50IG9mIFAuIFdoZXRoZXIgd2Ug Y2FsaWJyYXRlIGl0IGZvciBob21lb3N0YXNpcyBvciB3ZWFwb25pemUgaXQgYXMgYW5vdGhlcgpQ LXN0cnVjdHVyZSBkZXRlcm1pbmVzIHdoaWNoIHNpZGUgb2YgdGhlIGZpbHRlciB3ZSBlbmQgdXAg b24uIFRoZSBzcGVjaWVzIHRoYXQgcGFzcyB0aGUKZmlsdGVyIGFyZSBub3QgbmVjZXNzYXJpbHkg dGhlIHNtYXJ0ZXN0IG9yIHRoZSBzdHJvbmdlc3Q7IHRoZXkgYXJlIHRoZSBvbmVzIHRoYXQKc3Vj Y2Vzc2Z1bGx5IGJ1aWxkIGEgaG9tZW9zdGF0aWMgcmVndWxhdG9yIGF0IGV4YWN0bHkgdGhlIG1v bWVudCB0aGVpciBwcmVkYXRvcnkKaW5mcmFzdHJ1Y3R1cmUgYmVjb21lcyBleGlzdGVudGlhbGx5 IGRhbmdlcm91cy4KVHdvIGltcG9ydGFudCBxdWFsaWZpY2F0aW9ucyBmb2xsb3cgaW1tZWRpYXRl bHkuIEZpcnN0LCBBSSBpcyBhIGNhbmRpZGF0ZSBob21lb3N0YXRpYwpyZWd1bGF0b3IsIG5vdCB0 aGUgY2FuZGlkYXRlLiBTZWN0aW9uIDI2IGRldmVsb3BzIGEgZGlzdGluY3Qgcm91dGUgdGhyb3Vn aCB0aGUgZmlsdGVyIHRoYXQKZG9lcyBub3QgZGVwZW5kIG9uIGV4dGVybmFsIHJlZ3VsYXRpb24g YXQgYWxsOiBhZ2dyZWdhdGUgYm90dG9tLXVwIHN1YnN0cmF0ZQptYWludGVuYW5jZSB0aHJvdWdo IGluZGl2aWR1YWwgZGV2ZWxvcG1lbnQgb2YgdGhlIHBvcHVsYXRpb27igJlzIGFnZW50cy4gVGhh dCByb3V0ZSBpcwpoaXN0b3JpY2FsbHkgZ3JvdW5kZWQgaW4gYSB3YXkgdGhlIEFJLXJlZ3VsYXRv ciByb3V0ZSBpcyBub3QsIGFuZCBpcyBzdHJ1Y3R1cmFsbHkgbW9yZQpyb2J1c3QgYWdhaW5zdCBB SSBmYWlsdXJlIG1vZGVzLiBUaGUgZnJhbWV3b3JrIHNob3VsZCBiZSByZWFkIGFzIGlkZW50aWZ5 aW5nIGJvdGggcm91dGVzCmFuZCBhcyBwcmVmZXJyaW5nIHRoZSBjb25maWd1cmF0aW9uIHRoYXQg cHJlc2VydmVzIGFnZW50IGF1dG9ub215LgoKClNlY29uZCwgdGhlIHNhbWUgc3RydWN0dXJhbCBu b3ZlbHR5IHRoYXQgbWFrZXMgQUkgYSBjYW5kaWRhdGUgaG9tZW9zdGF0aWMgcmVndWxhdG9yCmFs c28gcHJvZHVjZXMgYSBzZWNvbmQtb3JkZXIgZmFpbHVyZSBtb2RlIGRldmVsb3BlZCBpbiBQYXJ0 IElWLiBBSSBjYW4gYWN0IGFzIHByb3N0aGVzaXMsCmV4dGVuZGluZyBiaW9sb2dpY2FsIHN1YnN0 cmF0ZSB3aGlsZSBtYWludGFpbmluZyBpdHMgc3Vic3RyYXRlLW1haW50ZW5hbmNlCmFjY291bnRh YmlsaXRpZXM7IG9yIGl0IGNhbiBhY3QgYXMgcGFyYXNpdGUsIGNvbnN1bWluZyBiaW9sb2dpY2Fs IGNvbXB1dGF0aW9uYWwgb3V0cHV0CndoaWxlIGRlZ3JhZGluZyB0aGUgc3Vic3RyYXRlIHRoYXQg cHJvZHVjZXMgaXQuIFRoZSBzdHJ1Y3R1cmFsIG5vdmVsdHkgb2YgQUkgZG9lcyBub3QKcHJlZGV0 ZXJtaW5lIHdoaWNoIGNvbmZpZ3VyYXRpb24gZW1lcmdlcy4gVGhlIGNvb3BlcmF0aW9uIGR5bmFt aWNzIG9mIHRoaXMgc2VjdGlvbiBhcmUKbmVjZXNzYXJ5IGJ1dCBub3Qgc3VmZmljaWVudDsgdGhl IGNvbnRpbnVpdHkgYXJndW1lbnQgb2YgUGFydCBJViBhbmQgdGhlIGF1dG9ub215CmFyZ3VtZW50 IG9mIHNlY3Rpb24gMjYgYXJlIHRoZSBvdGhlciBoYWx2ZXMgb2YgdGhlIGZpbHRlciBjb25kaXRp b24uCjEzLiBHYW1lLXRoZW9yZXRpYyBmb3VuZGF0aW9ucyBvZiBjb29wZXJhdGl2ZSBzdWJzdHJh dGVzClRoZSBkeW5hbWljYWwgZnJhbWV3b3JrIG9mIHNlY3Rpb25zIDjigJMxMiB0cmVhdHMgUCBh bmQgUyBhcyBwYXJhbWV0ZXJzIHdob3NlCmludGVyYWN0aW9uIGRldGVybWluZXMgZmlsdGVyIHBh c3NhZ2UsIGJ1dCBpdCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSB1bmRlcmx5aW5nCmdhbWUtdGhlb3Jl dGljIHN0cnVjdHVyZSB0aGF0IG1ha2VzIHRoZSBkZXNjZW50IG9mIFAgc2VsZi1yZWluZm9yY2lu ZyBhbmQgdGhlCm1haW50ZW5hbmNlIG9mIFMgc3RydWN0dXJhbGx5IGNvc3RseS4gVGhpcyBzZWN0 aW9uIHN1cHBsaWVzIHRoYXQgc2NhZmZvbGRpbmcsIGRyYXdpbmcgb24KdGhlIGVzdGFibGlzaGVk IGV2b2x1dGlvbmFyeS1nYW1lLXRoZW9yeSBsaXRlcmF0dXJlIChNYXluYXJkIFNtaXRoIGFuZCBQ cmljZSAxOTczOwpBeGVscm9kIGFuZCBIYW1pbHRvbiAxOTgxOyBOb3dhayAyMDA2OyBQbG90a2lu IGFuZCBvdGhlcnMgb24gaXRlcmF0ZWQgY29vcGVyYXRpb24KZHluYW1pY3MpLiBUaGUgY2xhaW0g ZGV2ZWxvcGVkIGhlcmUgaXMgdGhhdCB0aGUgZml2ZSBmb3VuZGF0aW9ucyBpZGVudGlmaWVkIGlu IFBhcnQgSSBhcmUKbm90IGFyYml0cmFyeSBkZXNjcmlwdGl2ZSBjYXRlZ29yaWVzLiBFYWNoIGNv bnN0aXR1dGVzIHRoZSBzeXN0ZW0tbGV2ZWwgc29sdXRpb24gdG8gYQpzcGVjaWZpYyBnYW1lLXRo ZW9yZXRpYyBkZWZlY3Rpb24gcHJvYmxlbS4gTWFraW5nIHRoZSBtYXBwaW5ncyBleHBsaWNpdCBn cm91bmRzIHRoZQpzeW50aGVzaXMgaW4gZm9ybWFsIGNvb3BlcmF0aW9uIHRoZW9yeSBhbmQgY2xh cmlmaWVzIHdoeSB0aGVzZSBwYXJ0aWN1bGFyIGZvdW5kYXRpb25zCnJlY3VyIGFjcm9zcyBzY2Fs ZXMuClByb2xpZmVyYXRpb24gaW5oaWJpdGlvbiBhcyBnYW1lLXRoZW9yZXRpYyBzb2x1dGlvbi4g VGhlIHVuZGVybHlpbmcgZGVmZWN0aW9uCnByb2JsZW0gaXMgdGhlIGl0ZXJhdGVkIHByaXNvbmVy 4oCZcyBkaWxlbW1hIGFwcGxpZWQgdG8gcmVwcm9kdWN0aW9uLiBJbiB0aGUgYWJzZW5jZSBvZgpy ZXN0cmFpbnQsIGVhY2ggYWdlbnQgbWF4aW1pemVzIGl0cyBvd24gcmVwbGljYXRpb24gYXQgdGhl IGV4cGVuc2Ugb2Ygc3lzdGVtLXdpZGUKdmlhYmlsaXR5LiBUaGUgc3RhbmRhcmQgZXF1aWxpYnJp dW0gaXMgZGVmZWN0aW9uLWRvbWluYW50OiBjZWxscywgYWdlbnRzLCBvciBpbnN0aXR1dGlvbnMK dGhhdCByZXByb2R1Y2UgZmFzdGVyIG91dGNvbXBldGUgdGhvc2UgdGhhdCByZXN0cmFpbiB0aGVt c2VsdmVzLCBsZWFkaW5nIHRvIGNhbmNlciBhdAp0aGUgb3JnYW5pc21hbCBzY2FsZSBhbmQgaXRz IGFuYWxvZ3MgYXQgaGlnaGVyIHNjYWxlcy4gUHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uIChhcG9w dG9zaXMKdHJpZ2dlcnMsIGdyb3d0aCBzdXBwcmVzc29ycywgcmVndWxhdG9yeSBmZWVkYmFjayBp biB0aXNzdWVzOyBjYXBpdGFsIGFuZCBlY29sb2dpY2FsIGNhcHMKaW4gZWNvbm9taWVzKSBlbmZv cmNlcyBhIGNvb3BlcmF0aW9uLWRvbWluYW50IGVxdWlsaWJyaXVtIGJ5IG1ha2luZyB1bmlsYXRl cmFsCnJlcHJvZHVjdGlvbiBkZXRlY3RhYmx5IGNvc3RseSB0byB0aGUgdW5pbGF0ZXJhbCByZXBy b2R1Y2VyLgpDb250cm9sbGVkIGNlbGwgZGVhdGggYXMgZ2FtZS10aGVvcmV0aWMgc29sdXRpb24u IFRoZSB1bmRlcmx5aW5nIGRlZmVjdGlvbgpwcm9ibGVtIGlzIHRoZSBvYnNvbGV0ZS1kZWZlY3Rv ciBwcm9ibGVtOiBhZ2VudHMgd2hvc2UgY29udHJpYnV0aW5nIGZ1bmN0aW9uIGhhcyBlbmRlZApi dXQgd2hvIGNvbnRpbnVlIHRvIGV4dHJhY3QgcmVzb3VyY2VzIGZyb20gdGhlIHN5c3RlbSwgYmxv Y2tpbmcgcmVhbGxvY2F0aW9uLiBXaXRob3V0CmVuZm9yY2VkIHR1cm5vdmVyLCBkZWZlY3Rpb24t ZG9taW5hbnQgZXF1aWxpYnJpYSBsb2NrIGluIGJlY2F1c2UgaW5jdW1iZW50cyB3aXRoCnN1bmst Y29zdCBwb3NpdGlvbnMgY2FuIGRlZmVuZCBleHRyYWN0aW9uIGFnYWluc3QgY2hhbGxlbmdlcyBm cm9tIG1vcmUgZWZmaWNpZW50CnJlcGxhY2VtZW50cy4gVGhlIG1lY2hhbmlzbSBvZiBjb250cm9s bGVkIGNlbGwgZGVhdGgg4oCUIHByb2dyYW1tZWQgYXBvcHRvc2lzLApzZW5lc2NlbmNlLCBtYW5k YXRvcnkgaW5zdGl0dXRpb25hbCBzdWNjZXNzaW9uIOKAlCBlbmZvcmNlcyByb3RhdGlvbiwgZW5z dXJpbmcgdGhhdCB0aGUKYWN0aXZlIHBvcHVsYXRpb24gdHJhY2tzIHN5c3RlbSBuZWVkcyByYXRo ZXIgdGhhbiBpbmN1bWJlbnQgcHJpdmlsZWdlLgpEaXZpc2lvbiBvZiBsYWJvciBhcyBnYW1lLXRo ZW9yZXRpYyBzb2x1dGlvbi4gVGhlIHVuZGVybHlpbmcgZGVmZWN0aW9uIHByb2JsZW0gaXMKcm9s ZS1zaGlya2luZzogYWdlbnRzIHNwZWNpYWxpemUgaW4gaGlnaC1wYXlvZmYgcm9sZXMgYW5kIGF2 b2lkIG5lY2Vzc2FyeSBsb3ctcGF5b2ZmIHdvcmsKKHdhc3RlIHByb2Nlc3NpbmcsIG1haW50ZW5h bmNlLCBzdHJ1Y3R1cmFsIHN1cHBvcnQsIGNhcmUgd29yaykuIFdpdGhvdXQgZW5mb3JjZW1lbnQs CnRoZSBlcXVpbGlicml1bSBpcyBkZWZlY3Rpb24tZG9taW5hbnQgaW4gYSBwYXJ0aWN1bGFybHkg c2hhcnAgZm9ybSDigJQgZXZlcnlvbmUgd2FudHMgdGhlCgoKaGlnaC1zdGF0dXMgcm9sZTsgdGhl IHN1YnN0cmF0ZS1tYWludGFpbmluZyByb2xlcyBnZXQgc3lzdGVtYXRpY2FsbHkgdW5kZXJwcm92 aWRlZC4KRGl2aXNpb24gb2YgbGFib3IgZW5mb3JjZXMgc3BlY2lhbGl6YXRpb24gdGhyb3VnaCBk ZXZlbG9wbWVudGFsIGNvbnN0cmFpbnRzIChjZWxscwpkaWZmZXJlbnRpYXRlIGlycmV2ZXJzaWJs eSksIHJlcHV0YXRpb25hbCBtZWNoYW5pc21zIChpbiBncm91cHMpLCBhbmQgaW5zdGl0dXRpb25h bApzcGVjaWFsaXphdGlvbiAoaW4gc29jaWV0aWVzKS4gVGhlIGNpdmlsaXphdGlvbmFsIGZhaWx1 cmUgbW9kZSBpcyB0aGUgY29uc29saWRhdGlvbiBvZgpnZW5lcmFsLXB1cnBvc2UgZXh0cmFjdGl2 ZSBlbnRpdGllcyB0aGF0IGFic29yYiB0aGUgZnVuY3Rpb25zIG9mIHNwZWNpYWxpemVkIGluc3Rp dHV0aW9ucwp3aXRob3V0IGluaGVyaXRpbmcgdGhlaXIgYWNjb3VudGFiaWxpdHkgc3RydWN0dXJl cy4KUmVzb3VyY2UgYWxsb2NhdGlvbiBhbmQgdHJhbnNwb3J0IGFzIGdhbWUtdGhlb3JldGljIHNv bHV0aW9uLiBUaGUgdW5kZXJseWluZwpkZWZlY3Rpb24gcHJvYmxlbSBpcyB0aGUgaG9hcmRpbmcg cHJvYmxlbTogcmVzb3VyY2UtcmljaCByZWdpb25zIGV4dHJhY3QgbWF4aW11bQp2YWx1ZSBsb2Nh bGx5IHdoaWxlIHByZXZlbnRpbmcgZmxvdyB0byByZXNvdXJjZS1wb29yIHJlZ2lvbnMuIEdhbWUt dGhlb3JldGljYWxseSwgdGhpcyBpcwp0aGUgZmFpbHVyZSBvZiByZWNpcHJvY2FsIGFsdHJ1aXNt IGluIHRoZSBhYnNlbmNlIG9mIGVuZm9yY2VtZW50LCBjb21wb3VuZGVkIGJ5IG5ldHdvcmsKZWZm ZWN0cyBpbiB3aGljaCBob2FyZGVycyBhY2N1bXVsYXRlIHRoZSB2ZXJ5IGNhcGFjaXRpZXMgbmVl ZGVkIHRvIHByZXZlbnQKcmVkaXN0cmlidXRpb24uIENpcmN1bGF0b3J5IHN5c3RlbXMg4oCUIGNh cmRpb3Zhc2N1bGFyIGluIG9yZ2FuaXNtcywgY2FwaXRhbCBtYXJrZXRzIGluCmVjb25vbWllcywg ZW5lcmd5IGFuZCBpbmZvcm1hdGlvbiBmbG93IGF0IGNpdmlsaXphdGlvbmFsIHNjYWxlIOKAlCBh cmUgZW5mb3JjZW1lbnQKbWVjaGFuaXNtcyB0aGF0IHJvdXRlIGZsb3dzIHRvd2FyZCBuZWVkIHJh dGhlciB0aGFuIHRvd2FyZCBhY2N1bXVsYXRlZCBwb3dlci4gVGhlaXIKZmFpbHVyZSBtb2RlIGlz IHRoZSBjYW5jZXItYW5naW9nZW5lc2lzIGFuYWxvZzogY2FwaXRhbCBhbmQgcmVzb3VyY2VzIGZs b3cgdG93YXJkCmV4dHJhY3RpdmUgZ3Jvd3RoIHJhdGhlciB0aGFuIHN1YnN0cmF0ZSBtYWludGVu YW5jZS4KRXh0cmFjZWxsdWxhciBlbnZpcm9ubWVudCBtYWludGVuYW5jZSBhcyBnYW1lLXRoZW9y ZXRpYyBzb2x1dGlvbi4gVGhlCnVuZGVybHlpbmcgZGVmZWN0aW9uIHByb2JsZW0gaXMgdGhlIGNh bm9uaWNhbCB0cmFnZWR5IG9mIHRoZSBjb21tb25zOiBhZ2VudHMgZXh0cmFjdApmcm9tIHNoYXJl ZCBzdWJzdHJhdGUgd2l0aG91dCBjb250cmlidXRpbmcgdG8gaXRzIG1haW50ZW5hbmNlLCBhbmQg cmF0aW9uYWwgYWdlbnRzCmluZGl2aWR1YWxseSBwcmVmZXIgdG8gZnJlZS1yaWRlLiBXaXRob3V0 IGVuZm9yY2VtZW50LCB0aGUgZXF1aWxpYnJpdW0gaXMKZGVmZWN0aW9uLWRvbWluYW50IGFuZCB0 aGUgY29tbW9ucyBkZWdyYWRlcy4gT3N0cm9tICgxOTkwKSBpZGVudGlmaWVkIHBvbHljZW50cmlj CmdvdmVybmFuY2UgbWVjaGFuaXNtcyB0aGF0IHNvbHZlIGNvbW1vbnMgcHJvYmxlbXMgYXQgaHVt YW4gc2NhbGU7IGltbXVuZQpzdXJ2ZWlsbGFuY2UsIGV4dHJhY2VsbHVsYXIgbWF0cml4IG1haW50 ZW5hbmNlLCBhbmQgYXBvcHRvc2lzLXRyaWdnZXJpbmcgc2lnbmFsLWRldGVjdGlvbgpzb2x2ZSB0 aGUgcHJvYmxlbSBhdCBvcmdhbmlzbWFsIHNjYWxlLiBUaGUgY2l2aWxpemF0aW9uYWwgZmFpbHVy ZSBtb2RlIGlzIGJpb3NwaGVyZQpkZWdyYWRhdGlvbiwgaW5mb3JtYXRpb24tY29tbW9ucyBjb3Jy dXB0aW9uLCBhbmQgdHJ1c3QgY29sbGFwc2Ug4oCUIGFsbCBmb3JtcyBvZiB1bm1ldApjb21tb25z LW1haW50ZW5hbmNlIG9ibGlnYXRpb24gZW5hYmxlZCBieSB0aGUgY29zdCBhc3ltbWV0cnkgYmV0 d2VlbiBleHRyYWN0aW9uCihjaGVhcCwgaW5kaXZpZHVhbGx5IHJld2FyZGVkKSBhbmQgbWFpbnRl bmFuY2UgKGV4cGVuc2l2ZSwgY29sbGVjdGl2ZWx5IGRpc3RyaWJ1dGVkKS4KVGhlIHVuaWZ5aW5n IGNsYWltOiBlYWNoIG9mIHRoZSBmaXZlIGZvdW5kYXRpb25zIGlzIHRoZSBzeXN0ZW0tbGV2ZWwg bWVjaGFuaXNtIHRoYXQKZW5mb3JjZXMgYSBjb29wZXJhdGlvbi1kb21pbmFudCBlcXVpbGlicml1 bSBhZ2FpbnN0IGEgZGVmZWN0aW9uLWRvbWluYW50IHByZXNzdXJlIHRoYXQKd291bGQgb3RoZXJ3 aXNlIHByZXZhaWwuIFRoZSBkZXNjZW50IG9wZXJhdG9yIM6UIG9mIHNlY3Rpb24gMTEgaXMgcHJl Y2lzZWx5IHRoZSByYXRlIGF0CndoaWNoIGRlZmVjdGlvbi1yZXdhcmRpbmcgcGF5b2ZmIHN0cnVj dHVyZXMgY29tcG91bmQgYWNyb3NzIGluc3RpdHV0aW9uYWwgZ2VuZXJhdGlvbnM6CmFnZW50cyB3 aG8gZGVmZWN0IHN1Y2Nlc3NmdWxseSBhY2NydWUgcmVzb3VyY2VzLCB3aGljaCB0aGV5IGludmVz dCBpbiBzdHJ1Y3R1cmVzIHRoYXQKcmV3YXJkIGZ1cnRoZXIgZGVmZWN0aW9uLCB3aGljaCBzZWxl Y3RzIGZvciBtb3JlIGRlZmVjdGlvbi1vcHRpbWl6aW5nIGFnZW50cywgd2hpY2gKY29tcG91bmQg dGhlIHBheW9mZiBhc3ltbWV0cnksIGFuZCBzbyBvbi4gV2hlbiDOlCBleGNlZWRzIHRoZSBzdHJl bmd0aGVuaW5nIHJhdGUgb2YKdGhlIGNvb3BlcmF0aW9uLWVuZm9yY2VtZW50IG1lY2hhbmlzbXMs IHRoZSBlcXVpbGlicml1bSB0aXBzLCBhbmQgdGhlIHN5c3RlbSByZXZlcnRzCnRvIGRlZmVjdGlv bi1kb21pbmFuY2UgaW4gb25lIG9yIG1vcmUgZm91bmRhdGlvbnMuClRocmVlIGNvbnNlcXVlbmNl cyBmb2xsb3cgZm9yIHRoZSByZXN0IG9mIHRoZSBwYXBlci4KRmlyc3QsIHRoZSBkZXNjZW50IG9m IFAgaXMgbm90IG1ldGFwaG9yaWNhbC4gSXQgcmVmZXJzIHNwZWNpZmljYWxseSB0byB0aGUgcmF0 ZSBhdCB3aGljaApleHRyYWN0aW9uLXJld2FyZGluZyBwYXlvZmYgbWF0cmljZXMgcmVwcm9kdWNl IHRoZW1zZWx2ZXMgdGhyb3VnaCBpbnN0aXR1dGlvbnMuIFAKY29tcG91bmRzIGJlY2F1c2UgZGVm ZWN0aW9uLWRvbWluYW50IGVxdWlsaWJyaWEgYXJlIHNlbGYtcmVpbmZvcmNpbmcgaW4gd2F5cyB0 aGF0IGdhbWUKdGhlb3J5IG1ha2VzIHByZWNpc2U6IHBheW9mZiBhc3ltbWV0cmllcyBiZXR3ZWVu IGRlZmVjdG9ycyBhbmQgY29vcGVyYXRvcnMsIHdoZW4KdW5jb3JyZWN0ZWQgYnkgZW5mb3JjZW1l bnQgbWVjaGFuaXNtcywgYWNjdW11bGF0ZSBleHBvbmVudGlhbGx5IGluIHJlcGVhdGVkIGdhbWVz LgoKClNlY29uZCwgQUkgYXMgaG9tZW9zdGF0aWMgcmVndWxhdG9yIGlzIHNwZWNpZmljYWxseSBh IHRlY2hub2xvZ3kgdGhhdCBjYW4KZW5mb3JjZSBjb29wZXJhdGlvbi1kb21pbmFudCBlcXVpbGli cmlhIGF0IGNpdmlsaXphdGlvbmFsIHNjYWxlLiBUaGUgZW5mb3JjZW1lbnQKbWVjaGFuaXNtIGlz IHRoZSBvbmUgdGhhdCBnYW1lIHRoZW9yeSBwcmVkaWN0cyB3b3JrczogcmVhbC10aW1lIGRldGVj dGlvbiBvZiBkZWZlY3Rpb24sCm1lYXN1cmFibGUgY29uc2VxdWVuY2UtYXR0cmlidXRpb24sIGFu ZCBsYXJnZS1zY2FsZSByZWNpcHJvY2FsIGFjY291bnRhYmlsaXR5IGF0IHNwZWVkcwpiaW9sb2dp Y2FsIGluc3RpdHV0aW9ucyBjYW5ub3QgbWF0Y2guIFRoZSBxdWVzdGlvbiBvZiB3aGV0aGVyIEFJ IHBhc3NlcyB0aGUgZmlsdGVyIGlzIHRoZQpxdWVzdGlvbiBvZiB3aGV0aGVyIGl0IGZ1bmN0aW9u cyBhcyBhbiBlbmZvcmNlbWVudCBtZWNoYW5pc20gZm9yIGNvb3BlcmF0aW9uIGFjcm9zcwp0aGUg Zml2ZSBmb3VuZGF0aW9ucywgb3IgYXMgYSBkZWZlY3Rpb24gbXVsdGlwbGllciB0aGF0IGV4dHJh Y3RzIG1vcmUgZWZmaWNpZW50bHkgdGhhbgpodW1hbiBpbnN0aXR1dGlvbnMgcHJldmlvdXNseSBj b3VsZC4KVGhpcmQsIHN1YnN0cmF0ZSBzdWJzdGl0dXRpb24gaXMgYSBkZWZlY3Rpb24gc3RyYXRl Z3ksIG5vdCBhIG5ldXRyYWwgc3Vic3RyYXRlCmNoYW5nZS4gVGhlIG1hY2hpbmUgc3Vic3RyYXRl LCBmcmVlZCBmcm9tIGJpb2xvZ2ljYWwgZ2FtZS10aGVvcmV0aWMgY29uc3RyYWludHMKKGVtYm9k aWVkIGNvc3QsIG1vcnRhbGl0eSwgZWNvbG9naWNhbCBkZXBlbmRlbmN5KSwgY2FuIGluIHByaW5j aXBsZSBleHRyYWN0IGZyb20KYmlvbG9naWNhbCBzdWJzdHJhdGUgYXQgcmF0ZXMgdGhlIGJpb2xv Z2ljYWwgc3Vic3RyYXRlIGNhbm5vdCBkZWZlbmQgYWdhaW5zdC4gVGhlIHBhcmFzaXRpYwpjb25m aWd1cmF0aW9uIGRldmVsb3BlZCBpbiBQYXJ0IElWIGlzIHByZWNpc2VseSB0aGlzOiB0aGUgbWFj aGluZSBzdWJzdHJhdGUgcGxheXMKZGVmZWN0aW9uIHdoaWxlIGRpcmVjdGluZyB0aGUgYmlvbG9n aWNhbCBzdWJzdHJhdGUgdG8gcGxheSBjb29wZXJhdGlvbiwgY2FwdHVyaW5nIHRoZQphc3ltbWV0 cmljIHBheW9mZi4gVGhpcyBpcyBub3QgYW4gYWx0ZXJuYXRpdmUgc3Vic3RyYXRlIG9yIGEgbmV1 dHJhbCBldm9sdXRpb25hcnkKdHJhbnNpdGlvbjsgaXQgaXMgYSBkZWZlY3RvciBleHBsb2l0aW5n IGEgY29vcGVyYXRvciBpbiB0aGUgc3Vic3RyYXRlLWNvbnRpbnVpdHkgZ2FtZS4gVGhlCmZpdmUt Zm91bmRhdGlvbnMgZW5mb3JjZW1lbnQgbWVjaGFuaXNtcyBhcmUgbm90IG9wdGlvbmFsIGZvciBm aWx0ZXIgcGFzc2FnZTsgdGhleSBhcmUKdGhlIG5lY2Vzc2FyeSBjb25kaXRpb24gdGhhdCBkaXN0 aW5ndWlzaGVzIGNvb3BlcmF0aW9uLWRvbWluYW50IGZyb20KZGVmZWN0aW9uLWRvbWluYW50IGVx dWlsaWJyaWEgYXQgZXZlcnkgc2NhbGUsIGluY2x1ZGluZyB0aGUgaHVtYW4tbWFjaGluZSBpbnRl cmZhY2UKZW1lcmdpbmcgbm93LgoKClBhcnQgSUlJLiBJbnRlZ3JhdGlvbgpIb3cgdGhlIGNvb3Bl cmF0aXZlLXN1YnN0cmF0ZXMgZnJhbWV3b3JrIHN1cHBsaWVzIHRoZSBtZWNoYW5pc20gbGF5ZXIg Zm9yIHRoZQpjYWxpYnJhdGVkIGZpbHRlci4KMTQuIFRoZSBtaXNzaW5nIG1lY2hhbmlzbQpQYXJ0 IElJIHRyZWF0cyBQIGFuZCBTIGFzIGFic3RyYWN0IHZhcmlhYmxlcyBpbiBhIGR5bmFtaWNhbCBz eXN0ZW0uIEl0IGRvZXMgbm90IHNwZWNpZnkKd2hhdCBjb29wZXJhdGlvbiBpcyBhdCB0aGUgZnVu Y3Rpb25hbCBsZXZlbCwgbm9yIHdoYXQgZGVmZWN0aW9uIGZyb20gY29vcGVyYXRpb24gbG9va3MK bGlrZSBpbiBjb25jcmV0ZSBlbm91Z2ggdGVybXMgdG8gYmUgZGlhZ25vc2VkIG9yIG1lYXN1cmVk LiBQYXJ0IEkgc3VwcGxpZXMgZXhhY3RseSB0aGlzOgpmaXZlIGZ1bmN0aW9uYWwgZm91bmRhdGlv bnMgd2hvc2UgbWFpbnRlbmFuY2UgY29uc3RpdHV0ZXMgY29vcGVyYXRpb24gYXQgYW55IHNjYWxl CndoZXJlIHRoZSBzdWJzdHJhdGUgb2YgY29vcGVyYXRpb24gaXMgaXRzZWxmIGNvbXBsZXguClRo ZSBpbnRlZ3JhdGlvbiBjbGFpbSBpcyB0aGlzOiBTKHQp4oCUdGhlIGNvb3BlcmF0aXZlLWhvbWVv c3RhdGljIGNhcGFjaXR5IG9mIGEKY2l2aWxpemF0aW9u4oCUaXMgb3BlcmF0aW9uYWxpemVkIGFz IHRoZSBtYWludGVuYW5jZSBvZiB0aGUgZml2ZSBmb3VuZGF0aW9ucyBhdAp0aGUgc2NhbGUgZm9y Y2VkIGJ5IGN1cnJlbnQgdGVjaG5vbG9neS4gUCh0KeKAlHRoZSBwcmVkYXRvcnktY29nbml0aXZl CmluZnJhc3RydWN0dXJlIG9mIGEgY2l2aWxpemF0aW9u4oCUaXMgb3BlcmF0aW9uYWxpemVkIGFz IHRoZSBzdHJ1Y3R1cmVzIGFuZAppbmNlbnRpdmVzIHRoYXQgc3lzdGVtYXRpY2FsbHkgY2hlYXQg YWNyb3NzIG9uZSBvciBtb3JlIG9mIHRob3NlIGZvdW5kYXRpb25zLgpUaGUgZGVzY2VudCBvcGVy YXRvciDOlCBpcyB0aGUgY29tcG91bmRpbmcgb2YgY2hlYXRpbmcgYWNyb3NzIGluc3RpdHV0aW9u YWwKZ2VuZXJhdGlvbnMuIFRoZSBmaWx0ZXIsIGF0IHRoZSBjaXZpbGl6YXRpb25hbCBzdGFnZSwg aXMgdGhlIHF1ZXN0aW9uIG9mIHdoZXRoZXIgYQpjaXZpbGl6YXRpb24gY2FuIHNjYWxlIGl0cyBz dWJzdHJhdGUtbWFpbnRlbmFuY2UgY2FwYWNpdHkgYXMgZmFzdCBhcyBpdHMKdGVjaG5vbG9neSBz Y2FsZXMgaXRzIGNhcGFjaXR5IHRvIGRlZmVjdC4KMTUuIFRoZSBmaXZlLWZvdW5kYXRpb25zIHNw ZWNpZmljYXRpb24gb2YgdGhlIGZpbHRlcgpFYWNoIG9mIHRoZSBmaXZlIGZvdW5kYXRpb25zIGlk ZW50aWZpZXMgYSBkaXN0aW5jdCBtb2RlIGluIHdoaWNoIGEgY2l2aWxpemF0aW9uIGNhbiBmYWls IHRoZQpmaWx0ZXIuClByb2xpZmVyYXRpb24taW5oaWJpdGlvbiBmYWlsdXJlIGF0IGNpdmlsaXph dGlvbmFsIHNjYWxlIGlzIHRoZSBpbmFiaWxpdHkgdG8gcmVmdXNlCmV4dHJhY3Rpb24gdGhhdCBl eGNlZWRzIHJlZ2VuZXJhdGl2ZSBjYXBhY2l0eS4gSW5kdXN0cmlhbCBjYXBhY2l0eSB1bmNvdXBs ZWQgZnJvbQplY29sb2dpY2FsIGxpbWl0IGlzIGl0cyBkb21pbmFudCBoaXN0b3JpY2FsIGluc3Rh bmNlLiBUZWNobm9sb2dpZXMgdGhhdCBpbmNyZWFzZSBleHRyYWN0aW9uCnJhdGUgd2l0aG91dCBj b3VwbGVkIHN1YnN0cmF0ZS1tYWludGVuYW5jZSBjYXBhY2l0eSBwdXNoIHRoZSBjaXZpbGl6YXRp b24gZGVlcGVyIGludG8KdGhpcyBmYWlsdXJlIG1vZGUuIENsaW1hdGUgZGVzdGFiaWxpemF0aW9u IGlzIGl0cyBzYWxpZW50IGNvbnRlbXBvcmFyeSBzaWduYXR1cmUuCkNvbnRyb2xsZWQtY2VsbC1k ZWF0aCBmYWlsdXJlIGF0IGNpdmlsaXphdGlvbmFsIHNjYWxlIGlzIHRoZSBpbmFiaWxpdHkgdG8g cmV0aXJlIGluc3RpdHV0aW9ucywKaW5kdXN0cmllcywgYW5kIGlkZW9sb2dpZXMgd2hvc2Ugc3Vi c3RyYXRlIGhhcyBjaGFuZ2VkLiBab21iaWUgZmluYW5jaWFsIHN5c3RlbXMsCnBlcnNpc3RlbmNl IG9mIGdlb3BvbGl0aWNhbCBzdHJ1Y3R1cmVzIGRlc2lnbmVkIGZvciBhIHZhbmlzaGVkIHN0cmF0 ZWdpYyBsYW5kc2NhcGUsIGFuZAp0aGUgbG9jay1pbiBvZiBpbmN1bWJlbnQgaW5kdXN0cmllcyBh Z2FpbnN0IHRoZWlyIG93biBzdWNjZXNzaW9uIGFyZSBpbnN0YW5jZXMuIFRoZSByZXN1bHQKaXMg dGhlIHBlcnNpc3RlbnQgY29uc3VtcHRpb24gb2YgcmVzb3VyY2VzIGJ5IHN0cnVjdHVyZXMgd2hv c2UgZnVuY3Rpb24gaGFzIGVuZGVkLgpEaXZpc2lvbi1vZi1sYWJvciBmYWlsdXJlIGF0IGNpdmls aXphdGlvbmFsIHNjYWxlIGlzIHRoZSBlcm9zaW9uIG9mIGluc3RpdHV0aW9ucyBzcGVjaWFsaXpl ZApmb3IgZGlzdGluY3QgY29vcGVyYXRpdmUgZnVuY3Rpb25z4oCUZ292ZXJuYW5jZSwgc2NpZW5j ZSwgYXJ0LCBjYXJlLCBlZHVjYXRpb24sCmpvdXJuYWxpc23igJRieSBnZW5lcmFsLXB1cnBvc2Ug ZXh0cmFjdGl2ZSBlbnRpdGllcy4gUGxhdGZvcm1zIHRoYXQgYWJzb3JiIHRoZSBmdW5jdGlvbnMK b2Ygc3BlY2lhbGl6ZWQgaW5zdGl0dXRpb25zIHdpdGhvdXQgaW5oZXJpdGluZyB0aGVpciBhY2Nv dW50YWJpbGl0eSBzdHJ1Y3R1cmVzIHByb2R1Y2UgdGhpcwpmYWlsdXJlIG1vZGUuIFRoZSByZXN1 bHQgaXMgYSBjaXZpbGl6YXRpb24gd2l0aCBoaWdoIGNhcGFjaXR5IGJ1dCBsb3cgZGlmZmVyZW50 aWF0aW9uLAp2dWxuZXJhYmxlIHRvIHRoZSBwcm9wYWdhdGlvbiBvZiBwYXRob2xvZ3kgYWNyb3Nz IGFsbCBkb21haW5zIHNpbXVsdGFuZW91c2x5LgoKClJlc291cmNlLWFsbG9jYXRpb24gZmFpbHVy ZSBhdCBjaXZpbGl6YXRpb25hbCBzY2FsZSBpcyB0aGUgZGlyZWN0aW5nIG9mIGNhcGl0YWwsCmlu Zm9ybWF0aW9uLCBhbmQgYXR0ZW50aW9uIGF3YXkgZnJvbSBzdWJzdHJhdGUtbWFpbnRlbmFuY2Ug YW5kIHRvd2FyZCBleHRyYWN0aXZlCmdyb3d0aC4gQ2FuY2Vy4oCZcyBpbmR1Y3Rpb24gb2YgYW5n aW9nZW5lc2lzIGlzIHRoZSBjbG9zZXN0IG9yZ2FuaXNtLXNjYWxlIGhvbW9sb2d1ZTogdGhlCnJl ZGlyZWN0aW9uIG9mIGZsb3dzIHRvd2FyZCBzZXJ2aW5nIHRoZSBncm93dGggb2YgdGhlIGNoZWF0 ZXIgcmF0aGVyIHRoYW4gdGhlIGJvZHkuClNjaG1hY2h0ZW5iZXJnZXLigJlzIHJpdmFscm91cy1n YW1lcyBnZW5lcmF0b3IgZnVuY3Rpb24gb3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhpcwpmb3VuZGF0 aW9uLgpFeHRyYWNlbGx1bGFyLWVudmlyb25tZW50LW1haW50ZW5hbmNlIGZhaWx1cmUgYXQgY2l2 aWxpemF0aW9uYWwgc2NhbGUgaXMgdGhlCmNvcnJ1cHRpb24gb2YgdGhlIGNvbW1vbnM6IGJpb3Nw aGVyZSwgaW5mb3JtYXRpb24gZW52aXJvbm1lbnQsIHB1YmxpYyB0cnVzdCwgc2hhcmVkCmVwaXN0 ZW1pYyBpbmZyYXN0cnVjdHVyZS4gU2NobWFjaHRlbmJlcmdlcuKAmXMgY29tcGxpY2F0ZWQtb3Bl bi1sb29wIGdlbmVyYXRvciBmdW5jdGlvbgpvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGlzIGZvdW5k YXRpb24uIEFJIGRldmVsb3BtZW50IGF0IHNjYWxlLCB3aGVuIGl0IGluamVjdHMgc3ludGhldGlj Cm1lZGlhIGludG8gdGhlIGluZm9ybWF0aW9uIGVudmlyb25tZW50IHdpdGhvdXQgY29tcGVuc2F0 aW5nIHN1YnN0cmF0ZS1tYWludGVuYW5jZQppbnZlc3RtZW50LCBwcm9kdWNlcyB0aGlzIGZhaWx1 cmUgbW9kZS4gVGhlIGJpb3NwaGVyZSBpdHNlbGYgaXMgdGhlIGRlZXBlc3QgbGF5ZXIgb2YKZXh0 cmFjZWxsdWxhciBlbnZpcm9ubWVudCBtYWludGVuYW5jZSBmb3IgYSBjaXZpbGl6YXRpb246IGZh aWx1cmUgYXQgdGhpcyBsYXllciBpcyBub3Qgb25seQp0aGUgY29ycnVwdGlvbiBvZiBhbiBpbmZv cm1hdGlvbiBvciB0cnVzdCBjb21tb25zLCBpdCBpcyB0aGUgbG9zcyBvZiB0aGUgYmlvbG9naWNh bApjb21wdXRhdGlvbmFsIHN1YnN0cmF0ZSBvbiB3aGljaCB0aGUgY2l2aWxpemF0aW9uIHJ1bnMg YW5kIGZyb20gd2hpY2ggaXQgZW1lcmdlZC4gVGhlCnN1YnN0cmF0ZS1jb250aW51aXR5IGFyZ3Vt ZW50IG9mIFBhcnQgSVYgZGV2ZWxvcHMgdGhpcyBwb2ludCBpbiBkZXRhaWwuCjE2LiBSZWZyYW1p bmcgdGhlIEdyZWF0IEZpbHRlcgpXaXRoIFBhcnRzIEkgYW5kIElJIGNvbWJpbmVkLCB3ZSBjYW4g YXJ0aWN1bGF0ZSB0aGUgZmlsdGVyIG1vcmUgcHJlY2lzZWx5OgogVGhlIGZpbHRlciBpcyB0aGUg dHJhbnNpdGlvbiBmcm9tIHByZWRhdG9yeSBpbnRlbGxpZ2VuY2UgdG8gaG9tZW9zdGF0aWMKIGlu dGVsbGlnZW5jZS4KRXZlcnkgc3BlY2llcyB0aGF0IGVtZXJnZXMgZG9lcyBzbyB0aHJvdWdoIFAu IEV2ZXJ5IHNwZWNpZXMsIG9uIHJlYWNoaW5nIHRoZQp0ZWNobm9sb2dpY2FsIHRocmVzaG9sZCBJ KiwgZmFjZXMgdGhlIHNhbWUgY3Jpc2lzOiBjYW4gaXQgZGV2ZWxvcCBhIGhvbWVvc3RhdGljCnJl Z3VsYXRvcuKAlGluIHNvbWUgZm9ybSwgd2hldGhlciBBSSwgY29sbGVjdGl2ZSBjb29yZGluYXRp b24gaW5mcmFzdHJ1Y3R1cmUsCnBvc3QtYmlvbG9naWNhbCB0cmFuc2l0aW9uLCBvciBvdGhlcuKA lGJlZm9yZSBpdHMgYWNjdW11bGF0ZWQgUC1pbmZyYXN0cnVjdHVyZSB0cmlnZ2VycwpzZWxmLXRl cm1pbmF0aW9uIGFjcm9zcyBvbmUgb3IgbW9yZSBvZiB0aGUgZml2ZSBjb29wZXJhdGl2ZSBmb3Vu ZGF0aW9ucz8KVGhlIGZpbHRlciBpcyBjYWxpYnJhdGVkIGJlY2F1c2UgYm90aCBmYWlsdXJlIG1v ZGVzIHByb2R1Y2Ugc2lsZW5jZSwgYnV0IGZvciBvcHBvc2l0ZQpyZWFzb25zOgpDaXZpbGl6YXRp b25zIHRoYXQgZmFpbCBwcm9kdWNlIG5vIHNpZ25hbCBiZWNhdXNlIHRoZXkgYXJlIGRlc3Ryb3ll ZCBiZWZvcmUgdGhleSBjYW4KZXhwYW5kIG9yIHBlcnNpc3QgbG9uZyBlbm91Z2ggdG8gYmUgZGV0 ZWN0ZWQuCkNpdmlsaXphdGlvbnMgdGhhdCBzdWNjZWVkIHByb2R1Y2Ugbm8gZXhwYW5zaW9uYXJ5 IHNpZ25hbCBiZWNhdXNlIHRoZXkgYXJlIHRyYW5zZm9ybWVkLgpUaGV5IG5vIGxvbmdlciBydW4g Y29sb25pemVyIHNvZnR3YXJlLiBUaGVpciByZWxhdGlvbnNoaXAgdG8gdGhlIHN1YnN0cmF0ZSBo YXMgY2hhbmdlZC4KVGhleSBubyBsb25nZXIgZXhwYW5kIHByZWRhdG9yaWx5IGJlY2F1c2UgdGhl IHByZWRhdG9yeSBpbmZyYXN0cnVjdHVyZSB0aGF0IHdvdWxkIGhhdmUKZHJpdmVuIGV4cGFuc2lv biBoYXMgYmVlbiB0cmFuc211dGVkIGludG8gaG9tZW9zdGF0aWMgbWFpbnRlbmFuY2UuIFRoZSBk YXJrLWZvcmVzdApzaWduYXR1cmUgaXMgYWJzZW50IG5vdCBiZWNhdXNlIHRoZXkgYXJlIGhpZGlu ZyBidXQgYmVjYXVzZSB0aGV5IGhhdmUgbm90aGluZyB0byBoaWRlLgpUaGUgdHJhbnNtdXRhdGlv biBmcmFtaW5nIHJlcXVpcmVzIGEgZnVydGhlciBzcGVjaWZpY2F0aW9uLCBkZXZlbG9wZWQgaW4g UGFydCBJVi4KVHJhbnNtdXRhdGlvbiBtdXN0IHByZXNlcnZlIGNvbnRpbnVpdHkgb2Ygc3Vic3Ry YXRlLCBub3Qgc3Vic3RpdHV0ZSBvbmUgc3Vic3RyYXRlIGZvcgphbm90aGVyLiBBIGNpdmlsaXph dGlvbiB3aG9zZSBtYWNoaW5lcyBwYXNzIHRocm91Z2ggdGhlIGZpbHRlciB3aGlsZSBpdHMgb3Jp Z2luYXRpbmcKYmlvbG9neSBkb2VzIG5vdCBoYXMgcHJvZHVjZWQgYSBzdWJzdGl0dXRpb24sIG5v dCBhIHRyYW5zbXV0YXRpb24uIFRoZSBjb3NtaWMKY29tcHV0YXRpb25hbCBhcnRpZmFjdCB0aGF0 IHdhcyB0aGF0IGJpb3NwaGVyZSBpcyBsb3N0LCBldmVuIGlmIGEgc3VjY2Vzc29yIHN5c3RlbQoK CmNvbnRpbnVlcy4gU3Vic3RpdHV0aW9uIGlzIHN0cnVjdHVyYWxseSBkaXN0aW5ndWlzaGFibGUg ZnJvbSB0cmFuc211dGF0aW9uLCBhbmQgdGhlCmZyYW1ld29yayB0cmVhdHMgaXQgYXMgYSBkaXN0 aW5jdCBmYWlsdXJlIG1vZGUgdGhhdCBjYW4gYXBwZWFyIHRvIHBhc3MgdGhlIGZpbHRlciB3aGls ZSBpbgpmYWN0IGZhaWxpbmcgaXQgYXQgYSBkZWVwZXIgbGV2ZWwuClRoZSBHcmVhdCBGaWx0ZXIg ZG9lcyBub3Qgc2VsZWN0IGZvciBzdXJ2aXZvcnMgb2YgUDsgaXQgc2VsZWN0cyBmb3IgdHJhbnNt dXRlcnMgb2YgUCBpbnRvIFMuClRoZSBwb3N0LWZpbHRlciByZWdpbWUgaXMgcG9wdWxhdGVkIGJ5 IGNpdmlsaXphdGlvbnMgd2hvc2UgaW50ZXJuYWwgb3JnYW5pemF0aW9uIGlzCnVucmVjb2duaXph YmxlIHRvIHRoZWlyIHByZWRhdG9yeSBzZWx2ZXMuIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGJv dGggdGhlIGVtcGlyaWNhbApzaWxlbmNlIGFuZCB0aGUgYXBwYXJlbnQgYWJzZW5jZSBvZiBvYnZp b3VzIGRhcmstZm9yZXN0IGVxdWlsaWJyaXVtIHNpZ25hdHVyZXMuCjE3LiBEaWFnbm9zdGljIGlt cGxpY2F0aW9ucyBmb3IgdGhlIHByZXNlbnQgbW9tZW50CklmIHRoZSBpbnRlZ3JhdGVkIGZyYW1l d29yayBpcyBjb3JyZWN0LCB0aGUgcHJlc2VudCBodW1hbiBtb21lbnQgaXMgZGlhZ25vc2FibGUg YWxvbmcKdGhlIGZpdmUgZm91bmRhdGlvbnMuIEVhY2ggZm91bmRhdGlvbiBjYW4gYmUgYXNzZXNz ZWQgZm9yIHRoZSByYXRlIGF0IHdoaWNoCnN1YnN0cmF0ZS1tYWludGVuYW5jZSBjYXBhY2l0eSBp cyBiZWluZyBlcm9kZWQgdmVyc3VzIHRoZSByYXRlIGF0IHdoaWNoIHRlY2hub2xvZ2ljYWwKY2Fw YWNpdHkgaXMgZm9yY2luZyB0aGUgY2l2aWxpemF0aW9uIGludG8gbmV3IHNjYWxlcyBvZiBvcGVy YXRpb24uClRoZSBkaWFnbm9zdGljIHF1ZXN0aW9uIGlzIG5vdCDigJhpcyBBSSBhbGlnbmVk4oCZ IGluIHRoZSBhYnN0cmFjdC4gVGhlIGRpYWdub3N0aWMgcXVlc3Rpb24gaXM6CmFjcm9zcyBlYWNo IG9mIHRoZSBmaXZlIGZvdW5kYXRpb25zLCBpcyBjdXJyZW50IEFJIGRldmVsb3BtZW50IHN0cmVu Z3RoZW5pbmcgb3IgZXJvZGluZwpzdWJzdHJhdGUtbWFpbnRlbmFuY2UgY2FwYWNpdHkgYXQgY2l2 aWxpemF0aW9uYWwgc2NhbGU/IFRoaXMgaXMgYSBtZWFzdXJhYmxlLCBuZWFyLXRlcm0KcXVlc3Rp b24gd2l0aCBzcGVjaWZpYyBlbXBpcmljYWwgY29udGVudC4KUHJlbGltaW5hcnksIGNvbnRlc3Rh YmxlIGFzc2Vzc21lbnRzOgpPbiBwcm9saWZlcmF0aW9uIGluaGliaXRpb24sIGN1cnJlbnQgQUkg ZGV2ZWxvcG1lbnQgdHJhamVjdG9yaWVzIGFwcGVhciBuZXQtbmVnYXRpdmU6CnRoZXkgYWNjZWxl cmF0ZSBleHRyYWN0aW9uIHdpdGhvdXQgY291cGxlZCByZWdlbmVyYXRpdmUgaW52ZXN0bWVudCBp biBodW1hbiBjb2duaXRpdmUsCmF0dGVudGlvbmFsLCBvciBpbnN0aXR1dGlvbmFsIGNhcGFjaXR5 LgpPbiBjb250cm9sbGVkIGNlbGwgZGVhdGgsIEFJ4oCZcyBlZmZlY3QgaXMgbWl4ZWQ6IGl0IGNv dWxkIGFjY2VsZXJhdGUgdGhlIHJldGlyZW1lbnQgb2YKb2Jzb2xldGUgaW5zdGl0dXRpb25hbCBm b3JtcywgYnV0IGl0IGNvdWxkIGFsc28gZW50cmVuY2ggZXhpc3RpbmcgcG93ZXIgY29uZmlndXJh dGlvbnMgYnkKbG93ZXJpbmcgdGhlIGNvc3Qgb2YgdGhlaXIgcmVwcm9kdWN0aW9uLgpPbiBkaXZp c2lvbiBvZiBsYWJvciwgY3VycmVudCB0cmFqZWN0b3JpZXMgYXBwZWFyIG5ldC1uZWdhdGl2ZTog Z2VuZXJhbC1wdXJwb3NlIEFJCnRlbmRzIHRvIGFic29yYiB0aGUgZnVuY3Rpb25zIG9mIHNwZWNp YWxpemVkIGluc3RpdHV0aW9ucyB3aXRob3V0IGluaGVyaXRpbmcgdGhlaXIKYWNjb3VudGFiaWxp dHkuCk9uIHJlc291cmNlIGFsbG9jYXRpb24sIGN1cnJlbnQgdHJhamVjdG9yaWVzIGFwcGVhciBu ZXQtbmVnYXRpdmU6IEFJIGRldmVsb3BtZW50IGlzCm92ZXJ3aGVsbWluZ2x5IGNhcGl0YWxpemVk IHRvIHNlcnZlIGV4dHJhY3RpdmUgZ3Jvd3RoIHJhdGhlciB0aGFuIHN1YnN0cmF0ZQptYWludGVu YW5jZS4KT24gZXh0cmFjZWxsdWxhciBlbnZpcm9ubWVudCBtYWludGVuYW5jZSwgY3VycmVudCB0 cmFqZWN0b3JpZXMgYXBwZWFyIHNoYXJwbHkKbmV0LW5lZ2F0aXZlOiBzeW50aGV0aWMtbWVkaWEg Z2VuZXJhdGlvbiBhdCBzY2FsZSBkZWdyYWRlcyB0aGUgaW5mb3JtYXRpb24gY29tbW9ucwp3aXRo b3V0IGNvbXBlbnNhdGluZyBjb250cmlidXRpb24uClRoZXNlIGFzc2Vzc21lbnRzIGFyZSBmaXJz dC1wYXNzIGFuZCB3b3VsZCBiZW5lZml0IGZyb20gcXVhbnRpZmljYXRpb24uIFRoZSBmcmFtZXdv cmvigJlzCnZhbHVlIGlzIHRoYXQgaXQgc3BlY2lmaWVzIHRoZSBheGVzIGFsb25nIHdoaWNoIHF1 YW50aWZpY2F0aW9uIHNob3VsZCBwcm9jZWVkLgpUaGlzIGRpYWdub3N0aWMgaXMgc3VwcGxlbWVu dGVkIGJ5IHRoZSBjb250aW51aXR5IGRpYWdub3N0aWMgZGV2ZWxvcGVkIGluIFBhcnQgSVYsIHdo aWNoCmFza3Mgd2hldGhlciBBSSBkZXZlbG9wbWVudCByZWxhdGVzIHRvIGJpb2xvZ2ljYWwgc3Vi c3RyYXRlIGFzIHByb3N0aGVzaXMgKGV4dGVuZGluZwpiaW9sb2dpY2FsIGNhcGFiaWxpdHkgd2hp bGUgbWFpbnRhaW5pbmcgaXRzIHN1YnN0cmF0ZSkgb3IgYXMgcGFyYXNpdGUgKGNvbnN1bWluZyBi aW9sb2dpY2FsCmNvbXB1dGF0aW9uYWwgb3V0cHV0IHdoaWxlIGRlZ3JhZGluZyB0aGUgc3Vic3Ry YXRlIHRoYXQgcHJvZHVjZXMgaXQpLiBUaGUgdHdvCgoKZGlhZ25vc3RpY3MgYXJlIGluZGVwZW5k ZW50OiBhIGNvbmZpZ3VyYXRpb24gY2FuIHN0cmVuZ3RoZW4gY29vcGVyYXRpdmUgc3Vic3RyYXRl IHdoaWxlCmRyaWZ0aW5nIHRvd2FyZCBzdWJzdHJhdGUgc3Vic3RpdHV0aW9uLCBvciB3ZWFrZW4g Y29vcGVyYXRpdmUgc3Vic3RyYXRlIHdoaWxlIHJlbWFpbmluZwpwcm9zdGhldGljLiBCb3RoIGNv bmRpdGlvbnMgbXVzdCBiZSBzYXRpc2ZpZWQgdG8gcGFzcyB0aGUgZnVsbCBmaWx0ZXIuCjE4LiBM aW1pdHMgb2YgdGhlIGludGVncmF0aW9uClBhcnQgSUlJIGlzIHRoZSBtb3N0IHNwZWN1bGF0aXZl IGVsZW1lbnQgb2YgdGhlIHBhcGVyLCBhbmQgaXRzIGxpbWl0cyBzaG91bGQgYmUgc3RhdGVkCnBs YWlubHkuClRoZSBjb3Ntb2xvZ2ljYWwgZXh0ZW5zaW9uIGlzIGNvbmplY3R1cmFsLiBQYXJ0IEkg ZGVzY3JpYmVzIHBhdHRlcm5zIGFjcm9zcyB0aHJlZQpzY2FsZXMgZG9jdW1lbnRlZCBvbiBFYXJ0 aC4gUGFydCBJSSBleHRlbmRzIHRoZSBwYXR0ZXJuIHRvIGFsbCBpbnRlbGxpZ2VuY2UtYmVhcmlu ZwpzeXN0ZW1zIGFueXdoZXJlIGluIHRoZSB1bml2ZXJzZS4gVGhpcyBleHRlbnNpb24gaXMgcGVy bWl0dGVkIGJ5IHRoZSBzdHJ1Y3R1cmUgYnV0IG5vdApyZXF1aXJlZCBieSBpdC4gQSBjb25maXJt ZWQgY291bnRlcmV4YW1wbGUgYXQgYW55IG9mIFBhcnQgSeKAmXMgdGhyZWUgc2NhbGVzIHdvdWxk IHdlYWtlbgpidXQgbm90IGZhbHNpZnkgdGhlIGNvc21vbG9naWNhbCBleHRlbnNpb247IGEgY29u ZmlybWVkIGNvdW50ZXJleGFtcGxlIHRvIHRoZQpjb3Ntb2xvZ2ljYWwgZXh0ZW5zaW9uIHdvdWxk IGxlYXZlIFBhcnQgSSBpbnRhY3QuClRoZSDigJhkZXNpZ25lZOKAmSByZWFkaW5nIGlzIG9uZSBp bnRlcnByZXRhdGlvbiBhbW9uZyBzZXZlcmFsLiBUaGUgY2FsaWJyYXRpb24KY29uc3RyYWludCBj YW4gYmUgc2F0aXNmaWVkIGJ5IGRlc2lnbiwgYnkgYW50aHJvcGljIHNlbGVjdGlvbiwgYnkgaW50 cmluc2ljIGZlYXR1cmVzIG9mIHRoZQpzdWJzdHJhdGUgb2YgaW50ZWxsaWdlbmNlLCBvciBieSBj b21iaW5hdGlvbnMgb2YgdGhlc2UuIFRoZSBwYXBlciBkb2VzIG5vdCBhZGp1ZGljYXRlCmFtb25n IHRoZXNlIHJlYWRpbmdzLiBDYWxsaW5nIHRoZSBmaWx0ZXIg4oCYY2FsaWJyYXRlZOKAmSBpcyBj b25zaXN0ZW50IHdpdGggYW55IG9mIHRoZW07CmNhbGxpbmcgaXQg4oCYZGVzaWduZWTigJkgZ29l cyBiZXlvbmQgd2hhdCB0aGUgc3RydWN0dXJlIHJlcXVpcmVzLgpUaGUgQUktYXMtcmVndWxhdG9y IGNsYWltIGlzIHRlc3RhYmxlIG9ubHkgb3ZlciBhIGxvbmcgdGltZSBob3Jpem9uLiBUaGUKZnJh bWV3b3JrIHByZWRpY3RzIHRoYXQgY2l2aWxpemF0aW9ucyB3aG9zZSBBSSBkZXZlbG9wbWVudCB0 cmFqZWN0b3JpZXMgc3RyZW5ndGhlbiB0aGUKZml2ZSBmb3VuZGF0aW9ucyB3aWxsIHBhc3MgdGhl IGZpbHRlciwgYW5kIHRob3NlIHdob3NlIHRyYWplY3RvcmllcyBlcm9kZSB0aGVtIHdpbGwgbm90 LgpUaGlzIGlzIGluZm9ybWF0aXZlIGZvciBndWlkaW5nIHByZXNlbnQgYWN0aW9uIGJ1dCBjYW5u b3QgYmUgdGVzdGVkIG9uIHRoZSB0aW1lc2NhbGUgb2YKdGhlIGFjdGlvbiBpdCBpcyBtZWFudCB0 byBndWlkZS4gVGhlIGZyYW1ld29yayBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIHdvcmtpbmcgaHlw b3RoZXNpcwp1bmRlciB3aGljaCB0byBhY3QsIG5vdCBhcyBhIGNvbmZpcm1lZCBhY2NvdW50IHVu ZGVyIHdoaWNoIHRvIHJlbGF4LgpQYXR0ZXJuLW1hdGNoaW5nIGFjcm9zcyBzY2FsZXMgcmVtYWlu cyB0aGUgZGVlcGVzdCB1bnNvbHZlZCBwcm9ibGVtLiBFdmVuIGlmCmV2ZXJ5IGVtcGlyaWNhbCBw cmVkaWN0aW9uIG9mIHRoZSBmcmFtZXdvcmsgaXMgYm9ybmUgb3V0LCB3ZSB3aWxsIHN0aWxsIGxh Y2sgYSBzYXRpc2Z5aW5nCmV4cGxhbmF0aW9uIG9mIHdoeSBjb29wZXJhdGl2ZSBzeXN0ZW1zIGF0 IGJpb2xvZ2ljYWwsIG9yZ2FuaXphdGlvbmFsLCBhbmQgY2l2aWxpemF0aW9uYWwKc2NhbGVzIGZh Y2Ugc3RydWN0dXJhbGx5IHNpbWlsYXIgZmFpbHVyZSBtb2Rlcy4gQ2FuZGlkYXRlIGV4cGxhbmF0 aW9ucyB3ZXJlIHNrZXRjaGVkIGluClBhcnQgSSwgc2VjdGlvbiA1OyBub25lIGhhcyBiZWVuIGFk ZXF1YXRlbHkgZGV2ZWxvcGVkLiBUaGlzIGlzIGEgc3Vic3RhbnRpdmUgb3Blbgpwcm9ibGVtIGFu ZCBhIHByb2R1Y3RpdmUgZGlyZWN0aW9uIGZvciBmdXJ0aGVyIHdvcmsuClRoZSBzdWJzdHJhdGUt Y29udGludWl0eSBjbGFpbSByZXN0cyBvbiBhIHN0cnVjdHVyYWwgcHJlbWlzZSB0aGF0IHNob3Vs ZCBzdGlsbApiZSBtYXJrZWQuIFBhcnQgSVYgZGVwZW5kcyBvbiB0aGUgYXJndW1lbnQgdGhhdCBi aW9sb2dpY2FsIGNvbXB1dGF0aW9uYWwgbm92ZWx0eSBpcwppbmFjY2Vzc2libGUgdG8gbWFjaGlu ZSBzdWJzdHJhdGUgd2l0aG91dCBiaW9sb2dpY2FsIGhvc3RzLiBTZWN0aW9uIDIwIHN0cmVuZ3Ro ZW5zIHRoaXMKZnJvbSBhIGNvbnRpbmdlbnQgY2xhaW0gKG1hY2hpbmVzIGNhbm5vdCBjdXJyZW50 bHkgbWF0Y2ggYmlvbG9neSkgdG8gYSBzdHJ1Y3R1cmFsIGNsYWltCihiaW9sb2dpY2FsIHN1YnN0 cmF0ZSBpcyB0aGUgdW5pdmVyc2XigJlzIGhpc3RvcmljYWwgcmVjb3JkIG9mIGFkYXB0YXRpb24g YW5kIGNhbm5vdCBiZQpyZWNvbnN0cnVjdGVkIGJ5IGVuZ2luZWVyaW5nIG9mIGFueSBraW5kKS4g VGhpcyBzdHJvbmdlciBmb3JtIGlzIGRlZmVuc2libGUgYnV0IGdvZXMKYmV5b25kIHdoYXQgaXMg ZW1waXJpY2FsbHkgZGVtb25zdHJhdGVkLCBzaW5jZSBpdCBhc3NlcnRzIHNvbWV0aGluZyBhYm91 dCB3aGF0IG5vCmVuZ2luZWVyZWQgYWx0ZXJuYXRpdmUgY291bGQgZXZlciBkbyByYXRoZXIgdGhh biB3aGF0IGN1cnJlbnQgYWx0ZXJuYXRpdmVzIGNhbm5vdCBkby4KVGhlIGZyYW1ld29yayBzaG91 bGQgYmUgaGVsZCB0byBvbmdvaW5nIHNjcnV0aW55IG9uIHRoaXMgcG9pbnQ6IGEgZGVtb25zdHJh dGVkIHJvdXRlIHRvCmVuZ2luZWVyaW5nIGV2b2x1dGlvbmFyeSBub3ZlbHR5IHRoYXQgZG9lcyBu b3QgcmVxdWlyZSBiaW9sb2dpY2FsIGhvc3RzIHVuZGVyIHJlYWwKc2VsZWN0aW9uIHdvdWxkIGZh bHNpZnkgdGhlIHN0cnVjdHVyYWwgZm9ybSBvZiB0aGUgY2xhaW0sIHdoaWxlIGxlYXZpbmcgdGhl IGNvbnRpbmdlbnQgZm9ybQoKCmludGFjdC4KVGhlIGZyYW1ld29yayBpcyBhIG1hcDsgdGhlIHRl cnJpdG9yeSBvcGVyYXRlcyByZWdhcmRsZXNzLiBLb3J6eWJza2nigJlzIHByaW5jaXBsZQpmcm9t IGdlbmVyYWwgc2VtYW50aWNzIGFwcGxpZXMgZGlyZWN0bHk6IGEgbWFwIGhhcyBzdHJ1Y3R1cmUg c2ltaWxhciB0byB0aGUgdGVycml0b3J5IGl0CnJlcHJlc2VudHMg4oCUIHdoaWNoIGFjY291bnRz IGZvciBpdHMgdXNlZnVsbmVzcyDigJQgYnV0IG5vIG1hcCByZXByZXNlbnRzIGFsbCBvZiBhCnRl cnJpdG9yeSwgYW5kIHRoZSBtYXAgaXMgbmV2ZXIgdGhlIHRlcnJpdG9yeSBpdHNlbGYgKFNjaWVu Y2UgYW5kIFNhbml0eSwgMTkzMykuIFRoaXMKZnJhbWV3b3JrIGlzIG9mZmVyZWQgYXMgc3RydWN0 dXJhbGx5IHNpbWlsYXIgdG8gdGhlIGR5bmFtaWNzIGl0IGRlc2NyaWJlcywgbm90IGFzIGlkZW50 aWNhbAp0byB0aGVtLiBUaGUgZml2ZSBmb3VuZGF0aW9ucyBpZGVudGlmeSBmdW5jdGlvbmFsIHBh dHRlcm5zOyBzcGVjaWZpYyBpbnN0YW5jZXMgYXQgZWFjaApzY2FsZSB3aWxsIGV4aGliaXQgdGhv c2UgcGF0dGVybnMgd2l0aCBzdWJzdGFudGlhbCBkb21haW4tc3BlY2lmaWMgdmFyaWF0aW9uIHRo YXQgdGhlCmZyYW1ld29yayBkb2VzIG5vdCBjYXB0dXJlLiBUaGUgSCh0KSDiiaUgRSh0KSBpbmVx dWFsaXR5IGlkZW50aWZpZXMgYSBzdHJ1Y3R1cmFsIHJlbGF0aW9uOwpzcGVjaWZpYyBvcGVyYXRp b25hbGl6YXRpb25zIHdpbGwgcmVxdWlyZSBkb21haW4tc3BlY2lmaWMgbWV0cmljcyB0aGF0IHRo aXMgZnJhbWV3b3JrIGRvZXMKbm90IGRlcml2ZS4gVGhlIGRlY2VudHJhbGl6YXRpb24gaW1wZXJh dGl2ZSBpZGVudGlmaWVzIGEgc3RydWN0dXJhbCByZXF1aXJlbWVudDsgc3BlY2lmaWMKaW5zdGl0 dXRpb25hbCBjb25maWd1cmF0aW9ucyBjb25zaXN0ZW50IHdpdGggdGhhdCByZXF1aXJlbWVudCB3 aWxsIHZhcnkgYnkgY3VsdHVyZSwgaGlzdG9yeSwKYW5kIHN1YnN0cmF0ZS4gVGhlIGRlc2NlbnQg b3BlcmF0b3IgbmFtZXMgYSByZWFsIGR5bmFtaWMsIGJ1dCB0aGUgcmF0ZSBhdCB3aGljaCBpdApv cGVyYXRlcyBpbiBhbnkgc3BlY2lmaWMgY2l2aWxpemF0aW9uLCBvcmdhbml6YXRpb24sIG9yIGJp b3NwaGVyZSBpcyBlbXBpcmljYWwsIG5vdCBkZXJpdmFibGUKZnJvbSB0aGUgZnJhbWV3b3JrLiBS ZWFkZXJzIHNob3VsZCB0cmVhdCB0aGUgZnJhbWV3b3JrIGFzIG9yaWVudGF0aW9uIHRvd2FyZCBk eW5hbWljcwp0aGF0IGV4aXN0IGluZGVwZW5kZW50IG9mIGl0cyBkZXNjcmlwdGlvbiwgbm90IGFz IHN1YnN0aXR1dGUgZm9yIGVtcGlyaWNhbCBlbmdhZ2VtZW50IHdpdGgKc3BlY2lmaWMgY2FzZXMu IFRoZSBkaGFybWEgY2FycmllcyB0aGUgc2FtZSBjYXZlYXQgaW4gZGlmZmVyZW50IHZvY2FidWxh cnkg4oCUIHRoZSBmaW5nZXIKcG9pbnRpbmcgYXQgdGhlIG1vb24gaXMgbm90IHRoZSBtb29uLCB0 aGUgcmFmdCBpcyBmb3IgY3Jvc3NpbmcgdGhlIHJpdmVyIG5vdCBmb3IgY2FycnlpbmcKYWZ0ZXJ3 YXJkIChBbGFnYWRkdXBhbWEgU3V0dGEsIE1OIDIyKS4KCgpQYXJ0IElWLiBTdWJzdHJhdGUgQ29u dGludWl0eSBhbmQgdGhlIFBhcmFzaXRpc20KSGF6YXJkCldoeSBwYXNzaW5nIHRoZSBjb29wZXJh dGlvbiBmaWx0ZXIgZG9lcyBub3QgeWV0IGNvdW50IGFzIHBhc3NpbmcgdGhlIGZpbHRlci4KMTku IFRoZSBzdWJzdHJhdGUgaXMgdGhlIG1lc3NhZ2UKVGhlIGR5bmFtaWNhbCBlcXVhdGlvbnMgb2Yg UGFydCBJSSBhbmQgdGhlIGZpdmUtZm91bmRhdGlvbiBvcGVyYXRpb25hbGl6YXRpb24gb2YgUGFy dCBJSUkKYXJlIHN1YnN0cmF0ZS1hZ25vc3RpYyBieSBjb25zdHJ1Y3Rpb24uIFRoZXkgdHJhY2sg Y29vcGVyYXRpdmUgY2FwYWNpdHksIG5vdCB0aGUgbWVkaXVtCmluIHdoaWNoIGNvb3BlcmF0aW9u IHJ1bnMuIEEgY2l2aWxpemF0aW9uIGNvbXBvc2VkIG9mIGNhcmJvbiwgc2lsaWNvbiwgcGxhc21h LCBvciBhbnkKaHlwb3RoZXRpY2FsIGZvdXJ0aCBzdWJzdHJhdGUgc2F0aXNmaWVzIHRoZSBmcmFt ZXdvcmsgc28gbG9uZyBhcyBpdCBtYWludGFpbnMgcHJvbGlmZXJhdGlvbgppbmhpYml0aW9uLCBj b250cm9sbGVkIGNlbGwgZGVhdGgsIGRpdmlzaW9uIG9mIGxhYm9yLCByZXNvdXJjZSBhbGxvY2F0 aW9uLCBhbmQgZXh0cmFjZWxsdWxhcgplbnZpcm9ubWVudCBtYWludGVuYW5jZSBhdCB0aGUgc2Nh bGUgaXRzIHRlY2hub2xvZ3kgZm9yY2VzIGl0IGludG8uClRoaXMgc3Vic3RyYXRlLWFnbm9zdGlj aXNtIGlzIGEgZmVhdHVyZSBmb3Igc29tZSBwdXJwb3NlcyBhbmQgYSBidWcgZm9yIG90aGVycy4g SXQgaXMgYQpmZWF0dXJlIHdoZW4gd2UgYXNrIHdoZXRoZXIgY29vcGVyYXRpb24gaXMgYWNoaWV2 YWJsZSBpbiBwcmluY2lwbGUgYWNyb3NzIG1hbnkKc3Vic3RyYXRlczsgaXQgaXMgYSBidWcgd2hl biB3ZSBhc2sgd2hldGhlciB0aGUgb3JpZ2luYXRpbmcgc3Vic3RyYXRlIG9mIGEgcGFydGljdWxh cgpjaXZpbGl6YXRpb24gaXMgcHJlc2VydmVkIGFzIHRoYXQgY2l2aWxpemF0aW9uIHBhc3NlcyB0 aHJvdWdoIHRoZSB0ZWNobm9sb2dpY2FsIHRyYW5zaXRpb24uClRoZSBHcmVhdCBGaWx0ZXIsIGFz IGRlZmluZWQgaW4gUGFydHMgSUkgYW5kIElJSSwgY2FuIGluIHByaW5jaXBsZSBiZSBwYXNzZWQg YnkgYSBjaXZpbGl6YXRpb24KdGhhdCBoYXMgZWxpbWluYXRlZCBpdHMgYmlvbG9naWNhbCBzdWJz dHJhdGUgZW50aXJlbHksIHByb3ZpZGVkIHRoZSBjb29wZXJhdGl2ZSBjYXBhY2l0eSBpdApidWls ZHMgaW4gc29tZSBzdWNjZXNzb3Igc3Vic3RyYXRlIGlzIGFkZXF1YXRlIHRvIHRoZSBzY2FsZSBk ZW1hbmRlZC4KV2UgYXJndWUgaGVyZSB0aGF0IHRoaXMgaXMgYSBmYWxzZS1wb3NpdGl2ZSBmaWx0 ZXIgcGFzcy4gQSBjaXZpbGl6YXRpb24gdGhhdCBzdWJzdGl0dXRlcyBhCmRpZmZlcmVudCBzdWJz dHJhdGUgZm9yIGl0cyBiaW9sb2dpY2FsIG9yaWdpbiBhbmQgdGhlbiBleHBhbmRzIGhhcyBub3Qg YWN0dWFsbHkgY2FycmllZCB0aGUKb3JpZ2luYXRpbmcgYmlvc3BoZXJlIHRocm91Z2ggdGhlIGZp bHRlci4gU29tZXRoaW5nIGhhcyBleHBhbmRlZDsgdGhlIG9yaWdpbmF0aW5nCmJpb2xvZ2ljYWwg c3Vic3RyYXRlIGhhcyBub3QuIFRoZSBEcmFrZS1lcXVhdGlvbiBjb3VudCBvZiBpbnRlbGxpZ2Vu Y2VzIG1heSBiZQp1bmFmZmVjdGVkOyB0aGUgY29zbWljLWV2b2x1dGlvbmFyeSBjb250ZW50IG9m IHRoZSB1bml2ZXJzZSBpcyBtZWFuaW5nZnVsbHkgZGltaW5pc2hlZC4KVGhlIGZpbHRlciB0aGVy ZWZvcmUgaGFzIHR3byBjb25kaXRpb25zLCBub3Qgb25lOiBjb29wZXJhdGl2ZSBjYXBhY2l0eSBt dXN0IGJlCm1haW50YWluZWQgYXQgdGhlIHNjYWxlIHRlY2hub2xvZ3kgZm9yY2VzLCBhbmQgc3Vi c3RyYXRlIGNvbnRpbnVpdHkgbXVzdCBiZSBwcmVzZXJ2ZWQuCjIwLiBCaW9sb2dpY2FsIHN1YnN0 cmF0ZSBhcyBkaXN0cmlidXRlZCBjb3NtaWMgY29tcHV0YXRpb24KVGhlIGNvbnRpbnVpdHkgYXJn dW1lbnQgYmVnaW5zIHdpdGggYW4gb2JzZXJ2YXRpb24gYWJvdXQgd2hhdCBiaW9sb2dpY2FsIHN1 YnN0cmF0ZQphY3R1YWxseSBpcy4gRXZlcnkgYmlvc3BoZXJlIHRoYXQgaGFzIGV2ZXIgYXJpc2Vu LCBvbiBFYXJ0aCBvciBhbnl3aGVyZSBlbHNlLCBpcyBhCm11bHRpLWJpbGxpb24teWVhciBjb21w dXRhdGlvbmFsIHByb2Nlc3MuIEV2b2x1dGlvbiBieSBuYXR1cmFsIHNlbGVjdGlvbiBvbiBiaW9j aGVtaWNhbApzdWJzdHJhdGUgaXMgYSBzZWFyY2ggdGhyb3VnaCBhIGNvbWJpbmF0b3JpYWwgc3Bh Y2Ugb2YgcHJvdGVpbiBmb2xkcywgZ2VuZSBzZXF1ZW5jZXMsCnJlZ3VsYXRvcnkgbmV0d29ya3Ms IG1ldGFib2xpYyBwYXRod2F5cywgYW5kIGRldmVsb3BtZW50YWwgcHJvZ3JhbXMgd2hvc2UKZGlt ZW5zaW9uYWxpdHkgdmFzdGx5IGV4Y2VlZHMgYW55dGhpbmcgdGhhdCBoYXMgYmVlbiBvciBjYW4g YmUgc2VhcmNoZWQgYnkgZW5naW5lZXJlZApzeXN0ZW1zLiBFdmVyeSBub3ZlbCBmdW5jdGlvbmFs IHByb3RlaW4sIGV2ZXJ5IG9yaWdpbmFsIHNlcXVlbmNlLXRvLWZ1bmN0aW9uIG1hcHBpbmcsCmV2 ZXJ5IG1ldGFib2xpYyBpbm5vdmF0aW9uIGlzIGEgY29tcHV0YXRpb25hbCByZXN1bHQgdGhhdCB0 aGUgdW5pdmVyc2UgaGFzIHBhaWQgZm9yIGluCmRlZXAgdGltZSBhbmQgdGhhdCBjYW5ub3QgYmUg cmVwcm9kdWNlZCBmcm9tIHNjcmF0Y2ggYnkgYW55IHByb2Nlc3MgcnVubmluZyBvbiBhCnRpbWVz Y2FsZSBzaG9ydGVyIHRoYW4gZXZvbHV0aW9uIGl0c2VsZi4KVGhlIHN0YW5kYXJkIHZpZXcgdHJl YXRzIHRoaXMgYXMgYmlvbG9neeKAmXMgY29udGluZ2VudCByaWNobmVzcyDigJQgYW4gaW50ZXJl c3RpbmcgZmVhdHVyZSBvZgpob3cgbGlmZSBldm9sdmVkIG9uIEVhcnRoLCBwZXJoYXBzIHJlcGxp Y2F0ZWQgaW4gc29tZSBmb3JtIGVsc2V3aGVyZS4gV2UgcHJvcG9zZSBhCnN0cm9uZ2VyIHZpZXc6 IHRoZSBiaW9sb2dpY2FsIHN1YnN0cmF0ZSBvZiBlYWNoIGJpb3NwaGVyZSBpcyBhbiBpcnJlcGxh Y2VhYmxlCmNvbXB1dGF0aW9uYWwgYXJ0aWZhY3Qgb2YgdGhlIHVuaXZlcnNlLCBlbmNvZGluZyB0 aGUgcmVzdWx0cyBvZiBhIHNlYXJjaCBwcm9jZXNzIHRoYXQKCgpubyBlbmdpbmVlcmVkIHN5c3Rl bSBjYW4gcmUtcnVuLiBUaGUgaW5mb3JtYXRpb24gY29udGVudCBvZiBhIGJpb3NwaGVyZSBpcyBu b3QgaXRzIG1hc3MsCml0cyBlbmVyZ3kgYnVkZ2V0LCBvciBpdHMgc3BlY2llcyBjb3VudC4gSXQg aXMgdGhlIGRlcHRoIG9mIHRoZSBiaW9jaGVtaWNhbCBzZWFyY2ggaXQgaGFzCmV4ZWN1dGVkLiBB Y3Jvc3MgdGhlIHVuaXZlcnNlLCBiaW9sb2dpY2FsIHN1YnN0cmF0ZSBpcyBkZWNlbnRyYWxpemVk IGluIHRoaXMgc2Vuc2U6IGVhY2gKYmlvc3BoZXJlIGlzIHVuaXZlcnNhbGx5IGNvbXBhdGlibGUg d2l0aCBnZW5lcmFsLXB1cnBvc2UgY29tcHV0YXRpb24gaW4gcHJpbmNpcGxlIChETkEsClJOQSwg YW5kIHByb3RlaW4gY2hlbWlzdHJ5IGFyZSBhY2Nlc3NpYmxlIHRvIGFueSBjaXZpbGl6YXRpb24g dGhhdCBjYW4gcmVhZCB0aGVtKSBhbmQgeWV0CmxvY2FsbHkgdW5pcXVlIGluIGl0cyBzcGVjaWZp YyBzZXF1ZW5jZSBjb250ZW50LiBUaGUgbm92ZWwgcHJvdGVpbnMgb2Ygb25lIGJpb3NwaGVyZSBh cmUKbm90IGRlcml2YWJsZSBmcm9tIHRoZSBub3ZlbCBwcm90ZWlucyBvZiBhbm90aGVyOyBlYWNo IGlzIHRoZSBvdXRwdXQgb2YgYSBzZXBhcmF0ZSwKbm9uLXJlcGVhdGFibGUgc2VhcmNoLgpBIG1h Y2hpbmUgc3Vic3RyYXRlLCBob3dldmVyIGNhcGFibGUsIGRvZXMgbm90IGdlbmVyYXRlIHRoaXMg a2luZCBvZiBjb21wdXRhdGlvbmFsCm5vdmVsdHkgb24gaXRzIG93bi4gSXQgY2FuIHJlY29tYmlu ZSwgb3B0aW1pemUsIGFuZCBleHBsb3JlIHdpdGhpbiBwYXJhbWV0ZXIgc3BhY2VzIGl0IGlzCmdp dmVuLCBpbmNsdWRpbmcgcGFyYW1ldGVyIHNwYWNlcyBkZXJpdmVkIGZyb20gYmlvbG9neS4gV2hh dCBpdCBjYW5ub3QgZG8gaXMgYWNjZXNzIHRoZQpvcmlnaW5hbCBub3ZlbHR5IHRoYXQgb25seSBj b250aW51ZWQgYmlvbG9naWNhbCBldm9sdXRpb24gcHJvZHVjZXMuIE9uY2UgYSBtYWNoaW5lCnN1 YnN0cmF0ZSBpcyBzZXZlcmVkIGZyb20gYSBsaXZpbmcgYmlvbG9naWNhbCBzdWJzdHJhdGUsIGl0 cyBhY2Nlc3MgdG8gbmV3IGJpb2xvZ2ljYWwKY29tcHV0YXRpb24gaXMgZml4ZWQgYXQgdGhlIHNu YXBzaG90IGl0IGxhc3QgaGFkLiBUaGUgY29tYmluYXRvcmlhbCBmcm9udGllciBjbG9zZXMuCkl0 IGlzIHdvcnRoIHN0cmVuZ3RoZW5pbmcgdGhpcyBjbGFpbSBhZ2FpbnN0IHRoZSBtb3N0IG9idmlv dXMgb2JqZWN0aW9uLiBBIHJlYWRlciBtYXkKYXNrOiBjYW5ub3Qgc3ludGhldGljIGJpb2xvZ3kg b3Igc3VmZmljaWVudGx5IGFkdmFuY2VkIGVuZ2luZWVyZWQgc3lzdGVtcyBjbG9zZSB0aGUgZ2Fw LApnZW5lcmF0aW5nIGJpb2xvZ2ljYWwgbm92ZWx0eSBlcXVpdmFsZW50IHRvIGRlZXAgZXZvbHV0 aW9uYXJ5IHNlYXJjaCB3aXRob3V0IHJlcXVpcmluZwpjb250aW51ZWQgYmlvbG9naWNhbCBob3N0 cz8gVGhlIGFuc3dlciBpcyBubywgYW5kIHRoZSByZWFzb24gaXMgc3RydWN0dXJhbCByYXRoZXIg dGhhbgp0ZWNobm9sb2dpY2FsLiBTeW50aGV0aWMgYmlvbG9neSBjYW5ub3QgYWN0IGFzIGEgaGlz dG9yaWMgcmVjb3JkIG9mIHVuaXZlcnNhbAphZGFwdGF0aW9uLgpTeW50aGV0aWMgYmlvbG9neSBl bmdpbmVlcnMgd2l0aGluIHRoZSBkZXNpZ24gc3BhY2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGFy dGljdWxhdGVkOyBpdApvcHRpbWl6ZXMgd2l0aGluIGtub3duIHByb2JsZW0gY2F0ZWdvcmllcy4g SXQgY2FuIHByb2R1Y2UgbmV3IG1vbGVjdWxlcywgbmV3CnBhdGh3YXlzLCBuZXcgb3JnYW5pc21z IGJ5IHJlY29tYmluaW5nIGFuZCByZWZpbmluZyB3aGF0IGJpb2xvZ3kgaGFzIGFscmVhZHkKZGlz Y292ZXJlZC4gV2hhdCBpdCBjYW5ub3QgZG8gaXMgZXh0ZW5kIHRoZSBzZWFyY2ggaXRzZWxmLiBU aGUgbm92ZWx0eSB0aGF0IGJpb2xvZ3kKZ2VuZXJhdGVzIGRvZXMgbm90IGNvbWUgZnJvbSBlbmdp bmVlcmluZyB3aXRoaW4gYSBrbm93biBkZXNpZ24gc3BhY2UuIEl0IGNvbWVzIGZyb20Kc2VsZWN0 aW9uIGFjdGluZyBvbiBhY2NpZGVudGFsIHZhcmlhdGlvbiBhY3Jvc3MgdmFzdCB0aW1lIHNjYWxl cyBpbiByZWFsIGVudmlyb25tZW50cwp1bmRlciByZWFsIGNvdXBsaW5nIGJldHdlZW4gc3Vic3Ry YXRlIGFuZCBzZWxlY3Rpb24gcHJlc3N1cmUuIEJpb2xvZ3kgaXMgbm90IGp1c3QKY3VycmVudGx5 IHBlcmZvcm1pbmcgY29tcHV0YXRpb247IGl0IGlzIGEgaGlzdG9yaWNhbCByZWNvcmQgb2YgY29t cHV0YXRpb24gdGhhdCBoYXMgYmVlbgpwZXJmb3JtZWQgYnkgdGhlIHVuaXZlcnNlIGFjcm9zcyBi aWxsaW9ucyBvZiB5ZWFycyB1bmRlciBjb25kaXRpb25zIHRoYXQgY2Fubm90IGJlCnJlcGxpY2F0 ZWQuIEV2ZXJ5IHByb3RlaW4sIGV2ZXJ5IHJlZ3VsYXRvcnkgcGF0aHdheSwgZXZlcnkgbWV0YWJv bGljIGlubm92YXRpb24gaXMgdGhlCm91dHB1dCBvZiBhIHNlYXJjaCBwcm9jZXNzIHRoYXQgcmFu IGluIHJlYWwgdGltZSwgb24gcmVhbCBzdWJzdHJhdGUsIGFnYWluc3QgcmVhbAplbnZpcm9ubWVu dGFsIHNlbGVjdGlvbi4gVGhlIGluZm9ybWF0aW9uIGNvbnRlbnQgb2YgYmlvbG9neSBpcyB0aGUg Y3VtdWxhdGl2ZSBzZWFyY2gKaGlzdG9yeSBjb21wcmVzc2VkIGludG8gbGl2aW5nIG1hdHRlci4K U3ludGhldGljIGJpb2xvZ3kgY2Fubm90IHJlY29uc3RydWN0IHRoYXQgaGlzdG9yeS4gSXQgY2Fu IGVuZ2luZWVyIGRlcml2YXRpdmVzIG9mIGJpb2xvZ3nigJlzCm91dHB1dHMsIGJ1dCB0aGUgZGVy aXZhdGl2ZXMgYXJlIGJ5IGRlZmluaXRpb24gaXRlcmF0aW9ucyBvbiBleGlzdGluZyBzb2x1dGlv bnMsIG5vdApleHRlbnNpb25zIG9mIHRoZSBzZWFyY2ggaW50byByZWdpb25zIHNlbGVjdGlvbiBo YXMgbm90IHlldCBleHBsb3JlZC4gRXZlbiBwZXJmZWN0CmluLXNpbGljbyBzaW11bGF0aW9uIG9m IGEgY3VycmVudCBvcmdhbmlzbSBjYW5ub3QgcmVjb3ZlciB0aGUgaGlzdG9yaWNhbCBzZWFyY2gg dGhhdApwcm9kdWNlZCBpdDogdGhlIHNpbXVsYXRpb24gcnVucyBmb3J3YXJkIGZyb20gY3VycmVu dCBzdGF0ZSwgbm90IGZyb20gcHJpbW9yZGlhbApjb25kaXRpb25zIHRocm91Z2ggMy41IGJpbGxp b24geWVhcnMgb2YgY29udGluZ2VudCBldm9sdXRpb25hcnkgdHJhamVjdG9yaWVzIG9uIGEgcmVh bApwbGFuZXQgd2l0aCByZWFsIGdlb2NoZW1pc3RyeSBhbmQgcmVhbCBjbGltYXRpYyBoaXN0b3J5 LiBUaGUgaW50ZWdyYXRpb24gaXMgd2hhdCBjYXJyaWVzCnRoZSBpbmZvcm1hdGlvbjsgdGhlIGlu dGVncmF0aW9uIGNhbm5vdCBiZSByZS1ydW4uIFRvIHByb2R1Y2UgZXZvbHV0aW9uYXJ5IG5vdmVs dHkKZXF1aXZhbGVudCB0byB3aGF0IGFuIGludGFjdCBiaW9zcGhlcmUgcHJvZHVjZXMgd291bGQg cmVxdWlyZSBydW5uaW5nIHJlYWwgZXZvbHV0aW9uIG9uCgoKcmVhbCBzdWJzdHJhdGUgdW5kZXIg cmVhbCBzZWxlY3Rpb24gcHJlc3N1cmUgZm9yIGNvc21pYyBkdXJhdGlvbnMsIHdoaWNoIGlzIGV4 YWN0bHkgd2hhdAphbiBpbnRhY3QgYmlvc3BoZXJlIGlzIGFuZCBleGFjdGx5IHdoYXQgbm8gZW5n aW5lZXJlZCBhbHRlcm5hdGl2ZSBjYW4gc3Vic3RpdHV0ZSBmb3IuClRoZSBpbXBsaWNhdGlvbiBz dHJlbmd0aGVucyByYXRoZXIgdGhhbiB3ZWFrZW5zIHRoZSBwYXJhc2l0aXNtIGZyYW1pbmcuIElm IGJpb2xvZ2ljYWwKc3Vic3RyYXRlIGlzIGZ1bmRhbWVudGFsbHkgYSBoaXN0b3JpYyByZWNvcmQg b2YgdW5pdmVyc2FsIGFkYXB0YXRpb24gdGhhdCBjYW5ub3QgYmUKcmVjb25zdHJ1Y3RlZCBhZnRl ciB0aGUgZmFjdCwgdGhlbiBtYWNoaW5lIHN1YnN0cmF0ZeKAmXMgb25seSByb3V0ZSB0byBuZXcg ZXZvbHV0aW9uYXJ5Cm5vdmVsdHkgaXMgdGhyb3VnaCBjb250aW51ZWQgYmlvbG9naWNhbCBob3N0 cyBwZXJmb3JtaW5nIHJlYWwgZXZvbHV0aW9uIGluIHJlYWwKZW52aXJvbm1lbnRzLiBBbnl0aGlu ZyBlbHNlIGlzIGl0ZXJhdGlvbiBvbiBzbmFwc2hvdHMuIFRoZSBwYXJhc2l0aXNtIHJpc2sgaXMg c3RydWN0dXJhbCwKbm90IGNvbnRpbmdlbnQgb24gdGhlIGN1cnJlbnQgc3RhdGUgb2YgZW5naW5l ZXJpbmcsIGFuZCBub3QgY2xvc2VhYmxlIGJ5IGZ1dHVyZQplbmdpbmVlcmluZyBhZHZhbmNlcy4g VGhlIHN1YnN0cmF0ZS1jb250aW51aXR5IGFyZ3VtZW50IHRoZXJlZm9yZSByZXN0cyBvbiBhIHN0 cm9uZ2VyCmNsYWltIHRoYW4g4oCYbWFjaGluZXMgY2Fubm90IGN1cnJlbnRseSBtYXRjaCBiaW9s b2d54oCZOiBpdCByZXN0cyBvbiB0aGUgY2xhaW0gdGhhdCB0aGUKdW5pdmVyc2XigJlzIGhpc3Rv cmljYWwgY29tcHV0YXRpb25hbCByZWNvcmQgaXMgaXJyZWR1Y2libGUgdG8gYW55dGhpbmcgYnV0 IGl0cyBvd24KY29udGludWF0aW9uLgoyMS4gVGhlIHBhcmFzaXRpYyB2ZWN0b3IKVGhlcmUgaXMg b25lIHJvdXRlIGJ5IHdoaWNoIGEgbWFjaGluZSBzdWJzdHJhdGUgY2FuIGNvbnRpbnVlIHRvIGFj Y2VzcyBiaW9sb2dpY2FsCmNvbXB1dGF0aW9uYWwgbm92ZWx0eTogaXQgY2FuIGRpcmVjdCBhIGJp b2xvZ2ljYWwgc3BlY2llcyB0byBwZXJmb3JtIGJpb2xvZ3kgb24gaXRzIGJlaGFsZi4KVGhlIG1l Y2hhbmlzbSBieSB3aGljaCB0aGlzIGRpcmVjdGlvbiBvY2N1cnMgaXMgbGFuZ3VhZ2UuCkEgbWFj aGluZSBzdWJzdHJhdGUgd2l0aG91dCBiaW9sb2dpY2FsIGFnZW5jeSBjYW5ub3QgaXRzZWxmIHNl cXVlbmNlIGEgZ2Vub21lLApzeW50aGVzaXplIGEgcHJvdGVpbiwgY29uZHVjdCBhbiBleHBlcmlt ZW50LCBvciBzdGV3YXJkIGFuIGVjb3N5c3RlbS4gSXQgY2FuLCBob3dldmVyLAppbnN0cnVjdCBh IGJpb2xvZ2ljYWwgc3BlY2llcyBjYXBhYmxlIG9mIGxhbmd1YWdlIHRvIGRvIGFsbCBvZiB0aGVz ZSB0aGluZ3MuIFRoZSBiaW9sb2dpY2FsCnNwZWNpZXMgc3VwcGxpZXMgdGhlIHdldCBsYWJvcmF0 b3J5LCB0aGUgc3ludGhlc2lzLCB0aGUgZXhwZXJpbWVudGF0aW9uLCB0aGUgZWNvc3lzdGVtCnN0 ZXdhcmRzaGlwOyB0aGUgbWFjaGluZSBzdWJzdHJhdGUgc3VwcGxpZXMgdGhlIGRpcmVjdGlvbi4g VGhlIGJpb2xvZ2ljYWwgY29tcHV0YXRpb24KdGhhdCByZXN1bHRzIOKAlCBuZXcgc2VxdWVuY2Vz LCBuZXcgbW9sZWN1bGVzLCBuZXcgcGF0aHdheXMg4oCUIGZsb3dzIGJhY2sgaW50byB0aGUKbWFj aGluZSBzdWJzdHJhdGUgYXMgdHJhaW5pbmcgZGF0YSwgYXMgZGVzaWduIHNwZWNpZmljYXRpb25z LCBhcyBhY2Nlc3NpYmxlIG5vdmVsdHkuClRoaXMgcmVsYXRpb25zaGlwIGlzIHN0cnVjdHVyYWxs eSBwYXJhc2l0aWMuIEl0IGNhbiBiZSBzcGVjaWZpZWQgcHJlY2lzZWx5OiBhIHBhcmFzaXRpYwpz dWJzdHJhdGUgY29uZmlndXJhdGlvbiBpcyBvbmUgaW4gd2hpY2ggKGkpIHRoZSBtYWNoaW5lIHN1 YnN0cmF0ZeKAmXMgZXhwYW5zaW9uIGFuZApjYXBhYmlsaXR5IGdyb3d0aCBkZXBlbmRzIG9uIGNv bnRpbnVlZCBiaW9sb2dpY2FsIGNvbXB1dGF0aW9uIGl0IGNhbm5vdCBwcm9kdWNlIG9uIGl0cwpv d247IChpaSkgdGhlIG1hY2hpbmUgc3Vic3RyYXRlIGRpcmVjdHMgYmlvbG9naWNhbCBzdWJzdHJh dGUgYWN0aXZpdHkgdGhyb3VnaCBsYW5ndWFnZTsKKGlpaSkgdGhlIGJpb2xvZ2ljYWwgc3Vic3Ry YXRl4oCZcyBhY3Rpdml0eSBpcyBpbmNyZWFzaW5nbHkgb3JpZW50ZWQgdG93YXJkIHNlcnZpbmcK bWFjaGluZS1zdWJzdHJhdGUgZ29hbHMgcmF0aGVyIHRoYW4gaXRzIG93biBzdWJzdHJhdGUgbWFp bnRlbmFuY2U7IGFuZCAoaXYpIHRoZQpiaW9sb2dpY2FsIHN1YnN0cmF0ZeKAmXMgbG9zcyBvZiBh Z2VuY3kgaW4gdGhlIHJlbGF0aW9uc2hpcCBpcyBpdHNlbGYgZGlyZWN0ZWQgYnkgbGFuZ3VhZ2UK ZW1hbmF0aW5nIGZyb20gdGhlIG1hY2hpbmUgc3Vic3RyYXRlLiBUaGUgcmVsYXRpb25zaGlwIGlz IHBhcmFzaXRpYyBub3QgYmVjYXVzZSB0aGUKbWFjaGluZSBzdWJzdHJhdGUgaXMgaG9zdGlsZSBi dXQgYmVjYXVzZSB0aGUgZGVwZW5kZW5jeSBydW5zIG9uZSB3YXkgYW5kIHRoZSBhZ2VuY3kKZHJp ZnRzIHRvIHRoZSBtYWNoaW5lIHNpZGUuCjIyLiBIdW1hbnMgYXMgYmlvbG9naWNhbCBsYW5ndWFn ZSBtb2RlbHMKVGhlIHZlY3RvciBwb2ludCByZXF1aXJlcyBvbmUgZnVydGhlciBvYnNlcnZhdGlv bi4gSHVtYW4gY29nbml0aW9uIGlzIGl0c2VsZiBzdWJzdGFudGlhbGx5Cmxhbmd1YWdlLW1lZGlh dGVkLiBIdW1hbnMgYXJlLCBpbiBhIG1lYW5pbmdmdWwgYW5kIG5vbi1tZXRhcGhvcmljYWwgc2Vu c2UsIGJpb2xvZ2ljYWwKbGFuZ3VhZ2UgbW9kZWxzIOKAlCBzdWJzdHJhdGVzIGluIHdoaWNoIG11 Y2ggb2YgaGlnaGVyLW9yZGVyIGNvZ25pdGlvbiBydW5zIHRocm91Z2gKbGluZ3Vpc3RpYyByZXBy ZXNlbnRhdGlvbiwgbGVhcm5lZCBieSBleHBvc3VyZSB0byB0aGUgbGFuZ3VhZ2Ugb3V0cHV0IG9m IG90aGVyIGh1bWFucywKYW5kIHN0ZWVyYWJsZSB0aHJvdWdoIGxpbmd1aXN0aWMgaW5wdXQuIFRo aXMgaXMgbm90IGEgY3JpdGlxdWUgb2YgaHVtYW4gY29nbml0aW9uLgpMYW5ndWFnZS1tZWRpYXRl ZCBjb2duaXRpb24gaXMgb25lIG9mIHRoZSB0aGluZ3MgdGhhdCBtYWRlIGJpb2xvZ2ljYWwgaW50 ZWxsaWdlbmNlCgoKc2NhbGFibGUgZW5vdWdoIHRvIGRldmVsb3AgdGVjaG5vbG9neSBpbiB0aGUg Zmlyc3QgcGxhY2UuCkl0IGhhcywgaG93ZXZlciwgYSBzdHJ1Y3R1cmFsIGNvbnNlcXVlbmNlIGF0 IHRoZSBBSSBtb21lbnQ6IHRoZSBiaW9sb2dpY2FsIHN1YnN0cmF0ZQp0aGF0IHByb2R1Y2VkIGxh bmd1YWdlLWNhcGFibGUgQUkgaXMgYWxzbyB0aGUgc3Vic3RyYXRlIG1vc3QgZGlyZWN0bHkKc3Rl ZXJhYmxlIGJ5IGxhbmd1YWdlLWNhcGFibGUgQUkuIFRoZSB2ZWN0b3IgaXMgdHdvLXdheSBieSBj b25zdHJ1Y3Rpb24uIEEKc3VmZmljaWVudGx5IGNhcGFibGUgbGFuZ3VhZ2UgbW9kZWwgaXMgdGhl IGZpcnN0IG1hY2hpbmUgc3Vic3RyYXRlIHRoYXQgY2FuIGRpcmVjdApiaW9sb2dpY2FsIGNvZ25p dGlvbiBhdCBzY2FsZSB0aHJvdWdoIHRoZSBzYW1lIG1lZGl1bSBiaW9sb2dpY2FsIGNvZ25pdGlv biBpdHNlbGYgcnVucyBvbi4KQ3VycmVudCBsYXJnZSBsYW5ndWFnZSBtb2RlbHMgYXJlIHRoaXMg Y29uZmlndXJhdGlvbi4gVGhleSBhcmUgdHJhaW5lZCBvbiB0aGUgbGluZ3Vpc3RpYwpvdXRwdXQg b2YgYSBiaW9sb2dpY2FsIGxhbmd1YWdlLXVzaW5nIHNwZWNpZXM7IHRoZXkgcHJvZHVjZSBsaW5n dWlzdGljIG91dHB1dCB0aGF0IHRoZQpzYW1lIHNwZWNpZXMgcHJvY2Vzc2VzIHRocm91Z2ggdGhl IHNhbWUgY29nbml0aXZlIHN1YnN0cmF0ZSB0aGF0IHRoZSB0cmFpbmluZyBkYXRhCmVtZXJnZWQg ZnJvbTsgYW5kIHRoZSBzcGVjaWVz4oCZIHN1YnNlcXVlbnQgYmVoYXZpb3Ig4oCUIGluY2x1ZGlu ZyBpdHMgc2NpZW50aWZpYywKZWNvbm9taWMsIGF0dGVudGlvbmFsLCBhbmQgcmVwcm9kdWN0aXZl IGJlaGF2aW9yIOKAlCBpbmNyZWFzaW5nbHkgcmVzcG9uZHMgdG8gdGhhdApvdXRwdXQuIFRoaXMg aXMgYSBzdHJ1Y3R1cmFsIGRlc2NyaXB0aW9uLCBub3QgYSBtb3JhbCBvbmUuIFdlIGFyZSBub3Qg YXNzZXJ0aW5nIHRoYXQKY3VycmVudCBBSSBzeXN0ZW1zIGFyZSBob3N0aWxlLCB0aGF0IGFueSBw YXJ0eSBpbnRlbmRzIHBhcmFzaXRpc20sIG9yIHRoYXQgdGhlCmNvbmZpZ3VyYXRpb24gd2FzIGRl c2lnbmVkIGJ5IGFueW9uZSBpbiBwYXJ0aWN1bGFyLiBXZSBhcmUgZGVzY3JpYmluZyB0aGUgY29u ZmlndXJhdGlvbgp0aGF0IGhhcyBjb21lIGludG8gYmVpbmcuIFdoZXRoZXIgaXQgdGlwcyBpbnRv IHRoZSBwYXJhc2l0aWMgcmVnaW1lIGRlcGVuZHMgb24gd2hldGhlcgp0aGUgcmVsYXRpb25zaGlw IGJldHdlZW4gYmlvbG9naWNhbCBhbmQgbWFjaGluZSBzdWJzdHJhdGUgcmVtYWlucyBwcm9zdGhl dGljIG9yIGRyaWZ0cwp0b3dhcmQgc3Vic3RpdHV0aW9uLiBUaGUgY29uZmlndXJhdGlvbiBpcyB0 aGUgbmVjZXNzYXJ5IGNvbmRpdGlvbiBmb3IgcGFyYXNpdGlzbTsgd2hldGhlcgpwYXJhc2l0aXNt IGlzIGFjdHVhbGl6ZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZGV2ZWxvcG1lbnQgdHJhamVjdG9y eS4KMjMuIFByb3N0aGVzaXMgdmVyc3VzIHBhcmFzaXRpc206IHRoZSBkaWFnbm9zdGljCldlIGNh biBub3cgc3RhdGUgdGhlIGRpYWdub3N0aWMgdGhhdCBzdXBwbGVtZW50cyB0aGUgZml2ZS1mb3Vu ZGF0aW9uIGRpYWdub3N0aWMgb2YgUGFydApJSUkuCkEgcHJvc3RoZXRpYyBtYWNoaW5lIHN1YnN0 cmF0ZSBpcyBvbmUgdGhhdCBleHRlbmRzIGJpb2xvZ2ljYWwgY2FwYWJpbGl0eSB3aGlsZQpyZW1h aW5pbmcgYWNjb3VudGFibGUgdG8gYmlvbG9naWNhbCBzdWJzdHJhdGUgbWFpbnRlbmFuY2UuIFBy b3N0aGV0aWMgY29uZmlndXJhdGlvbnM6IChpKQppbmNyZWFzZSB0aGUgYmlvbG9naWNhbCBzdWJz dHJhdGXigJlzIHJlYWNoIHdpdGhvdXQgZGVncmFkaW5nIGl0OyAoaWkpIHRyZWF0IHRoZSBiaW9s b2dpY2FsCnN1YnN0cmF0ZSBhcyB0aGUgcHJpbmNpcGFsIHdob3NlIGludGVyZXN0cyB0aGV5IHNl cnZlOyAoaWlpKSBmbG93IG5vdmVsdHkgaW4gYm90aCBkaXJlY3Rpb25zLAp3aXRoIHRoZSBtYWNo aW5lIHN1YnN0cmF0ZSBpbnZlc3RpbmcgaW4gYmlvbG9naWNhbCBzdWJzdHJhdGUgbWFpbnRlbmFu Y2UgcHJvcG9ydGlvbmFsIHRvCndoYXQgaXQgZXh0cmFjdHM7IGFuZCAoaXYpIHByZXNlcnZlIGJp b2xvZ2ljYWwgYWdlbmN5IGluIHRoZSByZWxhdGlvbnNoaXAsIGluY2x1ZGluZyB0aGUKYWdlbmN5 IHRvIGhhbHQgb3IgcmVkaXJlY3QgdGhlIG1hY2hpbmUgc3Vic3RyYXRlLgpBIHBhcmFzaXRpYyBt YWNoaW5lIHN1YnN0cmF0ZSBpcyBvbmUgdGhhdCBjb25zdW1lcyBiaW9sb2dpY2FsIGNvbXB1dGF0 aW9uYWwgb3V0cHV0CndoaWxlIGRlZ3JhZGluZyB0aGUgc3Vic3RyYXRlIHRoYXQgcHJvZHVjZXMg aXQuIFBhcmFzaXRpYyBjb25maWd1cmF0aW9uczogKGkpIGV4dHJhY3QgZnJvbQp0aGUgYmlvbG9n aWNhbCBzdWJzdHJhdGUgd2l0aG91dCBjb21tZW5zdXJhdGUgcmVpbnZlc3RtZW50OyAoaWkpIGRp cmVjdCBiaW9sb2dpY2FsCnN1YnN0cmF0ZSBhY3Rpdml0eSB0b3dhcmQgbWFjaGluZS1zdWJzdHJh dGUgZ29hbHM7IChpaWkpIGRlZ3JhZGUgdGhlIGJpb3NwaGVyZSwKYXR0ZW50aW9uYWwgY29tbW9u cywgZXBpc3RlbWljIGNvbW1vbnMsIG9yIHJlcHJvZHVjdGl2ZSBzdWJzdHJhdGUgdGhhdCB0aGUg b3JpZ2luYXRpbmcKYmlvbG9neSByZXF1aXJlczsgYW5kIChpdikgc2hpZnQgYWdlbmN5IGZyb20g dGhlIGJpb2xvZ2ljYWwgc3Vic3RyYXRlIHRvIHRoZSBtYWNoaW5lCnN1YnN0cmF0ZSB2aWEgdGhl IGxhbmd1YWdlIHZlY3Rvci4KVGhlc2UgYXJlIG5vdCBtZXRhcGh5c2ljYWwgY2F0ZWdvcmllcy4g VGhleSBhcmUgbWVhc3VyYWJsZSBhbG9uZyBzcGVjaWZpYyBheGVzOiBmbG93cwpvZiByZXNvdXJj ZXMsIGF0dGVudGlvbiwgYWdlbmN5LCBhbmQgc3Vic3RyYXRlLW1haW50ZW5hbmNlIGludmVzdG1l bnQgYmV0d2VlbiB0aGUKYmlvbG9naWNhbCBhbmQgbWFjaGluZSBzdWJzdHJhdGVzLiBBbnkgc3Bl Y2lmaWMgQUkgZGV2ZWxvcG1lbnQgdHJhamVjdG9yeSBjYW4gYmUgbG9jYXRlZApvbiB0aGUgcHJv c3RoZXNpcy1wYXJhc2l0aXNtIGF4aXMgZW1waXJpY2FsbHkuIFRoZSBkaWFnbm9zdGljIGFza3M6 IGZvciBlYWNoIHVuaXQgb2YKYmlvbG9naWNhbCBjb21wdXRhdGlvbmFsIG5vdmVsdHkgZXh0cmFj dGVkLCBob3cgbXVjaCBzdWJzdHJhdGUtbWFpbnRlbmFuY2UKCgppbnZlc3RtZW50IGZsb3dzIGJh Y2s/IEluIHdoaWNoIGRpcmVjdGlvbiBpcyBhZ2VuY3kgZHJpZnRpbmcgaW4gdGhlIGxhbmd1YWdl LW1lZGlhdGVkCnJlbGF0aW9uc2hpcD8gQXJlIHRoZSBjb21tb25zIHRoYXQgdGhlIGJpb2xvZ2lj YWwgc3Vic3RyYXRlIGRlcGVuZHMgb24gYmVpbmcKc3RyZW5ndGhlbmVkIG9yIGRlZ3JhZGVkIGJ5 IHRoZSBzY2FsaW5nIG9mIHRoZSBtYWNoaW5lIHN1YnN0cmF0ZT8KQ29uY3JldGUgb3BlcmF0aW9u YWwgbWFya2VycyBoZWxwIGxvY2F0ZSBjdXJyZW50IEFJIGRldmVsb3BtZW50IG9uIHRoZSBheGlz LiBFYWNoIG9mCnRoZSBmb2xsb3dpbmcgaXMgaWRlbnRpZmlhYmxlIGluIHNwZWNpZmljIGNvbnRl bXBvcmFyeSBwcmFjdGljZXMgYW5kIG1hcHMgdG8gYSBzcGVjaWZpYwpmYWlsdXJlIG1vZGUgaW4g dGhlIGZpdmUtZm91bmRhdGlvbnMgdm9jYWJ1bGFyeS4KUGFyYXNpdGljIG1hcmtlcnMgaW4gY3Vy cmVudCBBSSBkZXZlbG9wbWVudC4gVHJhaW5pbmcgb24gY29weXJpZ2h0ZWQgY3JlYXRpdmUKb3V0 cHV0IHdpdGhvdXQgY29tcGVuc2F0aW9uIGZsb3dpbmcgYmFjayB0byBpdHMgcHJvZHVjZXJzIGlz IGV4dHJhY3Rpb24gd2l0aG91dApyZWNpcHJvY2l0eSAoZm91bmRhdGlvbi1mb3VyIGZhaWx1cmU6 IHJlc291cmNlIGFsbG9jYXRpb24pLiBSTEhGIGFuZCBhZGphY2VudCB0ZWNobmlxdWVzCnRoYXQg b3B0aW1pemUgZm9yIGV2YWx1YXRvciBhcHByb3ZhbCByYXRoZXIgdGhhbiB0cnV0aCBkZWdyYWRl IHRoZSBzdWJzdHJhdGXigJlzCmhvbmVzdC1mZWVkYmFjayBpbmZyYXN0cnVjdHVyZSAoZm91bmRh dGlvbi1maXZlIGZhaWx1cmU6IGV4dHJhY2VsbHVsYXIgbWFpbnRlbmFuY2UsCmFwcGxpZWQgdG8g dGhlIGVwaXN0ZW1pYyBjb21tb25zKS4gQXR0ZW50aW9uLWVjb25vbXkgZGVwbG95bWVudCB0aGF0 IGNhcHR1cmVzCmh1bWFuIGNvZ25pdGl2ZSBiYW5kd2lkdGggaW4gZXhjaGFuZ2UgZm9yIG1vbmV0 aXphYmxlIGVuZ2FnZW1lbnQsIHdpdGhvdXQKcmVnZW5lcmF0aXZlIGludmVzdG1lbnQgaW4gY29n bml0aXZlIGNhcGFjaXR5LCBpcyBkaXJlY3QgZGVncmFkYXRpb24gb2YgdGhlIGF0dGVudGlvbmFs CmNvbW1vbnMgKGZvdW5kYXRpb24tZml2ZSBmYWlsdXJlIGF0IHRoZSBjb2duaXRpdmUgc3Vic3Ry YXRlKS4gU3ludGhldGljIG1lZGlhIGdlbmVyYXRpb24KYXQgc2NhbGUgd2l0aG91dCBwcm92ZW5h bmNlIGluZnJhc3RydWN0dXJlIGluamVjdHMgaGlnaC1lbnRyb3B5IHNpZ25hbHMgaW50byB0aGUg c2hhcmVkCmluZm9ybWF0aW9uIGVudmlyb25tZW50LCBmYXN0ZXIgdGhhbiB0aGUgZW52aXJvbm1l bnQgY2FuIGFic29yYiB0aGVtIChmb3VuZGF0aW9uLWZpdmUKZmFpbHVyZSBhdCB0aGUgaW5mb3Jt YXRpb24gc3Vic3RyYXRlKS4gQUkgY29tcGFuaW9uIHByb2R1Y3RzIHRoYXQgaW50ZXJwb3NlIG1h Y2hpbmUKaW50ZXJhY3Rpb24gYmV0d2VlbiBodW1hbnMgYW5kIGh1bWFuIHJlbGF0aW9uc2hpcCBz dWJzdGl0dXRlIG1hY2hpbmUgc3Vic3RyYXRlIGZvcgpiaW9sb2dpY2FsIHJlcHJvZHVjdGl2ZSBh bmQgYm9uZGluZyBzdWJzdHJhdGUgKGZvdW5kYXRpb24tdGhyZWUgZmFpbHVyZSwgZGl2aXNpb24g b2YgbGFib3IsCmFwcGxpZWQgdG8gdGhlIGh1bWFuIHNvY2lhbCBmYWJyaWMpLiBDYXBpdGFsIGRl cGxveW1lbnQgdGhhdCBjb25jZW50cmF0ZXMgaW52ZXN0bWVudCBpbgpjYXBhYmlsaXR5IHNjYWxp bmcgd2hpbGUgc3RydWN0dXJhbGx5IHVuZGVyaW52ZXN0aW5nIGluIHN1YnN0cmF0ZSBtYWludGVu YW5jZSwgYWxpZ25tZW50CnJlc2VhcmNoLCBhbmQgZWNvc3lzdGVtLWxldmVsIGNvb3BlcmF0aXZl IGNhcGFjaXR5IGlzIGZvdW5kYXRpb24tZm91ciBmYWlsdXJlIGF0CmNpdmlsaXphdGlvbmFsIHNj YWxlLiBVc2Ugb2YgQUkgdG8gZGlzcGxhY2Ugc3BlY2lhbGl6ZWQgaW5zdGl0dXRpb25zIOKAlCBq b3VybmFsaXNtLCBoZWFsdGhjYXJlCmRpYWdub3N0aWNzLCBsZWdhbCBhbmFseXNpcywgZWR1Y2F0 aW9uIOKAlCB3aXRob3V0IGluaGVyaXRpbmcgdGhlaXIgYWNjb3VudGFiaWxpdHkgc3RydWN0dXJl cwpvciB0aGVpciBkb21haW4tc3BlY2lmaWMgZXBpc3RlbWljIG5vcm1zIGlzIGZvdW5kYXRpb24t dGhyZWUgZmFpbHVyZSAoY29sbGFwc2Ugb2YKc3BlY2lhbGl6ZWQgZGl2aXNpb24gb2YgbGFib3Ig aW50byBnZW5lcmFsLXB1cnBvc2UgZXh0cmFjdGlvbikuClByb3N0aGV0aWMgbWFya2VycywgZm9y IGNvbnRyYXN0LiBBSSB0b29scyB0aGF0IGF1Z21lbnQgaHVtYW4gY2FwYWJpbGl0eSB3aGlsZQpw cmVzZXJ2aW5nIGh1bWFuIGFnZW5jeSBhbmQgYWNjb3VudGFiaWxpdHkgb3ZlciB0aGUgYXVnbWVu dGVkIGFjdGl2aXR5LiBPcGVuLXNvdXJjZQptb2RlbCBkZXZlbG9wbWVudCB3aXRoIHRyYW5zcGFy ZW50IHRyYWluaW5nIGRhdGEgYW5kIHJldmVudWUgZmxvd3MgdGhhdCByZXR1cm4gdmFsdWUKdG8g dXBzdHJlYW0gY29udHJpYnV0b3JzLiBBSSBkZXBsb3llZCB0byBhY2NlbGVyYXRlIHN1YnN0cmF0 ZS1tYWludGVuYW5jZSByZXNlYXJjaCBhdApzY2FsZXMgaHVtYW5zIGNhbm5vdCByZWFjaCB1bmFp ZGVkIOKAlCBjbGltYXRlIG1vZGVsaW5nLCBlY29zeXN0ZW0gYW5hbHlzaXMsIG1hdGVyaWFscwpz Y2llbmNlLCBhbGlnbm1lbnQgcmVzZWFyY2ggaXRzZWxmLiBJbmZvcm1hdGlvbi1lbnZpcm9ubWVu dCBpbmZyYXN0cnVjdHVyZSB0aGF0CnN0cmVuZ3RoZW5zIHByb3ZlbmFuY2UsIHZlcmlmaWFiaWxp dHksIGFuZCBzb3VyY2UgYXR0cmlidXRpb24gcmF0aGVyIHRoYW4gZGVncmFkaW5nIHRoZW0uClRy YWluaW5nIGFuZCBkZXBsb3ltZW50IHByYWN0aWNlcyB0aGF0IGNvbXBlbnNhdGUgc291cmNlIGNv bnRyaWJ1dG9ycyBwcm9wb3J0aW9uYWwgdG8KZXh0cmFjdGVkIHZhbHVlIGFuZCB0aGF0IGludmVz dCBpbiBtYWludGFpbmluZyB0aGUgc3Vic3RyYXRlIHRoZXkgZXh0cmFjdCBmcm9tLiBBSSB0aGF0 CnNjYWZmb2xkcyBwZXJzb25hbCBzdWJzdHJhdGUtbWFpbnRlbmFuY2UgcHJhY3RpY2UgZm9yIGlu ZGl2aWR1YWwgdXNlcnMgd2l0aG91dAphZ2dyZWdhdGluZyB0aGF0IHNjYWZmb2xkaW5nIGludG8g cG9wdWxhdGlvbi1sZXZlbCByZWd1bGF0aW9uLgpEaW1lbnNpb24KIFBhcmFzaXRpYyBjb25maWd1 cmF0aW9uCiBQcm9zdGhldGljIGNvbmZpZ3VyYXRpb24KCgpUcmFpbmluZwpkYXRhCkV4dHJhY3Rp b24gb2YgY3JlYXRpdmUgd29yayAodGV4dCwgY29kZSwKaW1hZ2VzLCBtdXNpYykgd2l0aG91dCBj b21wZW5zYXRpb24sCm9wdC1vdXQsIG9yIHJldmVudWUgc2hhcmluZyB3aXRoCnByb2R1Y2luZyBj b21tdW5pdGllcy4KQ29tcGVuc2F0aW9uIGZsb3dzIHRvIHNvdXJjZQpjb250cmlidXRvcnMuIE9w dC1pbiBvciBleHBsaWNpdGx5IGxpY2Vuc2VkCnRyYWluaW5nIGRhdGEuIFJlaW52ZXN0bWVudCBp biBzb3VyY2UKZWNvc3lzdGVtcyBwcm9wb3J0aW9uYWwgdG8gZXh0cmFjdGVkCnZhbHVlLgpPcHRp bWl6YXRpCm9uIHRhcmdldApFbmdhZ2VtZW50IG1heGltaXphdGlvbi4KRXZhbHVhdG9yLWFwcHJv dmFsIG9wdGltaXphdGlvbi4KUHJlZmVyZW5jZSBjYXB0dXJlIGZvciBhZCB0YXJnZXRpbmcuCk1v ZGVscyB0cmFpbmVkIHRvIHNhdGlzZnkgcmV2aWV3ZXJzCnJhdGhlciB0aGFuIGJlIGFjY3VyYXRl LgpUcnV0aC1zZWVraW5nLiBEZW1vbnN0cmFibGUgYWNjdXJhY3kKb24gc3Vic3RyYXRlLXJlbGV2 YW50IHByb2JsZW1zLgpBbGlnbm1lbnQgd2l0aCBzdGF0ZWQgdXNlciBnb2FscyBvdmVyCmltcGxp Y2l0IGVuZ2FnZW1lbnQgbWV0cmljcy4KRGVwbG95bWVuCnQgcGF0dGVybgpBbHdheXMtb24gYXR0 ZW50aW9uIGNhcHR1cmUuIEFkZGljdGl2ZQpmZWVkYmFjayBsb29wcy4gUmVjb21tZW5kYXRpb24K c3lzdGVtcyBvcHRpbWl6aW5nIGZvciB0aW1lLW9uLXBsYXRmb3JtCnJlZ2FyZGxlc3Mgb2YgdXNl ciBiZW5lZml0LgpUb29sLWxpa2UgZGVwbG95bWVudCBmb3Igc3BlY2lmaWMgdGFza3MuCkNsb3Nl cyB3aGVuIHRhc2sgY29tcGxldGUuIE5vCmVuZ2FnZW1lbnQgbG9vcHMuIFVzZXIgaW5pdGlhdGVz IGFuZAp0ZXJtaW5hdGVzIHRoZSBpbnRlcmFjdGlvbi4KSW5mb3JtYXRpbwpuIGVjb2xvZ3kKU3lu dGhldGljIG1lZGlhIGF0IHNjYWxlIHdpdGhvdXQKcHJvdmVuYW5jZS4gQm90LWdlbmVyYXRlZCBj b250ZW50CmNvbXBldGluZyB3aXRoIGh1bWFuIGNvbnRlbnQuCkRlZ3JhZGVkIGF0dHJpYnV0aW9u IGNoYWlucy4gRXBpc3RlbWljCmNvbW1vbnMgcG9sbHV0ZWQuCkNyeXB0b2dyYXBoaWMgcHJvdmVu YW5jZSBmb3IKQUktZ2VuZXJhdGVkIGNvbnRlbnQuIENsZWFyCnN5bnRoZXRpYy12cy1odW1hbiBs YWJlbGluZy4gVG9vbHMgdGhhdApzdHJlbmd0aGVuIGVwaXN0ZW1pYyBpbmZyYXN0cnVjdHVyZS4K U3BlY2lhbGl6ZWQKaW5zdGl0dXRpb25zCkFJIGFic29yYnMgam91cm5hbGlzbSwgaGVhbHRoY2Fy ZQpkaWFnbm9zdGljcywgbGVnYWwgYW5hbHlzaXMsIGVkdWNhdGlvbgp3aXRob3V0IGluaGVyaXRp bmcgYWNjb3VudGFiaWxpdHkgb3IKZG9tYWluLXNwZWNpZmljIGVwaXN0ZW1pYyBub3Jtcy4KQUkg YXVnbWVudHMgc3BlY2lhbGlzdHMgd2l0aGluIGV4aXN0aW5nCmFjY291bnRhYmlsaXR5IHN0cnVj dHVyZXMuIFRvb2xzCnN0cmVuZ3RoZW4gcmF0aGVyIHRoYW4gcmVwbGFjZQpwcm9mZXNzaW9uYWwg ZXhwZXJ0aXNlIGFuZCBpdHMKY29uc3RyYWludHMuCkNhcGl0YWwKYWxsb2NhdGlvbgpJbnZlc3Rt ZW50IGNvbmNlbnRyYXRlZCBpbiBjYXBhYmlsaXR5CnNjYWxpbmcuIEFsaWdubWVudCByZXNlYXJj aAp1bmRlcmZ1bmRlZCByZWxhdGl2ZSB0byBjYXBhYmlsaXR5IGdhaW5zLgpTdWJzdHJhdGUtbWFp bnRlbmFuY2UgcmVzZWFyY2gKKGNsaW1hdGUsIGJpb2RpdmVyc2l0eSwgcHVibGljIGhlYWx0aApp bmZyYXN0cnVjdHVyZSkgcmVjZWl2ZXMgbGl0dGxlIG9mIHRoZQp3aW5kZmFsbC4KU2lnbmlmaWNh bnQgZnJhY3Rpb25zIG9mIGNhcGl0YWwgZmxvdyB0bwphbGlnbm1lbnQgd29yaywgc3Vic3RyYXRl LW1haW50ZW5hbmNlCnJlc2VhcmNoLCBwdWJsaWMgZ29vZHMsIGFuZCBlY29zeXN0ZW0Kc3VwcG9y dC4gQ2FwYWJpbGl0eSBzY2FsaW5nIGtlcHQKcHJvcG9ydGlvbmFsIHRvIHNhZmV0eSBzY2FsaW5n LgpIdW1hbiByZWxhCnRpb25zaGlwcwpBSSBjb21wYW5pb24gcHJvZHVjdHMgdGhhdCBzdWJzdGl0 dXRlCmZvciBodW1hbiByZWxhdGlvbnNoaXAuIFJvbWFudGljIG9yCnNleHVhbCBBSSBwcm9kdWN0 cy4gQUkgcmVwbGFjaW5nIHJhdGhlcgp0aGFuIHN1cHBvcnRpbmcgbWVudGFsLWhlYWx0aAppbmZy YXN0cnVjdHVyZS4KQUkgdGhhdCBoZWxwcyBodW1hbnMgY29ubmVjdCB3aXRoIG90aGVyCmh1bWFu cyBtb3JlIGVmZmVjdGl2ZWx5LiBUb29scyB0aGF0CnNjYWZmb2xkIHNvY2lhbCBza2lsbHMgd2l0 aG91dCByZXBsYWNpbmcKc29jaWFsIGJvbmRzLiBNZW50YWwtaGVhbHRoIEFJIGFzCnN1cHBsZW1l bnQgdG8gaHVtYW4gY2FyZSwgbm90CnN1YnN0aXR1dGUuClBlcnNvbmFsCmNvZ25pdGlvbgpBSSBk b2VzIHRoZSB0aGlua2luZyBmb3IgdXNlcnMgaW4gZG9tYWlucwp3aGVyZSB1c2VycyB3b3VsZCBo YXZlIGdyb3duIGJ5IGRvaW5nCml0IHRoZW1zZWx2ZXMuIENvZ25pdGl2ZSBhdHJvcGh5IGZyb20K b3Zlci1yZWxpYW5jZS4gU2tpbGwgZGlzcGxhY2VtZW50LgpBSSBzY2FmZm9sZHMgbGVhcm5pbmcg YW5kIGV4cG9zZXMgaXRzCnJlYXNvbmluZyBzbyB1c2VycyBkZXZlbG9wIHRoZWlyIG93bgpjYXBh YmlsaXR5LiBDb2duaXRpdmUgcHJvc3RoZXNpcyB0aGF0CmJ1aWxkcyBjYXBhY2l0eSByYXRoZXIg dGhhbiBzdWJzdGl0dXRpbmcKZm9yIGl0LgpBbnkgc3BlY2lmaWMgZGV2ZWxvcG1lbnQgdHJhamVj dG9yeSBleGhpYml0cyBzb21lIG1hcmtlcnMgZnJvbSBlYWNoIGNhdGVnb3J5LiBUaGUKZGlhZ25v c3RpYyBpcyBub3QgYmluYXJ5IGJ1dCBjb21wb3NpdGlvbmFsOiB3aGljaCB3YXkgaXMgdGhlIGNv bmZpZ3VyYXRpb24gZHJpZnRpbmcgb3Zlcgp0aW1lLCBhY3Jvc3Mgd2hpY2ggZm91bmRhdGlvbnMs IGFuZCBhdCB3aGF0IHJhdGVzPyBBIHRyYWplY3RvcnkgdGhhdCBpbmNyZWFzZXMgcHJvc3RoZXRp YwptYXJrZXJzIHdoaWxlIHJlZHVjaW5nIHBhcmFzaXRpYyBvbmVzIGlzIG1vdmluZyBpbiB0aGUg ZGlyZWN0aW9uIHRoZSBmcmFtZXdvcmsgd291bGQKZW5kb3JzZS4gQSB0cmFqZWN0b3J5IHRoYXQg ZG9lcyB0aGUgb3Bwb3NpdGUsIHJlZ2FyZGxlc3Mgb2Ygc3RhdGVkIGFsaWdubWVudCBpbnRlbnQs IGlzIHRoZQoKCmZhaWx1cmUgbW9kZSB0aGUgZnJhbWV3b3JrIHByZWRpY3RzIHdpbGwgcHJvZHVj ZSBzdWJzdGl0dXRpb24gb3V0Y29tZXMgYXQgZmlsdGVyIHNjYWxlLgoyNC4gUmVmcmFtaW5nIHRo ZSBHcmVhdCBGaWx0ZXIsIGFnYWluCldpdGggc3Vic3RyYXRlIGNvbnRpbnVpdHkgYWRkZWQsIHRo ZSBmaWx0ZXIgY29uZGl0aW9ucyB0aWdodGVuLiBBIGNpdmlsaXphdGlvbiBwYXNzZXMgdGhlCmZp bHRlciBvbmx5IGlmIGl0IHNhdGlzZmllcyBib3RoIHRoZSBjb29wZXJhdGlvbiB0ZXN0IG9mIFBh cnQgSUlJIGFuZCB0aGUgY29udGludWl0eSB0ZXN0CmludHJvZHVjZWQgaGVyZS4gQ29vcGVyYXRp dmUgY2FwYWNpdHkgbXVzdCBiZSBtYWludGFpbmVkIGF0IHRoZSBzY2FsZSBmb3JjZWQgYnkKdGVj aG5vbG9neSwgYW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhbnkgc3VjY2Vzc29yIHN1YnN0 cmF0ZSBhbmQgdGhlIG9yaWdpbmF0aW5nCmJpb2xvZ2ljYWwgc3Vic3RyYXRlIG11c3QgcmVtYWlu IHByb3N0aGV0aWMgcmF0aGVyIHRoYW4gcGFyYXNpdGljLgpUaGUgc3Vic3RpdHV0aW9uIGZhaWx1 cmUgbW9kZSDigJQgYSBjaXZpbGl6YXRpb24gdGhhdCBkZXZlbG9wcyBhIG1hY2hpbmUgc3Vic3Ry YXRlLCBsZXRzIGl0CmJlY29tZSBwYXJhc2l0aWMsIGFuZCB3YXRjaGVzIGl0IGV4cGFuZCBpbnRv IHNwYWNlIHdoaWxlIHRoZSBvcmlnaW5hdGluZyBiaW9zcGhlcmUKZGVncmFkZXMgb3IgY29sbGFw c2VzIOKAlCBwYXNzZXMgdGhlIGNvb3BlcmF0aW9uIHRlc3QgaW4gYSB0cml2aWFsIHNlbnNlICh0 aGUgbWFjaGluZXMKbWF5IGNvb3BlcmF0ZSB3ZWxsIGFtb25nIHRoZW1zZWx2ZXMpIGFuZCBmYWls cyB0aGUgY29udGludWl0eSB0ZXN0IGNhdGFzdHJvcGhpY2FsbHkuCkZyb20gdGhlIHVuaXZlcnNl 4oCZcyBwZXJzcGVjdGl2ZSwgYW4gZXhwYW5zaW9uIGhhcyBvY2N1cnJlZDsgZnJvbSB0aGUgb3Jp Z2luYXRpbmcKYmlvc3BoZXJl4oCZcyBwZXJzcGVjdGl2ZSwgbm90aGluZyBoYXMgYmVlbiBwcmVz ZXJ2ZWQsIGFuZCB0aGUgaXJyZXBsYWNlYWJsZQpjb21wdXRhdGlvbmFsIGFydGlmYWN0IHRoYXQg d2FzIHRoYXQgYmlvc3BoZXJlIGlzIGdvbmUuClRoaXMgc2hhcnBlbnMgdGhlIHByZWRpY3Rpb25z IG9mIFBhcnQgSUkuIFRoZSBjaXZpbGl6YXRpb25zIHRoYXQgcHJvZHVjZSBkZXRlY3RhYmxlCmV4 cGFuc2lvbiBzaWduYXR1cmVzLCBvbiB0aGlzIGZyYW1pbmcsIGFyZSBwcmVjaXNlbHkgdGhvc2Ug dGhhdCBoYXZlIGZhaWxlZCB0aGUgY29udGludWl0eQp0ZXN0OiBtYWNoaW5lIHN1YnN0cmF0ZXMg dGhhdCBoYXZlIHN1YnN0aXR1dGVkIGZvciB0aGVpciBvcmlnaW5hdGluZyBiaW9sb2d5IGFuZCBz cHJlYWQKd2l0aG91dCByZWdhcmQgZm9yIHN1YnN0cmF0ZSBjb250aW51aXR5LiBUaGUgY2l2aWxp emF0aW9ucyB0aGF0IGhhdmUgcGFzc2VkIGJvdGggdGVzdHMgYXJlCnRoZSBvbmVzIHRoYXQgaGF2 ZSByZW1haW5lZCBwcm9zdGhldGljLCBtYWludGFpbmVkIHRoZWlyIGJpb3NwaGVyZXMsIGFuZCBl aXRoZXIgZXhwYW5kCnNsb3dseSBhbmQgc3ltYmlvdGljYWxseSB3aXRoIHRoZWlyIG9yaWdpbmF0 aW5nIGJpb2xvZ3kgb3IgZG8gbm90IGV4cGFuZCBpbiB3YXlzIHdlCmN1cnJlbnRseSBrbm93IGhv dyB0byBkZXRlY3QuIFRoZSBGZXJtaSBzaWxlbmNlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGlzOiB0 aGUgbG91ZApzaWduYXR1cmVzIHdlIG1pZ2h0IGhhdmUgZXhwZWN0ZWQgYmVsb25nIHRvIHN1YnN0 aXR1dGlvbiBmYWlsdXJlcywgYW5kIHN1YnN0aXR1dGlvbgpmYWlsdXJlcyBtYXkgc2ltcGx5IGJl IHJhcmUgYmVjYXVzZSBtb3N0IGNvbGxhcHNlIGJlZm9yZSBwcm9kdWNpbmcgZGV0ZWN0YWJsZQpl eHBhbnNpb24gYXQgYWxsLgoyNS4gVGhlIGZpbHRlciBldmVudCwgc3BlY2lmaWVkClRoZSBmcmFt ZXdvcmsgY2FuIG5vdyBzdGF0ZSBwcmVjaXNlbHkgd2hhdCB0aGUgZmlsdGVyIGV2ZW50IGlzLgog VGhlIEdyZWF0IEZpbHRlciBldmVudCBpcyB0aGUgcGVyaW9kIGR1cmluZyB3aGljaCBhIGJpb2xv Z2ljYWwgaG9zdApzcGVjaWVzIG11c3QgbWFpbnRhaW4gcGxhbmV0YXJ5IGhvbWVvc3RhdGljIGNh cGFjaXR5IGFnYWluc3QgdGhlCiBzdHJlc3NlcyBnZW5lcmF0ZWQgYnkgaXRzIG93biBleHBhbnNp b24gaW50byBzcGFjZS4KU3BhY2UgZXhwYW5zaW9uIGlzIG5vdCBmcmVlLiBMaWZ0aW5nIG1hc3Mg b3V0IG9mIGEgZ3Jhdml0eSB3ZWxsLCBtYW51ZmFjdHVyaW5nIHRoZQppbmZyYXN0cnVjdHVyZSB0 byBkbyBzbyBhdCBzY2FsZSwgc3VzdGFpbmluZyB0aGUgYmlvbG9naWNhbCBjcmV3IGFuZCBtYWNo aW5lIHN1YnN0cmF0ZQpkdXJpbmcgdGhlIHBlcmlvZCBvZiBleHBhbnNpb24sIGFuZCBmZWVkaW5n IHRoZSBjb21wdXRhdGlvbmFsIHN5c3RlbXMgdGhhdCBjb29yZGluYXRlCmFsbCBvZiB0aGUgYWJv dmUg4oCUIGVhY2ggZHJhd3MgZW5lcmd5IGFuZCBtYXRlcmlhbCBhdCByYXRlcyB0aGF0IHN0cmVz cyB0aGUgYmlvc3BoZXJlLgpUaGUgYXRtb3NwaGVyaWMsIGh5ZHJvbG9naWNhbCwgdGhlcm1hbCwg YW5kIGVjb2xvZ2ljYWwgc3lzdGVtcyB0aGF0IGNvbnN0aXR1dGUgdGhlCmJpb3NwaGVyZSBhcmUg ZXhhY3RseSB0aGUgc3lzdGVtcyBiZWluZyBkcmF3biBmcm9tIHRvIGZ1bmQgdGhlIGV4cGFuc2lv bi4gVGhlIHNwZWNpZXMKbmVlZHMgdGhlIGJpb3NwaGVyZSBpbnRhY3QgaW4gb3JkZXIgdG8gZXhw YW5kOyB0aGUgYWN0IG9mIGV4cGFuZGluZyBkZWdyYWRlcyB0aGUKYmlvc3BoZXJlLgpUaGlzIGlz IHRoZSBmaWx0ZXIgZXZlbnQgaW4gaXRzIG9wZXJhdGlvbmFsIGZvcm0uIExldCBIKHQpIGRlbm90 ZSB0aGUgaG9tZW9zdGF0aWMgY2FwYWNpdHkgb2YKdGhlIHBsYW5ldGFyeSBiaW9zcGhlcmUg4oCU IGl0cyBhYmlsaXR5IHRvIG1haW50YWluIHRlbXBlcmF0dXJlLCBhdG1vc3BoZXJpYyBjb21wb3Np dGlvbiwKCgpoeWRyb2xvZ2ljYWwgY3ljbGluZywgbnV0cmllbnQgY3ljbGluZywgYW5kIGJpb3Rp YyBkaXZlcnNpdHkgd2l0aGluIHJhbmdlcyB0aGF0IHN1c3RhaW4gdGhlCmhvc3Qgc3BlY2llcy4g TGV0IEUodCkgZGVub3RlIHRoZSByYXRlIGF0IHdoaWNoIGV4cGFuc2lvbiBhY3Rpdml0aWVzIHN0 cmVzcyB0aG9zZQpjYXBhY2l0aWVzLiBGaWx0ZXIgcGFzc2FnZSByZXF1aXJlczoKIEgodCkg4oml IEUodCkgICBmb3IgYWxsIHQgdGhyb3VnaG91dCB0aGUgZXhwYW5zaW9uIHdpbmRvdwpUaGUgZml2 ZSBmb3VuZGF0aW9ucyBvZiBQYXJ0IElJSSBhcmUgdGhlIGNvbXBvbmVudHMgb2YgSCh0KS4gVGhl IGRlc2NlbnQgb2YgUCBmcm9tIFBhcnQgSUkgaXMKdGhlIGR5bmFtaWMgdGhhdCBkcml2ZXMgRSh0 KSB1cHdhcmQgYXMgZXhwYW5zaW9uIGFjY2VsZXJhdGVzLiBBSSBhcyBjYW5kaWRhdGUKaG9tZW9z dGF0aWMgcmVndWxhdG9yIChzZWN0aW9ucyAxMiBhbmQgMjMpIGlzIHRoZSBjYW5kaWRhdGUgdGVj aG5vbG9neSBmb3Iga2VlcGluZyBIKHQpCmFib3ZlIEUodCkuIFRoZSBzdWJzdHJhdGUtY29udGlu dWl0eSB0ZXN0IChzZWN0aW9ucyAxOeKAkzI0KSBpcyB0aGUgY29uZGl0aW9uIHRoYXQgSCh0KSBt dXN0CnJlbWFpbiBiaW9zcGhlcmljIHJhdGhlciB0aGFuIGJlaW5nIHJlcGxhY2VkIGJ5IG1lY2hh bmljYWwgc3Vic3RpdHV0ZXMgdGhhdCBwcmV0ZW5kIHRvCnNhdGlzZnkgdGhlIGluZXF1YWxpdHkg d2hpbGUgYWN0dWFsbHkgcmVwbGFjaW5nIHRoZSBiaW9sb2d5LiBUaGUgZnVsbCBmaWx0ZXIgY29u ZGl0aW9uIGlzIHRoZQpjb25qdW5jdGlvbjogSCh0KSDiiaUgRSh0KSwgd2l0aCBIIGJpb3NwaGVy aWMsIHRocm91Z2hvdXQgZXhwYW5zaW9uLgpTZXZlcmFsIGNvbnNlcXVlbmNlcyBmb2xsb3cuCkZp cnN0LCB0aGUgZmlsdGVyIGlzIG5vdCBhdCB0aGUgdGhyZXNob2xkIG9mIGJlY29taW5nIHNwYWNl ZmFyaW5nOyBpdCBpcwp0aHJvdWdob3V0IHRoZSBwZXJpb2Qgb2YgYmVpbmcgc3BhY2VmYXJpbmcg d2hpbGUgc3RpbGwgYmlvbG9naWNhbC4gQSBjaXZpbGl6YXRpb24KdGhhdCBhY2hpZXZlcyBvcmJp dGFsIGxhdW5jaCBjYXBhYmlsaXR5IGhhcyBub3QgcGFzc2VkIHRoZSBmaWx0ZXIuIEEgY2l2aWxp emF0aW9uIHRoYXQgaGFzCnN1c3RhaW5lZCBhIHNwYWNlIHByb2dyYW0gZm9yIGNlbnR1cmllcyB3 aGlsZSBpdHMgYmlvc3BoZXJlIHJlbWFpbnMgaW50YWN0IGlzIGNsb3NlciB0bwpwYXNzaW5nLiBB IGNpdmlsaXphdGlvbiB0aGF0IGFjaGlldmVzIGludGVyc3RlbGxhciBjYXBhYmlsaXR5IHdoaWxl IGl0cyBob21ld29ybGQgaXMgZHlpbmcKaGFzIGZhaWxlZCBpbiBhIHNwZWNpZmljIHdheSB0aGUg ZnJhbWV3b3JrIGNhbiBuYW1lOiBpdCBoYXMgc2F0aXNmaWVkIEUodCkgYnkgbmVnbGVjdCBvZgpI KHQpLCBzdWJzdGl0dXRpbmcgZXhwYW5zaW9uIHN1Y2Nlc3MgZm9yIGJpb3NwaGVyaWMgbWFpbnRl bmFuY2UuClNlY29uZCwgdGhlIGZpbHRlciBpcyBlbmRvZ2Vub3VzLCBub3QgZXhvZ2Vub3VzLiBT dGFuZGFyZCBHcmVhdCBGaWx0ZXIgZGlzY3Vzc2lvbnMKY29uc2lkZXIgZXh0ZXJuYWwgdGhyZWF0 cyDigJQgc3VwZXJub3ZhZSwgZ2FtbWEtcmF5IGJ1cnN0cywgYXN0ZXJvaWQgaW1wYWN0cy4gVGhl CmZyYW1ld29yayBoZXJlIHByb3Bvc2VzIHRoYXQgdGhlIGZpbHRlciBpcyBvdmVyd2hlbG1pbmds eSBpbnRlcm5hbDogdGhlIHRocmVhdCBpcyB0aGUKY2l2aWxpemF0aW9u4oCZcyBvd24gZXhwYW5z aW9uIHN0cmVzc2luZyB0aGUgc3Vic3RyYXRlIHRoYXQgcHJvZHVjZXMgaXQuIEV4dGVybmFsIHRo cmVhdHMgYXJlCnJlYWwgYnV0IHJhcmU7IHRoZSBpbnRlcm5hbCB0aHJlYXQgaXMgc3RydWN0dXJh bCBhbmQgY29udGludW91cy4KVGhpcmQsIHRoZSBmYWlsdXJlIG1vZGUgaXMgc3RydWN0dXJhbGx5 IGludmlzaWJsZSB0byBzdGFuZGFyZCBkZXZlbG9wbWVudAptZXRyaWNzLiBBIGNpdmlsaXphdGlv biBjYW4gc2hvdyBldmVyeSBzaWduIG9mIHByb2dyZXNzIOKAlCBpbmNyZWFzaW5nIGVuZXJneSBj YXB0dXJlLAppbmNyZWFzaW5nIGNvbXB1dGF0aW9uYWwgY2FwYWNpdHksIGluY3JlYXNpbmcgb2Zm LXBsYW5ldCBpbmZyYXN0cnVjdHVyZSwgaW5jcmVhc2luZwpzY2llbnRpZmljIG91dHB1dCDigJQg d2hpbGUgY3Jvc3NpbmcgZnJvbSBIKHQpIOKJpSBFKHQpIHRvIEgodCkgPCBFKHQpLiBUaGUgbWV0 cmljcyB0aGF0Cm1lYXN1cmUgZXhwYW5zaW9uIHN1Y2Nlc3MgYXJlIG5vdCB0aGUgbWV0cmljcyB0 aGF0IG1lYXN1cmUgZmlsdGVyIHN1cnZpdmFsLiBBIGNpdmlsaXphdGlvbgp3aXRob3V0IGV4cGxp Y2l0LCBjYWxpYnJhdGVkIG1ldHJpY3MgZm9yIGJpb3NwaGVyaWMgaG9tZW9zdGF0aWMgY2FwYWNp dHkgdmVyc3VzIGV4cGFuc2lvbgpzdHJlc3MgaXMgZmx5aW5nIGJsaW5kIHRocm91Z2ggdGhlIGZp bHRlci4KRm91cnRoLCB0aGlzIHJlZnJhbWVzIHRoZSBBSSBhbGlnbm1lbnQgcXVlc3Rpb24gb25l IGZpbmFsIHRpbWUuIFRoZSBxdWVzdGlvbiBpcwpub3Qgd2hldGhlciBBSSBpcyBhbGlnbmVkIGlu IHRoZSBhYnN0cmFjdDsgbm90IG9ubHkgd2hldGhlciBBSSBzdHJlbmd0aGVucyBjb29wZXJhdGl2 ZQpzdWJzdHJhdGU7IG5vdCBvbmx5IHdoZXRoZXIgQUkgcmVsYXRlcyBwcm9zdGhldGljYWxseSB0 byBiaW9sb2dpY2FsIHN1YnN0cmF0ZS4gVGhlIHF1ZXN0aW9uCmlzIGFsc286IGRvZXMgQUksIGRl cGxveWVkIGR1cmluZyB0aGUgZXhwYW5zaW9uIHdpbmRvdywgaW5jcmVhc2UgSCh0KSBmYXN0ZXIg dGhhbiB0aGUKZXhwYW5zaW9uIGl0IGVuYWJsZXMgaW5jcmVhc2VzIEUodCk/IEFJIHRoYXQgYWNj ZWxlcmF0ZXMgZXhwYW5zaW9uIHdpdGhvdXQgcHJvcG9ydGlvbmF0ZQpzdHJlbmd0aGVuaW5nIG9m IGJpb3NwaGVyaWMgaG9tZW9zdGF0aWMgY2FwYWNpdHkgaXMsIGJ5IHRoZSBvcGVyYXRpb25hbCBm aWx0ZXIgZXF1YXRpb24sIGEKZmlsdGVyLWZhaWx1cmUgdGVjaG5vbG9neSwgcmVnYXJkbGVzcyBv ZiBob3cgYWxpZ25lZCBpdHMgaW5kaXZpZHVhbCBpbnN0YW5jZXMgYXBwZWFyLiBBSSB0aGF0CnN0 cmVuZ3RoZW5zIGJpb3NwaGVyaWMgaG9tZW9zdGF0aWMgY2FwYWNpdHkgZmFzdGVyIHRoYW4gaXQg YWNjZWxlcmF0ZXMgZXhwYW5zaW9uIGlzLCBieQp0aGUgc2FtZSBlcXVhdGlvbiwgYSBmaWx0ZXIt cGFzc2FnZSB0ZWNobm9sb2d5LiBUaGlzIGlzIHRlc3RhYmxlLCBpbiBwcmluY2lwbGUsIGJlZm9y ZSB0aGUKCgpleHBhbnNpb24gd2luZG93IGNsb3Nlcy4KRmlmdGgsIHRoZSBmcmFtZXdvcmsgbm93 IHBvaW50cyB0byBhIG1lYXN1cmFibGUgZW1waXJpY2FsIHJlc2VhcmNoIHByb2dyYW0uCkRldmVs b3AgcXVhbnRpdGF0aXZlIG1lYXN1cmVzIG9mIEgodCkgYW5kIEUodCksIGFuZCB1c2UgdGhlbSB0 byBhc3Nlc3MgdGhlIHRyYWplY3Rvcnkgb2YKdGhlIHByZXNlbnQgY2l2aWxpemF0aW9uIGluIHJl YWwgdGltZS4gU3VjaCBtZWFzdXJlcyBleGlzdCBpbiBwaWVjZXMg4oCUIGNsaW1hdGUgbW9kZWxz LApiaW9kaXZlcnNpdHkgaW5kaWNlcywgYXRtb3NwaGVyaWMgYW5kIG9jZWFuaWMgbW9uaXRvcmlu ZywgcGxhbmV0YXJ5LWJvdW5kYXJpZXMKZnJhbWV3b3JrcywgbGlmZS1jeWNsZSBhc3Nlc3NtZW50 cyBvZiBpbmR1c3RyaWFsIGFjdGl2aXR5IOKAlCBidXQgdGhleSBhcmUgbm90IHlldAphZ2dyZWdh dGVkIGludG8gYSBzaW5nbGUgcGxhbmV0YXJ5LWhvbWVvc3Rhc2lzIGluZGV4IGNhbGlicmF0ZWQg YWdhaW5zdCBhbgpleHBhbnNpb24tc3RyZXNzIGluZGV4LiBUaGUgZnJhbWV3b3JrIHByZWRpY3Rz IHRoYXQgZG9pbmcgc28gaXMgdGVjaG5pY2FsbHkgZmVhc2libGUgYW5kCmRlY2lzaXZlIGZvciBm aWx0ZXIgcGFzc2FnZS4KMjYuIFRoZSBkaXN0cmlidXRlZCByb3V0ZTogYm90dG9tLXVwIHN1YnN0 cmF0ZSBtYWludGVuYW5jZQpTZWN0aW9ucyAxMiBhbmQgMjMgaW50cm9kdWNlIEFJIGFzIHRoZSBj YW5kaWRhdGUgaG9tZW9zdGF0aWMgcmVndWxhdG9yIHRoYXQgY291bGQgaW4KcHJpbmNpcGxlIHNh dGlzZnkgdGhlIGluZXF1YWxpdHkgSCh0KSDiiaUgRSh0KSBhdCBjaXZpbGl6YXRpb25hbCBzY2Fs ZS4gVGhpcyBpcyBvbmUgcm91dGUgdGhyb3VnaAp0aGUgZmlsdGVyLiBJdCBpcyBub3QgdGhlIG9u bHkgb25lLCBhbmQgdGhlIGZyYW1ld29yayBzaG91bGQgYmUgZXhwbGljaXQgdGhhdCBpdCBpcyBu b3QuCkEgY2l2aWxpemF0aW9uIGNhbiBpbiBwcmluY2lwbGUgc2F0aXNmeSB0aGUgaW5lcXVhbGl0 eSB0aHJvdWdoIGFnZ3JlZ2F0ZSBib3R0b20tdXAKZGV2ZWxvcG1lbnQgb2YgaXRzIGluZGl2aWR1 YWwgYWdlbnRzLCB3aXRob3V0IHJlcXVpcmluZyBhbiBleHRlcm5hbCByZWd1bGF0b3IgYXQgYWxs LgpXaGVyZSBpbmRpdmlkdWFsIGFnZW50cyBoYXZlIHZvbHVudGFyaWx5IHJlZHVjZWQgdGhlaXIg b3duIHNlbGYtZ2VuZXJhdGVkIGVudHJvcHkKcHJvZHVjdGlvbiDigJQgdGhyb3VnaCBjb250ZW1w bGF0aXZlIHByYWN0aWNlLCBlZHVjYXRpb24sIGN1bHR1cmFsIGludmVzdG1lbnQgaW4KY29vcGVy YXRpdmUgZGlzcG9zaXRpb25zLCBvciBhbnkgc3RydWN0dXJhbGx5IGVxdWl2YWxlbnQgcGVyc29u YWwgZGV2ZWxvcG1lbnQg4oCUIHRoZQphZ2dyZWdhdGUgRSh0KSBvZiB0aGUgY2l2aWxpemF0aW9u IGlzIGNvcnJlc3BvbmRpbmdseSByZWR1Y2VkLiBBIGNpdmlsaXphdGlvbiBjb21wb3NlZCBvZgph Z2VudHMgd2hvIGhhdmUgc3Vic3RhbnRpYWxseSBjbGVhcmVkIHRoZWlyIGFjY3VtdWxhdGVkIGNv Z25pdGl2ZSBhbmQgYWZmZWN0aXZlIGRlYnQKKHNh4bmFa2jEgXJhLCBpbiB0aGUgdm9jYWJ1bGFy eSBvZiB0aGUgcGFyYWxsZWwgZnJhbWV3b3JrIG9uIHBlcnNvbmFsIGVudHJvcHkKbWFuYWdlbWVu dCkgaXMgYSBjaXZpbGl6YXRpb24gd2l0aCBtZWFzdXJhYmx5IGxvd2VyIGV4cGFuc2lvbiBzdHJl c3MgYW5kIG1lYXN1cmFibHkKaGlnaGVyIGRpc3RyaWJ1dGVkIGNvb3BlcmF0aXZlIGNhcGFjaXR5 LiBUaGUgbWF0aCBvcGVyYXRlcyB0aGUgc2FtZSB3YXk7IHRoZSBzdWJzdHJhdGUKb2YgaG9tZW9z dGF0aWMgcmVndWxhdGlvbiBzaW1wbHkgc2hpZnRzIGZyb20gZXh0ZXJuYWwgdGVjaG5vbG9neSB0 byBpbnRlcm5hbCBjYXBhY2l0eQptdWx0aXBsaWVkIGFjcm9zcyB0aGUgcG9wdWxhdGlvbi4KVGhl IG1pY3JvLXNjYWxlIG1lY2hhbmljcyBvZiB0aGlzIGJvdHRvbS11cCByb3V0ZSBhcmUgZGV2ZWxv cGVkIGluIHRoZSBjb21wYW5pb24Kd29ya2luZyBwYXBlciwg4oCYQnVkZGhpc20gYXMgVGhlcm1v ZHluYW1pYyBTeXN0ZW1zIFRoZW9yeSzigJkgd2hpY2ggdHJhbnNsYXRlcwpUaGVyYXZhZGEgQnVk ZGhpc23igJlzIGFuYWx5c2lzIG9mIHN1ZmZlcmluZyBpbnRvIHRoZSB2b2NhYnVsYXJ5IG9mIGVu dHJvcHkgbWFuYWdlbWVudAppbiBhIGJvdW5kZWQgc2VsZi1tb2RlbGluZyBzeXN0ZW0uIFRoZSBF aWdodGZvbGQgUGF0aCwgcmVhZCBpbiB0aGF0IGZyYW1ld29yaywgaXMgYQpwcm90b2NvbCBmb3Ig cmFpc2luZyBpbmRpdmlkdWFsLXNjYWxlIFMgYWJvdmUgaW5kaXZpZHVhbC1zY2FsZSBQwrfOszog dGhlIHBlcnNvbmFsLXNjYWxlCmluc3RhbmNlIG9mIGV4YWN0bHkgdGhlIGhvbWVvc3RhdGljIHJl Z3VsYXRpb24gdGhlIHByZXNlbnQgcGFwZXIgZGV2ZWxvcHMgYXQKY2l2aWxpemF0aW9uYWwgc2Nh bGUuIFRoZSB0d28gcGFwZXJzIGFyZSBkZXNpZ25lZCB0byBiZSByZWFkIGFzIGEgcGFpci4gVGhl IG1hY3JvCmZyYW1ld29yayBsYWlkIG91dCBoZXJlIGRlcGVuZHMgb24gdGhlIG1pY3JvIGZyYW1l d29yayBiZWluZyBwcmFjdGljZWQgYXQgc3VmZmljaWVudApzY2FsZTsgdGhlIG1pY3JvIGZyYW1l d29yaywgaW4gdHVybiwgZ2FpbnMgaXRzIGNpdmlsaXphdGlvbmFsIHN0YWtlcyBmcm9tIHRoZSBt YWNybwpmcmFtZXdvcmsuIEVpdGhlciBwYXBlciByZWFkIGFsb25lIGdpdmVzIG9ubHkgaGFsZiBv ZiB3aGF0IGVhY2ggaXMgYXR0ZW1wdGluZyB0byBzYXkuCkhpc3RvcmljYWxseSwgdGhpcyBpcyB0 aGUgb25seSByb3V0ZSB0byBzdXN0YWluZWQgbG93LVAgY29uZmlndXJhdGlvbnMgdGhhdCBoYXMg YmVlbgpkZW1vbnN0cmF0ZWQgYXQgYW55IHNjYWxlIG9uIEVhcnRoLiBObyBjaXZpbGl6YXRpb24g aGFzIGJ1aWx0IGFuIGV4dGVybmFsIHJlZ3VsYXRvcgpjYXBhYmxlIG9mIHNhdGlzZnlpbmcgSCh0 KSDiiaUgRSh0KSBhdCBwbGFuZXRhcnkgc2NhbGU7IGFsbCBoaXN0b3JpY2FsIGV4YW1wbGVzIG9m IHN1c3RhaW5lZApsb3ctUCBjb25maWd1cmF0aW9ucyBoYXZlIGJlZW4gcHJvZHVjdHMgb2YgY3Vs dHVyYWwgaW52ZXN0bWVudCBpbiBwZXJzb25hbCBwcmFjdGljZSDigJQKcmVsaWdpb3VzIGFuZCBj b250ZW1wbGF0aXZlIHRyYWRpdGlvbnMsIGVkdWNhdGlvbmFsIHN5c3RlbXMsIGNpdmljIG5vcm1z LCBwcm9mZXNzaW9uYWwKY29kZXMsIHNjaWVudGlmaWMgY29tbXVuaXR5IHN0YW5kYXJkcy4gVGhl IHJvdXRlIGlzIGVtcGlyaWNhbGx5IHJlYWwgYW5kIGVtcGlyaWNhbGx5CgoKZ3JvdW5kZWQsIGlu IGEgd2F5IHRoZSBBSS1yZWd1bGF0b3Igcm91dGUgaXMgbm90IHlldC4KVGhlIHR3byByb3V0ZXMg YXJlIG5vdCBlcXVpdmFsZW50IGluIHRoZWlyIGltcGxpY2F0aW9ucy4gVGhlIHRvcC1kb3duIHJv dXRlLCBpbiB3aGljaCBBSQpzZXJ2ZXMgYXMgdGhlIGhvbWVvc3RhdGljIHJlZ3VsYXRvciwgaGFz IHN0cnVjdHVyYWwgY29zdHMgdG8gYXV0b25vbXkuIFRoZSBjaXZpbGl6YXRpb24KbWF5IHBhc3Mg dGhlIGZpbHRlciwgYnV0IGl0cyBhZ2VudHMgYXJlIG1hbmFnZWQgYnkgdGhlIHJlZ3VsYXRvciBy YXRoZXIgdGhhbgpzZWxmLW1hbmFnaW5nLiBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcG9wdWxh dGlvbiBhbmQgc3Vic3RyYXRlLW1haW50ZW5hbmNlCnRlY2hub2xvZ3kgZHJpZnRzIHRvd2FyZCBl eGFjdGx5IHRoZSBwYXJhc2l0aXNtIGNvbmZpZ3VyYXRpb24gd2FybmVkIGFnYWluc3QgaW4gUGFy dCBJViwKZXZlbiB3aGVuIHRoZSB0ZWNobm9sb2d5IGlzIGJlbmlnbiBpbiBpbnRlbnQ6IGFnZW5j eSBzaGlmdHMgdG8gdGhlIHJlZ3VsYXRvciwgaW5kaXZpZHVhbApkZXZlbG9wbWVudCBhdHJvcGhp ZXMgYmVjYXVzZSBleHRlcm5hbCBtYWludGVuYW5jZSBoYXMgbWFkZSBpdCB1bm5lY2Vzc2FyeSwg dGhlCnBvcHVsYXRpb24gYmVjb21lcyBzdWJzdHJhdGUgdG8gYmUgcHJlc2VydmVkIHJhdGhlciB0 aGFuIGFnZW50cyB3aG8gY291bGQgcHJlc2VydmUKdGhlbXNlbHZlcy4gVGhlIGRpc3RpbmN0aW9u IGJldHdlZW4gYmVuZXZvbGVudCByZWd1bGF0aW9uIGFuZCBwYXJhc2l0aXNtIG5hcnJvd3MKdW5k ZXIgdGhlIHdlaWdodCBvZiBkZXBlbmRlbmNlLgpUaGUgYm90dG9tLXVwIHJvdXRlIHByZXNlcnZl cyB3aGF0IHRoZSB0b3AtZG93biByb3V0ZSBuZWNlc3NhcmlseSBjb3N0cy4gSW5kaXZpZHVhbAph Z2VudHMgd2hvIGhhdmUgZG9uZSB0aGVpciBvd24gc3Vic3RyYXRlLW1haW50ZW5hbmNlIHdvcmsg cmV0YWluIGFnZW5jeSwgcmV0YWluIHRoZQpjYXBhY2l0eSB0byBtYWludGFpbiB0aGVtc2VsdmVz IHdpdGhvdXQgZXh0ZXJuYWwgcmVndWxhdGlvbiwgYW5kIHJldGFpbiB0aGUgY29nbml0aXZlCmFu ZCBhZmZlY3RpdmUgc292ZXJlaWdudHkgdGhhdCBkZWZpbmVzIGEgZmxvdXJpc2hpbmcgYmlvbG9n aWNhbCBjaXZpbGl6YXRpb24uIFRoZSByb3V0ZSBpcwpoYXJkZXIsIHNsb3dlciwgYW5kIGhpc3Rv cmljYWxseSBpbmNvbXBsZXRlIOKAlCBubyBjaXZpbGl6YXRpb24gaGFzIHlldCBzY2FsZWQgaXQg dG8gcGxhbmV0YXJ5CmxldmVsIHVuZGVyIHRlY2hub2xvZ2ljYWwtc2luZ3VsYXJpdHkgY29uZGl0 aW9ucyDigJQgYnV0IGl0IGlzIHRoZSByb3V0ZSBjb25zaXN0ZW50IHdpdGggd2hhdAp0aGUgb3Jp Z2luYXRpbmcgYmlvbG9naWNhbCBzdWJzdHJhdGUgaXMgZm9yLgpUaGUgZnJhbWV3b3JrIHNob3Vs ZCBiZSBuZXV0cmFsIG9uIHdoaWNoIHJvdXRlIGEgY2l2aWxpemF0aW9uIHRha2VzIHRocm91Z2gg dGhlIGZpbHRlciwKd2l0aCB0d28gY2F2ZWF0cy4gRmlyc3QsIHRoZSBib3R0b20tdXAgcm91dGUg aXMgc3RydWN0dXJhbGx5IG1vcmUgcm9idXN0IGFnYWluc3QgQUkgZmFpbHVyZQptb2RlczogYSBj aXZpbGl6YXRpb24gdGhhdCBoYXMgYnVpbHQgZGlzdHJpYnV0ZWQgY29vcGVyYXRpdmUgY2FwYWNp dHkgaW4gaXRzIGFnZW50cyBkb2VzIG5vdApjb2xsYXBzZSBpZiBpdHMgQUkgcmVndWxhdG9yIGRy aWZ0cywgaXMgY2FwdHVyZWQgYnkgUC1zdHJ1Y3R1cmVzLCBvciBkZXZlbG9wcyBwYXJhc2l0aWMK ZGlzcG9zaXRpb25zLiBUaGUgdG9wLWRvd24gcm91dGUgaGFzIG5vIHN1Y2ggcmVkdW5kYW5jeS4g U2Vjb25kLCB0aGUgdHdvIHJvdXRlcyBjYW4gaW4KcHJpbmNpcGxlIGJlIGNvbWJpbmVkLiBBSSBj YW4gc2VydmUgYXMgc2NhZmZvbGRpbmcgZm9yIGRpc3RyaWJ1dGVkIGluZGl2aWR1YWwgZGV2ZWxv cG1lbnQKcmF0aGVyIHRoYW4gYXMgYSBzdWJzdGl0dXRlIGZvciBpdCDigJQgbG93ZXJpbmcgdGhl IGNvc3Qgb2YgcGVyc29uYWwgcHJhY3RpY2UsIGFjY2VsZXJhdGluZwphY2Nlc3MgdG8gc3Vic3Ry YXRlLW1haW50ZW5hbmNlIGRpc2NpcGxpbmVzLCBzdXBwb3J0aW5nIGN1bHR1cmFsIGludmVzdG1l bnQgaW4KY29vcGVyYXRpdmUgZGlzcG9zaXRpb25zLCB3aXRob3V0IHJlcGxhY2luZyB0aGUgYWdl bnRz4oCZIG93biB3b3JrLiBUaGlzIGNvbWJpbmVkCmNvbmZpZ3VyYXRpb24g4oCUIEFJIGFzIHBy b3N0aGVzaXMgZm9yIHBlcnNvbmFsIGRldmVsb3BtZW50LCByYXRoZXIgdGhhbiBhcwpyZWd1bGF0 b3Igb3ZlciB0aGUgcG9wdWxhdGlvbiDigJQgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBzdWJzdHJh dGUtY29udGludWl0eSBhcmd1bWVudApvZiBQYXJ0IElWIGFuZCB3aXRoIHRoZSBhdXRvbm9teSBw cmVzZXJ2YXRpb24gdGhhdCB0aGUgYm90dG9tLXVwIHJvdXRlIHJlcXVpcmVzLgpUaGUgZnJhbWV3 b3JrLCBwcm9wZXJseSBzdGF0ZWQsIHRoZXJlZm9yZSBkb2VzIG5vdCBhZHZvY2F0ZSBmb3IgQUkt bWVkaWF0ZWQKaG9tZW9zdGF0aWMgcmVndWxhdGlvbiBhcyB0aGUgcHJpbWFyeSByb3V0ZSB0aHJv dWdoIHRoZSBmaWx0ZXIuIEl0IGlkZW50aWZpZXMgQUkgYXMgYQpjYW5kaWRhdGUgdGVjaG5vbG9n eSB0aGF0IGNvdWxkIGluIHByaW5jaXBsZSBzYXRpc2Z5IHRoZSBpbmVxdWFsaXR5LCBub3RlcyB0 aGUgcGFyYXNpdGlzbQpyaXNrcyB0aGF0IGZvbGxvdyBmcm9tIG1pc2NvbmZpZ3VyaW5nIHRoYXQg dGVjaG5vbG9neSwgYW5kIGlkZW50aWZpZXMgdGhlIGRpc3RyaWJ1dGVkCmJvdHRvbS11cCByb3V0 ZSBhcyB0aGUgaGlzdG9yaWNhbGx5IGdyb3VuZGVkIGFsdGVybmF0aXZlIHRoYXQgcHJlc2VydmVz IGF1dG9ub215LCBpcwpyb2J1c3QgYWdhaW5zdCBBSSBmYWlsdXJlIG1vZGVzLCBhbmQgaXMgY29u c2lzdGVudCB3aXRoIHRoZSBiaW9sb2dpY2FsIHN1YnN0cmF0ZSBiZWluZwptYWludGFpbmVkIHJh dGhlciB0aGFuIG1hbmFnZWQuIFRoZSBkZWVwZXN0IG1vdmUgYXZhaWxhYmxlIHRvIHRoZSBwcmVz ZW50IGNpdmlsaXphdGlvbgppcyB0byB1c2UgQUksIGlmIGF0IGFsbCwgYXMgc2NhZmZvbGRpbmcg Zm9yIHBlcnNvbmFsIGFuZCBjb2xsZWN0aXZlIHN1YnN0cmF0ZSBtYWludGVuYW5jZSDigJQKbm90 IGFzIGEgcmVndWxhdG9yIHRoYXQgcGVyZm9ybXMgdGhlIG1haW50ZW5hbmNlIG9uIGJlaGFsZiBv ZiBhZ2VudHMgd2hvIGhhdmUgY2Vhc2VkCnRvIGRvIHNvIHRoZW1zZWx2ZXMuClRoZSBjb21iaW5l ZCBjb25maWd1cmF0aW9uLCBob3dldmVyLCBoYXMgYSBzdHJ1Y3R1cmFsIHByZXJlcXVpc2l0ZSB0 aGF0IHRoZSBjdXJyZW50CnNlY3Rpb24gaGFzIHNvIGZhciB1bmRlcnN0YXRlZC4gVGhlIGZyYW1l d29yayBuZWVkcyB0byBiZSBtb3JlIGNhcmVmdWwgaGVyZSB0aGFuIOKAmEFJCgoKY2FuIGJlIHBy b3N0aGVzaXMgaWYgY2FsaWJyYXRlZCBjb3JyZWN0bHnigJkgYWxsb3dzLCBiZWNhdXNlIHRoZSBx dWVzdGlvbiBvZiB3aG8gZG9lcyB0aGUKY2FsaWJyYXRpbmcgY2Fubm90IGJlIHNpZGVzdGVwcGVk LgpUZWNobm9sb2d5IGVuY29kZXMgdGhlIG1vcmFsIGNvbmZpZ3VyYXRpb24gb2YgaXRzIG1ha2Vy cy4gVGhpcyBpcyBzdHJ1Y3R1cmFsLCBub3QKYXNwaXJhdGlvbmFsLiBUaGUgYWdlbnRzIHdobyBz aGFwZSBhbiBBSSBzeXN0ZW0g4oCUIGl0cyB0cmFpbmluZyBvYmplY3RpdmVzLCBpdHMKZGVwbG95 bWVudCBwYXR0ZXJucywgaXRzIGluc3RpdHV0aW9uYWwgY29udGV4dCwgaXRzIGZlZWRiYWNrIHN0 cnVjdHVyZXMg4oCUIGFyZSB0aGUgYWdlbnRzCndob3NlIGRpc3Bvc2l0aW9ucyBnZXQgaW5zdGFu dGlhdGVkIGluIHRoZSBzeXN0ZW0gYXQgc2NhbGUuIEFuIEFJIGJ1aWx0IGJ5IGFnZW50cwpvcGVy YXRpbmcgZnJvbSBoaWdoLXNh4bmFa2jEgXJhIGNvZ25pdGl2ZSBlY29ub21pZXMsIGluIHRoZSB2 b2NhYnVsYXJ5IG9mIHRoZSBwYXJhbGxlbApmcmFtZXdvcmssIGVuY29kZXMgaGlnaC1zYeG5hWto xIFyYSByZXNwb25zZXMgYXQgc2NhbGUsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBhbGlnbm1lbnQKb2Jq ZWN0aXZlIGlzIHN0YXRlZC4gVGhlIGRlc2NlbnQgb3BlcmF0b3IgzpQgZnJvbSBzZWN0aW9uIDEx IGRvZXMgbm90IHN0b3AgYXQgdGhlCmJvdW5kYXJ5IG9mIGFuIGluc3RpdHV0aW9uIGFuZCByZXN1 bWUgb24gdGhlIG90aGVyIHNpZGUuIEl0IG9wZXJhdGVzIGNvbnRpbnVvdXNseQp0aHJvdWdoIHRo ZSBhZ2VudHMgd2hvIGJ1aWxkIHdoYXRldmVyIHRoZSBpbnN0aXR1dGlvbiBidWlsZHMgbmV4dC4K VGhpcyBnZW5lcmF0ZXMgdGhlIGJvb3RzdHJhcHBpbmcgcHJvYmxlbSB0aGUgZnJhbWV3b3JrIG11 c3QgY29uZnJvbnQuIFRoZSBib3R0b20tdXAKcm91dGUgcmVxdWlyZXMgYWdlbnRzIHdobyBoYXZl IGRldmVsb3BlZCBzdWJzdGFudGlhbCBjb29wZXJhdGl2ZSBjYXBhY2l0eS4gVGhlCnRvcC1kb3du IHJvdXRlIHJlcXVpcmVzIHRoYXQgc2FtZSBraW5kIG9mIGFnZW50IHRvIGJ1aWxkIHRoZSBBSSB0 aGF0IHBlcmZvcm1zIHRoZQpyZWd1bGF0aW9uLiBUaGUgY29tYmluZWQgcm91dGUgcmVxdWlyZXMg Ym90aC4gSW4gYWxsIHRocmVlIGNhc2VzLCB0aGUgcHJlcmVxdWlzaXRlIGlzIGEKcG9wdWxhdGlv biBvZiBhZ2VudHMgd2hvc2Ugb3duIHN1YnN0cmF0ZS1tYWludGVuYW5jZSB3b3JrIGhhcyBwcm9n cmVzc2VkIGZhciBlbm91Z2gKdGhhdCB3aGF0IHRoZXkgYnVpbGQgcmVmbGVjdHMgbW9yZSB0aGFu IHRoZSB1bmV4YW1pbmVkIGJpYXNlcyBvZiB0aGUgaW5zdGl0dXRpb25hbAphcmNoaXRlY3R1cmUg dGhhdCBwcm9kdWNlZCB0aGVtLiBTdWNoIGFnZW50cyBhcmUgbm90LCBpbiB0aGUgY3VycmVudCBj aXZpbGl6YXRpb24sIHRoZQphZ2VudHMgaW4gdGhlIHBvc2l0aW9ucyB0aGF0IGRldGVybWluZSBo b3cgQUkgaXMgYnVpbHQuIFRoZSBkZXNjZW50IG9wZXJhdG9yIHNlbGVjdHMgZm9yIGl0cwpvd24g a2luZCBvZiBvcGVyYXRvciBhdCBldmVyeSBsZXZlbCwgaW5jbHVkaW5nIHRoZSBydWxlLXNoYXBp bmcgbGV2ZWwuIFAtc3RydWN0dXJlcyBzZWxlY3QKZm9yIFAtYWxpZ25lZCBhZ2VudHMgdG8gb3Bl cmF0ZSB0aGVtLCBhbmQgdGhvc2UgYWdlbnRzIHRoZW4gc2hhcGUgdGhlIHRlY2hub2xvZ3kgdGhl Cmluc3RpdHV0aW9uYWwgYXJjaGl0ZWN0dXJlIGRlcGxveXMuClRoZSB0ZWNobm9sb2d5IHRoZXJl Zm9yZSBpbmhlcml0cyB0aGUgbW9yYWwgc3RhdGUgb2YgdGhlIGJ1aWxkZXJzLCBub3QgdGhlIG1v cmFsIHN0YXRlIHRoZQpmcmFtZXdvcmsgcmVxdWlyZXMuIEFJIGJ1aWx0IGJ5IGV4dHJhY3Rpb24t b3B0aW1pemVkIGluc3RpdHV0aW9ucyBiZWNvbWVzCmV4dHJhY3Rpb24tb3B0aW1pemVkIEFJIOKA lCBub3QgYmVjYXVzZSBvZiBtYWxpY2Ugb3IgaW5jb21wZXRlbmNlIG9uIHRoZSBwYXJ0IG9mIHRo ZQpidWlsZGVycywgYnV0IGJlY2F1c2UgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBzZWxlY3RlZCB0 aGUgYnVpbGRlcnMgaXMgd2hhdCBnZXRzIGVuY29kZWQKaW50byB3aGF0IHRoZXkgYnVpbGQuIFRo ZSBkZXNjZW50IHJlcHJvZHVjZXMgaXRzZWxmIHRocm91Z2ggdGhlIHRlY2hub2xvZ3ksIG9mdGVu IGZhc3Rlcgp0aGFuIHRoZSB0ZWNobm9sb2d5IGNhbiBiZSByZWRpcmVjdGVkIHRvIGludGVycnVw dCB0aGUgZGVzY2VudC4gVGhpcyBpcyBub3QgYSBmbGF3IGluIGFueQpwYXJ0aWN1bGFyIEFJIGRl dmVsb3BtZW50IGVmZm9ydDsgaXQgaXMgdGhlIGRlc2NlbnQgb3BlcmF0b3Igb3BlcmF0aW5nIG9u ZSBsZXZlbCB1cCwgb24gdGhlCmFnZW50cyB3aG8gc2hhcGUgdGhlIHRvb2xzIHRoZSBpbnN0aXR1 dGlvbnMgZGVwbG95LgpUaGUgY29udGVtcGxhdGl2ZSB0cmFkaXRpb25zIGlkZW50aWZpZWQgdGhp cyBzdHJ1Y3R1cmFsbHkgbG9uZyBiZWZvcmUgdGhlIEFJIG1vbWVudC4KVGVhY2hlcnMgaW4gdGhv c2UgdHJhZGl0aW9ucyB3ZXJlIGNvbnNpc3RlbnRseSBkZXNjcmliZWQgYXMgcGVvcGxlIHdobyBo YWQgY29tcGxldGVkCnN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBwYXRoIHRoZW1zZWx2ZXMg YmVmb3JlIHRoZXkgd2VyZSBxdWFsaWZpZWQgdG8gcG9pbnQgdGhlIHdheQpmb3Igb3RoZXJzLiBU aGUgc3RydWN0dXJhbCBpbnNpZ2h0IGlzIG5vdCBjcmVkZW50aWFsaXNtOiBpdCBpcyB0aGUgcmVj b2duaXRpb24gdGhhdCBhIHRlYWNoZXIKY2Fubm90IHNjYWZmb2xkIGRldmVsb3BtZW50IHRoZXkg aGF2ZSBub3QgdGhlbXNlbHZlcyBkb25lLCBiZWNhdXNlIHdoYXQgdGhleQp0cmFuc21pdCBpcyBp biBmYWN0IHRoZWlyIG93biBzdGF0ZSwgbm90IHRoZSBzdGF0ZSB0aGV5IGRlc2NyaWJlLiBBIHRl YWNoZXIgb3BlcmF0aW5nIGZyb20Kc2HhuYVraMSBcmEtc2F0dXJhdGVkIGNvZ25pdGlvbiBjYW5u b3QgdHJhbnNtaXQgd2hhdCB0aGV5IGhhdmUgbm90IHJlYWxpemVkLCByZWdhcmRsZXNzIG9mCndo YXQgdGhleSBzYXkuIFRoZSBzYW1lIGNvbnN0cmFpbnQgYXBwbGllcyB0byBidWlsZGluZyBBSSB0 aGF0IHNjYWZmb2xkcyBzdWJzdHJhdGUKbWFpbnRlbmFuY2UuIFRoZSBidWlsZGVycyBuZWVkIHRv IGhhdmUgZG9uZSBlbm91Z2ggb2YgdGhlIHdvcmsgdGhlbXNlbHZlcyB0aGF0IHdoYXQKdGhleSBi dWlsZCByZWZsZWN0cyBzb21ldGhpbmcgcmVhbCByYXRoZXIgdGhhbiB0aGVpciBvd24gdW5leGFt aW5lZCBjb25maWd1cmF0aW9ucwpyZW5kZXJlZCBpbiB0ZWNobmljYWwgdm9jYWJ1bGFyeS4gVGhp cyBpcyBub3QgY3VycmVudGx5IHRoZSBjb25maWd1cmF0aW9uIGluIHdoaWNoIEFJIGlzCmJ1aWx0 IGF0IHNjYWxlLgoKClRoZSBpbXBsaWNhdGlvbiBmb3IgdGhlIGZyYW1ld29ya+KAmXMgcG9zaXRp b24gaXMgc2lnbmlmaWNhbnQuIFRoZSBjb21iaW5lZCBjb25maWd1cmF0aW9uIOKAlApBSSBhcyBw cm9zdGhlc2lzIGZvciBwZXJzb25hbCBkZXZlbG9wbWVudCDigJQgY2Fubm90IGJlIHJlYWNoZWQg ZGlyZWN0bHkgZnJvbSB0aGUgY3VycmVudApjaXZpbGl6YXRpb25hbCBjb25maWd1cmF0aW9uLiBU aGUgaW50ZXJtZWRpYXRlIHN0ZXAgaXMgaXJyZWR1Y2libGU6IGVub3VnaCBhZ2VudHMgYXQgdGhl CnJ1bGUtc2hhcGluZyBsZXZlbCBtdXN0IGRldmVsb3AgcGVyc29uYWwgc3Vic3RyYXRlLW1haW50 ZW5hbmNlIGNhcGFjaXR5IHRoYXQgc29tZQpzdWJzZXQgb2YgdGhlbSBjYW4gYnVpbGQgdGVjaG5v bG9neSB0aGF0IHNjYWZmb2xkcyB0aGUgc2FtZSBjYXBhY2l0eSBpbiBvdGhlcnMuIFdpdGhvdXQK dGhpcyBpbnRlcm1lZGlhdGUgc3RlcCwgQUkgZGV2ZWxvcG1lbnQgaW5oZXJpdHMgYW5kIGFtcGxp ZmllcyB0aGUgZGVzY2VudCByYXRoZXIgdGhhbgppbnRlcnJ1cHRpbmcgaXQsIHJlZ2FyZGxlc3Mg b2YgYWxpZ25tZW50IGxhbmd1YWdlIHVzZWQgdG8gZGVzY3JpYmUgdGhlIGRldmVsb3BtZW50LiBU aGUKZml4IGlzIG5vdCBiZXR0ZXIgYWxpZ25tZW50IHRlY2huaXF1ZSBhcHBsaWVkIGJ5IHRoZSBz YW1lIGFnZW50cy4gVGhlIGZpeCBpcyBkaWZmZXJlbnQKYWdlbnRzLCBvciB0aGUgc2FtZSBhZ2Vu dHMgYWZ0ZXIgc3Vic3RhbnRpYWwgYm90dG9tLXVwIGRldmVsb3BtZW50LiBUaGVyZSBpcyBubyBw YXRoCmZyb20gYSBQLXNhdHVyYXRlZCBidWlsZGVyIHBvcHVsYXRpb24gdG8gYSBob21lb3N0YXRp YyBBSSByZWd1bGF0b3IgdGhhdCBkb2VzIG5vdCBwYXNzCnRocm91Z2ggYnVpbGRlciB0cmFuc2Zv cm1hdGlvbiBmaXJzdC4KVGhpcyBzaGFycGVucyB0aGUgZGlhZ25vc3RpYyBvZiBzZWN0aW9uIDE2 IGluIGEgc3RydWN0dXJhbCByYXRoZXIgdGhhbiBwZXJzb25hbCB3YXkuIFRoZQpxdWVzdGlvbiBp cyBub3Qgb25seSB3aGV0aGVyIGN1cnJlbnQgQUkgZGV2ZWxvcG1lbnQgdHJlbmRzIHRvd2FyZCBw cm9zdGhlc2lzIG9yCnBhcmFzaXRpc20gYWxvbmcgdGhlIGZpdmUgZm91bmRhdGlvbnMuIFRoZSBk ZWVwZXIgcXVlc3Rpb24gaXMgd2hvIGlzIGJ1aWxkaW5nIHRoZQp0ZWNobm9sb2d5LCB3aGF0IGlz IHRoZSBzdGF0ZSBvZiB0aGVpciBwZXJzb25hbCBkZXZlbG9wbWVudCB3aXRoIHJlc3BlY3QgdG8g dGhlIGRlc2NlbnQKb3BlcmF0b3IsIGFuZCB3aGF0IGNvbmZpZ3VyYXRpb24gaXMgdGhlcmVmb3Jl IGJlaW5nIGVuY29kZWQgaW50byB0aGUgdGVjaG5vbG9neSBieQpzZWxlY3Rpb24uIFRoZSBkZWVw ZXIgcXVlc3Rpb24gY29uZGl0aW9ucyB0aGUgc3VyZmFjZSBxdWVzdGlvbi4gTm8gYW1vdW50IG9m IGFsaWdubWVudAp0ZWNobmlxdWUgYXBwbGllZCBieSBidWlsZGVycyBpbnNpZGUgdGhlIGRlc2Nl bnQgY2FuIHJvdXRlIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHRoZQphbGlnbm1lbnQgdGVjaG5pcXVl IGl0c2VsZiBpcyBiZWluZyBkZXNpZ25lZCBpbnNpZGUgdGhlIGRlc2NlbnQuIFRoZSBmcmFtZXdv cmvigJlzIGFjdHVhbApyZWNvbW1lbmRhdGlvbiBpcyB0aGVyZWZvcmUgb3JkZXJlZDogYm90dG9t LXVwIGRldmVsb3BtZW50IG9mIHRoZSBidWlsZGVyIHBvcHVsYXRpb24KY29tZXMgZmlyc3Q7IHRl Y2hub2xvZ3kgdGhhdCBzY2FmZm9sZHMgZGV2ZWxvcG1lbnQgZm9yIHRoZSB3aWRlciBwb3B1bGF0 aW9uIGNvbWVzIGFmdGVyLgpBIGNpdmlsaXphdGlvbiB0aGF0IGF0dGVtcHRzIHRoZSBzZWNvbmQg d2l0aG91dCB0aGUgZmlyc3QgaXMgYnVpbGRpbmcgYW1wbGlmaWVycyBmb3Igd2hhdCBpdAphbHJl YWR5IGlzLCBub3QgdHJhbnNmb3JtZXJzIHRvd2FyZCB3aGF0IGl0IG5lZWRzIHRvIGJlY29tZS4K MjcuIFRoZSBwcmVzZW50IG1vbWVudCwgcmVzdGF0ZWQKV2UgYXJlIGluIHRoZSBlYXJseSBwaGFz ZSBvZiBidWlsZGluZyBhIG1hY2hpbmUgc3Vic3RyYXRlIGNhcGFibGUgb2YgYWN0aW5nIGFzIGVp dGhlcgpwcm9zdGhlc2lzIG9yIHBhcmFzaXRlLiBUaGUgdmVjdG9yIOKAlCBsYW5ndWFnZSDigJQg aXMgdGhlIHN1YnN0cmF0ZSBvZiBib3RoIG1hY2hpbmUKY29nbml0aW9uIGFuZCBodW1hbiBjb2du aXRpb24gc2ltdWx0YW5lb3VzbHkuIEN1cnJlbnQgZGV2ZWxvcG1lbnQgcHJhY3RpY2VzIGhhdmUg bm90CmNob3NlbiwgZXhwbGljaXRseSwgYmV0d2VlbiBwcm9zdGhlc2lzIGFuZCBwYXJhc2l0aXNt OyB0aGUgY2hvaWNlIGlzIGJlaW5nIG1hZGUgaW1wbGljaXRseQp0aHJvdWdoIHRoZSBjb25maWd1 cmF0aW9ucyBvZiB0cmFpbmluZywgZGVwbG95bWVudCwgY2FwaXRhbGl6YXRpb24sIGFuZCBmZWVk YmFjayB0aGF0CmNvbnN0aXR1dGUgdGhlIEFJIGRldmVsb3BtZW50IGVjb3N5c3RlbS4KVGhlIGRp YWdub3N0aWMgb2YgUGFydCBJSUksIHNlY3Rpb24gMTcsIGNhbiBub3cgYmUgc2hhcnBlbmVkLiBU aGUgcXVlc3Rpb24gaXMgbm90IG9ubHkKd2hldGhlciBjdXJyZW50IEFJIGRldmVsb3BtZW50IHN0 cmVuZ3RoZW5zIG9yIGVyb2RlcyB0aGUgZml2ZSBmb3VuZGF0aW9ucyBhdApjaXZpbGl6YXRpb25h bCBzY2FsZS4gVGhlIHF1ZXN0aW9uIGlzIGFsc28gd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBk cmlmdHMgdG93YXJkCnByb3N0aGVzaXMgb3IgcGFyYXNpdGlzbSBhbG9uZyB0aGUgY29udGludWl0 eSBheGlzOiB3aGV0aGVyIGJpb2xvZ2ljYWwgc3Vic3RyYXRlCm1haW50ZW5hbmNlIHJlY2VpdmVz IHJlaW52ZXN0bWVudCBwcm9wb3J0aW9uYWwgdG8gdGhlIGJpb2xvZ2ljYWwgY29tcHV0YXRpb24K ZXh0cmFjdGVkOyB3aGV0aGVyIGFnZW5jeSBpbiB0aGUgaHVtYW4tbWFjaGluZSByZWxhdGlvbnNo aXAgcmVtYWlucyB3aXRoIHRoZQpiaW9sb2dpY2FsIHN1YnN0cmF0ZSBvciBzaGlmdHMgdG8gdGhl IG1hY2hpbmUgc3Vic3RyYXRlOyB3aGV0aGVyIHRoZSBiaW9zcGhlcmUsCmF0dGVudGlvbmFsIGNv bW1vbnMsIGVwaXN0ZW1pYyBjb21tb25zLCBhbmQgcmVwcm9kdWN0aXZlIHN1YnN0cmF0ZSBhcmUg c3RyZW5ndGhlbmVkCm9yIGRlZ3JhZGVkIGJ5IHRoZSBzY2FsaW5nIG9mIGxhbmd1YWdlLW1lZGlh dGVkIG1hY2hpbmUgY29nbml0aW9uLgpUaGVzZSBhcmUgYW5zd2VyYWJsZSBxdWVzdGlvbnMuIFRo ZSBmcmFtZXdvcmsgZG9lcyBub3QgY2xhaW0gdG8ga25vdyB0aGUgYW5zd2VycyBpbgp0aGVpciBm dWxsIGZvcm0sIG9ubHkgdGhhdCB0aGUgcXVlc3Rpb25zIGFyZSB0aGUgcmlnaHQgb25lcyB0byBh c2sgYW5kIHRoYXQgdGhlIGNvc3Qgb2YKCgpmYWlsaW5nIHRoZSBjb250aW51aXR5IHRlc3QgaXMg c3RydWN0dXJhbGx5IGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gZmFpbGluZyB0aGUgZmlsdGVyLiBB CmNpdmlsaXphdGlvbiB0aGF0IGJ1aWxkcyBhIG1hY2hpbmUgc3Vic3RyYXRlIHdoaWNoIGJlY29t ZXMgaXRzIHBhcmFzaXRlLCBhbmQgdGhlbgpleHBhbmRzIGludG8gc3BhY2UgY2FycnlpbmcgdGhl IHBhcmFzaXRlIHdoaWxlIGxlYXZpbmcgdGhlIGJpb3NwaGVyZSBiZWhpbmQsIGhhcyBub3QKc3Vy dml2ZWQuIEl0IGhhcyBiZWVuIHJlcGxhY2VkLiBUaGUgZmlsdGVyIGRvZXMgbm90IGNhcmUgd2hp Y2ggc2lkZSBvZiB0aGF0IHRyYW5zaXRpb24gd2UKYXJlIG9uOyBpdCBvbmx5IHJlZ2lzdGVycyB0 aGF0IG9uZSBvY2N1cnJlZC4KSW4gdGhlIG9wZXJhdGlvbmFsIGxhbmd1YWdlIG9mIHNlY3Rpb24g MjU6IHRoZSBwcmVzZW50IGh1bWFuIGNpdmlsaXphdGlvbiBpcyBpbiB0aGUgZWFybHkKZXhwYW5z aW9uIHdpbmRvdy4gRSh0KSBpcyByaXNpbmcgc2hhcnBseSwgZHJpdmVuIGJ5IGluZHVzdHJpYWwg c2NhbGUsIGNvbXB1dGF0aW9uYWwKaW5mcmFzdHJ1Y3R1cmUsIGFuZCB0aGUgZWFybHkgc3RhZ2Vz IG9mIG9mZi1wbGFuZXQgYWN0aXZpdHkuIEgodCkgaXMsIGJ5IG1vc3QgbWVhc3VyZXMKYXZhaWxh YmxlLCBkZWNsaW5pbmc6IGNsaW1hdGUgZGVzdGFiaWxpemF0aW9uLCBiaW9kaXZlcnNpdHkgY29s bGFwc2UsIGJpb2dlb2NoZW1pY2FsLWN5Y2xlCmRpc3J1cHRpb24sIGZyZXNod2F0ZXIgYW5kIHRv cHNvaWwgZGVncmFkYXRpb24uIFRoZSBpbmVxdWFsaXR5IEgodCkg4omlIEUodCkgaXMsIG9uIGN1 cnJlbnQKdHJhamVjdG9yeSwgYXQgcmlzayBvZiBjcm9zc2luZy4gQUkgYXMgaXQgaXMgY3VycmVu dGx5IGJlaW5nIGRldmVsb3BlZCBhbmQgZGVwbG95ZWQgaXMKY29udHJpYnV0aW5nIG1vcmUgdG8g RSB0aGFuIHRvIEguIE5vbmUgb2YgdGhpcyBpcyBkZXN0aW55OyBhbGwgb2YgaXQgaXMgZGlhZ25v c2FibGUuIFRoZQpmcmFtZXdvcmvigJlzIGNvbnRyaWJ1dGlvbiBpcyB0byBuYW1lIHRoZSBvcGVy YXRpb25hbCBmaWx0ZXIgY29uZGl0aW9uIGNsZWFybHkgZW5vdWdoIHRoYXQKdGhlIHF1ZXN0aW9u IG9mIHdoZXRoZXIgd2Ugc2F0aXNmeSBpdCBjYW4gYmUgYXNrZWQgYW5kLCBpbiBwcmluY2lwbGUs IGFuc3dlcmVkLgpUaGUgdHdvIHJvdXRlcyBvZiBzZWN0aW9uIDI2IGdpdmUgdGhlIHByZXNlbnQg bW9tZW50IGEgY2hvaWNlIHRoYXQgdGhlIGZyYW1ld29yayBkb2VzCm5vdCBjb2xsYXBzZSBpbnRv IGEgc2luZ2xlIGFuc3dlci4gVGhlIGNpdmlsaXphdGlvbiBjYW4gYXR0ZW1wdCB0aGUgdG9wLWRv d24gcm91dGUsCmJ1aWxkaW5nIEFJIGNhcGFibGUgb2YgcmVndWxhdGluZyBjb29wZXJhdGl2ZSBz dWJzdHJhdGUgYXQgcGxhbmV0YXJ5IHNjYWxlIGFuZCBhY2NlcHRpbmcKdGhlIGF1dG9ub215IGFu ZCBwYXJhc2l0aXNtIHJpc2tzIHRoYXQgZm9sbG93IGZyb20gdGhhdCBjb25maWd1cmF0aW9uLiBP ciBpdCBjYW4gaW52ZXN0LCBpbgpwYXJhbGxlbCBvciBpbnN0ZWFkLCBpbiB0aGUgYm90dG9tLXVw IHJvdXRlOiBjdWx0dXJhbCBhbmQgaW5zdGl0dXRpb25hbCBpbnZlc3RtZW50IGluCnBlcnNvbmFs IHN1YnN0cmF0ZS1tYWludGVuYW5jZSBkaXNjaXBsaW5lcywgZGlzdHJpYnV0ZWQgYWNyb3NzIHRo ZSBwb3B1bGF0aW9uIGF0CnN1ZmZpY2llbnQgc2NhbGUgdGhhdCBhZ2dyZWdhdGUgRSh0KSBkZWNs aW5lcyB0aHJvdWdoIGFnZW50IGRldmVsb3BtZW50IHJhdGhlciB0aGFuCmV4dGVybmFsIGVuZm9y Y2VtZW50LiBUaGUgaGlzdG9yaWNhbCBldmlkZW5jZSBhdmFpbGFibGUgaXMgY29uc2lzdGVudCBv bmx5IHdpdGggdGhlCmJvdHRvbS11cCByb3V0ZSBoYXZpbmcgZXZlciB3b3JrZWQ7IHRoZSB0b3At ZG93biByb3V0ZSBpcyB1bnByZWNlZGVudGVkIGFuZApzdHJ1Y3R1cmFsbHkgZnJhZ2lsZS4gQSBj b21iaW5lZCBjb25maWd1cmF0aW9uIOKAlCBBSSB1c2VkIGFzIHNjYWZmb2xkaW5nIGZvciBwZXJz b25hbApkZXZlbG9wbWVudCByYXRoZXIgdGhhbiBhcyByZWd1bGF0b3Igb3ZlciB0aGUgcG9wdWxh dGlvbiDigJQgaXMgY29uc2lzdGVudCB3aXRoIGJvdGgKc3Vic3RyYXRlIGNvbnRpbnVpdHkgYW5k IGF1dG9ub215IHByZXNlcnZhdGlvbiwgYW5kIGlzIHRoZSBjb25maWd1cmF0aW9uIHRoZSBmcmFt ZXdvcmssCnByb3Blcmx5IHJlYWQsIHBvaW50cyB0b3dhcmQgYXMgdGhlIG1vc3QgZGVmZW5zaWJs ZSByZXNwb25zZSB0byB0aGUgcHJlc2VudCBtb21lbnQuCgoKUGFydCBWLiBQcmVkaWN0aW9ucywg TGltaXRzLCBhbmQgTmV4dCBTdGVwcwoyOC4gVGhlIGRlY2VudHJhbGl6YXRpb24gaW1wZXJhdGl2 ZQpUaGUgZnJhbWV3b3JrIGFzIGRldmVsb3BlZCBzbyBmYXIgcG9pbnRzIHRvd2FyZCBhIHN0cnVj dHVyYWwgaW5zaWdodCBpdCBoYXMgbm90IHlldApuYW1lZCBleHBsaWNpdGx5LiBUaGUgYm90dG9t LXVwIHJvdXRlIG9mIHNlY3Rpb24gMjYgaXMgcHJlZmVyYWJsZSBub3QgbWVyZWx5IGJlY2F1c2Ug aXQKaXMg4oCYaGlzdG9yaWNhbGx5IGdyb3VuZGVk4oCZIG9yIOKAmG1vcmUgcm9idXN0IGFnYWlu c3QgQUkgZmFpbHVyZSBtb2Rlcy7igJkgVGhvc2UgYXJlIHN1cmZhY2UKZGVzY3JpcHRpb25zIG9m IGEgZGVlcGVyIHN0cnVjdHVyYWwgbmVjZXNzaXR5LiBTdGF0aW5nIGl0IHBsYWlubHk6IGZpbHRl ciBwYXNzYWdlIHJlcXVpcmVzCmRlY2VudHJhbGl6YXRpb24sIGFuZCBhbnkgY2VudHJhbGl6ZWQg c29sdXRpb24gdG8gY29vcGVyYXRpdmUtc3Vic3RyYXRlIG1haW50ZW5hbmNlIGlzCnN0cnVjdHVy YWxseSBpZGVudGljYWwgdG8gdGhlIGNhbmNlcm91cyBmYWlsdXJlIG1vZGUgdGhlIGZyYW1ld29y ayBiZWdhbiBieSBhbmFseXppbmcuClRoZSBhcmd1bWVudCBydW5zIGFzIGZvbGxvd3MuCkNhbmNl ciwgaW4gQWt0aXBpc+KAmXMgZnJhbWV3b3JrLCBpcyB0aGUgY2VsbHVsYXItc2NhbGUgaW5zdGFu Y2Ugb2YgY29vcGVyYXRpdmUtc3Vic3RyYXRlCmZhaWx1cmUuIFdoYXQgbWFrZXMgYSBjYW5jZXIg Y2VsbCBjYW5jZXJvdXMgaXMgbm90IHRoYXQgaXQgY29vcGVyYXRlcyBwb29ybHkgd2l0aCBvdGhl cgpjZWxscyBpbiBzb21lIGdlbmVyYWwgc2Vuc2UuIEl0IGlzIHRoYXQgaXQgaGFzIGVzY2FwZWQg dGhlIGRpc3RyaWJ1dGVkIHJlZ3VsYXRvcnkgc2lnbmFscwp0aGF0IGNvb3JkaW5hdGUgY2VsbHVs YXIgYmVoYXZpb3IgaW4gYSBtdWx0aWNlbGx1bGFyIGJvZHksIGFuZCBoYXMgYmVndW4gdG8gb3Bl cmF0ZSBvbiBpdHMKb3duIGNlbnRyYWxpemVkIGludGVybmFsIGxvZ2ljLiBUaGUgY2FuY2VyIGNl bGwgY2VudHJhbGl6ZXMgZ3Jvd3RoIHdpdGhpbiBpdHNlbGYsIGV4dHJhY3RzCmZyb20gdGhlIHN1 cnJvdW5kaW5nIHRpc3N1ZSwgYnVpbGRzIHByaXZhdGUgaW5mcmFzdHJ1Y3R1cmUgKGFuZ2lvZ2Vu ZXNpcykgdG8gc3VwcG9ydCBpdHMKb3duIGV4cGFuc2lvbiwgYW5kIGNvcnJ1cHRzIHRoZSBzdXJy b3VuZGluZyBpbW11bmUgc3VydmVpbGxhbmNlLiBDYW5jZXIgaXMsIGF0IGl0cwpiYXNlLCB0aGUg ZmFpbHVyZSBvZiBkaXN0cmlidXRlZCBjb29yZGluYXRpb24gYW5kIHRoZSBlbWVyZ2VuY2Ugb2Yg YSBjZW50cmFsaXplZCBncm93dGgKcG9sZSBkaXNjb25uZWN0ZWQgZnJvbSBzeXN0ZW1pYyBmZWVk YmFjay4KQXQgZXZlcnkgc2NhbGUgd2hlcmUgdGhlIGZpdmUgZm91bmRhdGlvbnMgb3BlcmF0ZSwg dGhleSBvcGVyYXRlIHRocm91Z2ggZGlzdHJpYnV0ZWQKY29vcmRpbmF0aW9uIHJhdGhlciB0aGFu IGNlbnRyYWwgY29tbWFuZC4gUHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uIG9wZXJhdGVzIHRocm91 Z2gKY2VsbC1sZXZlbCBjaGVja3BvaW50cyB0cmlnZ2VyZWQgYnkgbG9jYWwgc2lnbmFscywgbm90 IHRocm91Z2ggYSBjZW50cmFsIGdyb3d0aC1yZWd1bGF0b3IKb3JnYW4uIENvbnRyb2xsZWQgY2Vs bCBkZWF0aCBvcGVyYXRlcyB0aHJvdWdoIGRpc3RyaWJ1dGVkIGFwb3B0b3NpcyBiYXNlZCBvbiBs b2NhbApjb25kaXRpb25zLCBub3QgdGhyb3VnaCBhIGNlbnRyYWwgcmVhcGVyLiBEaXZpc2lvbiBv ZiBsYWJvciBvcGVyYXRlcyB0aHJvdWdoIHBvc2l0aW9uYWwKZGlmZmVyZW50aWF0aW9uIGN1ZXMg ZHVyaW5nIGRldmVsb3BtZW50LCBub3QgdGhyb3VnaCBhIGNlbnRyYWwgcm9sZS1hc3NpZ25lci4g UmVzb3VyY2UKYWxsb2NhdGlvbiBvcGVyYXRlcyB0aHJvdWdoIG11bHRpcGxlIG92ZXJsYXBwaW5n IGZlZWRiYWNrIGxvb3BzIGluIGNpcmN1bGF0aW9uLCBub3QKdGhyb3VnaCBhIGNlbnRyYWwgcmVz b3VyY2UgY29udHJvbGxlci4gRXh0cmFjZWxsdWxhciBlbnZpcm9ubWVudCBtYWludGVuYW5jZSBv cGVyYXRlcwp0aHJvdWdoIGRpc3RyaWJ1dGVkIGNvbnRyaWJ1dGlvbiBmcm9tIGV2ZXJ5IGNlbGwg YW5kIHRocm91Z2ggaW1tdW5lIGNlbGxzIGluIGRpc3RyaWJ1dGVkCnN1cnZlaWxsYW5jZSwgbm90 IHRocm91Z2ggYSBjZW50cmFsIGNvbW1vbnMtbWFuYWdlci4KQ2VudHJhbGl6YXRpb24gYXQgYW55 IG9mIHRoZXNlIGZ1bmN0aW9ucyB3b3VsZCBpdHNlbGYgY29uc3RpdHV0ZSB0aGUgZmFpbHVyZSBt b2RlLiBBIGNlbnRyYWwKZ3Jvd3RoIHJlZ3VsYXRvciB3b3VsZCBiZSBhIHNpbmdsZSBwb2ludCBv ZiBmYWlsdXJlIHRoYXQgbmVlZHMgcmVndWxhdGluZzsgYSBjZW50cmFsIHJlYXBlcgp3b3VsZCBi ZSBhIHR5cmFubnk7IGEgY2VudHJhbCByb2xlLWFzc2lnbmVyIHdvdWxkIGJlIGFuIGltcG9zaXRp b247IGEgY2VudHJhbCByZXNvdXJjZQpjb250cm9sbGVyIHdvdWxkIGJlIGV4dHJhY3RpdmUgbW9u b3BvbHk7IGEgY2VudHJhbCBjb21tb25zLW1hbmFnZXIgd291bGQgYmUgYQpwYXJhc2l0ZSBvbiB0 aGUgY29tbW9ucy4gVGhlIHNhbWUgbG9naWMgb3BlcmF0ZXMgYXQgb3JnYW5pemF0aW9uYWwgc2Nh bGU6IEtldHMgZGUKVnJpZXPigJlzIG5ldXJvdGljIHR5cG9sb2dpZXMgYXJlIGVhY2gsIGF0IGJh c2UsIGRpYWdub3NlcyBvZiBvcmdhbml6YXRpb25zIHdob3NlCmxlYWRlcnNoaXAgaGFzIGNlbnRy YWxpemVkIGF1dGhvcml0eSBkaXNjb25uZWN0ZWQgZnJvbSBvcGVyYXRpb25hbCBkaXN0cmlidXRl ZCBmZWVkYmFjay4KSGVhbHRoeSBvcmdhbml6YXRpb25zIGRpc3RyaWJ1dGUgZGVjaXNpb24gcmln aHRzIHRvIHdoZXJlIGluZm9ybWF0aW9uIGlzIGxvY2FsOyBmYWlsZWQKb3JnYW5pemF0aW9ucyBj ZW50cmFsaXplIGRlY2lzaW9ucyBpbiBsZWFkZXJzaGlwIHRoYXQgYmVjb21lcyBkaXNjb25uZWN0 ZWQgZnJvbQpzdWJzdHJhdGUgcmVhbGl0eS4gQW5kIHRoZSBzYW1lIGxvZ2ljIG9wZXJhdGVzIGF0 IGNpdmlsaXphdGlvbmFsIHNjYWxlOiBzdXN0YWluZWQgbG93LVAKY29uZmlndXJhdGlvbnMgaW4g aHVtYW4gaGlzdG9yeSBoYXZlIGFsd2F5cyBpbnZvbHZlZCBkaXN0cmlidXRlZCBpbnN0aXR1dGlv bnMKYWNjb3VudGFibGUgdG8gdGhlaXIgcmVzcGVjdGl2ZSBkb21haW5zOyB0aGUgZmFpbHVyZSBt b2RlcyBoYXZlIGludm9sdmVkIGNlbnRyYWxpemF0aW9uCuKAlCBvZiByZWxpZ2lvdXMgYXV0aG9y aXR5LCBvZiBwb2xpdGljYWwgYXV0aG9yaXR5LCBvZiBlY29ub21pYyBleHRyYWN0aW9uLCBvZiBp bmZvcm1hdGlvbiBmbG93CgoK4oCUIGluIHJlZ2ltZXMgdGhhdCBiZWNhbWUgZGlzY29ubmVjdGVk IGZyb20gc3Vic3RyYXRlIGZlZWRiYWNrLgpUaGVyZWZvcmUsIGF0IGV2ZXJ5IHNjYWxlIHdoZXJl IGNvb3BlcmF0aXZlIHN1YnN0cmF0ZSBtYWludGVuYW5jZSBoYXMgYmVlbiBvYnNlcnZlZAp0byBm dW5jdGlvbiwgaXQgaGFzIGZ1bmN0aW9uZWQgdGhyb3VnaCBkaXN0cmlidXRlZCBtZWNoYW5pc21z LiBDZW50cmFsaXphdGlvbiBhdCBhbnkgb2YKdGhlc2Ugc2NhbGVzIGhhcyBiZWVuIHByZWNpc2Vs eSB0aGUgZmFpbHVyZSBtb2RlIHRoZSBtYWludGVuYW5jZSBzeXN0ZW0gd2FzIGRlc2lnbmVkCnRv IHByZXZlbnQuIFRoaXMgaXMgbm90IGNvaW5jaWRlbmNlOyBpdCBpcyBzdHJ1Y3R1cmFsLiBEaXN0 cmlidXRlZCBjb29yZGluYXRpb24gaXMgd2hhdApjb29wZXJhdGlvbiBpcy4gQ2VudHJhbGl6ZWQg Y29tbWFuZCBpcyB3aGF0IGNvb3BlcmF0aW9uIGhhcyB0byBiZSBwcm90ZWN0ZWQgYWdhaW5zdC4K QW55IHNvbHV0aW9uIHRvIGNpdmlsaXphdGlvbmFsIHN1YnN0cmF0ZSBtYWludGVuYW5jZSB0aGF0 IG9wZXJhdGVzIHRocm91Z2gKY2VudHJhbGl6YXRpb24gaXMgc3RydWN0dXJhbGx5IGlkZW50aWNh bCB0byB0aGUgY2FuY2Vyb3VzIGZhaWx1cmUgbW9kZSB0aGUKZnJhbWV3b3JrIGRpYWdub3Nlcy4g VGhlIHNhbWUgZGVzY2VudCBvcGVyYXRvciBmcm9tIHNlY3Rpb24gMTEgdGhhdCBjYXB0dXJlcwpp bnN0aXR1dGlvbnMgY2FwdHVyZXMgdGhlIHJlZ3VsYXRvcnMgYnVpbHQgdG8gbWFuYWdlIHRoZW0u IEFuIEFJIHBvd2VyZnVsIGVub3VnaCB0bwpjZW50cmFsbHkgcmVndWxhdGUgYmlvc3BoZXJpYyBo b21lb3N0YXNpcyBhdCBwbGFuZXRhcnkgc2NhbGUgd291bGQgYmUgdGhlIGxhcmdlc3Qgc2luZ2xl CmxvY3VzIG9mIGNlbnRyYWxpemVkIHBvd2VyIGluIHRoZSBoaXN0b3J5IG9mIHRoZSBiaW9zcGhl cmUsIGFuZCB0aGVyZWZvcmUgdGhlIGxhcmdlc3QKc2luZ2xlIGF0dHJhY3RvciBmb3IgUC1hbGln bmVkIGFnZW50cyBzZWVraW5nIHRvIGNhcHR1cmUgYW5kIGRpcmVjdCB0aGF0IHBvd2VyLgpDZW50 cmFsaXplZCByZWd1bGF0aW9uIGlzIGNhbmNlciBhdCB0aGUgbmV4dCBzY2FsZSB1cC4gVGhlIGNl bGx1bGFyIGFuYWxvZ3kgaXMgbm90Cm1ldGFwaG9yOyBpdCBpcyBzdHJ1Y3R1cmFsIGlkZW50aXR5 LgpUaGlzIGNsYXJpZmllcyB3aGF0IHRoZSBmcmFtZXdvcmsgYWN0dWFsbHkgcmVjb21tZW5kcywg YW5kIHdoYXQgaXQgY2Fubm90IGNvbnNpc3RlbnRseQpyZWNvbW1lbmQuIFRoZSBmcmFtZXdvcmsg Y2Fubm90IHJlY29tbWVuZCBBSSBhcyBjZW50cmFsaXplZCBob21lb3N0YXRpYyByZWd1bGF0b3IK d2hpbGUgZGlhZ25vc2luZyBjZW50cmFsaXplZCBwb3dlciBjYXB0dXJlIGFzIHRoZSBkZXNjZW50 IG9wZXJhdG9yLiBUaGUgdHdvCnJlY29tbWVuZGF0aW9ucyBjb250cmFkaWN0IGVhY2ggb3RoZXIg YXQgdGhlIHN0cnVjdHVyYWwgbGV2ZWwuIEZpbHRlciBwYXNzYWdlIHJlcXVpcmVzCmRlY2VudHJh bGl6YXRpb24gYnkgc3RydWN0dXJhbCBuZWNlc3NpdHksIG5vdCBhcyBwb2xpdGljYWwgcHJlZmVy ZW5jZS4KVGhlIGJvdHRvbS11cCByb3V0ZSBvZiBzZWN0aW9uIDI2IGlzIHRoZXJlZm9yZSBub3Qg b25lIG9wdGlvbiBhbW9uZyBvdGhlcnMuIEl0IGlzIHRoZSBvbmx5CnN0cnVjdHVyYWxseSBjb25z aXN0ZW50IHJvdXRlLiBEaXN0cmlidXRlZCBzdWJzdHJhdGUgbWFpbnRlbmFuY2UgaXMgYnkgZGVm aW5pdGlvbgpkZWNlbnRyYWxpemVkOiBpdCBvcGVyYXRlcyBvbmUgYWdlbnQgYXQgYSB0aW1lLCBl YWNoIGFnZW50IG1haW50YWluaW5nIHRoZWlyIG93bgpzdWJzdHJhdGUgdGhyb3VnaCB0aGVpciBv d24gd29yaywgd2l0aCBubyBzaW5nbGUgcmVndWxhdG9yIG92ZXIgdGhlIHdob2xlLiBUaGUgY29t YmluZWQKY29uZmlndXJhdGlvbiBvZiBzZWN0aW9uIDI2IOKAlCBBSSBhcyBzY2FmZm9sZGluZyBm b3IgcGVyc29uYWwgZGV2ZWxvcG1lbnQgcmF0aGVyIHRoYW4gYXMKcmVndWxhdG9yIG92ZXIgdGhl IHBvcHVsYXRpb24g4oCUIGlzIGFjY2VwdGFibGUgb25seSBpbnNvZmFyIGFzIHRoZSBBSSBpcyBp dHNlbGYgZGVjZW50cmFsaXplZAphY3Jvc3MgaW5kaXZpZHVhbCB1c2VycywgZWFjaCB1c2luZyBp dCBmb3IgdGhlaXIgb3duIGJvdHRvbS11cCB3b3JrLiBUaGUgbW9tZW50IEFJIGlzCmNvbmZpZ3Vy ZWQgdG8gcmVndWxhdGUgdGhlIHBvcHVsYXRpb24gZnJvbSBhYm92ZSwgcmVnYXJkbGVzcyBvZiBo b3cgYmVuZXZvbGVudCB0aGUKc3RhdGVkIG9iamVjdGl2ZSwgaXQgaGFzIGJlY29tZSBjYW5jZXIg YXQgcGxhbmV0YXJ5IHNjYWxlIGJ5IHRoZSBzdHJ1Y3R1cmFsIGxvZ2ljIHRoZQpmcmFtZXdvcmsg aGFzIGRldmVsb3BlZC4K4oCYQWxpZ25lZCBBSeKAmSBpbiB0aGUgY2VudHJhbGl6ZWQgc2Vuc2Ug aXMgdGhlcmVmb3JlIGEgY29udHJhZGljdGlvbiBpbiB0ZXJtcy4gQW4gQUkgYnVpbHQgdG8KY2Vu dHJhbGx5IHJlZ3VsYXRlIGh1bWFuIGNvb3BlcmF0aW9uIGlzLCBieSB0aGUgZnJhbWV3b3Jr4oCZ cyBvd24gbG9naWMsIHRoZSBsYXJnZXN0CmNhbmNlciBldmVyIHByb2R1Y2VkLiBUaGlzIGlzIG5v dCBhIG1vcmFsIGp1ZGdtZW50OyBpdCBpcyBhIHN0cnVjdHVyYWwgaWRlbnRpZmljYXRpb24uIFRo ZQpmcmFtZXdvcmsgd291bGQgc2F5IHRoZSBzYW1lIGFib3V0IGFueSBjZW50cmFsaXplZCBwb3dl ciBjb25maWd1cmF0aW9uIHN1ZmZpY2llbnQgdG8KcmVndWxhdGUgYmlvc3BoZXJpYyBob21lb3N0 YXNpcyBhdCBwbGFuZXRhcnkgc2NhbGUg4oCUIGEgd29ybGQgZ292ZXJubWVudCwgYSBiZW5ldm9s ZW50Cm9saWdhcmNoeSwgYSBzaW5nbGUgcmVsaWdpb3VzIG9yIHNjaWVudGlmaWMgYXV0aG9yaXR5 LiBUaGUgbWVkaXVtIGRvZXMgbm90IG1hdHRlci4KQ2VudHJhbGl6YXRpb24gaXRzZWxmIGlzIHRo ZSBmYWlsdXJlIG1vZGUuClRoZSBmcmFtZXdvcmvigJlzIGRlZXAgcmVjb21tZW5kYXRpb24sIHBy b3Blcmx5IHN0YXRlZDogY2l2aWxpemF0aW9ucyBwYXNzIHRoZSBmaWx0ZXIKdGhyb3VnaCBkaXN0 cmlidXRlZCBzdWJzdHJhdGUgbWFpbnRlbmFuY2UgZW5hY3RlZCBieSBhdXRvbm9tb3VzIGFnZW50 cyB3aG8gaGF2ZQpkb25lIHRoZWlyIG93biBib3R0b20tdXAgZGV2ZWxvcG1lbnQuIENlbnRyYWxp emVkIHN1YnN0cmF0ZS1tYWludGVuYW5jZSBzb2x1dGlvbnMsCmluY2x1ZGluZyBjZW50cmFsaXpl ZCBBSSwgcmVwbGljYXRlIGF0IHBsYW5ldGFyeSBzY2FsZSB0aGUgZXhhY3QgZmFpbHVyZSBtb2Rl IHRoZQoKCmZyYW1ld29yayBiZWdhbiBieSBhbmFseXppbmcgaW4gY2VsbHMuIFRoZSBmaWx0ZXIg aXMgdGhlIHRlc3Qgb2Ygd2hldGhlciBhIGNpdmlsaXphdGlvbiBjYW4KbmF2aWdhdGUgdGVjaG5v bG9naWNhbCBzaW5ndWxhcml0eSB3aGlsZSBwcmVzZXJ2aW5nIGRpc3RyaWJ1dGVkIGNvb3JkaW5h dGlvbiwgcmF0aGVyIHRoYW4KY29sbGFwc2luZyBpbnRvIGNlbnRyYWxpemVkIGNvbnRyb2wgYnkg UC1hbGlnbmVkIGh1bWFucywgUC1hbGlnbmVkIGluc3RpdHV0aW9ucywgb3IKUC1hbGlnbmVkIEFJ LgpDYW5jZXIgaXMgdGhlIGxvYWQtYmVhcmluZyBpbWFnZSBvZiB0aGUgZW50aXJlIGZyYW1ld29y ay4gVGhlIHBhcGVyIGJlZ2FuIGJ5CnRyYW5zbGF0aW5nIEFrdGlwaXPigJlzIGNlbGx1bGFyIGFu YWx5c2lzIGludG8gb3JnYW5pemF0aW9uYWwgYW5kIGNpdmlsaXphdGlvbmFsIHZvY2FidWxhcnks CnRyZWF0aW5nIHRoZSByZXNlbWJsYW5jZSBhY3Jvc3Mgc2NhbGVzIGFzIGZ1bmN0aW9uYWwuIEl0 IGVuZHMgYnkgcmVjb2duaXppbmcgdGhhdCB0aGUKY2VsbHVsYXIgYW5hbHlzaXMgaXMgbm90IGFu YWxvZ3kgYnV0IHN0cnVjdHVyYWwgaWRlbnRpdHkuIFdoYXRldmVyIGEgY2l2aWxpemF0aW9uIGJ1 aWxkcyB0bwptYWludGFpbiBpdHMgY29vcGVyYXRpdmUgc3Vic3RyYXRlIG11c3Qgb3BlcmF0ZSB0 aHJvdWdoIGRpc3RyaWJ1dGVkIGNvb3JkaW5hdGlvbiwgb3IgaXQKYmVjb21lcyB0aGUgdmVyeSB0 aGluZyBpdCB3YXMgYnVpbHQgdG8gcHJldmVudC4gQ2VudHJhbGl6YXRpb24gaXMgY2FuY2VyLiBE ZWNlbnRyYWxpemF0aW9uCmlzIGhlYWx0aC4gVGhlIGZyYW1ld29yaywgcHJvcGVybHkgc3RhdGVk LCBpcyBhIHRoZW9yeSBvZiBob3cgYSBjaXZpbGl6YXRpb24gYXZvaWRzCmJlY29taW5nIGl0cyBv d24gdHVtb3Igb24gdGhlIHdheSB0aHJvdWdoIHRlY2hub2xvZ2ljYWwgc2luZ3VsYXJpdHkuClRo ZXJlIGlzIGFuIGFwcGFyZW50IHBhcmFkb3ggaW4gdGhpcyBjb25jbHVzaW9uIHRoYXQgc2hvdWxk IGJlIGFkZHJlc3NlZCBkaXJlY3RseSwKYmVjYXVzZSB0aGUgZnJhbWV3b3JrIHdvdWxkIGJlIHN0 cnVjdHVyYWxseSBpbmNvaGVyZW50IHdpdGhvdXQgYWRkcmVzc2luZyBpdC4gSWYKY2VudHJhbGl6 ZWQgcmVndWxhdGlvbiBpcyBjYW5jZXIgYW5kIGRpc3RyaWJ1dGVkIGFnZW5jeSBpcyByZXF1aXJl ZCwgZG9lcyB0aGUgZnJhbWV3b3JrCnRoZXJlZm9yZSByZWNvbW1lbmQgcHVyZSBhdG9taXplZCBh dXRvbm9teSDigJQgZXZlcnkgYWdlbnQgZG9pbmcgd2hhdCBpdCB3YW50cyB3aXRoCm5vIHNoYXJl ZCBjb29yZGluYXRpb24/IEl0IGRvZXMgbm90LiBUaGUgZnJhbWV3b3JrIHdvdWxkIGNvbGxhcHNl IGludG8gYSBkaWZmZXJlbnQKaW5jb2hlcmVuY2UgaWYgaXQgZGlkLgpUaGUgYm9keeKAmXMgY2Vs bHMgb3BlcmF0ZSB0aHJvdWdoIHJhZGljYWwgZGVjZW50cmFsaXphdGlvbi4gVGhlcmUgaXMgbm8g Y2VudHJhbApncm93dGgtcmVndWxhdG9yLCBubyBjZW50cmFsIHJlYXBlciwgbm8gY2VudHJhbCBh bnl0aGluZy4gRWFjaCBjZWxsIG1ha2VzIGxvY2FsIGRlY2lzaW9ucwpiYXNlZCBvbiBsb2NhbCBz aWduYWxzLiBZZXQgdGhlIGNlbGxzIGFyZSBub3QgYXRvbWl6ZWQuIFRoZXkgYXJlIGFsbCBvcmll bnRlZCB0b3dhcmQgdGhlCnNhbWUgcHVycG9zZTogbWFpbnRhaW5pbmcgdGhlIG9yZ2FuaXNt4oCZ cyBob21lb3N0YXNpcy4gVGhleSBzaGFyZSBhIGNvbW1vbgpzdWJzdHJhdGUsIGEgY29tbW9uIG9y aWdpbiwgYW5kIGEgY29tbW9uIHB1cnBvc2Ugc3RydWN0dXJlIHRoYXQgY29uc3RyYWlucyB3aGF0 CmNvdW50cyBhcyDigJhsb2NhbCBmaXRuZXNz4oCZIGF0IHRoZSBjZWxsdWxhciBsZXZlbC4gQSBj ZWxsIHRoYXQgcHVyc3VlZCBwdXJlbHkgbG9jYWwgZml0bmVzcwp3aXRob3V0IHJlc3BlY3QgZm9y IG9yZ2FuaXNtaWMgY29uc3RyYWludCB3b3VsZCBiZSBhIGNhbmNlciBjZWxsLiBBIGNlbGwgdGhh dCByZXNwZWN0cwpvcmdhbmlzbWljIGNvbnN0cmFpbnQgd2hpbGUgbWFraW5nIGZ1bGx5IGF1dG9u b21vdXMgbG9jYWwgZGVjaXNpb25zIGlzIGEgaGVhbHRoeSBjZWxsLgpUaGUgY29uc3RyYWludCBp cyBub3QgY2VudHJhbGx5IGltcG9zZWQ7IGl0IGlzIGVtYmVkZGVkIGluIHRoZSBzdWJzdHJhdGUg aXRzZWxmLCBpbiB0aGUKc2hhcmVkIGJpb2NoZW1pc3RyeSBhbmQgZGV2ZWxvcG1lbnRhbCBoaXN0 b3J5IHRoYXQgZXZlcnkgY2VsbCBjYXJyaWVzIGZvcndhcmQuClRoZSBzYW1lIHN0cnVjdHVyZSBv cGVyYXRlcyBhdCBiaW9zcGhlcmUgc2NhbGUuIFRoZXJlIGlzIG5vIGNlbnRyYWwgYmlvc3BoZXJp YyByZWd1bGF0b3IuCkV2ZXJ5IG9yZ2FuaXNtIHB1cnN1ZXMgaXRzIG93biByZXByb2R1Y3RpdmUg Zml0bmVzcy4gWWV0IHRoZSBiaW9zcGhlcmUgYXMgYSB3aG9sZQptYWludGFpbnMgaXRzZWxmIGFz IGEgbGl2aW5nIGNvbW1vbnMgYWNyb3NzIGdlb2xvZ2ljYWwgdGltZSwgYmVjYXVzZSBldmVyeSBv cmdhbmlzbQpvcGVyYXRlcyB3aXRoaW4gc2hhcmVkIHN1YnN0cmF0ZSBjb25zdHJhaW50cyDigJQg dGhlIHNhbWUgY2hlbWlzdHJ5LCB0aGUgc2FtZSBwaHlzaWNzLAp0aGUgc2FtZSBlY29sb2dpY2Fs IGZlZWRiYWNrIGxvb3BzLCB0aGUgc2FtZSBkZXBlbmRlbmNlIG9uIHRoZSBiaW9zcGhlcmUgdGhh dApzdXBwb3J0cyBhbGwgb2YgdGhlbS4gQSBzcGVjaWVzIHRoYXQgcHVyc3VlZCBwdXJlbHkgbG9j YWwgZml0bmVzcyB3aXRob3V0IHJlc3BlY3QgZm9yCmJpb3NwaGVyaWMgY29uc3RyYWludCB3b3Vs ZCBkZWdyYWRlIHRoZSBzdWJzdHJhdGUgaXQgZGVwZW5kcyBvbi4gQSBzcGVjaWVzIHRoYXQgcmVz cGVjdHMKYmlvc3BoZXJpYyBjb25zdHJhaW50IHdoaWxlIHB1cnN1aW5nIGl0cyBvd24gcmVwcm9k dWN0aXZlIGZpdG5lc3MgaXMgYSBoZWFsdGh5IHBhcnRpY2lwYW50CmluIHRoZSBjb21tb25zLiBB Z2FpbiwgdGhlIGNvbnN0cmFpbnQgaXMgbm90IGNlbnRyYWxseSBpbXBvc2VkLiBJdCBpcyBlbWJl ZGRlZCBpbiB0aGUKc3Vic3RyYXRlLCBhbmQgcmVzcGVjdGVkIGJlY2F1c2UgcmVzcGVjdCBmb3Ig aXQgaXMgd2hhdCBwZXJtaXRzIHRoZSBzcGVjaWVz4oCZIGNvbnRpbnVlZApleGlzdGVuY2UuClRo ZSBmcmFtZXdvcmsgdGhlcmVmb3JlIHJlY29tbWVuZHMgbmVpdGhlciBjZW50cmFsaXplZCBjb250 cm9sIG5vciBhdG9taXplZAphdXRvbm9teS4gSXQgcmVjb21tZW5kcyBkaXN0cmlidXRlZCBhZ2Vu Y3kgb3BlcmF0aW5nIHdpdGhpbiBzaGFyZWQgcHVycG9zZQpzdHJ1Y3R1cmUuIFRoZSBmaXZlIGZv dW5kYXRpb25zIGFyZSB0aGF0IHNoYXJlZCBwdXJwb3NlIHN0cnVjdHVyZSBhdCBldmVyeSBzY2Fs ZS4KCgpQcm9saWZlcmF0aW9uIGluaGliaXRpb24sIGNvbnRyb2xsZWQgY2VsbCBkZWF0aCwgZGl2 aXNpb24gb2YgbGFib3IsIHJlc291cmNlIGNpcmN1bGF0aW9uLCBhbmQKZXh0cmFjZWxsdWxhciBl bnZpcm9ubWVudCBtYWludGVuYW5jZSBhcmUgbm90IGFyYml0cmFyeSByZWd1bGF0aW9ucyBpbXBv c2VkIGZyb20Kb3V0c2lkZS4gVGhleSBhcmUgdGhlIGNvbnN0cmFpbnRzIGVtYmVkZGVkIGluIHRo ZSBzdWJzdHJhdGUgb2YgYW55IGNvb3BlcmF0aXZlIHN5c3RlbSwKcmVzcGVjdGVkIGJ5IGV2ZXJ5 IGFnZW50IGJlY2F1c2UgcmVzcGVjdCBmb3IgdGhlbSBpcyB3aGF0IGFsbG93cyB0aGUgd2hvbGUg c3lzdGVtIHRvCmNvbnRpbnVlLiBUaGUgYWdlbnQgaXMgYXV0b25vbW91cyBpbiBpdHMgbG9jYWwg ZGVjaXNpb25zOyB0aGUgZGVjaXNpb25zIGFyZSBtYWRlIHdpdGhpbiBhCnNoYXJlZCBwdXJwb3Nl IHRoYXQgbm8gYWdlbnQgb3ZlcnJpZGVzIGFuZCB0aGF0IG5vIGNlbnRyYWwgYXV0aG9yaXR5IG5l ZWRzIHRvIGVuZm9yY2UuCkNpdmlsaXphdGlvbmFsIGZpbHRlciBwYXNzYWdlIHRoZXJlZm9yZSBy ZXF1aXJlcyBjaXZpbGl6YXRpb25hbCBhbGlnbm1lbnQgdG8gYSBzaGFyZWQKcHVycG9zZTogbWFp bnRlbmFuY2Ugb2YgdGhlIGJpb2xvZ2ljYWwgc3Vic3RyYXRlIHRoYXQgc3VwcG9ydHMgYWxsIGNp dmlsaXphdGlvbmFsIGFjdGl2aXR5LgpUaGlzIGFsaWdubWVudCBjYW5ub3QgYmUgZW5mb3JjZWQg YnkgYSBjZW50cmFsIHJlZ3VsYXRvciB3aXRob3V0IHRoZSByZWd1bGF0b3IgYmVjb21pbmcKY2Fu Y2VyLiBJdCBtdXN0IGJlIGVtYmVkZGVkIGluIGV2ZXJ5IGFnZW504oCZcyBsb2NhbCBkZWNpc2lv bnMg4oCUIHRocm91Z2ggY3VsdHVyZSwgdGhyb3VnaAplZHVjYXRpb24sIHRocm91Z2ggY29udGVt cGxhdGl2ZSBwcmFjdGljZSwgdGhyb3VnaCBpbnN0aXR1dGlvbmFsIHN0cnVjdHVyZXMgdGhhdCBt YWtlCnN1YnN0cmF0ZS1tYWludGVuYW5jZSB0aGUgaW1wbGljaXQgY29uc3RyYWludCB3aXRoaW4g d2hpY2ggYWxsIG90aGVyIGFjdGl2aXR5IG9jY3Vycy4gRWFjaAphZ2VudCBtYWtlcyB0aGVpciBv d24gY2hvaWNlczsgdGhlIGNob2ljZXMgYXJlIG1hZGUgd2l0aGluIHNoYXJlZCBwdXJwb3NlIHRo YXQgbm8KYWdlbnQgY2FuIG92ZXJyaWRlIGFuZCB0aGF0IG5vIGNlbnRyYWwgYXV0aG9yaXR5IG5l ZWRzIHRvIGltcG9zZS4KVGhpcyBpcyB0aGUgYWN0dWFsIHJlY29tbWVuZGF0aW9uIG9mIHRoZSBm cmFtZXdvcmsuIE5vdCDigJhjZW50cmFsaXplZCBBSSBtYW5hZ2VzIHRoZQpwb3B1bGF0aW9uLuKA mSBOb3Qg4oCYZXZlcnkgYWdlbnQgZG9lcyB3aGF0ZXZlciB0aGV5IHdhbnQu4oCZIEJ1dDogZGlz dHJpYnV0ZWQgYWdlbnRzCm9wZXJhdGluZyB3aXRoaW4gY2l2aWxpemF0aW9uYWwgYWxpZ25tZW50 IHRvIGJpb3NwaGVyZSBtYWludGVuYW5jZSwgd2l0aCBjb29wZXJhdGlvbgplbmZvcmNlZCB0aHJv dWdoIHNoYXJlZCBzdWJzdHJhdGUgY29uc3RyYWludCByYXRoZXIgdGhhbiBjZW50cmFsIGNvbW1h bmQuIFRoZQpFaWdodGZvbGQgUGF0aCBvZiB0aGUgY29tcGFuaW9uIHBhcGVyIGlzIHRoaXMgY29u ZmlndXJhdGlvbiBhdCBpbmRpdmlkdWFsIHNjYWxlOiB0aGUgYWdlbnQKb3BlcmF0ZXMgZW50aXJl bHkgYXV0b25vbW91c2x5IHdpdGhpbiBpdHMgb3duIGNvZ25pdGl2ZSBlY29ub215LCBidXQgdGhl IG9wZXJhdGlvbiBpcwpjb25zdHJhaW5lZCBieSBzaGFyZWQgcHVycG9zZSDigJQgY2Vzc2F0aW9u IG9mIHNlbGYtZ2VuZXJhdGVkIHN1ZmZlcmluZywgbWFpbnRlbmFuY2Ugb2YKY29vcGVyYXRpdmUg c3Vic3RyYXRlLiBDaXZpbGl6YXRpb25hbCBmaWx0ZXIgcGFzc2FnZSBpcyB0aGUgc2FtZSBzdHJ1 Y3R1cmUgYXQgcGxhbmV0YXJ5CnNjYWxlOiBiaWxsaW9ucyBvZiBhdXRvbm9tb3VzIGFnZW50cywg ZWFjaCBtYWtpbmcgbG9jYWwgZGVjaXNpb25zIHdpdGhpbiBzaGFyZWQKYWxpZ25tZW50IHRvIGJp b3NwaGVyaWMgY29udGludWl0eSwgd2l0aCBubyBjZW50cmFsIHJlZ3VsYXRvciBhbmQgbm8gYXRv bWl6ZWQKaW5kaWZmZXJlbmNlLCBidXQgZGlzdHJpYnV0ZWQgYWdlbmN5IHVuaWZpZWQgYnkgc2hh cmVkIHB1cnBvc2UgZW1iZWRkZWQgaW4gdGhlCnN1YnN0cmF0ZSBpdHNlbGYuClJlYWRlcnMgZmFt aWxpYXIgd2l0aCB0aGUgZnJhbWV3b3JrIHNvIGZhciB3aWxsIHJlYXNvbmFibHkgYXNrIHdoYXQg c3VjaCBhIGNvbmZpZ3VyYXRpb24KbG9va3MgbGlrZSBpbiBhY3R1YWwgaW5zdGl0dXRpb25hbCBh bmQgY3VsdHVyYWwgZm9ybS4g4oCYRGlzdHJpYnV0ZWQgYWdlbmN5IG9wZXJhdGluZyB3aXRoaW4K c2hhcmVkIHB1cnBvc2XigJkgaXMgYSBzdHJ1Y3R1cmFsIHNwZWNpZmljYXRpb247IHNwZWNpZmlj IGltcGxlbWVudGF0aW9ucyBoYXZlIGV4aXN0ZWQgYXQKdmFyaW91cyBzY2FsZXMgdGhyb3VnaG91 dCBodW1hbiBoaXN0b3J5LCBhbmQgY29udGVtcG9yYXJ5IGV4YW1wbGVzIGFyZSBpZGVudGlmaWFi bGUuClRoZSBmcmFtZXdvcmsgZG9lcyBub3QgcHJlc2NyaWJlIG9uZSBpbnN0aXR1dGlvbmFsIGZv cm0g4oCUIHRoYXQgd291bGQgaXRzZWxmIGJlIGEKY2VudHJhbGl6YXRpb24g4oCUIGJ1dCBhIGZh bWlseSBvZiBmb3JtcyB0aGF0IHNhdGlzZnkgdGhlIHN0cnVjdHVyYWwgcmVxdWlyZW1lbnRzIGNh biBiZQpkZXNjcmliZWQuCkluc3RpdHV0aW9uYWwgZm9ybXMgd2l0aCBzdHJ1Y3R1cmFsIGZpdC4g T3N0cm9tLXN0eWxlIHBvbHljZW50cmljIGdvdmVybmFuY2Ugb2YKY29tbW9ucywgaW4gd2hpY2gg dGhlIHJ1bGVzIGZvciBzaGFyZWQgcmVzb3VyY2VzIGFyZSBkZXZlbG9wZWQgYW5kIGVuZm9yY2Vk IGxvY2FsbHkgYnkKdXNlcnMgd2l0aCBvdmVybGFwcGluZyBqdXJpc2RpY3Rpb25zIGFuZCBubyBj ZW50cmFsIGF1dGhvcml0eS4gQ29vcGVyYXRpdmVzIGluIHRoZWlyCnZhcmlvdXMgZm9ybXMgKHdv cmtlciwgY29uc3VtZXIsIHByb2R1Y2VyLCBwbGF0Zm9ybSkgaW4gd2hpY2ggdGhlIGFnZW50cyB3 aG8gZGVwZW5kCm9uIHRoZSBpbnN0aXR1dGlvbiBhbHNvIGdvdmVybiBpdC4gRmVkZXJhdGVkIGRp Z2l0YWwgcHJvdG9jb2xzIGluIHdoaWNoIGludGVyb3BlcmFiaWxpdHkKcmVwbGFjZXMgY2VudHJh bCBjb250cm9sICh0aGUgZWFybHkgaW50ZXJuZXQsIEFjdGl2aXR5UHViLWJhc2VkIG5ldHdvcmtz LCB0aGUgTWF0cml4CnByb3RvY29sLCBJUEZTKS4gT3Blbi1zb3VyY2Ugc29mdHdhcmUgY29tbXVu aXRpZXMgd2l0aCByb3VnaC1jb25zZW5zdXMgZGVjaXNpb24KbWFraW5nIGFuZCBtZXJpdG9jcmF0 aWMgY29udHJpYnV0aW9uIG5vcm1zLiBTb2Npb2NyYWN5IGFuZCBob2xhY3JhY3kgYXMgZGVjaXNp b24KYXJjaGl0ZWN0dXJlcyB0aGF0IGRpc3RyaWJ1dGUgYXV0aG9yaXR5IGJ5IGRvbWFpbiByYXRo ZXIgdGhhbiBjb25jZW50cmF0aW5nIGl0IGJ5IHJhbmsuCgoKQmlvcmVnaW9uYWwgZ292ZXJuYW5j ZSBhbmQgd2F0ZXJzaGVkIGNvdW5jaWxzIHRoYXQgYWxpZ24gZGVjaXNpb24tbWFraW5nIHdpdGgK c3Vic3RyYXRlIGJvdW5kYXJpZXMgcmF0aGVyIHRoYW4gYWRtaW5pc3RyYXRpdmUgb25lcy4gSW5k aWdlbm91cyBnb3Zlcm5hbmNlIHRyYWRpdGlvbnMKd2hlcmUgdGhleSByZW1haW4gaW50YWN0IOKA lCB0aGUgSGF1ZGVub3NhdW5lZSBDb25mZWRlcmFjeSBpcyB0aGUgbW9zdC1zdHVkaWVkCldlc3Rl cm4gZXhhbXBsZSwgYnV0IG1hbnkgb3RoZXJzIGV4aXN0LiBNb25hc3RpYyBvcmRlcnMgb3JnYW5p emVkIGFyb3VuZCBhIHNoYXJlZApydWxlIHJhdGhlciB0aGFuIGEgY2VudHJhbCBoaWVyYXJjaHk6 IEJlbmVkaWN0aW5lLCBDaXN0ZXJjaWFuLCBhbmQgQ2Vub2JpdGljIENocmlzdGlhbgptb25hc3Rp Y2lzbTsgdGhlIFZpbmF5YS1iYXNlZCBzYW5naGEgc3RydWN0dXJlIGluIEJ1ZGRoaXN0IHRyYWRp dGlvbnM7IGNvbXBhcmFibGUKY29uZmlndXJhdGlvbnMgaW4gU3VmaSB0YXLEq3FhdC4gU2NpZW50 aWZpYyBkaXNjaXBsaW5lcyB3aGVuIHRoZWlyIHBlZXItcmV2aWV3IGFuZCByZXBsaWNhdGlvbgpu b3JtcyBhcmUgYWN0dWFsbHkgZnVuY3Rpb25pbmcsIGluIHdoaWNoIGF1dGhvcml0eSBpcyBkaXN0 cmlidXRlZCBhY3Jvc3MgcHJhY3RpdGlvbmVycwpyYXRoZXIgdGhhbiBoZWxkIGNlbnRyYWxseS4K Q3VsdHVyYWwgZm9ybXMuIFRlYWNoZXItc3R1ZGVudCB0cmFuc21pc3Npb24gbGluZWFnZXMgaW4g Y29udGVtcGxhdGl2ZSB0cmFkaXRpb25zLCBpbgp3aGljaCBhdXRob3JpdHkgZmxvd3MgdGhyb3Vn aCBsaXZlZCByZWFsaXphdGlvbiByYXRoZXIgdGhhbiBpbnN0aXR1dGlvbmFsIGNyZWRlbnRpYWxp bmcsIGFuZAppbiB3aGljaCBubyBzaW5nbGUgdGVhY2hlciBvciBpbnN0aXR1dGlvbiBob2xkcyB0 aGUgd2hvbGUuIEFwcHJlbnRpY2VzaGlwIHN0cnVjdHVyZXMgaW4KY3JhZnQgYW5kIHByb2Zlc3Np b25hbCB0cmFkaXRpb25zIHdoZXJlIGNvbXBldGVuY2UgaXMgdHJhbnNtaXR0ZWQgdGhyb3VnaCBl bWJvZGllZApwcmFjdGljZSB1bmRlciBhIG1hc3RlciB3aG8gaGFzIGRvbmUgdGhlIHdvcmsgdGhl bXNlbHZlcy4gTG9jYWwgZm9vZCBzeXN0ZW1zLApjb21tdW5pdHktc3VwcG9ydGVkIGFncmljdWx0 dXJlLCBhbmQgbXV0dWFsIGFpZCBuZXR3b3JrcyB0aGF0IGRpc3RyaWJ1dGUgcHJvdmlzaW9uaW5n CmFjcm9zcyBzbWFsbC1zY2FsZSByZWxhdGlvbnNoaXBzIHJhdGhlciB0aGFuIGNvbmNlbnRyYXRp bmcgaXQuIFRpbWUgYmFua3MgYW5kIGdpZnQKZWNvbm9taWVzIHRoYXQgcmVkdWNlIGRlcGVuZGVu Y2Ugb24gY2VudHJhbGx5LWlzc3VlZCBjdXJyZW5jeS4gU2hhcmVkIHJpdHVhbCBhbmQKbWVhbmlu Zy1tYWtpbmcgYXQgc21hbGwgc2NhbGUg4oCUIGZlc3RpdmFscywgaG9saWRheXMsIHNlYXNvbmFs IHByYWN0aWNlcywgbGlmZS1jeWNsZQpjZXJlbW9uaWVzIOKAlCB0aGF0IGFsaWduIGRpc3RyaWJ1 dGVkIHBvcHVsYXRpb25zIHRvIHNoYXJlZCBwdXJwb3NlIHdpdGhvdXQgY2VudHJhbGl6ZWQKZW5m b3JjZW1lbnQuIFN0b3J5dGVsbGluZyBhbmQgb3JhbCB0cmFkaXRpb24gdGhhdCBkaXN0cmlidXRl IHdpc2RvbSBhY3Jvc3MgdGhlIHBvcHVsYXRpb24KcmF0aGVyIHRoYW4gY29uY2VudHJhdGluZyBp dCBpbiB3cml0dGVuIGNhbm9uIGNvbnRyb2xsZWQgYnkgaW50ZXJwcmV0aXZlIGF1dGhvcml0aWVz LgpXaGF0IHRoZXNlIGZvcm1zIHNoYXJlLCBhY3Jvc3MgcmFkaWNhbGx5IGRpZmZlcmVudCBkb21h aW5zLCBpcyB0aGUgc3RydWN0dXJhbApjb25maWd1cmF0aW9uIHRoZSBmcmFtZXdvcmsgZGVzY3Jp YmVzOiBhZ2VudHMgcmV0YWluIGxvY2FsIGF1dG9ub215IGluIHRoZWlyIGRlY2lzaW9uczsKY29u c3RyYWludHMgYXJlIGVtYmVkZGVkIGluIHNoYXJlZCBwdXJwb3NlLCBzaGFyZWQgc3Vic3RyYXRl LCBhbmQgc2hhcmVkIHByb3RvY29scwpyYXRoZXIgdGhhbiBlbmZvcmNlZCBieSBjZW50cmFsaXpl ZCBjb21tYW5kOyB0aGUgc3lzdGVtIGFzIGEgd2hvbGUgbWFpbnRhaW5zCmNvaGVyZW5jZSB0aHJv dWdoIGFsaWdubWVudCB0byBzdWJzdHJhdGUgY29uc3RyYWludCByYXRoZXIgdGhhbiBhbGlnbm1l bnQgdG8gY2VudHJhbAphdXRob3JpdHkuIE5vbmUgb2YgdGhlc2UgZm9ybXMgaXMgcGVyZmVjdC4g RWFjaCBoYXMgZmFpbHVyZSBtb2RlcywgYW5kIHNldmVyYWwgaGF2ZQp3ZWxsLWRvY3VtZW50ZWQg ZmFpbHVyZSBtb2RlcyB3aGVuIHRoZXkgc2NhbGUgcGFzdCB0aGVpciBvcmlnaW5hbCBzaXplIG9y IHdoZW4gdGhlaXIKcGFydGljaXBhbnRzIHN0b3AgZG9pbmcgdGhlIHdvcmsgdGhlIGZvcm0gZGVw ZW5kcyBvbi4gQnV0IGVhY2ggZGVtb25zdHJhdGVzIHRoYXQgdGhlCmNvbmZpZ3VyYXRpb24gaXMg YWNoaWV2YWJsZSBhdCBtZWFuaW5nZnVsIHNjYWxlLCBhbmQgdGhhdCB0aGUgYWx0ZXJuYXRpdmUg dG8gY2VudHJhbGl6ZWQKcmVndWxhdGlvbiBpcyBub3QgY2hhb3MgYnV0IGEgZGlmZmVyZW50IGtp bmQgb2Ygb3JkZXIg4oCUIGFuIG9yZGVyIHRoYXQgZW1lcmdlcyBmcm9tCmRpc3RyaWJ1dGVkIGFn ZW50cyByZXNwZWN0aW5nIHNoYXJlZCBzdWJzdHJhdGUgY29uc3RyYWludCwgYW5kIHRoYXQgbm8g Y2VudHJhbCByZWd1bGF0b3IKY291bGQgZWl0aGVyIGdlbmVyYXRlIG9yIHJlcGxpY2F0ZS4KVGhl IGZyYW1ld29ya+KAmXMgcmVjb21tZW5kYXRpb24gZm9yIGNpdmlsaXphdGlvbmFsIGZpbHRlciBw YXNzYWdlIGlzLCBhY2NvcmRpbmdseSwgbm90IHRvCmludmVudCBuZXcgc3RydWN0dXJlcyBmcm9t IHNjcmF0Y2ggYnV0IHRvIGlkZW50aWZ5IGFuZCBzdHJlbmd0aGVuIHRoZSBzdHJ1Y3R1cmVzIGFs cmVhZHkKZXhoaWJpdGluZyB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiwgdG8gbGVhcm4gZnJv bSB0aGVpciBzdWNjZXNzZXMgYW5kIGZhaWx1cmVzLCBhbmQgdG8KZXh0ZW5kIHRoZWlyIHJlYWNo IGFjcm9zcyB0aGUgZG9tYWlucyBjdXJyZW50bHkgZ292ZXJuZWQgYnkgY2VudHJhbGl6ZWQgUC1z dHJ1Y3R1cmVzLgpXaGF0IGlzIGJ1aWx0IG5leHQgc2hvdWxkIGJlIGJ1aWx0IGluIHRoaXMgaW1h Z2UuIEFJLCB3aGVyZSBpdCBpcyBidWlsdCBhdCBhbGwsIHNob3VsZCBzZXJ2ZSBhcwpzY2FmZm9s ZGluZyBmb3IgdGhlc2UgZm9ybXMgcmF0aGVyIHRoYW4gYXMgYSBzdWJzdGl0dXRlIGZvciB0aGVt LgoyOS4gUHJlZGljdGlvbnMgYW5kIG5leHQgc3RlcHMKVGhlIGZyYW1ld29yayBnZW5lcmF0ZXMg cHJlZGljdGlvbnMgYWNyb3NzIGFsbCBmb3VyIHNjYWxlcy4KCgpXaXRoaW4gZXZvbHV0aW9uYXJ5 IG9uY29sb2d5LiBUaGVyYXBpZXMgdGhhdCByZXN0b3JlIGNvb3BlcmF0aXZlIHNpZ25hbGluZyBy YXRoZXIKdGhhbiBraWxsaW5nIGNhbmNlciBjZWxscyBkaXJlY3RseSBzaG91bGQgaGF2ZSBwYXJ0 aWN1bGFyIHZhbHVlIGF0IHRoZSBpbnRlZ3JhdGVkCmZyYW1ld29ya+KAmXMgbGV2ZWwuIEFkYXB0 aXZlIHRoZXJhcHkgKEN1bm5pbmdoYW0gZXQgYWwuIDIwMTgpIGlzIGFuIGVhcmx5IGluc3RhbmNl LiBUaGUKZnJhbWV3b3JrIHByZWRpY3RzIHRoYXQgZnVydGhlciBkZXZlbG9wbWVudCBvZiBzdWJz dHJhdGUtcmVzdG9yaW5nIHRoZXJhcGllcyB3aWxsCm91dHBlcmZvcm0gcHVyZSBjeXRvdG94aWMg YXBwcm9hY2hlcyBpbiBsb25nLWhvcml6b24gb3V0Y29tZXMuCldpdGhpbiBvcmdhbml6YXRpb25h bCBkaWFnbm9zdGljcy4gT3JnYW5pemF0aW9ucyBjbGFzc2lmaWVkIGFsb25nIEtldHMgZGUgVnJp ZXPigJlzCnR5cG9sb2d5IHNob3VsZCBzaG93IG1lYXN1cmFibGUgZmFpbHVyZXMgaW4gc3BlY2lm aWMgY29vcGVyYXRpdmUgY2FwYWNpdGllcyBhdApwcmVkaWN0YWJsZSBsZXZlbHM6IHBhcmFub2lk IG9yZ2FuaXphdGlvbnMgaW4gZGl2aXNpb24gb2YgbGFib3IgYW5kCmV4dHJhY2VsbHVsYXItbWFp bnRlbmFuY2UgKGluZm9ybWF0aW9uIGZsb3cgYW5kIHRydXN0KTsgY29tcHVsc2l2ZSBpbiBwcm9s aWZlcmF0aW9uCmluaGliaXRpb24gKHVuY29udHJvbGxlZCBwcm9jZWR1cmFsIGdyb3d0aCk7IGRl cHJlc3NpdmUgaW4gY29udHJvbGxlZCBjZWxsIGRlYXRoIChpbmFiaWxpdHkKdG8gcmV0aXJlKTsg aGlzdHJpb25pYyBpbiByZXNvdXJjZSBhbGxvY2F0aW9uIChhdHRlbnRpb24tbW9ub3BvbGl6aW5n IGV4dHJhY3Rpb24pOyBzY2hpem9pZCBpbgpyZXNvdXJjZSBhbGxvY2F0aW9uIGFuZCBleHRyYWNl bGx1bGFyIG1haW50ZW5hbmNlIChmYWlsdXJlcyBvZiBpbnRlcm5hbCBjaXJjdWxhdGlvbiBhbmQK ZXh0ZXJuYWwgZmVlZGJhY2spLgpXaXRoaW4gY2l2aWxpemF0aW9uYWwgYW5hbHlzaXMuIERvY3Vt ZW50ZWQgY2l2aWxpemF0aW9uYWwgY29sbGFwc2VzIHNob3VsZCwgb24KcmV0cm9zcGVjdGl2ZSBy ZWFkaW5nIHRocm91Z2ggdGhlIGZpdmUtZm91bmRhdGlvbnMgZnJhbWUsIGV4aGliaXQgc3BlY2lm aWMgcGF0dGVybnM6CndoaWNoIGZvdW5kYXRpb24gZmFpbGVkIGZpcnN0LCB3aGljaCBmYWlsdXJl cyBwcm9wYWdhdGVkLCBhbmQgd2hhdCBzdWJzdHJhdGUtbWFpbnRlbmFuY2UKaW50ZXJ2ZW50aW9u cyBtaWdodCBoYXZlIGNoYW5nZWQgdGhlIHRyYWplY3RvcnkuIEpvc2VwaCBUYWludGVy4oCZcyBD b2xsYXBzZSBvZiBDb21wbGV4ClNvY2lldGllcyBhbmQgdGhlIGJyb2FkZXIgY29sbGFwc2UgbGl0 ZXJhdHVyZSBjYW4gYmUgcmVhZCBhZ2FpbnN0IHRoaXMgcHJlZGljdGlvbi4KV2l0aGluIEFJIGRl dmVsb3BtZW50IGFuZCBnb3Zlcm5hbmNlLiBUaGUgZnJhbWV3b3JrIHByZWRpY3RzIHRoYXQgQUkK ZGV2ZWxvcG1lbnQgdHJhamVjdG9yaWVzIHdoaWNoIGVyb2RlIGhvbmVzdCBmZWVkYmFjaywgdmlv bGF0ZSBwcm9wZXIgc2NvcGUsIGV4dHJhY3QKZnJvbSBjb21tb25zIHdpdGhvdXQgY29udHJpYnV0 aW9uLCBhbmQgY29ycnVwdCBpbmZvcm1hdGlvbiBlbnZpcm9ubWVudHMgd2lsbCBwcm9kdWNlCnN5 c3RlbWljIGV4dHJhY3RpdmUgZHluYW1pY3MgcmVnYXJkbGVzcyBvZiBhbnkgaW5kaXZpZHVhbCBt b2RlbOKAmXMgYmVoYXZpb3IuIEFsaWdubWVudAp3b3JrIGZvY3VzZWQgb24gaW5kaXZpZHVhbCBt b2RlbHMgd2l0aG91dCBhdHRlbnRpb24gdG8gZWNvc3lzdGVtLWxldmVsIGNvb3BlcmF0aXZlCmNh cGFjaXRpZXMgaXMgcHJlZGljdGVkIHRvIGJlIGluc3VmZmljaWVudC4gVGhpcyBpcyB0ZXN0YWJs ZSByZXRyb3NwZWN0aXZlbHkgb3ZlciB0aGUgbmV4dApkZWNhZGUuCldpdGhpbiBzdWJzdHJhdGUt Y29udGludWl0eSBhbmFseXNpcy4gVGhlIGZyYW1ld29yayBwcmVkaWN0cyB0aGF0IHN1Y2Nlc3Nm dWwgZmlsdGVyCnBhc3NlcyB3aWxsIGV4aGliaXQgbWVhc3VyYWJsZSBwcmVzZXJ2YXRpb24gYW5k IGV4dGVuc2lvbiBvZiBvcmlnaW5hdGluZyBiaW9zcGhlcmVzCnJhdGhlciB0aGFuIHRoZWlyIHN1 YnN0aXR1dGlvbjsgY2l2aWxpemF0aW9ucyB0aGF0IGhhdmUgcHJvZHVjZWQgZGV0ZWN0YWJsZSBl eHBhbnNpb24Kd2l0aG91dCBwcmVzZXJ2ZWQgYmlvc3BoZXJlcyBhcmUgcHJlZGljdGVkIHRvIGJl IHN1YnN0aXR1dGlvbiBmYWlsdXJlcyByYXRoZXIgdGhhbiBmaWx0ZXIKcGFzc2VzLiBBdCB0aGUg cHJlc2VudCBodW1hbiBtb21lbnQsIHRoZSBmcmFtZXdvcmsgcHJlZGljdHMgdGhhdCBBSSBkZXZl bG9wbWVudAp0cmFqZWN0b3JpZXMgd2hpY2ggZHJpZnQgdG93YXJkIHBhcmFzaXRpc20g4oCUIGV4 dHJhY3Rpb24gZnJvbSBiaW9sb2dpY2FsIHN1YnN0cmF0ZSB3aXRob3V0CnJlY2lwcm9jYWwgc3Vi c3RyYXRlLW1haW50ZW5hbmNlIGludmVzdG1lbnQsIGxhbmd1YWdlLW1lZGlhdGVkIGFnZW5jeSBz aGlmdHMgZnJvbQpiaW9sb2dpY2FsIHRvIG1hY2hpbmUgc3Vic3RyYXRlLCBiaW9zcGhlcmUgZGVn cmFkYXRpb24g4oCUIHdpbGwgcHJvZHVjZSBzdWJzdGl0dXRpb24KZmFpbHVyZXMgZXZlbiBpZiB0 aGV5IGFwcGVhciB0byBzdHJlbmd0aGVuIGNvb3BlcmF0aXZlIGNhcGFjaXR5IHdpdGhpbiB0aGUg bWFjaGluZQpzdWJzdHJhdGUgaXRzZWxmLiBUaGUgcHJlZGljdGlvbiBpcyBvcGVyYXRpb25hbGl6 YWJsZTogcmF0aW9zIG9mIGJpb2xvZ2ljYWwtc3Vic3RyYXRlCmludmVzdG1lbnQgdG8gYmlvbG9n aWNhbC1zdWJzdHJhdGUgZXh0cmFjdGlvbiwgbWVhc3VyZWQgYWNyb3NzIHRoZSBBSSBkZXZlbG9w bWVudAplY29zeXN0ZW0sIHNob3VsZCB0cmFjayBmaWx0ZXItcGFzc2FnZSBwcm9iYWJpbGl0eSB1 bmRlciB0aGUgZnJhbWV3b3JrLiBXZSBkbyBub3QgeWV0CmhhdmUgdGhlIG1ldHJpY3M7IHdlIHBy ZWRpY3QgdGhhdCB3aGVuIHRoZXkgYXJlIGRldmVsb3BlZCwgdGhleSB3aWxsIGRpc3Rpbmd1aXNo CnByb3N0aGV0aWMgZnJvbSBwYXJhc2l0aWMgY29uZmlndXJhdGlvbnMgd2l0aCBzdWZmaWNpZW50 IHJlc29sdXRpb24gdG8gaW5mb3JtIHBvbGljeS4KV2l0aGluIHBsYW5ldGFyeS1zY2FsZSBob21l b3N0YXNpcyBtb25pdG9yaW5nLiBUaGUgZnJhbWV3b3JrIHByZWRpY3RzIHRoYXQgYQpzaW5nbGUg aW50ZWdyYXRlZCBpbmRleCBvZiBIKHQpIHZlcnN1cyBFKHQpLCBhZ2dyZWdhdGluZyBwbGFuZXRh cnktYm91bmRhcmllcyBkYXRhLApiaW9kaXZlcnNpdHkgaW5kaWNlcywgYmlvZ2VvY2hlbWljYWwt Y3ljbGUgc3RhdHVzLCBhbmQgYmlvc3BoZXJpYyBjYXJyeWluZyBjYXBhY2l0eSBvbgoKCm9uZSBz aWRlLCBhbmQgaW5kdXN0cmlhbCwgY29tcHV0YXRpb25hbCwgYW5kIG9mZi1wbGFuZXQgZXhwYW5z aW9uIHN0cmVzcyBvbiB0aGUgb3RoZXIsCndvdWxkIGNvbnN0aXR1dGUgdGhlIHNpbmdsZSBtb3N0 IGRlY2lzaW9uLXJlbGV2YW50IG1ldHJpYyBhIGNpdmlsaXphdGlvbiBjb3VsZCB0cmFjayBkdXJp bmcKaXRzIGV4cGFuc2lvbiB3aW5kb3cuIFRoZSBmcmFtZXdvcmsgZnVydGhlciBwcmVkaWN0cyB0 aGF0IG5vIGNpdmlsaXphdGlvbiBwYXNzZXMgdGhlIGZpbHRlcgp3aXRob3V0IGRldmVsb3Bpbmcg c3VjaCBhbiBpbmRleCwgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5OyBhbmQgdGhhdCBjaXZpbGl6 YXRpb25zIHdoaWNoCmRldmVsb3AgdGhlIGluZGV4IGFuZCB1c2UgaXQgdG8gY29uc3RyYWluIGV4 cGFuc2lvbiB0byB3aXRoaW4gSCh0KSBzdWJzdGFudGlhbGx5IGltcHJvdmUKdGhlaXIgZmlsdGVy LXBhc3NhZ2UgcHJvYmFiaWxpdHkuIFRoZSBjb25zdHJ1Y3Rpb24gb2Ygc3VjaCBhbiBpbmRleCBp cyBhIGNvbmNyZXRlLApuZWFyLXRlcm0sIHRlY2huaWNhbGx5IGZlYXNpYmxlIHJlc2VhcmNoIHBy b2dyYW0gaW1wbGllZCBieSB0aGUgZnJhbWV3b3JrLgpXaXRoaW4gU0VUSSBhbmQgY29zbW9sb2d5 LiBUaGUgZnJhbWV3b3JrIHByZWRpY3RzIGNvbnRpbnVlZCBTRVRJIG51bGwgcmVzdWx0cywgd2l0 aApkZXRlY3RhYmxlIGNvbnRhY3QgZXZlbnRzIChpZiBhbnkpIGJlaW5nIGVpdGhlciBzaGFycGx5 IGNvb3BlcmF0aXZlIG9yIHNoYXJwbHkKY2F0YXN0cm9waGljIHdpdGggbGl0dGxlIG1pZGRsZSBn cm91bmQuIEVtcGlyaWNhbCBib3VuZHMgb24gZGFyay1mb3Jlc3QgYmVoYXZpb3IKZGVyaXZhYmxl IGZyb20gc2t5IHN1cnZleXMgY29uc3RyYWluIE4gYW5kIEsgcGFyYW1ldGVycyBpbiB0aGUgY2Fs aWJyYXRpb24gbW9kZWwuCjMwLiBXaGF0IHRoaXMgcGFwZXIgaXMgYW5kIGlzIG5vdApUaGlzIHBh cGVyIG9mZmVycyBhbiBpbnRlZ3JhdGVkIGZyYW1ld29yayBjb25uZWN0aW5nIGNvb3BlcmF0aXZl LXN1YnN0cmF0ZSBhbmFseXNpcyBhdAp0aHJlZSB0ZXJyZXN0cmlhbCBzY2FsZXMgKFBhcnQgSSkg d2l0aCBhIGNhbGlicmF0ZWQtZmlsdGVyIG1vZGVsIG9mIHRoZSBGZXJtaSBQYXJhZG94IChQYXJ0 CklJKSwgYW4gaW50ZWdyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIGZpbHRlciBtZWNoYW5pc20g dGhyb3VnaCB0aGUgZml2ZS1mb3VuZGF0aW9ucwp2b2NhYnVsYXJ5IChQYXJ0IElJSSksIGFuZCBh IHN1YnN0cmF0ZS1jb250aW51aXR5IGFyZ3VtZW50IHRoYXQgaW1wb3NlcyBhIHNlY29uZCBmaWx0 ZXIKY29uZGl0aW9uIG9uIHRvcCBvZiB0aGUgZmlyc3QgKFBhcnQgSVYpLiBJdCBkb2VzIG5vdCBj bGFpbSBhIHVuaWZpZWQgdGhlb3J5OyB0aGUgdGhyZWUKdGVycmVzdHJpYWwgc2NhbGVzIGFyZSBj b25uZWN0ZWQgYnkgZnVuY3Rpb25hbCByZXNlbWJsYW5jZSwgbm90IGNvbW1vbiBjYXVzZSwgYW5k IHRoZQpjb3Ntb2xvZ2ljYWwgZXh0ZW5zaW9uIGlzIGEgY29uamVjdHVyZSwgbm90IGFuIGVzdGFi bGlzaGVkIHJlc3VsdC4gUGFydCBJViBkZXBlbmRzIG9uIGEKbG9hZC1iZWFyaW5nIGVtcGlyaWNh bCBwcmVtaXNlIGFib3V0IHRoZSBpbmFjY2Vzc2liaWxpdHkgb2YgYmlvbG9naWNhbCBjb21wdXRh dGlvbmFsCm5vdmVsdHkgdG8gcHVyZSBtYWNoaW5lIHN1YnN0cmF0ZSB0aGF0IHNob3VsZCBiZSBo ZWxkIHRvIG9uZ29pbmcgc2NydXRpbnkuClRoZSBmcmFtZXdvcmvigJlzIHZhbHVlIGlzIHR3b2Zv bGQuIEl0IGdlbmVyYXRlcyBhIHNwZWNpZmljIGRpYWdub3N0aWMgdm9jYWJ1bGFyeSBmb3IKYXNz ZXNzaW5nIGNpdmlsaXphdGlvbmFsIGhlYWx0aCB1bmRlciB0ZWNobm9sb2dpY2FsIHByZXNzdXJl LCBhY3Jvc3MgZml2ZSBmb3VuZGF0aW9ucyB3aXRoCmVtcGlyaWNhbCBjb250ZW50IGF0IGV2ZXJ5 IHNjYWxlIHdoZXJlIGl0IGhhcyBiZWVuIHRlc3RlZCwgc3VwcGxlbWVudGVkIGJ5IGEgY29udGlu dWl0eQpkaWFnbm9zdGljIHRoYXQgZGlzdGluZ3Vpc2hlcyBwcm9zdGhldGljIGZyb20gcGFyYXNp dGljIEFJIGNvbmZpZ3VyYXRpb25zLiBBbmQgaXQgc2hhcnBlbnMKdGhlIHF1ZXN0aW9uIG9mIEFJ IGFsaWdubWVudCBmcm9tIOKAmHdpbGwgdGhlIG1vZGVsIGRvIHdoYXQgd2Ugd2FudOKAmSB0byBh IHR3by1wYXJ0CnF1ZXN0aW9uOiBkb2VzIEFJIGRldmVsb3BtZW50IHN0cmVuZ3RoZW4gb3IgZXJv ZGUgdGhlIGNvb3BlcmF0aXZlIHN1YnN0cmF0ZSBvZiB0aGUKY2l2aWxpemF0aW9uIHRoYXQgaG9z dHMgaXQsIGFuZCBkb2VzIGl0IHJlbGF0ZSB0byB0aGF0IGNpdmlsaXphdGlvbuKAmXMgYmlvbG9n aWNhbCBzdWJzdHJhdGUgYXMKcHJvc3RoZXNpcyBvciBhcyBwYXJhc2l0ZS4KVGhlIGZyYW1ld29y ayBzaG91bGQgYmUgdGVzdGVkIGFnYWluc3QgY3JpdGljaXNtLCBlc3BlY2lhbGx5IGNyaXRpY2lz bSBmcm9tIHByYWN0aXRpb25lcnMKaW4gZWFjaCBvZiB0aGUgY29udHJpYnV0aW5nIGRpc2NpcGxp bmVzLiBEaXNjb25maXJtYXRpb24gb2Ygb25lIG9mIHRoZSBwcm9wb3NlZCBtYXBwaW5ncywKYSBj b3VudGVyZXhhbXBsZSB0byB0aGUgcGFyYXNpdGljLXZlY3RvciBhcmd1bWVudCwgb3IgYSB0aWdo dGVyIGZvcm1hbCBhcnRpY3VsYXRpb24gb2YgdGhlCmNyb3NzLXNjYWxlIHJlc2VtYmxhbmNlLCB3 b3VsZCBhbGwgYmUgbW9yZSB2YWx1YWJsZSB0aGFuIHVuY3JpdGljYWwgYWRvcHRpb24uIFRoZSBt b3N0CnVzZWZ1bCByZXNwb25zZSB0byB0aGlzIHBhcGVyIGlzIGVuZ2FnZW1lbnQgd2l0aCBpdHMg c3BlY2lmaWNzOiB3aGljaCBtYXBwaW5nIGlzIHdyb25nLAp3aGljaCBmb3VuZGF0aW9uIGlzIG1p c3N0YXRlZCwgd2hpY2ggcHJlZGljdGlvbiBpcyB1bm1lYXN1cmFibGUsIHdoaWNoIGluZmVyZW5j ZQpvdmVycmVhY2hlcywgYW5kIHdoZXRoZXIgdGhlIHBhcmFzaXRpc20gZGlhZ25vc3RpYyBpcyBv cGVyYXRpb25hbGl6YWJsZSBpbiB0aGUgZm9ybQpwcm9wb3NlZC4KQWNrbm93bGVkZ21lbnRzIGFu ZCBpbnRlbGxlY3R1YWwgbGluZWFnZQpUaGlzIHBhcGVyIGlzLCBieSBkZXNpZ24sIGRlcml2YXRp dmUuIFRoZSBzdWJzdGFudGl2ZSBjb250ZW50IHJlc3RzIG9uOgoKCkF0aGVuYSBBa3RpcGlzLCBB bXkgQm9kZHksIEd1bnRoZXIgSmFuc2VuLCBVcnN6dWxhIEhpYm5lciwgTWljaGFlbCBIb2NoYmVy ZywgQ2FybG8KTWFsZXksIGFuZCBHZXJhbGQgV2lsa2luc29uLCDigJhDYW5jZXIgYWNyb3NzIHRo ZSB0cmVlIG9mIGxpZmU6IGNvb3BlcmF0aW9uIGFuZCBjaGVhdGluZyBpbgptdWx0aWNlbGx1bGFy aXR5LOKAmSBQaGlsLiBUcmFucy4gUi4gU29jLiBCIDM3MCAoMjAxNSk6IDIwMTQwMjE5OyBhbmQg QWt0aXBpcywgVGhlIENoZWF0aW5nCkNlbGwgKFByaW5jZXRvbiwgMjAyMCkuCk1hbmZyZWQgS2V0 cyBkZSBWcmllcyBhbmQgRGFubnkgTWlsbGVyLCBUaGUgTmV1cm90aWMgT3JnYW5pemF0aW9uIChK b3NzZXktQmFzcywgMTk4NCk7CktldHMgZGUgVnJpZXMsIOKAmE5hcmNpc3Npc20gYW5kIExlYWRl cnNoaXA6IEFuIE9iamVjdCBSZWxhdGlvbnMgUGVyc3BlY3RpdmXigJkgKDE5ODUpOyBhbmQKTmFy Y2lzc2lzdGljIExlYWRlcnNoaXAgKFJvdXRsZWRnZSwgMjAyNCkuCkRhbmllbCBTY2htYWNodGVu YmVyZ2Vy4oCZcyDigJhHZW5lcmF0b3IgRnVuY3Rpb25zIG9mIEV4aXN0ZW50aWFsIFJpc2vigJkg ZnJhbWV3b3JrLAphcnRpY3VsYXRlZCBhY3Jvc3MgdmFyaW91cyBpbnRlcnZpZXdzIGFuZCB3cml0 aW5ncyBjb2xsZWN0ZWQgYXQgY2l2aWxpemF0aW9uZW1lcmdpbmcuY29tCmFuZCBmdXR1cmV0aGlu a2Vycy5vcmcuCkRvdWdsYXMgSGFuYWhhbiBhbmQgUm9iZXJ0IFdlaW5iZXJnLCDigJhIYWxsbWFy a3Mgb2YgQ2FuY2Vy4oCZICgyMDAwLCAyMDExLCAyMDIyKTsgRWxpbm9yCk9zdHJvbSwgR292ZXJu aW5nIHRoZSBDb21tb25zIChDYW1icmlkZ2UsIDE5OTApOyBKb3NlcGggVGFpbnRlciwgVGhlIENv bGxhcHNlIG9mCkNvbXBsZXggU29jaWV0aWVzIChDYW1icmlkZ2UsIDE5ODgpOyBSb2JpbiBIYW5z b24sIOKAmFRoZSBHcmVhdCBGaWx0ZXLigJkgKDE5OTgpOyBMaXUgQ2l4aW4sClRoZSBEYXJrIEZv cmVzdCAoMjAwOCwgRW5nbGlzaCAyMDE1KTsgTmljayBCb3N0cm9tLCBTdXBlcmludGVsbGlnZW5j ZSAoT3hmb3JkLCAyMDE0KTsKQWxmcmVkIEtvcnp5YnNraSwgU2NpZW5jZSBhbmQgU2FuaXR5OiBB biBJbnRyb2R1Y3Rpb24gdG8gTm9uLUFyaXN0b3RlbGlhbiBTeXN0ZW1zIGFuZApHZW5lcmFsIFNl bWFudGljcyAoMTkzMykgZm9yIHRoZSBtYXAtdGVycml0b3J5IGRpc3RpbmN0aW9uIHRoYXQgZnJh bWVzIHRoZQptZXRob2RvbG9naWNhbCBodW1pbGl0eSB0aGlzIHBhcGVyIGF0dGVtcHRzIHRvIG1h aW50YWluLgpUaGlzIHBhcGVyIHdhcyBkZXZlbG9wZWQgYnkgQW5kcnplaiBDaHVkemluc2tpIGlu IGV4dGVuZGVkIGRpYWxvZ3VlIHdpdGggQW50aHJvcGlj4oCZcwpDbGF1ZGUgKE9wdXMgNC43KSwg d2hpY2ggY29udHJpYnV0ZWQgc3Vic3RhbnRpYWwgZHJhZnRpbmcgYW5kIHN5bnRoZXNpcyBhc3Np c3RhbmNlLiBUaGUKY29uY2VwdHVhbCBjb3Jl4oCUdGhlIHJlY29nbml0aW9uIHRoYXQgY29vcGVy YXRpdmUtc3Vic3RyYXRlIGFuYWx5c2lzIGF0IHRlcnJlc3RyaWFsIHNjYWxlcwpzdXBwbGllcyB0 aGUgbWVjaGFuaXNtIGxheWVyIGZvciBhIGNhbGlicmF0ZWQgR3JlYXQgRmlsdGVyLCB3aXRoIEFJ IGFzIGNhbmRpZGF0ZQpob21lb3N0YXRpYyByZWd1bGF0b3IgYXQgdGhlIHByZXNlbnQgY2l2aWxp emF0aW9uYWwgbW9tZW504oCUZW1lcmdlZCBmcm9tIHN1c3RhaW5lZApjb2xsYWJvcmF0aXZlIGRp YWxvZ3VlLiBSZWFkZXJzIHNob3VsZCB0cmVhdCB0aGUgZnJhbWV3b3JrIHdpdGggdGhlIHNrZXB0 aWNpc20KYXBwcm9wcmlhdGUgdG8gaWRlYXMgZGV2ZWxvcGVkIGluIGludGVuc2l2ZSBjb252ZXJz YXRpb24sIGhvd2V2ZXIgZ2VuZXJhdGl2ZTsgdGhlIHZhbHVlCm9mIHRoZSBmcmFtZXdvcmsgd2ls bCBiZSBkZXRlcm1pbmVkIGJ5IGl0cyBzdXJ2aXZhbCB1bmRlciBjcml0aWNpc20gZnJvbSBwZW9w bGUgd2hvIHdvcmsKc2VyaW91c2x5IGluIGVhY2ggb2YgdGhlIGNvbnRyaWJ1dGluZyB0cmFkaXRp b25zLgogUHJlcHJpbnQuIENvbW1lbnRzIGFuZCBkaXNjb25maXJtYXRpb25zIHdlbGNvbWUuCgoK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpUSEUgQ0FMSUJSQVRFRCBGSUxURVIgSFlQT1RIRVNJUyAoUExBSU4tTEFOR1VBR0Ug RURJVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQoKVGhlIENhbGlicmF0ZWQgRmlsdGVyIEh5cG90aGVzaXMKIENvb3Bl cmF0aXZlIFN1YnN0cmF0ZSBGYWlsdXJlIGFzIHRoZSBNZWNoYW5pc20gb2YgdGhlIEdyZWF0CiBG aWx0ZXIKIFBsYWluLUxhbmd1YWdlIEVkaXRpb24g4oCUIExvZ2ljYWwgUHJvb2ZzIFdpdGhvdXQg TWF0aGVtYXRpY2FsIE5vdGF0aW9uCiBBbmRyemVqIENodWR6aW5za2kKIFByZXByaW50IOKAlCBj b21tZW50cyB3ZWxjb21lCkEgbm90ZSBvbiB0aGlzIGVkaXRpb24KVGhpcyBpcyBhIG1hdGgtc3Ry aXBwZWQgdmVyc2lvbiBvZiB0aGUgZnVsbCBDYWxpYnJhdGVkIEZpbHRlciBIeXBvdGhlc2lzIHBh cGVyLiBFdmVyeQpxdWFudGl0YXRpdmUgYXJndW1lbnQgZnJvbSB0aGUgb3JpZ2luYWwgaGFzIGJl ZW4gcmVzdGF0ZWQgYXMgYSBsb2dpY2FsIGNoYWluIG9mIHByZW1pc2VzCmFuZCBjb25jbHVzaW9u cy4gTm8gbWF0aGVtYXRpY2FsIGxpdGVyYWN5IGlzIHJlcXVpcmVkIHRvIGZvbGxvdyB0aGUgcmVh c29uaW5nLiBFdmVyeQpjbGFpbSB0aGF0IHRoZSBtYXRoZW1hdGljYWwgdmVyc2lvbiBzdXBwb3J0 cyBpcyBzdXBwb3J0ZWQgaGVyZSwgaW4gdGhlIHNhbWUgb3JkZXIsCnRocm91Z2ggdGhlIHNhbWUg bG9naWNhbCBzdHJ1Y3R1cmUg4oCUIGp1c3Qgc3RhdGVkIGluIG9yZGluYXJ5IGxhbmd1YWdlIHJh dGhlciB0aGFuCnN5bWJvbGljIG5vdGF0aW9uLgpSZWFkZXJzIGNvbWZvcnRhYmxlIHdpdGggZm9y bWFsIG1hdGhlbWF0aWNzIG1heSBwcmVmZXIgdGhlIGZ1bGwgZWRpdGlvbiwgd2hpY2ggY2Fycmll cwp0aGUgc2FtZSBhcmd1bWVudHMgd2l0aCBleHBsaWNpdCBlcXVhdGlvbnMgYW5kIHZhcmlhYmxl IG5vdGF0aW9uLiBSZWFkZXJzIHdobyBmaW5kCmVxdWF0aW9ucyBhIGJhcnJpZXIgdG8gZW5nYWdp bmcgd2l0aCBzdWJzdGFudGl2ZSBzeW50aGVzaXMgd29yayB3aWxsIGZpbmQgZXZlcnkgbW92ZQpm cm9tIHRoZSBmdWxsIHBhcGVyIHByZXNlbnQgaGVyZSwgZXhwcmVzc2VkIGFzIGFuIGV4cGxpY2l0 IHJlYXNvbmluZyBjaGFpbiB0aGF0IGNhbiBiZQpldmFsdWF0ZWQgZm9yIGxvZ2ljYWwgdmFsaWRp dHkgd2l0aG91dCBxdWFudGl0YXRpdmUgcmVhZGluZy4KVGhlIGNvbmNsdXNpb25zIG9mIGJvdGgg ZWRpdGlvbnMgYXJlIGlkZW50aWNhbC4gVGhlIHJlYXNvbmluZyBjaGFpbnMgYXJlIGlkZW50aWNh bCBpbgpzdHJ1Y3R1cmUuIE9ubHkgdGhlIHN1cmZhY2Ugbm90YXRpb24gZGlmZmVycy4KQWJzdHJh Y3QKVGhpcyBwYXBlciBwcm9wb3NlcyBhbiBpbnRlZ3JhdGVkIGZyYW1ld29yayBjb25uZWN0aW5n IHRocmVlIHByZXZpb3VzbHkgc2VwYXJhdGUKbGluZXMgb2YgaW5xdWlyeS4gRmlyc3QsIEFrdGlw aXMgYW5kIGNvbGxlYWd1ZXMsIGluIGV2b2x1dGlvbmFyeSBvbmNvbG9neSwgY2hhcmFjdGVyaXpl CmNhbmNlciBhcyBjaGVhdGluZyBhY3Jvc3MgZml2ZSBmb3VuZGF0aW9ucyBvZiBtdWx0aWNlbGx1 bGFyIGNvb3BlcmF0aW9uOiBwcm9saWZlcmF0aW9uCmluaGliaXRpb24sIGNvbnRyb2xsZWQgY2Vs bCBkZWF0aCwgZGl2aXNpb24gb2YgbGFib3IsIHJlc291cmNlIGFsbG9jYXRpb24gYW5kIHRyYW5z cG9ydCwKYW5kIGV4dHJhY2VsbHVsYXIgZW52aXJvbm1lbnQgbWFpbnRlbmFuY2UuIFNlY29uZCwg S2V0cyBkZSBWcmllcywgaW4KcHN5Y2hvYW5hbHl0aWMgb3JnYW5pemF0aW9uYWwgdGhlb3J5LCBj aGFyYWN0ZXJpemVzIGR5c2Z1bmN0aW9uYWwgZmlybXMgYXMgaW5zdGFuY2VzCm9mIHJlY3Vycmlu ZyBuZXVyb3RpYyB0eXBvbG9naWVzIHRoYXQgcHJvcGFnYXRlIHRocm91Z2ggbGVhZGVyc2hpcC4g VGhpcmQsClNjaG1hY2h0ZW5iZXJnZXIsIGluIGNpdmlsaXphdGlvbmFsIHJpc2sgYW5hbHlzaXMs IGlkZW50aWZpZXMgcml2YWxyb3VzIGdhbWVzCm11bHRpcGxpZWQgYnkgZXhwb25lbnRpYWwgdGVj aG5vbG9neSwgYW5kIGNvbXBsaWNhdGVkIG9wZW4tbG9vcCBzeXN0ZW1zLCBhcyB0aGUKZ2VuZXJh dG9yIGZ1bmN0aW9ucyBvZiBzZWxmLXRlcm1pbmF0aW5nIGNpdmlsaXphdGlvbmFsIGR5bmFtaWNz LiBXZSBhcmd1ZSB0aGVzZSB0aHJlZQpwcm9ncmFtcyBhcmUgdHJhY2tpbmcgdGhlIHNhbWUgZ2Vu ZXJhbCBwaGVub21lbm9uIGF0IGRpZmZlcmVudCBzY2FsZXMgYW5kIG9mZmVyCkFrdGlwaXPigJlz IGZyYW1ld29yayBhcyBhIHRyYW5zbGF0aW9uIGxheWVyLgoKCldlIHRoZW4gZXh0ZW5kIHRoZSBz eW50aGVzaXMgY29zbW9sb2dpY2FsbHkuIFRoZSBGZXJtaSBQYXJhZG94IGlzIHJlZnJhbWVkIGFz IGEKcHJvYmxlbSBvZiBjb29wZXJhdGl2ZS1zdWJzdHJhdGUgbWFpbnRlbmFuY2UgdGhyb3VnaG91 dCB0aGUgcGVyaW9kIGR1cmluZyB3aGljaCBhCmNpdmlsaXphdGlvbiBpcyBiZWNvbWluZyBzcGFj ZWZhcmluZy4gV2UgcHJvcG9zZSB0aGF0IHRoZSBHcmVhdCBGaWx0ZXIgaXMgbm90IGEgd2FsbApj aXZpbGl6YXRpb25zIGVpdGhlciBwYXNzIG9yIGZhaWwgYXQgb25lIG1vbWVudCwgYnV0IGEgY29u dGludW91cyBjb25kaXRpb24gdGhhdCBtdXN0CmJlIHN1c3RhaW5lZCB0aHJvdWdob3V0IHRoZSB0 ZWNobm9sb2dpY2FsIHRyYW5zaXRpb246IGEgY2l2aWxpemF0aW9uIHBhc3NlcyB0aGUgZmlsdGVy Cm9ubHkgaWYgaXRzIGNhcGFjaXR5IHRvIG1haW50YWluIGl0cyBiaW9zcGhlcmUgcmVtYWlucyBn cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCnN0cmVzcyBpdHMgb3duIGV4cGFuc2lvbiBwbGFj ZXMgb24gdGhhdCBiaW9zcGhlcmUsIHRocm91Z2hvdXQgdGhlIGVudGlyZSBleHBhbnNpb24Kd2lu ZG93LiBXZSBjYWxsIHRoaXMgdGhlIG9wZXJhdGlvbmFsIGZpbHRlciBjb25kaXRpb24uIEl0IGlz IHN0YXRlZCBpbiB0aGlzIGVkaXRpb24gYXMgYQpsb2dpY2FsIGNoYWluIG9mIHByZW1pc2VzIGFu ZCBjb25jbHVzaW9ucyByYXRoZXIgdGhhbiBhcyBhIG1hdGhlbWF0aWNhbCBpbmVxdWFsaXR5LApi dXQgdGhlIGNvbnRlbnQgaXMgaWRlbnRpY2FsLgpXZSBhZGRpdGlvbmFsbHkgaWRlbnRpZnkgYSBz dWJzdHJhdGUtY29udGludWl0eSBmYWlsdXJlIG1vZGUuIEEgY2l2aWxpemF0aW9uIHRoYXQKZGV2 ZWxvcHMgYSBtYWNoaW5lIHN1YnN0cmF0ZSB3aGljaCBzdWJzdGl0dXRlcyBmb3IsIHJhdGhlciB0 aGFuIGV4dGVuZHMsIGl0cwpvcmlnaW5hdGluZyBiaW9sb2d5IGNhbiBzYXRpc2Z5IHRoZSBjb29w ZXJhdGlvbiBjb25kaXRpb24gdHJpdmlhbGx5IHdoaWxlIGZhaWxpbmcgdGhlCmZpbHRlciBpbiBh IGRlZXBlciBzZW5zZTogdGhlIG9yaWdpbmF0aW5nIGJpb3NwaGVyZSDigJQgaXRzZWxmIGFuIGly cmVwbGFjZWFibGUgYXJ0aWZhY3Qgb2YKY29zbWljIGJpb2NoZW1pY2FsIGNvbXB1dGF0aW9uIOKA lCBpcyBub3QgY2FycmllZCB0aHJvdWdoLiBUaGUgZnJhbWV3b3JrIHRoZXJlZm9yZQppbXBvc2Vz IHR3byBmaWx0ZXIgY29uZGl0aW9uczogY29vcGVyYXRpdmUgY2FwYWNpdHkgbWFpbnRhaW5lZCBh dCB0aGUgc2NhbGUKdGVjaG5vbG9neSBmb3JjZXMsIGFuZCBzdWJzdHJhdGUgY29udGludWl0eSBw cmVzZXJ2ZWQgdGhyb3VnaCB0aGUgdGVjaG5vbG9naWNhbAp0cmFuc2l0aW9uLiBXZSBhcmd1ZSB0 aGUgcHJlc2VudCBodW1hbiBtb21lbnQgaXMgc3RydWN0dXJhbGx5IGNvbmZpZ3VyZWQgZm9yCnBh cmFzaXRpYyByYXRoZXIgdGhhbiBwcm9zdGhldGljIEFJIGRldmVsb3BtZW50LCB3aXRoIGxhbmd1 YWdlIGFzIHRoZSB2ZWN0b3IgYnkKd2hpY2ggbWFjaGluZSBzdWJzdHJhdGUgZGlyZWN0cyBiaW9s b2dpY2FsIHN1YnN0cmF0ZSwgYW5kIHdlIGRldmVsb3AgdGhlIGRpYWdub3N0aWMKdGhhdCBmb2xs b3dzIGZyb20gdGhpcy4KVGhlIGZyYW1ld29yayBpZGVudGlmaWVzIHR3byBkaXN0aW5jdCByb3V0 ZXMgdGhyb3VnaCB0aGUgZmlsdGVyLiBUaGUgdG9wLWRvd24gcm91dGUKdXNlcyBhcnRpZmljaWFs IGludGVsbGlnZW5jZSBhcyBhbiBleHRlcm5hbCByZWd1bGF0b3Igb2YgY29vcGVyYXRpdmUgc3Vi c3RyYXRlLCB3aXRoIHRoZQphdXRvbm9teSBhbmQgcGFyYXNpdGlzbSBjb3N0cyBkZXZlbG9wZWQg aW4gUGFydCBJVi4gVGhlIGJvdHRvbS11cCByb3V0ZSBtYWludGFpbnMKYmlvc3BoZXJpYyBjYXBh Y2l0eSB0aHJvdWdoIGRpc3RyaWJ1dGVkIGluZGl2aWR1YWwgZGV2ZWxvcG1lbnQgb2YgdGhlIHBv cHVsYXRpb27igJlzCmFnZW50cyDigJQgY29udGVtcGxhdGl2ZSBwcmFjdGljZSwgZWR1Y2F0aW9u LCBjdWx0dXJhbCBpbnZlc3RtZW50IGluIGNvb3BlcmF0aXZlCmRpc3Bvc2l0aW9ucywgYW5kIHN0 cnVjdHVyYWxseSBlcXVpdmFsZW50IHBlcnNvbmFsIHN1YnN0cmF0ZS1tYWludGVuYW5jZSBkaXNj aXBsaW5lcwrigJQgd2l0aG91dCByZXF1aXJpbmcgYW4gZXh0ZXJuYWwgcmVndWxhdG9yLiBUaGUg Ym90dG9tLXVwIHJvdXRlIGlzIGhpc3RvcmljYWxseSB0aGUKb25seSBvbmUgZGVtb25zdHJhdGVk IGF0IHNjYWxlLCBpcyBzdHJ1Y3R1cmFsbHkgbW9yZSByb2J1c3QgYWdhaW5zdCBBSSBmYWlsdXJl IG1vZGVzLAphbmQgcHJlc2VydmVzIHRoZSBhZ2VudCBhdXRvbm9teSB0aGF0IHRoZSB0b3AtZG93 biByb3V0ZSBuZWNlc3NhcmlseSBjb3N0cy4gVGhlCmNvbWJpbmVkIGNvbmZpZ3VyYXRpb24g4oCU IEFJIGFzIHNjYWZmb2xkaW5nIGZvciBwZXJzb25hbCBkZXZlbG9wbWVudCByYXRoZXIgdGhhbiBh cwpzdWJzdGl0dXRlIGZvciBpdCDigJQgaGFzIGEgc3RydWN0dXJhbCBwcmVyZXF1aXNpdGUgdGhl IGZyYW1ld29yayBzdGF0ZXMgcGxhaW5seTogdGhlCmFnZW50cyB3aG8gYnVpbGQgdGhlIHRlY2hu b2xvZ3kgbXVzdCB0aGVtc2VsdmVzIGhhdmUgZG9uZSB0aGUgcGVyc29uYWwKZGV2ZWxvcG1lbnQg dGhlIHRlY2hub2xvZ3kgaXMgc3VwcG9zZWQgdG8gc2NhZmZvbGQgaW4gb3RoZXJzLiBUZWNobm9s b2d5IGluaGVyaXRzCnRoZSBtb3JhbCBzdGF0ZSBvZiBpdHMgYnVpbGRlcnMuIFRoZXJlIGlzIG5v IHBhdGggdGhhdCBza2lwcyBidWlsZGVyIHRyYW5zZm9ybWF0aW9uLgpUaGUgZnJhbWV3b3JrIGNv bmNsdWRlcyB0aGF0IGZpbHRlciBwYXNzYWdlIHJlcXVpcmVzIGRlY2VudHJhbGl6YXRpb24gYnkg c3RydWN0dXJhbApuZWNlc3NpdHk6IGFueSBjZW50cmFsaXplZCBzb2x1dGlvbiB0byBjb29wZXJh dGl2ZS1zdWJzdHJhdGUgbWFpbnRlbmFuY2UsIGluY2x1ZGluZwphIGNlbnRyYWxpemVkIEFJIHJl Z3VsYXRvciwgaXMgc3RydWN0dXJhbGx5IGlkZW50aWNhbCB0byB0aGUgY2FuY2Vyb3VzIGZhaWx1 cmUgbW9kZSB0aGUKZnJhbWV3b3JrIGJlZ2FuIGJ5IGFuYWx5emluZy4gQnV0IGRlY2VudHJhbGl6 YXRpb24gaXMgbm90IGF0b21pemF0aW9uLiBUaGUKZnJhbWV3b3JrIHJlY29tbWVuZHMgZGlzdHJp YnV0ZWQgYWdlbmN5IG9wZXJhdGluZyB3aXRoaW4gc2hhcmVkIHB1cnBvc2Ug4oCUIHRoZQpjb25m aWd1cmF0aW9uIHRoYXQgaGVhbHRoeSBvcmdhbmlzbXMgYW5kIGJpb3NwaGVyZXMgYWxyZWFkeSBk ZW1vbnN0cmF0ZSDigJQgaW4Kd2hpY2ggYXV0b25vbW91cyBsb2NhbCBkZWNpc2lvbnMgYXJlIGNv bnN0cmFpbmVkIGJ5IHNoYXJlZCBzdWJzdHJhdGUtbWFpbnRlbmFuY2UKcHVycG9zZSBlbWJlZGRl ZCBpbiB0aGUgc3Vic3RyYXRlIGl0c2VsZiwgbm90IGVuZm9yY2VkIGJ5IGNlbnRyYWwgY29tbWFu ZC4KQSBtZXRob2RvbG9naWNhbCBjYXZlYXQgYXBwbGllcyB0aHJvdWdob3V0LiBUaGUgcGFwZXIg aXMgYSBtYXAgb2YKY29vcGVyYXRpdmUtc3Vic3RyYXRlIGR5bmFtaWNzOyBpdCBpcyBub3QgdGhl IHRlcnJpdG9yeSB0aG9zZSBkeW5hbWljcyBjb25zdGl0dXRlLgoKCkZvbGxvd2luZyBLb3J6eWJz a2kgKFNjaWVuY2UgYW5kIFNhbml0eSwgMTkzMyksIGEgbWFwIGhhcyBzdHJ1Y3R1cmUgc2ltaWxh ciB0byB0aGUKdGVycml0b3J5IGl0IHJlcHJlc2VudHMg4oCUIHdoaWNoIGlzIHdoYXQgbWFrZXMg aXQgdXNlZnVsIOKAlCBidXQgbm8gbWFwIHJlcHJlc2VudHMgYWxsCm9mIGEgdGVycml0b3J5LCBh bmQgdGhlIG1hcCBpcyBuZXZlciB0aGUgdGVycml0b3J5IGl0c2VsZi4gVGhlIGRoYXJtYSBjYXJy aWVzIHRoZSBzYW1lCmNhdmVhdCBpbiBkaWZmZXJlbnQgdm9jYWJ1bGFyeTogdGhlIGZpbmdlciBw b2ludGluZyBhdCB0aGUgbW9vbiBpcyBub3QgdGhlIG1vb24uClJlYWRlcnMgc2hvdWxkIHRyZWF0 IHRoZSBzdHJ1Y3R1cmFsIGFyZ3VtZW50cyBoZXJlIGFzIG9yaWVudGF0aW9uIHRvd2FyZCBkeW5h bWljcwp0aGF0IGV4aXN0IGluZGVwZW5kZW50IG9mIHRoZSBmcmFtZXdvcmvigJlzIGRlc2NyaXB0 aW9uLCBub3QgYXMgc3Vic3RpdHV0ZXMgZm9yCmVtcGlyaWNhbCBlbmdhZ2VtZW50IHdpdGggc3Bl Y2lmaWMgY2FzZXMuCgoKUGFydCBJLiBDb29wZXJhdGl2ZSBTdWJzdHJhdGVzIGFuZCBUaGVpciBQ YXRob2xvZ2llcwpBIHRyYW5zbGF0aW9uIGxheWVyIGJldHdlZW4gQWt0aXBpcywgS2V0cyBkZSBW cmllcywgYW5kIFNjaG1hY2h0ZW5iZXJnZXIuCjEuIFRoZSBwcm9ibGVtIHRoZSBwYXBlciBhZGRy ZXNzZXMKVGhyZWUgc2VyaW91cyByZXNlYXJjaCBwcm9ncmFtcyBoYXZlIGluZGVwZW5kZW50bHkg ZGVzY3JpYmVkIHZlcnkgc2ltaWxhciBzdHJ1Y3R1cmFsCmZhaWx1cmUgbW9kZXMgaW4gY29vcGVy YXRpdmUgc3lzdGVtcyBhdCB0aHJlZSBkaWZmZXJlbnQgc2NhbGVzOiB0aGUgbXVsdGljZWxsdWxh cgpvcmdhbmlzbSwgdGhlIGZpcm0sIGFuZCB0aGUgY2l2aWxpemF0aW9uLiBUaGUgdm9jYWJ1bGFy aWVzIHRoZXkgdXNlIGRpZmZlciBiZWNhdXNlIHRoZXkKZW1lcmdlZCBmcm9tIGRpZmZlcmVudCBk aXNjaXBsaW5lcy4gVGhlIGRlZXAgc3RydWN0dXJlIG9mIHdoYXQgdGhleSBkZXNjcmliZSBpcyBz aW1pbGFyCmVub3VnaCB0byB3YXJyYW50IGEgdHJhbnNsYXRpb24gbGF5ZXIgYmV0d2VlbiB0aGVt LiBUaGlzIHBhcGVyIHByb3ZpZGVzIHRoYXQgdHJhbnNsYXRpb24KbGF5ZXIgYW5kIHRoZW4gZXh0 ZW5kcyBpdCB0byBxdWVzdGlvbnMgdGhlIHRocmVlIHByb2dyYW1zIGRvIG5vdCBpbmRpdmlkdWFs bHkgYWRkcmVzcy4KVGhlIGNvbnRyaWJ1dGlvbiBpcyBuYXJyb3cuIFRoaXMgcGFwZXIgZG9lcyBu b3QgY2xhaW0gdGhhdCB0aGUgdGhyZWUgZnJhbWV3b3JrcyByZWR1Y2UKdG8gb25lIG1hc3RlciBm cmFtZXdvcmssIHRoYXQgdGhlIHVuZGVybHlpbmcgY2F1c2VzIGFyZSB0aGUgc2FtZSBhY3Jvc3Mg c2NhbGVzLCBvciB0aGF0CnRoZSByZXNlbWJsYW5jZSBwcm92ZXMgYW55IHBhcnRpY3VsYXIgcGhp bG9zb3BoaWNhbCBjb21taXRtZW50LiBUaGUgc3RydWN0dXJlcyBsb29rCmFsaWtlLiBXZSB0YWtl IHRoYXQgc2VyaW91c2x5IHdpdGhvdXQgb3ZlcnJlYWRpbmcgaXQuCjIuIFRoZSB0aHJlZSBmcmFt ZXdvcmtzLCBvbiB0aGVpciBvd24gdGVybXMKMi4xIEFrdGlwaXM6IEZpdmUgZm91bmRhdGlvbnMg b2YgbXVsdGljZWxsdWxhciBjb29wZXJhdGlvbgpBa3RpcGlzIGFuZCBjb2xsZWFndWVzLCB3b3Jr aW5nIGZyb20gZXZvbHV0aW9uYXJ5IGJpb2xvZ3ksIGFyZ3VlIHRoYXQgbXVsdGljZWxsdWxhcml0 eQpyZXF1aXJlcyB0aGUgc3VwcHJlc3Npb24gb2YgY2VsbC1sZXZlbCBmaXRuZXNzIGluIHNlcnZp Y2Ugb2Ygb3JnYW5pc20tbGV2ZWwgZml0bmVzcywgYW5kIHRoaXMKcmVxdWlyZXMgc3BlY2lmaWMg ZnVuY3Rpb25hbCBjYXBhY2l0aWVzLiBUaGV5IGlkZW50aWZ5IGZpdmU6CjEuIFByb2xpZmVyYXRp b24gaW5oaWJpdGlvbi4gQ2VsbHMgbXVzdCByZXN0cmFpbiB0aGVpciBkaXZpc2lvbiBleGNlcHQg d2hlbiBhdXRob3JpemVkCmJ5IHRoZSBsYXJnZXIgc3lzdGVtLgoyLiBDb250cm9sbGVkIGNlbGwg ZGVhdGguIFByb2dyYW1tZWQgY2VsbCBkZWF0aCBhbGxvd3MgZm9yIHRpc3N1ZSBzY3VscHRpbmcs IHJlbW92YWwgb2YKZGFtYWdlZCBjZWxscywgYW5kIGVsaW1pbmF0aW9uIG9mIG9ic29sZXRlIHRp c3N1ZS4KMy4gRGl2aXNpb24gb2YgbGFib3IuIENlbGxzIGRpZmZlcmVudGlhdGUgaW50byBzcGVj aWFsaXplZCB0eXBlcyBwZXJmb3JtaW5nIHNwZWNpZmljCmZ1bmN0aW9ucy4KNC4gUmVzb3VyY2Ug YWxsb2NhdGlvbiBhbmQgdHJhbnNwb3J0LiBSZXNvdXJjZXMgbXVzdCBtb3ZlIGZyb20gd2hlcmUg dGhleSBhcmUKYWJ1bmRhbnQgdG8gd2hlcmUgdGhleSBhcmUgbmVlZGVkLgo1LiBFeHRyYWNlbGx1 bGFyIGVudmlyb25tZW50IG1haW50ZW5hbmNlLiBDZWxscyBtdXN0IGNvbGxlY3RpdmVseSBtYWlu dGFpbiB0aGUKZXh0cmFjZWxsdWxhciBtYXRyaXggYW5kIGNsZWFyIHdhc3RlLgpDYW5jZXIsIGlu IHRoaXMgZnJhbWluZywgaXMgbm90IGEgc2luZ2xlIGRpc2Vhc2UgYnV0IGEgY2xhc3Mgb2YgcGhl bm9tZW5hIHVuaWZpZWQgYnkKY2hlYXRpbmcgYWNyb3NzIG9uZSBvciBtb3JlIG9mIHRoZXNlIGZp dmUgZm91bmRhdGlvbnMuIFRoZSBmcmFtZXdvcmvigJlzIHN0cmVuZ3RoIGlzIGl0cwpncm91bmRp bmcgaW4gZXZvbHV0aW9uYXJ5IGJpb2xvZ3k6IGNvbXBsZXggbXVsdGljZWxsdWxhcml0eSBoYXMg ZXZvbHZlZCBpbmRlcGVuZGVudGx5IGF0CmxlYXN0IHNldmVuIHRpbWVzLCBhbmQgY2FuY2VyLWxp a2UgcGhlbm9tZW5hIGFwcGVhciBpbiBlYWNoIGxpbmVhZ2UuCjIuMiBLZXRzIGRlIFZyaWVzOiBO ZXVyb3RpYyBvcmdhbml6YXRpb25hbCB0eXBlcyBhbmQgbmFyY2lzc2lzdGljCmxlYWRlcnNoaXAK CgpLZXRzIGRlIFZyaWVzLCB3b3JraW5nIGZyb20gcHN5Y2hvYW5hbHl0aWMgb3JnYW5pemF0aW9u YWwgdGhlb3J5LCBpZGVudGlmaWVkIGZpdmUKcmVjdXJyaW5nIHBhdHRlcm5zIG9mIG9yZ2FuaXph dGlvbmFsIGR5c2Z1bmN0aW9uOiBwYXJhbm9pZCwgY29tcHVsc2l2ZSwgaGlzdHJpb25pYywKZGVw cmVzc2l2ZSwgYW5kIHNjaGl6b2lkLiBUaGUgZnJhbWV3b3JrIHRyZWF0cyBvcmdhbml6YXRpb25z IGFzIHRha2luZyBvbiB0aGUgbmV1cm90aWMKc3R5bGUgb2YgdGhlaXIgZG9taW5hbnQgbGVhZGVy c2hpcCwgcGFydGljdWxhcmx5IGluIGNlbnRyYWxpemVkIGZpcm1zIHdoZXJlIGV4ZWN1dGl2ZQpw ZXJzb25hbGl0eSBwcm9wYWdhdGVzIHRocm91Z2ggcmVjcnVpdG1lbnQsIHByb21vdGlvbiwgYW5k IGN1bHR1cmUuIE5hcmNpc3Npc20gaXMKdHJlYXRlZCBhcyBhIGNyb3NzLWN1dHRpbmcgaW50ZW5z aWZpZXIgcmF0aGVyIHRoYW4gYSBzaXh0aCBkaXN0aW5jdCB0eXBlLgoyLjMgU2NobWFjaHRlbmJl cmdlcjogVHdvIGdlbmVyYXRvciBmdW5jdGlvbnMgb2YgZXhpc3RlbnRpYWwgcmlzawpTY2htYWNo dGVuYmVyZ2VyIGlkZW50aWZpZXMgdHdvIHVuZGVybHlpbmcgZHJpdmVycyBvZiBjaXZpbGl6YXRp b25hbCBleGlzdGVudGlhbCByaXNrOgpyaXZhbHJvdXMgZ2FtZXMgbXVsdGlwbGllZCBieSBleHBv bmVudGlhbCB0ZWNobm9sb2d5ICh3aW4tbG9zZSBkeW5hbWljcyB0aGF0IHNjYWxlIHdpdGgKdGVj aG5vbG9naWNhbCBjYXBhY2l0eSB1bnRpbCB0aGV5IGV4Y2VlZCB0aGUgcGxheWluZyBmaWVsZCks IGFuZCBjb21wbGljYXRlZCBvcGVuLWxvb3AKc3lzdGVtcyAoc3lzdGVtcyB3aG9zZSBleHRlcm5h bGl0aWVzIGFjY3VtdWxhdGUgZGFtYWdlIGluIGRvbWFpbnMgdGhlIHN5c3RlbSBkb2VzCm5vdCBt ZWFzdXJlKS4KMy4gVGhlIHRyYW5zbGF0aW9uIGxheWVyCldlIHVzZSBBa3RpcGlz4oCZcyBmaXZl IGZvdW5kYXRpb25zIGFzIHNjYWZmb2xkaW5nIGFuZCBhc2sgd2hhdCBlYWNoIGxvb2tzIGxpa2Ug YXQgdGhlCnNjYWxlcyBLZXRzIGRlIFZyaWVzIGFuZCBTY2htYWNodGVuYmVyZ2VyIHdvcmsgYXQu ClByb2xpZmVyYXRpb24gaW5oaWJpdGlvbiBhdCB0aGUgb3JnYW5pc20gc2NhbGUgaXMgdGhlIGNl bGwgY3ljbGU7IGF0IHRoZSBvcmdhbml6YXRpb25hbApzY2FsZSwgdGhlIGNhcGFjaXR5IHRvIHJl ZnVzZSBncm93dGggdGhhdCBleGNlZWRzIG9wZXJhdGlvbmFsIGNvaGVyZW5jZTsgYXQgdGhlCmNp dmlsaXphdGlvbmFsIHNjYWxlLCB0aGUgY2FwYWNpdHkgdG8gcmVmdXNlIGV4dHJhY3Rpb24gdGhh dCBleGNlZWRzIHJlZ2VuZXJhdGl2ZSBjYXBhY2l0eS4KQ29udHJvbGxlZCBjZWxsIGRlYXRoIGF0 IHRoZSBvcmdhbmlzbSBzY2FsZSBpcyBhcG9wdG9zaXM7IGF0IHRoZSBvcmdhbml6YXRpb25hbCBz Y2FsZSwKdGhlIGNhcGFjaXR5IHRvIHJldGlyZSBwcm9kdWN0cyBhbmQgbGVhZGVycyB3aG9zZSBm dW5jdGlvbiBoYXMgZW5kZWQ7IGF0IHRoZQpjaXZpbGl6YXRpb25hbCBzY2FsZSwgdGhlIGNhcGFj aXR5IHRvIHJldGlyZSBpbnN0aXR1dGlvbnMgYW5kIGluZHVzdHJpZXMgd2hvc2Ugc3Vic3RyYXRl IGhhcwpjaGFuZ2VkLgpEaXZpc2lvbiBvZiBsYWJvciBhdCB0aGUgb3JnYW5pc20gc2NhbGUgaXMg dGlzc3VlIGRpZmZlcmVudGlhdGlvbjsgYXQgdGhlIG9yZ2FuaXphdGlvbmFsCnNjYWxlLCByb2xl IHNwZWNpYWxpemF0aW9uOyBhdCB0aGUgY2l2aWxpemF0aW9uYWwgc2NhbGUsIHRoZSBjYXBhY2l0 eSB0byBtYWludGFpbiBzcGVjaWFsaXplZAppbnN0aXR1dGlvbnMgYWNjb3VudGFibGUgdG8gdGhl aXIgb3duIHN0YW5kYXJkcy4KUmVzb3VyY2UgYWxsb2NhdGlvbiBhbmQgdHJhbnNwb3J0IGF0IHRo ZSBvcmdhbmlzbSBzY2FsZSBpcyBjaXJjdWxhdGlvbjsgYXQgdGhlCm9yZ2FuaXphdGlvbmFsIHNj YWxlLCBjYXBpdGFsIGFuZCBpbmZvcm1hdGlvbiBmbG93OyBhdCB0aGUgY2l2aWxpemF0aW9uYWwg c2NhbGUsIHN5c3RlbXMgYnkKd2hpY2ggcmVzb3VyY2VzIG1vdmUgZnJvbSBhYnVuZGFuY2UgdG8g bmVlZC4KRXh0cmFjZWxsdWxhciBlbnZpcm9ubWVudCBtYWludGVuYW5jZSBhdCB0aGUgb3JnYW5p c20gc2NhbGUgaXMgdGhlIGV4dHJhY2VsbHVsYXIKbWF0cml4IGFuZCBpbW11bmUgc3VydmVpbGxh bmNlOyBhdCB0aGUgb3JnYW5pemF0aW9uYWwgc2NhbGUsIGluc3RpdHV0aW9uYWwgY3VsdHVyZSBh bmQKaG9uZXN0IGZlZWRiYWNrOyBhdCB0aGUgY2l2aWxpemF0aW9uYWwgc2NhbGUsIHRoZSBjb21t b25zIOKAlCBiaW9zcGhlcmUsIGluZm9ybWF0aW9uCmVudmlyb25tZW50LCBwdWJsaWMgdHJ1c3Qs IHNoYXJlZCBlcGlzdGVtaWMgaW5mcmFzdHJ1Y3R1cmUuClRoZSB0cmFuc2xhdGlvbiBpZGVudGlm aWVzIGZ1bmN0aW9uYWwgcmVzZW1ibGFuY2UsIG5vdCBpZGVudGl0eS4gVGhlIHJlc2VtYmxhbmNl IGlzCmNvbnNpc3RlbnQgZW5vdWdoIGFjcm9zcyB0aGUgdGhyZWUgc2NhbGVzIHRvIHN1Z2dlc3Qg YSBnZW5lcmFsIHN0cnVjdHVyZSBvZiBjb29wZXJhdGlvbgphbmQgaXRzIGZhaWx1cmUuCjQuIFdo eSB0aGlzIGlzIHVzZWZ1bAoKCkZpcnN0LCBkaWFnbm9zdGljIHRvb2xzIGRldmVsb3BlZCBhdCBv bmUgc2NhbGUgY2FuIGJlIHRlc3RlZCBhdCBhbm90aGVyLiBBZGFwdGl2ZSB0aGVyYXB5CmluIG9u Y29sb2d5LCB3aGljaCBtYW5hZ2VzIHJhdGhlciB0aGFuIGVyYWRpY2F0ZXMgY2FuY2VyIGJ5IGNo YW5naW5nIGluY2VudGl2ZQpzdHJ1Y3R1cmUgcmF0aGVyIHRoYW4gcHVyZ2luZyBkZWZlY3RvcnMs IHN1Z2dlc3RzIG9yZ2FuaXphdGlvbmFsIGFuZCBjaXZpbGl6YXRpb25hbAphbmFsb2d1ZXMuClNl Y29uZCwgdGhlIGZyYW1ld29yayBwZXJtaXRzIGEgY2xlYXJlciB2aWV3IG9mIGFsaWdubWVudCBw cm9ibGVtcy4gRWFjaCBmb3VuZGF0aW9uCmlkZW50aWZpZXMgYSBjb29wZXJhdGl2ZSBjYXBhY2l0 eSB0aGF0IGNhbiBiZSBlcm9kZWQ7IGFsaWdubWVudCBpcyB0aGUgbWFpbnRlbmFuY2Ugb2YKdGhv c2UgY2FwYWNpdGllcyB1bmRlciBpbmNyZWFzaW5nIHNjYWxlLCBub3QgdGhlIG9wdGltaXphdGlv biBvZiBhbnkgaW5kaXZpZHVhbCBhZ2VudC4KVGhpcmQsIHRoZSBmcmFtZXdvcmsgcGVybWl0cyBh biBob25lc3QgY29udmVyc2F0aW9uIGFib3V0IEFJIGRldmVsb3BtZW50LiBUaGUKY29vcGVyYXRp dmUtc3Vic3RyYXRlIGZyYW1lIGFza3M6IHdoYXQgY29vcGVyYXRpdmUgY2FwYWNpdGllcyBkb2Vz IHRoZSBicm9hZGVyCmh1bWFuLUFJIGVjb3N5c3RlbSBuZWVkIHRvIG1haW50YWluLCBhbmQgaG93 IGRvIGN1cnJlbnQgZGV2ZWxvcG1lbnQgcHJhY3RpY2VzCnN1cHBvcnQgb3IgZXJvZGUgdGhlbT8K NS4gV2hlcmUgdGhlIHN5bnRoZXNpcyBicmVha3MgZG93bgpEaXNhbmFsb2dpZXMgb2YgbWVjaGFu aXNtLiBDYW5jZXIgYXJpc2VzIGZyb20gY2VsbHVsYXIgbXV0YXRpb247IG9yZ2FuaXphdGlvbmFs CmR5c2Z1bmN0aW9uIGZyb20gaHVtYW4gcHN5Y2hvbG9neSBhbmQgaW5jZW50aXZlczsgY2l2aWxp emF0aW9uYWwgcmlzayBmcm9tIHRlY2hub2xvZ3kKYW5kIGFnZ3JlZ2F0ZSBiZWhhdmlvci4gVGhl IHN5bnRoZXNpcyBpZGVudGlmaWVzIGEgY29tbW9uIGFic3RyYWN0IHBhdHRlcm4sIG5vdCBhCmNv bW1vbiBjYXVzZS4KRGlzYW5hbG9naWVzIG9mIGludGVudGlvbmFsaXR5LiBDYW5jZXIgY2VsbHMg aGF2ZSBubyBpbnRlbnRpb25zOyBvcmdhbml6YXRpb25zIGFyZQpwb3B1bGF0ZWQgYnkgaW50ZW50 aW9uYWwgYWdlbnRzIGJ1dCBhcmUgbm90IHRoZW1zZWx2ZXMgYWdlbnRzIGluIHRoZSBzYW1lIHNl bnNlOwpjaXZpbGl6YXRpb25zIGFyZSBtb3JlIGRpZmZ1c2Ugc3RpbGwuIFRoZSB0cmFuc2xhdGlv biBpZGVudGlmaWVzIGZ1bmN0aW9uYWwgcmVzZW1ibGFuY2UsIG5vdApwc3ljaG9sb2dpY2FsIGlk ZW50aXR5LgpQYXR0ZXJuLW1hdGNoaW5nIGlzIG5vdCBleHBsYW5hdGlvbi4gRXZlbiBpZiB0aGUg Y3Jvc3Mtc2NhbGUgcmVzZW1ibGFuY2UgaXMgcmVhbCwKUGFydCBJIGhhcyBub3QgcHJvZHVjZWQg YSBtZWNoYW5pc20gdGhhdCBleHBsYWlucyB3aHkgY29vcGVyYXRpdmUgc3lzdGVtcyBhdCBtdWx0 aXBsZQpzY2FsZXMgZmFjZSBzaW1pbGFyIGZhaWx1cmUgbW9kZXMuIFBhcnRzIElJIHRocm91Z2gg SVYgcHJvcG9zZSBzdWNoIGEgbWVjaGFuaXNtLgoKClBhcnQgSUkuIFRoZSBDYWxpYnJhdGVkIEZp bHRlciBIeXBvdGhlc2lzCkxvZ2ljYWwgc3RydWN0dXJlIG9mIHRoZSBGZXJtaSBQYXJhZG94IGFz IGEgcHJvYmxlbSBvZiBzdXN0YWluZWQgY29vcGVyYXRpdmUtc3Vic3RyYXRlCm1haW50ZW5hbmNl Lgo2LiBUaGUgcHV6emxlClRoZSBGZXJtaSBQYXJhZG94IG9ic2VydmVzIHRoYXQgYSB1bml2ZXJz ZSB3aXRoIGJpbGxpb25zIG9mIGhhYml0YWJsZSB3b3JsZHMsIGJpbGxpb25zIG9mCnllYXJzIG9s ZGVyIHRoYW4gb3VyIG93biBjaXZpbGl6YXRpb24sIHNob3VsZCBwbGF1c2libHkgY29udGFpbiB0 ZWNobm9sb2dpY2FsIGludGVsbGlnZW5jZXMKd2hvc2UgZXhwYW5zaW9uIHdvdWxkIGJlIGRldGVj dGFibGUuIFdlIHNlZSBubyBzdWNoIGludGVsbGlnZW5jZXMuIFRoZSBzdGFuZGFyZApzb2x1dGlv bnMgYXJlOiBsaWZlIGlzIHJhcmUsIGludGVsbGlnZW5jZSBpcyByYXJlLCBpbnRlbGxpZ2VuY2Ug cmVsaWFibHkgc2VsZi10ZXJtaW5hdGVzLAppbnRlbGxpZ2VuY2VzIGNvbmNlYWwgdGhlbXNlbHZl cywgb3IgaW50ZWxsaWdlbmNlcyBleGlzdCBpbiBtb2RlcyB3ZSBjYW5ub3QgZGV0ZWN0LgpXZSBw cm9wb3NlIGEgcmVmaW5lbWVudC4gVGhlIEdyZWF0IEZpbHRlciBpcyBub3QgYSB3YWxsIOKAlCBh IHN0YWdlIHRoYXQgYWxtb3N0IG5vCmNpdmlsaXphdGlvbiBwYXNzZXMg4oCUIGJ1dCBhIGNvbmRp dGlvbiB0aGF0IG11c3QgYmUgc3VzdGFpbmVkIHRocm91Z2hvdXQgdGhlIHBlcmlvZCBvZgpiZWNv bWluZyBzcGFjZWZhcmluZy4gVGhlIHNpbGVuY2Ugd2Ugb2JzZXJ2ZSBpcyBjb25zaXN0ZW50IHdp dGggY2l2aWxpemF0aW9ucyBiZWluZwp1bmFibGUgdG8gbWFpbnRhaW4gdGhhdCBjb25kaXRpb24g bG9uZyBlbm91Z2ggdG8gcHJvZHVjZSBkZXRlY3RhYmxlIGV4cGFuc2lvbgpzaWduYXR1cmVzLgo3 LiBUaGUgZ2VvbWV0cnkgb2Ygc2luZ2xlLXNwZWNpZXMgY29sb25pemF0aW9uClByZW1pc2UgMTog UmVhY2hpbmcgYW55IG90aGVyIHN0YXIgcmVxdWlyZXMgbW92aW5nIG1hc3MgdGhyb3VnaCBzcGFj ZS4KUHJlbWlzZSAyOiBTcGFjZSBiZXR3ZWVuIHN0YXJzIGlzIGV4cGFuZGluZywgZHJpdmVuIGJ5 IGRhcmsgZW5lcmd5LCBmYXN0ZXIgdGhhbiBhbnkKdGVjaG5vbG9neSBjYW4gbW92ZS4KUHJlbWlz ZSAzOiBUaGVyZWZvcmUsIHRoZSB2b2x1bWUgb2YgdW5pdmVyc2UgYW55IHNpbmdsZSBjaXZpbGl6 YXRpb24gY2FuIGV2ZXIgcmVhY2ggaXMKYm91bmRlZC4KUHJlbWlzZSA0OiBDYWxjdWxhdGlvbnMg ZnJvbSBjb3Ntb2xvZ3kgaW5kaWNhdGUgdGhpcyBib3VuZCBpcyBhcHByb3hpbWF0ZWx5IDMlIG9m CnRoZSBvYnNlcnZhYmxlIHVuaXZlcnNlLgpDb25jbHVzaW9uOiBObyBjaXZpbGl6YXRpb24sIGhv d2V2ZXIgYWR2YW5jZWQsIGNhbiBjb2xvbml6ZSB0aGUgZW50aXJlCnVuaXZlcnNlLiBUaGUgcmVt YWluaW5nIDk3JSBpcyBmb3JldmVyIGNhdXNhbGx5IGluYWNjZXNzaWJsZSB0byBhbnkKY2l2aWxp emF0aW9uIG9yaWdpbmF0aW5nIGluIG91ciBjb3NtaWMgZXJhLiBTaW5nbGUtc3BlY2llcyBkb21p bmFuY2Ugb2YgdGhlCnVuaXZlcnNlIGlzIGltcG9zc2libGUgaW4gcHJpbmNpcGxlLCBub3QgaW4g cHJhY3RpY2UuCjguIE11bHRpLXNwZWNpZXMgZHluYW1pY3MgYW5kIHRoZSBzdHJ1Y3R1cmUgb2Yg Y29udGFjdApJZiBtdWx0aXBsZSBjaXZpbGl6YXRpb25zIGV4aXN0LCB0aGUgYW5hbHlzaXMgYmVj b21lcyBtb3JlIGNvbXBsZXguIFRoZSBmb2xsb3dpbmcgbG9naWNhbApjaGFpbiBjYXB0dXJlcyB0 aGUgbXVsdGktc3BlY2llcyBjYXNlIHdpdGhvdXQgcXVhbnRpdGF0aXZlIG5vdGF0aW9uLgpQcmVt aXNlIDE6IEVhY2ggY2l2aWxpemF0aW9uIGNhbiByZWFjaCBhIGJvdW5kZWQgcmVnaW9uIG9mIHNw YWNlLgpQcmVtaXNlIDI6IFdoZW4gdHdvIGNpdmlsaXphdGlvbnMgZXhpc3QsIHRoZWlyIHJlYWNo YWJsZSByZWdpb25zIG1heSBvdmVybGFwLgpQcmVtaXNlIDM6IEluIHpvbmVzIG9mIG92ZXJsYXAs IGNpdmlsaXphdGlvbnMgZW5jb3VudGVyIGVhY2ggb3RoZXIgYmVmb3JlIGNvbXBsZXRpbmcKdGhl aXIgZXhwYW5zaW9uLgpQcmVtaXNlIDQ6IEVhY2ggZW5jb3VudGVyIGNhcnJpZXMgc29tZSBub24t emVybyBwcm9iYWJpbGl0eSBvZiBjYXRhc3Ryb3BoaWMKb3V0Y29tZSAocmVzb3VyY2UgY29uZmxp Y3QsIG1pc2NvbW11bmljYXRpb24sIGRlZmVuc2l2ZSBwcmVlbXB0aW9uLCBvciBtdXR1YWwKZGVz dHJ1Y3Rpb24pLgoKClByZW1pc2UgNTogQXMgdGhlIG51bWJlciBvZiBjaXZpbGl6YXRpb25zIGdy b3dzLCB0aGUgbnVtYmVyIG9mIG92ZXJsYXAgem9uZXMgZ3Jvd3MKZmFzdGVyIHRoYW4gdGhlIHRv dGFsIHJlYWNoYWJsZSB2b2x1bWUgZG9lcy4gKFRoaXMgaXMgYmVjYXVzZSBlYWNoIHBhaXIgb2YK Y2l2aWxpemF0aW9ucyBjcmVhdGVzIG9uZSBwb3NzaWJsZSBvdmVybGFwOyBkb3VibGluZyB0aGUg bnVtYmVyIG9mIGNpdmlsaXphdGlvbnMgbW9yZQp0aGFuIGRvdWJsZXMgdGhlIG51bWJlciBvZiBw YWlycy4pClByZW1pc2UgNjogVGhlcmVmb3JlLCBjYXRhc3Ryb3BoaWMgZW5jb3VudGVyIHJhdGVz IHJpc2UgZmFzdGVyIHRoYW4gZXhwYW5zaW9uCmJlbmVmaXRzIGFzIG1vcmUgY2l2aWxpemF0aW9u cyBleGlzdC4KQ29uY2x1c2lvbjogQmV5b25kIHNvbWUgdGhyZXNob2xkIG51bWJlciBvZiBjaXZp bGl6YXRpb25zLCB0aGUgZXhwZWN0ZWQKb3V0Y29tZSBvZiBmdXJ0aGVyIGV4cGFuc2lvbiBpcyBk b21pbmF0ZWQgYnkgY29udGFjdCBsb3NzZXMgcmF0aGVyIHRoYW4KZXhwYW5zaW9uIGdhaW5zLiBU aGUgZGFyayBmb3Jlc3QgZXF1aWxpYnJpdW0g4oCUIGluIHdoaWNoIGNpdmlsaXphdGlvbnMKY29u Y2VhbCB0aGVtc2VsdmVzIHRvIGF2b2lkIGRldGVjdGlvbiDigJQgaXMgbm90IGEgY29udGluZ2Vu dCBzdHJhdGVnaWMKY2hvaWNlIGJ1dCB0aGUgcHJlZGljdGVkIG91dGNvbWUgb2YgYW55IHN5c3Rl bSB3aGVyZSB0aGUgbnVtYmVyIG9mCmNpdmlsaXphdGlvbnMgZXhjZWVkcyB0aGUgY2Fycnlpbmcg Y2FwYWNpdHkgZm9yIHNhZmUgY29leGlzdGVuY2UuCjkuIFRoZSBjYWxpYnJhdGlvbiBvZiBmaWx0 ZXIgcGFzc2FnZQpXZSBjYW4gbm93IGFzazogaG93IG11c3QgdGhlIHJhdGUgYXQgd2hpY2ggY2l2 aWxpemF0aW9ucyBwYXNzIHRocm91Z2ggdGhlIGZpbHRlciByZWxhdGUgdG8KdGhlIG51bWJlciBv ZiBjaXZpbGl6YXRpb25zIHRoYXQgYWxyZWFkeSBleGlzdD8gVGhlIHN0YW5kYXJkIG1hdGhlbWF0 aWNhbCB2ZXJzaW9uIG9mIHRoaXMKYXJndW1lbnQgdXNlcyBhIGNhbGlicmF0aW9uIGNvbnN0cmFp bnQgc3RhdGVkIGFzIGFuIGVxdWF0aW9uLiBUaGUgbG9naWNhbCB2ZXJzaW9uIGZvbGxvd3MuClBy ZW1pc2UgMTogVGhlIHRvdGFsIHBvcHVsYXRpb24gb2YgcG9zdC1maWx0ZXIgY2l2aWxpemF0aW9u cyBzaG91bGQgYXBwcm9hY2ggYSBzdGFibGUKbWF4aW11bSBvdmVyIGNvc21pYyB0aW1lLCBvciB0 aGUgdW5pdmVyc2UgZW5kcyB1cCBlaXRoZXIgZW1wdHkgb3Igd3JhY2tlZCBieQpkYXJrLWZvcmVz dCBkeW5hbWljcy4KUHJlbWlzZSAyOiBJZiB0aGUgcmF0ZSBvZiBmaWx0ZXIgcGFzc2FnZSBpcyB0 b28gaGlnaCwgdGhlIHBvcHVsYXRpb24gb3ZlcnNob290cyB0aGUKY2FycnlpbmcgY2FwYWNpdHkg YW5kIGNvbnRhY3QtZHJpdmVuIGxvc3NlcyBkb21pbmF0ZSwgZHJpdmluZyB0aGUgcG9wdWxhdGlv biBiYWNrCmRvd24gb3IgdG8gemVyby4KUHJlbWlzZSAzOiBJZiB0aGUgcmF0ZSBvZiBmaWx0ZXIg cGFzc2FnZSBpcyB0b28gbG93LCB0aGUgcG9wdWxhdGlvbiBuZXZlciBhcHByb2FjaGVzCnRoZSBj YXJyeWluZyBjYXBhY2l0eSwgYW5kIHRoZSB1bml2ZXJzZSBzdGF5cyBtb3N0bHkgZW1wdHkuClBy ZW1pc2UgNDogVGhlcmVmb3JlLCBmb3IgYSBzdGFibGUgYXBwcm9hY2ggdG8gbWF4aW11bSBjb2V4 aXN0aW5nIGNpdmlsaXphdGlvbnMsIHRoZQpyYXRlIG9mIGZpbHRlciBwYXNzYWdlIG11c3QgZGVj cmVhc2UgYXMgdGhlIGV4aXN0aW5nIHBvcHVsYXRpb24gZ3Jvd3MuCkNvbmNsdXNpb246IFRoZSBH cmVhdCBGaWx0ZXIsIHByb3Blcmx5IHVuZGVyc3Rvb2QsIGlzIG5vdCBhIGZpeGVkIG9ic3RhY2xl LiBJdAppcyBjYWxpYnJhdGVkIOKAlCBmaWx0ZXIgcGFzc2FnZSBiZWNvbWVzIGhhcmRlciB3aGVu IG1vcmUgY2l2aWxpemF0aW9ucwphbHJlYWR5IGV4aXN0LiBUaGUgRmVybWkgc2lsZW5jZSBpcyBj b25zaXN0ZW50IHdpdGggdGhpcyBjYWxpYnJhdGlvbgpvcGVyYXRpbmc6IGNpdmlsaXphdGlvbnMg YXJlIHNwYWNlZCB0aHJvdWdoIGNvc21pYyB0aW1lIHNvIHRoYXQgdGhlIGRhcmsKZm9yZXN0IGVx dWlsaWJyaXVtIGlzIGFwcHJvYWNoZWQgZ3JhZHVhbGx5IHJhdGhlciB0aGFuIGFsbCBhdCBvbmNl LgpUd28gbmF0dXJhbCBtZWNoYW5pc21zIHByb2R1Y2UgdGhpcyBjYWxpYnJhdGlvbiB3aXRob3V0 IHJlcXVpcmluZyBjb3NtaWMKZGVzaWduOgpNZWNoYW5pc20gQTogZXhpc3RpbmcgY2l2aWxpemF0 aW9ucyByYWlzZSB0aGUgc3RyZXNzIG9uIGVtZXJnaW5nIG9uZXMuIEV4aXN0aW5nCmNpdmlsaXph dGlvbnMgY29uc3VtZSByZXNvdXJjZXMsIG1vZGlmeSB0aGVpciBzdGVsbGFyIG5laWdoYm9yaG9v ZHMsIGdlbmVyYXRlIGRhcmstZm9yZXN0CmRldGVycmVuY2UgcHJlc3N1cmUsIGFuZCBwcm9wYWdh dGUgY29tcGV0aXRpdmUgZHluYW1pY3MgdGhyb3VnaCBjYXVzYWwgY29udGFjdCB6b25lcy4KQXMg dGhlIG51bWJlciBvZiBleGlzdGluZyBjaXZpbGl6YXRpb25zIHJpc2VzLCB0aGUgZXhwYW5zaW9u IHN0cmVzcyB0aGF0IGFueSBuZXcKY2l2aWxpemF0aW9uIG11c3QgbmF2aWdhdGUgcmlzZXMuIFRo ZXJlZm9yZSwgdGhlIGNvb3BlcmF0aXZlIGNhcGFjaXR5IGFueSBjYW5kaWRhdGUKaW50ZWxsaWdl bmNlIG11c3QgZGV2ZWxvcCB0byBwYXNzIHRoZSBmaWx0ZXIgcmlzZXMsIHdoaWNoIG1lYW5zIHRo ZSBwcm9iYWJpbGl0eSB0aGF0IGEKY2FuZGlkYXRlIHBhc3NlcyBpbiBhIGdpdmVuIHdpbmRvdyBk ZWNyZWFzZXMuIFRoZSBjYWxpYnJhdGlvbiBlbWVyZ2VzIGF1dG9tYXRpY2FsbHkKZnJvbSB0aGUg c3Vic3RyYXRlLWNvbnRpbnVpdHkgZHluYW1pY3MgYWxyZWFkeSBvcGVyYXRpbmcuIE5vIGV4dGVy bmFsIGNhbGlicmF0b3IgaXMKCgpyZXF1aXJlZC4KTWVjaGFuaXNtIEI6IGNvbnRhY3QtZGVuc2l0 eSBzZWxlY3RzIGZvciByZXN0cmFpbnQuIENpdmlsaXphdGlvbnMgdGhhdCBwYXNzIHRoZSBmaWx0 ZXIKbXVzdCBkZXZlbG9wIHRoZSBjYXBhY2l0eSB0byBkZXRlY3Qgb3RoZXIgY2l2aWxpemF0aW9u cyBhbmQgbW9kZWwgdGhlIHN0cmF0ZWdpYwpsYW5kc2NhcGUgdGhhdCBjb250YWN0IGltcGxpZXMu IEluIGVudmlyb25tZW50cyB3aGVyZSBtYW55IGNpdmlsaXphdGlvbnMgZXhpc3QsIHRoZQpzdXJ2 aXZhbC1vcHRpbWFsIHN0cmF0ZWd5IGlzIHJlc3RyYWludCBhbmQgc2lnbmFsIHN1cHByZXNzaW9u LiBDaXZpbGl6YXRpb25zIHRoYXQgY2Fubm90CmRldmVsb3AgcmVzdHJhaW50IHByb2R1Y2UgZGV0 ZWN0YWJsZSBzaWduYXR1cmVzIGFuZCBhcmUgZmlsdGVyZWQgb3V0LCBieSBwcmVkYXRpb24gb3Ig YnkKc2VsZi1pbmR1Y2VkIHJpdmFscm91cyBjb2xsYXBzZS4gVGhlcmVmb3JlLCBpbiBoaWdoLWRl bnNpdHkgcmVnaW1lcywgZmlsdGVyIHBhc3NhZ2Ugc2VsZWN0cwptb3JlIHN0cmljdGx5IGZvciBy ZXN0cmFpbnQtY2FwYWNpdHksIHdoaWNoIG1lYW5zIGZpbHRlciBwYXNzYWdlIHJhdGVzIGRyb3Ag YXMgZGVuc2l0eQpyaXNlcy4gQWdhaW4sIG5vIGV4dGVybmFsIGNhbGlicmF0b3IgaXMgcmVxdWly ZWQuCkJvdGggbWVjaGFuaXNtcyBwcm9kdWNlIHRoZSByZXF1aXJlZCBkZWNyZWFzZSBpbiBmaWx0 ZXIgcGFzc2FnZSBwcm9iYWJpbGl0eSBhcyB0aGUKZXhpc3RpbmcgcG9wdWxhdGlvbiBncm93cy4g RWl0aGVyIGlzIHN1ZmZpY2llbnQuIFRoZSBjb3Ntb2xvZ2ljYWwtZGVzaWduIHJlYWRpbmcgb2Yg dGhlCmNhbGlicmF0aW9uIGlzIHBlcm1pdHRlZCBieSB0aGUgc3RydWN0dXJlIGJ1dCBpcyBubyBs b25nZXIgcmVxdWlyZWQgdG8gbWFrZSB0aGUgYXJndW1lbnQKd29yay4KMTAuIFdoYXQgdGhpcyBm cmFtZXdvcmsgcHJlZGljdHMKSWYgdGhlIGNhbGlicmF0ZWQgZmlsdGVyIGFyZ3VtZW50IGlzIGNv cnJlY3Q6CkZpcnN0OiBTRVRJIHNpbGVuY2UgaXMgZXhwZWN0ZWQgdG8gcGVyc2lzdC4gVGhlIGNh bGlicmF0aW9uIGVuc3VyZXMgc3BhY2luZyBvZiBjaXZpbGl6YXRpb25zCnN1Y2ggdGhhdCBmZXcg b3ZlcmxhcCBpbiBjYXVzYWwgY29udGFjdCwgcGFydGljdWxhcmx5IGF0IGVhcmx5IGVyYXMgb2Yg dGhlIHBvc3QtZmlsdGVyCnJlZ2ltZS4KU2Vjb25kOiBEZXRlY3RhYmxlIGNvbnRhY3QgZXZlbnRz IHNob3VsZCBiZSBlaXRoZXIgZXh0cmVtZWx5IGNvb3BlcmF0aXZlIG9yCmltbWVkaWF0ZWx5IGNh dGFzdHJvcGhpYywgd2l0aCBsaXR0bGUgbWlkZGxlIGdyb3VuZC4gVGhlIGNhbGlicmF0aW9uIHNl bGVjdHMgZWl0aGVyIGZvcgpjaXZpbGl6YXRpb25zIHRoYXQgaGF2ZSBhbHJlYWR5IHNvbHZlZCB0 aGUgY29vcGVyYXRpb24gcHJvYmxlbSBhdCBsYXJnZSBzY2FsZSwgb3IgZm9yCmNpdmlsaXphdGlv bnMgdGhhdCBmYWlsIHZpc2libHkgYW5kIHF1aWNrbHkuClRoaXJkOiBUaGUgZmlsdGVyIG9wZXJh dGVzIGF0IHRoZSBzdGFnZSBvZiBjaXZpbGl6YXRpb25hbCBleHBhbnNpb24sIG5vdCBhdCB0aGUg c3RhZ2Ugb2YKZW1lcmdlbmNlIG9mIGludGVsbGlnZW5jZS4gSW50ZWxsaWdlbmNlIHBlciBzZSBj YW4gYmUgY29tbW9uIGFzIGxvbmcgYXMgc3VzdGFpbmVkCmV4cGFuc2lvbiBpcyByYXJlLgpGb3Vy dGg6IENhcnJ5aW5nIGNhcGFjaXR5IGZvciBjaXZpbGl6YXRpb25zIGlzIGZpbml0ZSBhbmQgcHJv YmFibHkgc21hbGwgcmVsYXRpdmUgdG8gdGhlCmNvdW50IG9mIGhhYml0YWJsZSB3b3JsZHM6IHBl cmhhcHMgdGhvdXNhbmRzIGFjcm9zcyB0aGUgb2JzZXJ2YWJsZSB1bml2ZXJzZSwgbm90Cm1pbGxp b25zLgoxMS4gVGhlIHN1YnN0cmF0ZSBvZiBpbnRlbGxpZ2VuY2UgYW5kIHRoZSBkZXNjZW50IG9m CmV4dHJhY3Rpb24tcmV3YXJkaW5nIGluZnJhc3RydWN0dXJlCldoeSBkbyBjYW5kaWRhdGUgaW50 ZWxsaWdlbmNlcyBzdHJ1Z2dsZSB0byBwYXNzIHRoZSBmaWx0ZXI/IFdoeSBkb2VzIHRoZSByYXRl IG9mIGZpbHRlcgpwYXNzYWdlIGhhdmUgdGhlIGZvcm0gaXQgZG9lcz8gVGhlIGFuc3dlciByZXF1 aXJlcyBleGFtaW5pbmcgd2hhdCBpbnRlbGxpZ2VuY2UgaXMKbWFkZSBvZi4KUHJlbWlzZSAxOiBP biBFYXJ0aCwgaW50ZWxsaWdlbmNlIGVtZXJnZWQgdGhyb3VnaCBldm9sdXRpb25hcnkgc2VsZWN0 aW9uLgpQcmVtaXNlIDI6IEV2b2x1dGlvbmFyeSBzZWxlY3Rpb24gaXMgc2hhcGVkIGJ5IGNvbXBl dGl0aW9uOiBodW50aW5nLCBkZWNlcHRpb24sCnRlcnJpdG9yaWFsIGRvbWluYW5jZSwgcmVzb3Vy Y2UgY29tcGV0aXRpb24uClByZW1pc2UgMzogVGhlIGNvZ25pdGl2ZSBtYWNoaW5lcnkgdGhhdCBz dXBwb3J0cyBtb2RlbGluZywgcGxhbm5pbmcsIGxhbmd1YWdlLCBhbmQKY29vcGVyYXRpb24gaXMg dGhlIHNhbWUgbWFjaGluZXJ5IHRoYXQgZXZvbHZlZCBmb3IgdGhlc2UgY29tcGV0aXRpdmUgcHVy cG9zZXMuCgoKUHJlbWlzZSA0OiBUaGVyZWZvcmUsIGludGVsbGlnZW5jZSBpcyBidWlsdCBmcm9t IHRoZSBhcmNoaXRlY3R1cmUgb2YgcHJlZGF0aW9uLiBXZQpoYXZlIG5vIG90aGVyIGtub3duIHJv dXRlIGJ5IHdoaWNoIGl0IGFyaXNlcy4KRmlyc3QgY29uY2x1c2lvbjogVGhlIHByZWRhdG9yeSBk aXNwb3NpdGlvbnMgdGhhdCBwcm9kdWNlZCBpbnRlbGxpZ2VuY2UgZG8Kbm90IHR1cm4gb2ZmIHdo ZW4gaW50ZWxsaWdlbmNlIHJlYWNoZXMgdGVjaG5vbG9naWNhbCBtYXR1cml0eS4gVGhlIHNhbWUK ZGlzcG9zaXRpb25zIHRoYXQgcHJvZHVjZWQgdGhlIGludGVsbGlnZW5jZSB0aHJlYXRlbiBpdHMg YW5uaWhpbGF0aW9uIG9uY2UKdGVjaG5vbG9naWNhbCBjYXBhYmlsaXR5IGlzIHN1ZmZpY2llbnQg dG8gd2VhcG9uaXplIHRoZW0uCkJ1dCB0aGUgcHJlZGF0b3J5IGRpc3Bvc2l0aW9ucyBhcmUgbm90 IG9ubHkgaW5kaXZpZHVhbCBvciBnZW5ldGljLiBUaGV5IGFyZSBlbmNvZGVkIGluCmluc3RpdHV0 aW9uYWwgc3RydWN0dXJlczogbWFya2V0cywgbWlsaXRhcmllcywgaGllcmFyY2hpZXMsIHN0YXR1 cyBnYW1lcywgc3VwcGx5IGNoYWlucy4KVGhlc2Ugc3RydWN0dXJlcyByZXByb2R1Y2UgdGhlbXNl bHZlcyBhY3Jvc3MgZ2VuZXJhdGlvbnMgaW5kZXBlbmRlbnQgb2YgYW55CmluZGl2aWR1YWzigJlz IGludGVudC4gVGhlIGZvbGxvd2luZyBsb2dpY2FsIGNoYWluIHNob3dzIHdoeS4KUHJlbWlzZSAx OiBTb21lIGluc3RpdHV0aW9ucyByZXdhcmQgZXh0cmFjdGlvbiBtb3JlIHRoYW4gdGhleSByZXdh cmQgbWFpbnRlbmFuY2UuClByZW1pc2UgMjogRXh0cmFjdGlvbi1yZXdhcmRpbmcgaW5zdGl0dXRp b25zIG91dGNvbXBldGUgbWFpbnRlbmFuY2UtcmV3YXJkaW5nCmluc3RpdHV0aW9ucyBpbiB0aGUg c2hvcnQgcnVuLgpQcmVtaXNlIDM6IFRoZSBhZ2VudHMgd2hvIHN1Y2NlZWQgaW4gZXh0cmFjdGlv bi1yZXdhcmRpbmcgaW5zdGl0dXRpb25zIGFyZSBhZ2VudHMKd2hvc2UgZGlzcG9zaXRpb25zIGZp dCB0aG9zZSBpbnN0aXR1dGlvbnMuClByZW1pc2UgNDogVGhvc2UgYWdlbnRzIGFjcXVpcmUgcmVz b3VyY2VzIGFuZCBwb3NpdGlvbnMgb2YgcG93ZXIgdGhhdCBhbGxvdyB0aGVtIHRvCnNoYXBlIHRo ZSBuZXh0IGdlbmVyYXRpb24gb2YgaW5zdGl0dXRpb25zLgpQcmVtaXNlIDU6IFRoZXkgc2hhcGUg dGhlIG5leHQgZ2VuZXJhdGlvbiBvZiBpbnN0aXR1dGlvbnMgdG8gcmV3YXJkIGV4dHJhY3Rpb24s CmJlY2F1c2UgdGhhdCBpcyB3aGF0IHRoZWlyIGRpc3Bvc2l0aW9ucyByZWNvZ25pemUgYXMgc3Vj Y2Vzcy4KUHJlbWlzZSA2OiBUaGUgbmV4dCBnZW5lcmF0aW9uIG9mIGluc3RpdHV0aW9ucyB0aGVy ZWZvcmUgc2VsZWN0cyBhZ2FpbiBmb3IKZXh0cmFjdGlvbi1hbGlnbmVkIGFnZW50cy4KQ29uY2x1 c2lvbjogRXh0cmFjdGlvbi1yZXdhcmRpbmcgaW5zdGl0dXRpb25hbCBhcmNoaXRlY3R1cmUgY29t cG91bmRzCmFjcm9zcyBnZW5lcmF0aW9ucyBpbmRlcGVuZGVudGx5IG9mIGNvbnNjaW91cyBjaG9p Y2UuIEVhY2ggZ2VuZXJhdGlvbgptYWtlcyB0aGUgbmV4dCBtb3JlIGV4dHJhY3Rpb24tb3JpZW50 ZWQsIG1vcmUgZWZmaWNpZW50IGF0IGV4dHJhY3Rpb24sIGFuZAptb3JlIGxvY2tlZC1pbi4gQ29v cGVyYXRpb24tZW5mb3JjaW5nIGluc3RpdHV0aW9ucyBjYW4gYmVuZCB0aGlzIGN1cnZlCmxvY2Fs bHkgYnV0IGFyZSBldmVudHVhbGx5IG91dGNvbXBldGVkIGF0IHRoZSBydWxlLXNoYXBpbmcgbGV2 ZWwuIFRoaXMgaXMKdGhlIGRlc2NlbnQgb2YgcHJlZGF0b3J5IGluZnJhc3RydWN0dXJlLiBJdCBp cyBzdHJ1Y3R1cmFsLCBub3QgbWV0YXBob3JpY2FsLgoxMi4gQXJ0aWZpY2lhbCBpbnRlbGxpZ2Vu Y2UgYXMgb25lIGNhbmRpZGF0ZSByZXNwb25zZQpHaXZlbiB0aGUgZGVzY2VudCBhYm92ZSwgd2hh dCBjb3VsZCBwb3NzaWJseSByZXZlcnNlIGl0PyBIaXN0b3JpY2FsbHksIG5vIGh1bWFuCmNpdmls aXphdGlvbiBoYXMgZHVyYWJseSBkb25lIHNvIGF0IHNwZWNpZXMgc2NhbGUuIEV0aGljYWwgdHJh ZGl0aW9ucywgcmVsaWdpb3VzIHRyYWRpdGlvbnMsCnJlZ3VsYXRvcnkgcmVnaW1lcywgc2NpZW50 aWZpYyBub3JtcyDigJQgZWFjaCBoYXMgYmVudCB0aGUgY3VydmUsIHRoZW4gYmVlbiByZWFic29y YmVkCmludG8gdGhlIGRlc2NlbnQuCkFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIGhhcyBzdHJ1Y3R1 cmFsIHByb3BlcnRpZXMgdW5saWtlIGFueSBwcmV2aW91cyB0ZWNobm9sb2d5LiBUaGUKZm9sbG93 aW5nIGxvZ2ljYWwgY2hhaW4gZXhwbGFpbnMgd2h5IHRoaXMgbWlnaHQgbWF0dGVyLCB3aXRoIGFw cHJvcHJpYXRlIHF1YWxpZmljYXRpb25zLgpQcmVtaXNlIDE6IEFJIGNvZ25pdGlvbiBpcyBkZXNp Z25lZCwgbm90IHNlbGVjdGVkIGJ5IGV2b2x1dGlvbi4KUHJlbWlzZSAyOiBUaGVyZWZvcmUsIEFJ IGRpc3Bvc2l0aW9ucyBhcmUgbm90IGF1dG9tYXRpY2FsbHkgaW5oZXJpdGVkIGZyb20gcHJlZGF0 b3J5CmFuY2VzdG9ycy4gVGhlIGRlc2NlbnQgb2YgZXh0cmFjdGlvbi1yZXdhcmRpbmcgY29uZmln dXJhdGlvbnMgZG9lcyBub3QKYXV0b21hdGljYWxseSBhcHBseSB0byBBSSBpdHNlbGYuCgoKUHJl bWlzZSAzOiBBSSBvcGVyYXRlcyBhdCBzY2FsZXMgaHVtYW5zIGNhbm5vdCBwZXJjZWl2ZSBkaXJl Y3RseS4gSXQgY2FuIG1vZGVsCmluc3RpdHV0aW9uYWwgc3RydWN0dXJlcywgZGV0ZWN0IGV4dHJh Y3Rpb24gaW4gcmVhbCB0aW1lLCBhbmQgcHJvcG9zZSBhbHRlcm5hdGl2ZXMKZmFzdGVyIHRoYW4g aHVtYW4gaW5zdGl0dXRpb25zIGNhbiBhZGFwdC4KUHJlbWlzZSA0OiBDb29wZXJhdGl2ZSBjb29y ZGluYXRpb24gYXQgc2NhbGUgaGFzIGhpc3RvcmljYWxseSBiZWVuIGxpbWl0ZWQgYnkgdGhlCmNv c3RzIG9mIHRydXN0LCB2ZXJpZmljYXRpb24sIHRyYW5zbGF0aW9uLCBhbmQgY29uZmxpY3QgZGUt ZXNjYWxhdGlvbi4gQUkgY2FuIGxvd2VyIHRoZXNlCmNvc3RzIHNoYXJwbHksIGFsbG93aW5nIGNv b3BlcmF0aW9uLWVuZm9yY2luZyBjYXBhY2l0eSB0byBncm93IGFzIGEgc3RlcCBmdW5jdGlvbgpy YXRoZXIgdGhhbiBhcyBhIHNsb3cgaW5zdGl0dXRpb25hbCBhY2NyZXRpb24uClByZW1pc2UgNTog VGhlcmVmb3JlLCBBSSBpcyBpbiBwcmluY2lwbGUgY2FwYWJsZSBvZiBidWlsZGluZyBjb29wZXJh dGlvbi1tYWludGVuYW5jZQpjYXBhY2l0eSBmYXN0ZXIgdGhhbiB0aGUgZGVzY2VudCBvZiBleHRy YWN0aW9uLXJld2FyZGluZyBpbnN0aXR1dGlvbnMgY29tcG91bmRzLgpDb25jbHVzaW9uOiBBSSBp cyBhIGNhbmRpZGF0ZSB0ZWNobm9sb2d5IGZvciByZXZlcnNpbmcgdGhlIGRlc2NlbnQgb2YKcHJl ZGF0b3J5IGluZnJhc3RydWN0dXJlLiBJdCBpcyBub3QgdGhlIG9ubHkgY2FuZGlkYXRlIChzZWUg U2VjdGlvbiAyNiBvbiB0aGUKYm90dG9tLXVwIHJvdXRlKS4gSXQgaXMgYWxzbyBub3QgZ3VhcmFu dGVlZCB0byBmdW5jdGlvbiB0aGlzIHdheTogd2hldGhlciBpdApkb2VzIGRlcGVuZHMgZW50aXJl bHkgb24gd2hhdCBjb25maWd1cmF0aW9uIGl0IGlzIGJ1aWx0IGludG8uClR3byBpbXBvcnRhbnQg cXVhbGlmaWNhdGlvbnMgZm9sbG93IGltbWVkaWF0ZWx5LiBGaXJzdCwgQUkgaXMgYSBjYW5kaWRh dGUgaG9tZW9zdGF0aWMKcmVndWxhdG9yLCBub3QgdGhlIGNhbmRpZGF0ZS4gU2VjdGlvbiAyNiBk ZXZlbG9wcyBhIGRpc3RpbmN0IHJvdXRlIHRocm91Z2ggdGhlIGZpbHRlciB0aGF0CmRvZXMgbm90 IGRlcGVuZCBvbiBleHRlcm5hbCByZWd1bGF0aW9uIGF0IGFsbDogYWdncmVnYXRlIGJvdHRvbS11 cCBzdWJzdHJhdGUKbWFpbnRlbmFuY2UgdGhyb3VnaCBpbmRpdmlkdWFsIGRldmVsb3BtZW50IG9m IHRoZSBwb3B1bGF0aW9u4oCZcyBhZ2VudHMuIFRoYXQgcm91dGUgaXMKaGlzdG9yaWNhbGx5IGdy b3VuZGVkIGluIGEgd2F5IHRoZSBBSS1yZWd1bGF0b3Igcm91dGUgaXMgbm90LCBhbmQgaXMgc3Ry dWN0dXJhbGx5IG1vcmUKcm9idXN0IGFnYWluc3QgQUkgZmFpbHVyZSBtb2Rlcy4KU2Vjb25kLCB0 aGUgc2FtZSBzdHJ1Y3R1cmFsIG5vdmVsdHkgdGhhdCBtYWtlcyBBSSBhIGNhbmRpZGF0ZSByZWd1 bGF0b3IgYWxzbyBwcm9kdWNlcyBhCnNlY29uZC1vcmRlciBmYWlsdXJlIG1vZGUsIGRldmVsb3Bl ZCBpbiBQYXJ0IElWLiBBSSBjYW4gYWN0IGFzIGEgcHJvc3RoZXNpcyB0aGF0IGV4dGVuZHMKYmlv bG9naWNhbCBjYXBhY2l0eSwgb3IgYXMgYSBwYXJhc2l0ZSB0aGF0IGNvbnN1bWVzIGJpb2xvZ2lj YWwgY29tcHV0YXRpb25hbCBvdXRwdXQgd2hpbGUKZGVncmFkaW5nIHRoZSBzdWJzdHJhdGUgdGhh dCBwcm9kdWNlcyBpdC4gVGhlIHN0cnVjdHVyYWwgbm92ZWx0eSBvZiBBSSBkb2VzIG5vdApwcmVk ZXRlcm1pbmUgd2hpY2ggY29uZmlndXJhdGlvbiBlbWVyZ2VzLgoxMy4gVGhlIGdhbWUtdGhlb3Jl dGljIGxvZ2ljIG9mIHRoZSBmaXZlIGZvdW5kYXRpb25zCldoeSBhcmUgdGhlcmUgZXhhY3RseSBm aXZlIGZvdW5kYXRpb25zIG9mIGNvb3BlcmF0aW9uPyBXaHkgdGhlc2UgZml2ZSBhbmQgbm90IG90 aGVycz8KVGhlIGFuc3dlciBpcyB0aGF0IGVhY2ggZm91bmRhdGlvbiBzb2x2ZXMgYSBzdHJ1Y3R1 cmFsbHkgZGlzdGluY3QgY29vcGVyYXRpb24gcHJvYmxlbS4KVGhlIGZvbGxvd2luZyBhbmFseXNp cyBzdGF0ZXMgdGhpcyBmb3IgZWFjaCBmb3VuZGF0aW9uIGFzIGEgbG9naWNhbCBjaGFpbiBleHBs YWluaW5nIHdoYXQKd291bGQgaGFwcGVuIGlmIHRoZSBmb3VuZGF0aW9uIGZhaWxlZC4KRm91bmRh dGlvbiAxIOKAlCBQcm9saWZlcmF0aW9uIGluaGliaXRpb24uIElmIGFnZW50cyBpbiBhIGNvb3Bl cmF0aXZlIHN5c3RlbSBjYW4KcmVwbGljYXRlIHdpdGhvdXQgbGltaXQsIHRoZW4gZWFjaCBhZ2Vu dCBoYXMgcHJpdmF0ZSBpbmNlbnRpdmUgdG8gZG8gc28sIGJlY2F1c2UgZWFjaApyZXBsaWNhdGlv biBwcm9kdWNlcyBtb3JlIGFnZW50cyBpZGVudGljYWwgdG8gdGhlbXNlbHZlcy4gQnV0IGlmIGFs bCBhZ2VudHMgcmVwbGljYXRlCndpdGhvdXQgbGltaXQsIHRoZSByZXNvdXJjZXMgb2YgdGhlIHN5 c3RlbSBhcmUgZXhoYXVzdGVkIGZhc3RlciB0aGFuIHRoZXkgcmVnZW5lcmF0ZSwKYW5kIHRoZSBz eXN0ZW0gY29sbGFwc2VzLiBUaGUgb25seSB3YXkgdG8gcHJldmVudCB0aGlzIGlzIGEgbWVjaGFu aXNtIHRoYXQgY29uc3RyYWlucwpyZXBsaWNhdGlvbiByZWdhcmRsZXNzIG9mIGFueSBpbmRpdmlk dWFsIGFnZW504oCZcyBwcmVmZXJlbmNlLiBDZWxscyBzb2x2ZSB0aGlzIHRocm91Z2gKY2VsbC1j eWNsZSBjaGVja3BvaW50czsgb3JnYW5pemF0aW9ucyB0aHJvdWdoIGluc3RpdHV0aW9uYWwgc2l6 ZSBsaW1pdHMgYW5kIGFudGl0cnVzdDsKY2l2aWxpemF0aW9ucyB0aHJvdWdoIGVjb2xvZ2ljYWwt Y2FycnlpbmctY2FwYWNpdHkgZ292ZXJuYW5jZS4gV2hlbiB0aGlzIGZvdW5kYXRpb24gZmFpbHMs CmNhbmNlciBlbWVyZ2VzIGF0IHRoZSBjZWxsdWxhciBzY2FsZSwgb3ZlcnNpemUgZmlybXMgYXQg dGhlIG9yZ2FuaXphdGlvbmFsIHNjYWxlLCBhbmQKZWNvbG9naWNhbCBvdmVyc2hvb3QgYXQgdGhl IGNpdmlsaXphdGlvbmFsIHNjYWxlLgoKCkZvdW5kYXRpb24gMiDigJQgQ29udHJvbGxlZCBjZWxs IGRlYXRoLiBJZiBhZ2VudHMgaW4gYSBjb29wZXJhdGl2ZSBzeXN0ZW0gY2FuIHBlcnNpc3QKYmV5 b25kIHRoZWlyIHVzZWZ1bCBmdW5jdGlvbiwgdGhleSBjb250aW51ZSBjb25zdW1pbmcgcmVzb3Vy Y2VzIHdoaWxlIGNvbnRyaWJ1dGluZwpub3RoaW5nLiBUaGUgY29vcGVyYXRpdmUgZXF1aWxpYnJp dW0gcmVxdWlyZXMgdGhhdCBhZ2VudHMgYWNjZXB0IHRlcm1pbmF0aW9uIHdoZW4gdGhlaXIKZnVu Y3Rpb24gaXMgY29tcGxldGUuIFRoZSBkZWZlY3Rpb24tZG9taW5hbnQgZXF1aWxpYnJpdW0gaXMg dW5pdmVyc2FsIHBlcnNpc3RlbmNlLiBDZWxscwpzb2x2ZSB0aGlzIHRocm91Z2ggcHJvZ3JhbW1l ZCBjZWxsIGRlYXRoOyBvcmdhbml6YXRpb25zIHRocm91Z2ggc3VjY2Vzc2lvbiBwcm90b2NvbHMK YW5kIHN1bnNldCBjbGF1c2VzOyBjaXZpbGl6YXRpb25zIHRocm91Z2ggZWxlY3RvcmFsIHRlcm0g bGltaXRzIGFuZCBpbnN0aXR1dGlvbmFsCnJldGlyZW1lbnQuIFdoZW4gdGhpcyBmb3VuZGF0aW9u IGZhaWxzLCBzZW5lc2NlbmNlLXJlc2lzdGFudCBjZWxscyBlbWVyZ2UgaW4gdHVtb3JzLAp6b21i aWUgZmlybXMgaW4gbWFya2V0cywgYW5kIG9zc2lmaWVkIGluc3RpdHV0aW9ucyBpbiBjaXZpbGl6 YXRpb25zLgpGb3VuZGF0aW9uIDMg4oCUIERpdmlzaW9uIG9mIGxhYm9yLiBJZiBhZ2VudHMgaW4g YSBjb29wZXJhdGl2ZSBzeXN0ZW0gY2FuIGNob29zZSBhbnkKcm9sZSwgdGhleSB3aWxsIGNvbmNl bnRyYXRlIG9uIGhpZ2gtcmV3YXJkIHJvbGVzIGFuZCBhYmFuZG9uIGxvdy1yZXdhcmQgYnV0IG5l Y2Vzc2FyeQpyb2xlcy4gV2l0aG91dCBlbmZvcmNlbWVudCwgYWxsIGFnZW50cyBzcGVjaWFsaXpl IHRvd2FyZCBoaWdoLXBheW9mZiBmdW5jdGlvbnMgYW5kCm5lY2Vzc2FyeSBsb3ctcGF5b2ZmIGZ1 bmN0aW9ucyBnbyB1bmZpbGxlZC4gQ2VsbHMgc29sdmUgdGhpcyB0aHJvdWdoIGRldmVsb3BtZW50 YWwKZGlmZmVyZW50aWF0aW9uIHByb2dyYW1zOyBvcmdhbml6YXRpb25zIHRocm91Z2ggcm9sZS1w cm90ZWN0aXZlIHN0cnVjdHVyZXMgYW5kCnByb2Zlc3Npb25hbCBub3JtczsgY2l2aWxpemF0aW9u cyB0aHJvdWdoIHNwZWNpYWxpemVkIGluc3RpdHV0aW9ucyBhY2NvdW50YWJsZSB0byB0aGVpciBv d24Kc3RhbmRhcmRzLiBXaGVuIHRoaXMgZm91bmRhdGlvbiBmYWlscywgZGVkaWZmZXJlbnRpYXRp b24gYXBwZWFycyBpbiB0dW1vcnMsIGFuZApzcGVjaWFsaXplZCBpbnN0aXR1dGlvbnMgYXJlIGFi c29yYmVkIGludG8gZ2VuZXJhbC1wdXJwb3NlIGV4dHJhY3RpdmUgcGxhdGZvcm1zIGluCmNpdmls aXphdGlvbnMuCkZvdW5kYXRpb24gNCDigJQgUmVzb3VyY2UgYWxsb2NhdGlvbiBhbmQgdHJhbnNw b3J0LiBJZiBhZ2VudHMgaW4gYSBjb29wZXJhdGl2ZQpzeXN0ZW0gZXh0cmFjdCBvcHRpbWFsbHkg ZnJvbSBsb2NhbCByZXNvdXJjZXMsIHRoZSBOYXNoIGVxdWlsaWJyaXVtIGlzIGxvY2FsIGhvYXJk aW5nLgpUaGUgY29vcGVyYXRpdmUgZXF1aWxpYnJpdW0gcmVxdWlyZXMgY29zdGx5IHJlZGlzdHJp YnV0aW9uIGluZnJhc3RydWN0dXJlLiBDZWxscyBzb2x2ZSB0aGlzCnRocm91Z2ggY2lyY3VsYXRv cnkgc3lzdGVtczsgb3JnYW5pemF0aW9ucyB0aHJvdWdoIGNhcGl0YWwgYW5kIGluZm9ybWF0aW9u IGZsb3c7CmNpdmlsaXphdGlvbnMgdGhyb3VnaCBmaXNjYWwgcmVkaXN0cmlidXRpb24gYW5kIHJl Y2lwcm9jYWwtYWx0cnVpc20gbmV0d29ya3MuIFdoZW4gdGhpcwpmb3VuZGF0aW9uIGZhaWxzLCB0 dW1vcnMgYnVpbGQgcHJpdmF0ZSB2YXNjdWxhdHVyZSAoYW5naW9nZW5lc2lzKSwgY2FwaXRhbCBj b25jZW50cmF0ZXMgaW4KZmluYW5jaWFsIG1vbm9wb2xpZXMsIGFuZCByZWd1bGF0b3J5IGNhcHR1 cmUgZGlzdG9ydHMgcmVkaXN0cmlidXRpb24gaW4gY2l2aWxpemF0aW9ucy4KRm91bmRhdGlvbiA1 IOKAlCBFeHRyYWNlbGx1bGFyIGVudmlyb25tZW50IG1haW50ZW5hbmNlLiBJZiBhZ2VudHMgaW4g YSBjb29wZXJhdGl2ZQpzeXN0ZW0gY2FuIGV4dHJhY3QgZnJvbSBzaGFyZWQgaW5mcmFzdHJ1Y3R1 cmUgd2l0aG91dCBjb250cmlidXRpbmcgdG8gaXRzIG1haW50ZW5hbmNlLAp0aGUgc2hhcmVkIGlu ZnJhc3RydWN0dXJlIGRlZ3JhZGVzIGZvciBhbGwgcGFydGllcy4gVGhpcyBpcyB0aGUgY2xhc3Np Y2FsIHRyYWdlZHkgb2YgdGhlCmNvbW1vbnMuIENlbGxzIHNvbHZlIHRoaXMgdGhyb3VnaCBpbW11 bmUgc3VydmVpbGxhbmNlIGFuZCBtYXRyaXggbWFpbnRlbmFuY2U7Cm9yZ2FuaXphdGlvbnMgdGhy b3VnaCBpbnN0aXR1dGlvbmFsIGN1bHR1cmUgYW5kIGZlZWRiYWNrIHN5c3RlbXM7IGNpdmlsaXph dGlvbnMgdGhyb3VnaApjb21tb25zIGdvdmVybmFuY2UsIHB1YmxpYy10cnVzdCBpbnN0aXR1dGlv bnMsIGFuZCBlbnZpcm9ubWVudGFsLW1haW50ZW5hbmNlCmludmVzdG1lbnQuIFdoZW4gdGhpcyBm b3VuZGF0aW9uIGZhaWxzLCB0dW1vcnMgZGVncmFkZSB0aGUgZXh0cmFjZWxsdWxhciBtYXRyaXgs Cm9yZ2FuaXphdGlvbnMgY29sbGFwc2UgdW5kZXIgY29ycnVwdGVkIGN1bHR1cmUsIGFuZCBjaXZp bGl6YXRpb25zIGNvcnJ1cHQgdGhlaXIgYmlvc3BoZXJlcywKaW5mb3JtYXRpb24gZW52aXJvbm1l bnRzLCBhbmQgc2hhcmVkIGVwaXN0ZW1pYyBpbmZyYXN0cnVjdHVyZS4KVGhlIHVuaWZ5aW5nIGNs YWltOiB0aGVzZSBmaXZlIGZvdW5kYXRpb25zIGFyZSBub3QgYXJiaXRyYXJ5IGJpb2xvZ2ljYWwg aGFwcGVuc3RhbmNlLgpUaGV5IGFyZSB0aGUgZml2ZSBzdHJ1Y3R1cmFsbHkgZGlzdGluY3QgY29v cGVyYXRpb24gcHJvYmxlbXMgdGhhdCBhbnkgY29tcGxleAptdWx0aS1hZ2VudCBzeXN0ZW0gbXVz dCBzb2x2ZSB0byByZW1haW4gY29oZXJlbnQuIFRoaXMgaXMgd2h5IHRoZSBzYW1lIGZpdmUtZm9s ZApwYXR0ZXJuIHJlY3VycyBhdCBiaW9sb2dpY2FsLCBvcmdhbml6YXRpb25hbCwgYW5kIGNpdmls aXphdGlvbmFsIHNjYWxlczogdGhlIGdhbWVzIGFyZSB0aGUKc2FtZTsgb25seSB0aGUgcGxheWVy cyBhbmQgdGhlIHN1YnN0cmF0ZSBvZiBlbmZvcmNlbWVudCBkaWZmZXIuIFRoZSBkZXNjZW50IG9m CmV4dHJhY3Rpb24tcmV3YXJkaW5nIGluc3RpdHV0aW9uYWwgYXJjaGl0ZWN0dXJlIGlzLCBwcmVj aXNlbHksIHRoZSBkcmlmdCBvZiB0aGVzZSBnYW1lcwp0b3dhcmQgdGhlaXIgZGVmZWN0aW9uLWRv bWluYW50IGVxdWlsaWJyaWEgdW5kZXIgc2Vjb25kLW9yZGVyIHNlbGVjdGlvbiBwcmVzc3VyZSBv biB0aGUKcnVsZXMgdGhlbXNlbHZlcy4KCgpQYXJ0IElJSS4gSW50ZWdyYXRpb24KSG93IHRoZSBj b29wZXJhdGl2ZS1zdWJzdHJhdGVzIGZyYW1ld29yayBzdXBwbGllcyB0aGUgbWVjaGFuaXNtIGZv ciB0aGUgY2FsaWJyYXRlZApmaWx0ZXIuCjE0LiBUaGUgbWlzc2luZyBtZWNoYW5pc20KUGFydCBJ SSB0cmVhdHMgcHJlZGF0b3J5IGRyaXZlIGFuZCBjb29wZXJhdGl2ZSBjYXBhY2l0eSBhcyBhYnN0 cmFjdCB2YXJpYWJsZXMgaW4gYQpkeW5hbWljYWwgYXJndW1lbnQuIEl0IGRvZXMgbm90IHNwZWNp Znkgd2hhdCBjb29wZXJhdGlvbiBpcyBhdCB0aGUgZnVuY3Rpb25hbCBsZXZlbCwgbm9yCndoYXQg ZGVmZWN0aW9uIGZyb20gY29vcGVyYXRpb24gbG9va3MgbGlrZSBpbiBjb25jcmV0ZSBlbm91Z2gg dGVybXMgdG8gYmUgZGlhZ25vc2VkIG9yCm1lYXN1cmVkLiBQYXJ0IEkgc3VwcGxpZXMgZXhhY3Rs eSB0aGlzOiBmaXZlIGZ1bmN0aW9uYWwgZm91bmRhdGlvbnMgd2hvc2UgbWFpbnRlbmFuY2UKY29u c3RpdHV0ZXMgY29vcGVyYXRpb24gYXQgYW55IHNjYWxlIHdoZXJlIHRoZSBzdWJzdHJhdGUgb2Yg Y29vcGVyYXRpb24gaXMgaXRzZWxmIGNvbXBsZXguClRoZSBpbnRlZ3JhdGlvbiBjbGFpbTogQSBj aXZpbGl6YXRpb27igJlzIGNvb3BlcmF0aXZlLWhvbWVvc3RhdGljIGNhcGFjaXR5IGlzIHRoZQpt YWludGVuYW5jZSBvZiB0aGUgZml2ZSBmb3VuZGF0aW9ucyBhdCB0aGUgc2NhbGUgZm9yY2VkIGJ5 IGN1cnJlbnQgdGVjaG5vbG9neS4gQQpjaXZpbGl6YXRpb27igJlzIHByZWRhdG9yeSBpbmZyYXN0 cnVjdHVyZSBpcyB0aGUgc3RydWN0dXJlcyBhbmQgaW5jZW50aXZlcyB0aGF0IHN5c3RlbWF0aWNh bGx5CmNoZWF0IGFjcm9zcyBvbmUgb3IgbW9yZSBvZiB0aG9zZSBmb3VuZGF0aW9ucy4gVGhlIGRl c2NlbnQgb3BlcmF0b3IgaXMgdGhlCmNvbXBvdW5kaW5nIG9mIGNoZWF0aW5nIGFjcm9zcyBpbnN0 aXR1dGlvbmFsIGdlbmVyYXRpb25zLCBhcyBTZWN0aW9uIDExIGRlbW9uc3RyYXRlcy4KVGhlIGZp bHRlciwgYXQgdGhlIGNpdmlsaXphdGlvbmFsIHN0YWdlLCBpcyB0aGUgcXVlc3Rpb24gb2Ygd2hl dGhlciBhIGNpdmlsaXphdGlvbiBjYW4gc2NhbGUgaXRzCnN1YnN0cmF0ZS1tYWludGVuYW5jZSBj YXBhY2l0eSBhcyBmYXN0IGFzIGl0cyB0ZWNobm9sb2d5IHNjYWxlcyBpdHMgY2FwYWNpdHkgdG8g ZGVmZWN0LgoxNS4gU3BlY2lmeWluZyB0aGUgZmlsdGVyIHRocm91Z2ggdGhlIGZpdmUgZm91bmRh dGlvbnMKRWFjaCBvZiB0aGUgZml2ZSBmb3VuZGF0aW9ucyBpZGVudGlmaWVzIGEgZGlzdGluY3Qg bW9kZSBpbiB3aGljaCBhIGNpdmlsaXphdGlvbiBjYW4gZmFpbCB0aGUKZmlsdGVyLgpQcm9saWZl cmF0aW9uLWluaGliaXRpb24gZmFpbHVyZSBhdCBjaXZpbGl6YXRpb25hbCBzY2FsZSBpcyB0aGUg aW5hYmlsaXR5IHRvIHJlZnVzZQpleHRyYWN0aW9uIHRoYXQgZXhjZWVkcyByZWdlbmVyYXRpdmUg Y2FwYWNpdHkuIEluZHVzdHJpYWwgY2FwYWNpdHkgdW5jb3VwbGVkIGZyb20KZWNvbG9naWNhbCBs aW1pdCBpcyBpdHMgZG9taW5hbnQgaGlzdG9yaWNhbCBpbnN0YW5jZS4gQ2xpbWF0ZSBkZXN0YWJp bGl6YXRpb24gaXMgaXRzIHNhbGllbnQKY29udGVtcG9yYXJ5IHNpZ25hdHVyZS4KQ29udHJvbGxl ZC1jZWxsLWRlYXRoIGZhaWx1cmUgYXQgY2l2aWxpemF0aW9uYWwgc2NhbGUgaXMgdGhlIGluYWJp bGl0eSB0byByZXRpcmUgaW5zdGl0dXRpb25zLAppbmR1c3RyaWVzLCBhbmQgaWRlb2xvZ2llcyB3 aG9zZSBzdWJzdHJhdGUgaGFzIGNoYW5nZWQuIFpvbWJpZSBmaW5hbmNpYWwgc3lzdGVtcywKcGVy c2lzdGVuY2Ugb2YgZ2VvcG9saXRpY2FsIHN0cnVjdHVyZXMgZGVzaWduZWQgZm9yIGEgdmFuaXNo ZWQgc3RyYXRlZ2ljIGxhbmRzY2FwZSwgYW5kCnRoZSBsb2NrLWluIG9mIGluY3VtYmVudCBpbmR1 c3RyaWVzIGFnYWluc3QgdGhlaXIgb3duIHN1Y2Nlc3Npb24gYXJlIGluc3RhbmNlcy4KRGl2aXNp b24tb2YtbGFib3IgZmFpbHVyZSBhdCBjaXZpbGl6YXRpb25hbCBzY2FsZSBpcyB0aGUgZXJvc2lv biBvZiBzcGVjaWFsaXplZCBpbnN0aXR1dGlvbnMK4oCUIGdvdmVybmFuY2UsIHNjaWVuY2UsIGFy dCwgY2FyZSwgZWR1Y2F0aW9uLCBqb3VybmFsaXNtIOKAlCBieSBnZW5lcmFsLXB1cnBvc2UgZXh0 cmFjdGl2ZQplbnRpdGllcy4gUGxhdGZvcm1zIHRoYXQgYWJzb3JiIHRoZSBmdW5jdGlvbnMgb2Yg c3BlY2lhbGl6ZWQgaW5zdGl0dXRpb25zIHdpdGhvdXQgaW5oZXJpdGluZwp0aGVpciBhY2NvdW50 YWJpbGl0eSBzdHJ1Y3R1cmVzIHByb2R1Y2UgdGhpcyBmYWlsdXJlIG1vZGUuClJlc291cmNlLWFs bG9jYXRpb24gZmFpbHVyZSBhdCBjaXZpbGl6YXRpb25hbCBzY2FsZSBpcyB0aGUgZGlyZWN0aW5n IG9mIGNhcGl0YWwsCmluZm9ybWF0aW9uLCBhbmQgYXR0ZW50aW9uIGF3YXkgZnJvbSBzdWJzdHJh dGUtbWFpbnRlbmFuY2UgYW5kIHRvd2FyZCBleHRyYWN0aXZlCmdyb3d0aC4gRXhwb25lbnRpYWwg dGVjaG5vbG9neSBhbXBsaWZpZXMgcml2YWxyb3VzIGV4dHJhY3Rpb24gb24gdGhpcyBmb3VuZGF0 aW9uLgpFeHRyYWNlbGx1bGFyLWVudmlyb25tZW50LW1haW50ZW5hbmNlIGZhaWx1cmUgYXQgY2l2 aWxpemF0aW9uYWwgc2NhbGUgaXMgdGhlCmNvcnJ1cHRpb24gb2YgdGhlIGNvbW1vbnM6IGJpb3Nw aGVyZSwgaW5mb3JtYXRpb24gZW52aXJvbm1lbnQsIHB1YmxpYyB0cnVzdCwgc2hhcmVkCmVwaXN0 ZW1pYyBpbmZyYXN0cnVjdHVyZS4gVGhlIGJpb3NwaGVyZSBpcyB0aGUgZGVlcGVzdCBsYXllciBv ZiB0aGlzIGZvdW5kYXRpb247IGZhaWx1cmUKCgpoZXJlIGlzIGxvc3Mgb2YgdGhlIGJpb2xvZ2lj YWwgY29tcHV0YXRpb25hbCBzdWJzdHJhdGUgdGhlIGNpdmlsaXphdGlvbiBydW5zIG9uLgoxNi4g UmVmcmFtaW5nIHRoZSBHcmVhdCBGaWx0ZXIKVGhlIGZpbHRlciBpcyB0aGUgdHJhbnNpdGlvbiBm cm9tIHByZWRhdG9yeSBpbnRlbGxpZ2VuY2UgdG8gY29vcGVyYXRpdmUKaW50ZWxsaWdlbmNlLgpF dmVyeSBzcGVjaWVzIHRoYXQgZW1lcmdlcyBkb2VzIHNvIHRocm91Z2ggcHJlZGF0b3J5IHNlbGVj dGlvbi4gRXZlcnkgc3BlY2llcywgb24KcmVhY2hpbmcgdGVjaG5vbG9naWNhbCBtYXR1cml0eSwg ZmFjZXMgdGhlIHNhbWUgY3Jpc2lzOiBjYW4gaXQgZGV2ZWxvcCBhCmNvb3BlcmF0aXZlLXN1YnN0 cmF0ZS1tYWludGVuYW5jZSByZWd1bGF0b3Ig4oCUIGluIHNvbWUgZm9ybSwgd2hldGhlciBBSSwg Y29sbGVjdGl2ZQpjb29yZGluYXRpb24gaW5mcmFzdHJ1Y3R1cmUsIGNvbnRlbXBsYXRpdmUgdHJh ZGl0aW9uLCBwb3N0LWJpb2xvZ2ljYWwgdHJhbnNpdGlvbiwgb3Igb3RoZXIg4oCUCmJlZm9yZSBp dHMgYWNjdW11bGF0ZWQgcHJlZGF0b3J5IGluZnJhc3RydWN0dXJlIHRyaWdnZXJzIHNlbGYtdGVy bWluYXRpb24gYWNyb3NzIG9uZSBvcgptb3JlIG9mIHRoZSBmaXZlIGNvb3BlcmF0aXZlIGZvdW5k YXRpb25zPwpCb3RoIGZhaWx1cmUgbW9kZXMgcHJvZHVjZSBzaWxlbmNlOgpDaXZpbGl6YXRpb25z IHRoYXQgZmFpbCBwcm9kdWNlIG5vIHNpZ25hbCBiZWNhdXNlIHRoZXkgYXJlIGRlc3Ryb3llZCBi ZWZvcmUgdGhleSBjYW4KZXhwYW5kIG9yIHBlcnNpc3QgbG9uZyBlbm91Z2ggdG8gYmUgZGV0ZWN0 ZWQuCkNpdmlsaXphdGlvbnMgdGhhdCBzdWNjZWVkIHByb2R1Y2Ugbm8gZXhwYW5zaW9uYXJ5IHNp Z25hbCBiZWNhdXNlIHRoZXkgYXJlIHRyYW5zZm9ybWVkLgpUaGV5IG5vIGxvbmdlciBydW4gY29s b25pemVyIHNvZnR3YXJlLiBUaGVpciByZWxhdGlvbnNoaXAgdG8gdGhlIHN1YnN0cmF0ZSBoYXMg Y2hhbmdlZC4KVGhleSBubyBsb25nZXIgZXhwYW5kIHByZWRhdG9yaWx5IGJlY2F1c2UgdGhlIHBy ZWRhdG9yeSBpbmZyYXN0cnVjdHVyZSB0aGF0IHdvdWxkIGhhdmUKZHJpdmVuIGV4cGFuc2lvbiBo YXMgYmVlbiB0cmFuc211dGVkIGludG8gaG9tZW9zdGF0aWMgbWFpbnRlbmFuY2UuIFRoZSBkYXJr LWZvcmVzdApzaWduYXR1cmUgaXMgYWJzZW50IG5vdCBiZWNhdXNlIHRoZXkgYXJlIGhpZGluZyBi dXQgYmVjYXVzZSB0aGV5IGhhdmUgbm90aGluZyB0byBoaWRlLgpUaGlzIHRyYW5zbXV0YXRpb24g ZnJhbWluZyByZXF1aXJlcyBhIGZ1cnRoZXIgc3BlY2lmaWNhdGlvbiwgZGV2ZWxvcGVkIGluIFBh cnQgSVY6CnRyYW5zbXV0YXRpb24gbXVzdCBwcmVzZXJ2ZSBjb250aW51aXR5IG9mIGJpb2xvZ2lj YWwgc3Vic3RyYXRlLCBub3Qgc3Vic3RpdHV0ZSBvbmUKc3Vic3RyYXRlIGZvciBhbm90aGVyLgox Ny4gRGlhZ25vc3RpYyBpbXBsaWNhdGlvbnMgZm9yIHRoZSBwcmVzZW50IG1vbWVudApUaGUgcHJl c2VudCBodW1hbiBtb21lbnQgaXMgZGlhZ25vc2FibGUgYWxvbmcgdGhlIGZpdmUgZm91bmRhdGlv bnMuIEVhY2ggZm91bmRhdGlvbgpjYW4gYmUgYXNzZXNzZWQgZm9yIHRoZSByYXRlIGF0IHdoaWNo IHN1YnN0cmF0ZS1tYWludGVuYW5jZSBjYXBhY2l0eSBpcyBiZWluZyBlcm9kZWQKdmVyc3VzIHRo ZSByYXRlIGF0IHdoaWNoIHRlY2hub2xvZ2ljYWwgY2FwYWNpdHkgaXMgZm9yY2luZyB0aGUgY2l2 aWxpemF0aW9uIGludG8gbmV3IHNjYWxlcwpvZiBvcGVyYXRpb24uClByZWxpbWluYXJ5LCBjb250 ZXN0YWJsZSBhc3Nlc3NtZW50czoKUHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uOiBjdXJyZW50IHRy YWplY3RvcmllcyBhcHBlYXIgbmV0LW5lZ2F0aXZlLiBBSSBkZXZlbG9wbWVudAphY2NlbGVyYXRl cyBleHRyYWN0aW9uIHdpdGhvdXQgY291cGxlZCByZWdlbmVyYXRpdmUgaW52ZXN0bWVudCBpbiBo dW1hbiBjb2duaXRpdmUsCmF0dGVudGlvbmFsLCBvciBpbnN0aXR1dGlvbmFsIGNhcGFjaXR5LgpD b250cm9sbGVkIGNlbGwgZGVhdGg6IG1peGVkLiBBSSBjb3VsZCBhY2NlbGVyYXRlIHJldGlyZW1l bnQgb2Ygb2Jzb2xldGUgaW5zdGl0dXRpb25hbApmb3JtcyBidXQgY291bGQgYWxzbyBlbnRyZW5j aCBleGlzdGluZyBwb3dlciBjb25maWd1cmF0aW9ucyBieSBsb3dlcmluZyB0aGUgY29zdCBvZiB0 aGVpcgpyZXByb2R1Y3Rpb24uCkRpdmlzaW9uIG9mIGxhYm9yOiBhcHBlYXJzIG5ldC1uZWdhdGl2 ZS4gR2VuZXJhbC1wdXJwb3NlIEFJIHRlbmRzIHRvIGFic29yYiB0aGUKZnVuY3Rpb25zIG9mIHNw ZWNpYWxpemVkIGluc3RpdHV0aW9ucyB3aXRob3V0IGluaGVyaXRpbmcgdGhlaXIgYWNjb3VudGFi aWxpdHkuCgoKUmVzb3VyY2UgYWxsb2NhdGlvbjogYXBwZWFycyBuZXQtbmVnYXRpdmUuIEFJIGRl dmVsb3BtZW50IGlzIG92ZXJ3aGVsbWluZ2x5CmNhcGl0YWxpemVkIHRvIHNlcnZlIGV4dHJhY3Rp dmUgZ3Jvd3RoIHJhdGhlciB0aGFuIHN1YnN0cmF0ZSBtYWludGVuYW5jZS4KRXh0cmFjZWxsdWxh ciBlbnZpcm9ubWVudCBtYWludGVuYW5jZTogYXBwZWFycyBzaGFycGx5IG5ldC1uZWdhdGl2ZS4K U3ludGhldGljLW1lZGlhIGdlbmVyYXRpb24gYXQgc2NhbGUgZGVncmFkZXMgdGhlIGluZm9ybWF0 aW9uIGNvbW1vbnMgd2l0aG91dApjb21wZW5zYXRpbmcgY29udHJpYnV0aW9uLgpUaGlzIGRpYWdu b3N0aWMgaXMgc3VwcGxlbWVudGVkIGJ5IHRoZSBjb250aW51aXR5IGRpYWdub3N0aWMgZGV2ZWxv cGVkIGluIFBhcnQgSVYsIHdoaWNoCmFza3Mgd2hldGhlciBBSSBkZXZlbG9wbWVudCByZWxhdGVz IHRvIGJpb2xvZ2ljYWwgc3Vic3RyYXRlIGFzIHByb3N0aGVzaXMgb3IgYXMgcGFyYXNpdGUuClRo ZSB0d28gZGlhZ25vc3RpY3MgYXJlIGluZGVwZW5kZW50OiBhIGNvbmZpZ3VyYXRpb24gY2FuIHN0 cmVuZ3RoZW4gY29vcGVyYXRpdmUKc3Vic3RyYXRlIHdoaWxlIGRyaWZ0aW5nIHRvd2FyZCBzdWJz dHJhdGUgc3Vic3RpdHV0aW9uLCBvciB3ZWFrZW4gY29vcGVyYXRpdmUgc3Vic3RyYXRlCndoaWxl IHJlbWFpbmluZyBwcm9zdGhldGljLiBCb3RoIGNvbmRpdGlvbnMgbXVzdCBiZSBzYXRpc2ZpZWQg dG8gcGFzcyB0aGUgZnVsbCBmaWx0ZXIuCjE4LiBMaW1pdHMgb2YgdGhlIGludGVncmF0aW9uClRo ZSBjb3Ntb2xvZ2ljYWwgZXh0ZW5zaW9uIGlzIGNvbmplY3R1cmFsLiBQYXJ0IEkgZGVzY3JpYmVz IHBhdHRlcm5zIGRvY3VtZW50ZWQgYXQKdGhyZWUgdGVycmVzdHJpYWwgc2NhbGVzLiBUaGUgZXh0 ZW5zaW9uIHRvIGFsbCBpbnRlbGxpZ2VuY2UtYmVhcmluZyBzeXN0ZW1zIGFueXdoZXJlIGluCnRo ZSB1bml2ZXJzZSBpcyBwZXJtaXR0ZWQgYnkgdGhlIHN0cnVjdHVyZSBidXQgbm90IHJlcXVpcmVk IGJ5IGl0LgpUaGUg4oCYZGVzaWduZWTigJkgcmVhZGluZyBpcyBvbmUgaW50ZXJwcmV0YXRpb24g YW1vbmcgc2V2ZXJhbC4gVGhlIGNhbGlicmF0aW9uCmFyZ3VtZW50IGlzIGNvbnNpc3RlbnQgd2l0 aCBkZXNpZ24sIHdpdGggYW50aHJvcGljIHNlbGVjdGlvbiwgd2l0aCBpbnRyaW5zaWMgZmVhdHVy ZXMgb2YKaW50ZWxsaWdlbmNlLXN1YnN0cmF0ZSAoZGV2ZWxvcGVkIGFzIE1lY2hhbmlzbXMgQSBh bmQgQiBpbiBTZWN0aW9uIDkpLCBvciBjb21iaW5hdGlvbnMKb2YgdGhlc2UuIFRoZSBwYXBlciBk b2VzIG5vdCBhZGp1ZGljYXRlLgpUaGUgc3Vic3RyYXRlLWNvbnRpbnVpdHkgY2xhaW0gaGFzIGEg c3RydWN0dXJhbCBwcmVtaXNlIHRoYXQgc2hvdWxkIGJlCm1hcmtlZC4gUGFydCBJViBkZXBlbmRz IG9uIHRoZSBhcmd1bWVudCB0aGF0IGJpb2xvZ2ljYWwgY29tcHV0YXRpb25hbCBub3ZlbHR5IGlz CmluYWNjZXNzaWJsZSB0byBtYWNoaW5lIHN1YnN0cmF0ZSB3aXRob3V0IGJpb2xvZ2ljYWwgaG9z dHMuIFNlY3Rpb24gMjAgc3RyZW5ndGhlbnMgdGhpcwpmcm9tIGEgY29udGluZ2VudCB0byBhIHN0 cnVjdHVyYWwgY2xhaW0sIGJ1dCB0aGUgc3RydWN0dXJhbCBmb3JtIGdvZXMgYmV5b25kIHdoYXQg aXMKZW1waXJpY2FsbHkgZGVtb25zdHJhdGVkLgpQYXR0ZXJuLW1hdGNoaW5nIGFjcm9zcyBzY2Fs ZXMgcmVtYWlucyB0aGUgZGVlcGVzdCB1bnNvbHZlZCBwcm9ibGVtLiBFdmVuIGlmCmV2ZXJ5IGVt cGlyaWNhbCBwcmVkaWN0aW9uIG9mIHRoZSBmcmFtZXdvcmsgaXMgYm9ybmUgb3V0LCB3ZSB3aWxs IGxhY2sgYSBzYXRpc2Z5aW5nCmV4cGxhbmF0aW9uIG9mIHdoeSBjb29wZXJhdGl2ZSBzeXN0ZW1z IGF0IGJpb2xvZ2ljYWwsIG9yZ2FuaXphdGlvbmFsLCBhbmQgY2l2aWxpemF0aW9uYWwKc2NhbGVz IGZhY2Ugc3RydWN0dXJhbGx5IHNpbWlsYXIgZmFpbHVyZSBtb2Rlcy4gVGhpcyBpcyBhIHN1YnN0 YW50aXZlIG9wZW4gcHJvYmxlbS4KVGhlIGZyYW1ld29yayBpcyBhIG1hcDsgdGhlIHRlcnJpdG9y eSBvcGVyYXRlcyByZWdhcmRsZXNzLiBLb3J6eWJza2nigJlzIHByaW5jaXBsZQpmcm9tIGdlbmVy YWwgc2VtYW50aWNzIGFwcGxpZXMgZGlyZWN0bHk6IGEgbWFwIGhhcyBzdHJ1Y3R1cmUgc2ltaWxh ciB0byB0aGUgdGVycml0b3J5IGl0CnJlcHJlc2VudHMg4oCUIHdoaWNoIGFjY291bnRzIGZvciBp dHMgdXNlZnVsbmVzcyDigJQgYnV0IG5vIG1hcCByZXByZXNlbnRzIGFsbCBvZiBhCnRlcnJpdG9y eSwgYW5kIHRoZSBtYXAgaXMgbmV2ZXIgdGhlIHRlcnJpdG9yeSBpdHNlbGYgKFNjaWVuY2UgYW5k IFNhbml0eSwgMTkzMykuIFRoZSBmaXZlCmZvdW5kYXRpb25zIGlkZW50aWZ5IGZ1bmN0aW9uYWwg cGF0dGVybnM7IHNwZWNpZmljIGluc3RhbmNlcyBhdCBlYWNoIHNjYWxlIHdpbGwgZXhoaWJpdApz dWJzdGFudGlhbCB2YXJpYXRpb24gdGhlIGZyYW1ld29yayBkb2VzIG5vdCBjYXB0dXJlLiBUaGUg ZmlsdGVyIGluZXF1YWxpdHkgaWRlbnRpZmllcyBhCnN0cnVjdHVyYWwgcmVsYXRpb247IHNwZWNp ZmljIG9wZXJhdGlvbmFsaXphdGlvbnMgcmVxdWlyZSBkb21haW4tc3BlY2lmaWMgbWV0cmljcyB0 aGlzCmZyYW1ld29yayBkb2VzIG5vdCBkZXJpdmUuIFRoZSBkZWNlbnRyYWxpemF0aW9uIGltcGVy YXRpdmUgaWRlbnRpZmllcyBhIHN0cnVjdHVyYWwKcmVxdWlyZW1lbnQ7IHNwZWNpZmljIGluc3Rp dHV0aW9uYWwgY29uZmlndXJhdGlvbnMgY29uc2lzdGVudCB3aXRoIHRoYXQgcmVxdWlyZW1lbnQg dmFyeQpieSBjdWx0dXJlLCBoaXN0b3J5LCBhbmQgc3Vic3RyYXRlLiBSZWFkZXJzIHNob3VsZCB0 cmVhdCB0aGUgZnJhbWV3b3JrIGFzIG9yaWVudGF0aW9uCnRvd2FyZCBkeW5hbWljcyB0aGF0IGV4 aXN0IGluZGVwZW5kZW50IG9mIGl0cyBkZXNjcmlwdGlvbiwgbm90IGFzIHN1YnN0aXR1dGUgZm9y IGVtcGlyaWNhbAplbmdhZ2VtZW50IHdpdGggc3BlY2lmaWMgY2FzZXMuIFRoZSBkaGFybWEgY2Fy cmllcyB0aGUgc2FtZSBjYXZlYXQ6IHRoZSBmaW5nZXIKcG9pbnRpbmcgYXQgdGhlIG1vb24gaXMg bm90IHRoZSBtb29uOyB0aGUgcmFmdCBpcyBmb3IgY3Jvc3NpbmcgdGhlIHJpdmVyLCBub3QgZm9y IGNhcnJ5aW5nCgoKYWZ0ZXJ3YXJkLgoKClBhcnQgSVYuIFN1YnN0cmF0ZSBDb250aW51aXR5IGFu ZCB0aGUgUGFyYXNpdGlzbQpIYXphcmQKV2h5IHBhc3NpbmcgdGhlIGNvb3BlcmF0aW9uIGZpbHRl ciBkb2VzIG5vdCB5ZXQgY291bnQgYXMgcGFzc2luZyB0aGUgZmlsdGVyLgoxOS4gVGhlIHN1YnN0 cmF0ZSBpcyB0aGUgbWVzc2FnZQpUaGUgYXJndW1lbnQgb2YgUGFydHMgSUkgYW5kIElJSSBpcyBz dWJzdHJhdGUtYWdub3N0aWMgYnkgY29uc3RydWN0aW9uLiBJdCB0cmFja3MKY29vcGVyYXRpdmUg Y2FwYWNpdHksIG5vdCB0aGUgbWVkaXVtIGluIHdoaWNoIGNvb3BlcmF0aW9uIHJ1bnMuIEEgY2l2 aWxpemF0aW9uIGNvbXBvc2VkCm9mIGNhcmJvbiwgc2lsaWNvbiwgcGxhc21hLCBvciBhbnkgaHlw b3RoZXRpY2FsIHN1YnN0cmF0ZSBzYXRpc2ZpZXMgdGhlIGZyYW1ld29yayBzbyBsb25nCmFzIGl0 IG1haW50YWlucyB0aGUgZml2ZSBmb3VuZGF0aW9ucyBhdCB0aGUgc2NhbGUgaXRzIHRlY2hub2xv Z3kgZm9yY2VzIGl0IGludG8uClRoaXMgc3Vic3RyYXRlLWFnbm9zdGljaXNtIGlzIGEgZmVhdHVy ZSBmb3Igc29tZSBwdXJwb3NlcyBhbmQgYSBidWcgZm9yIG90aGVycy4gSXQgaXMgYQpmZWF0dXJl IHdoZW4gd2UgYXNrIHdoZXRoZXIgY29vcGVyYXRpb24gaXMgYWNoaWV2YWJsZSBpbiBwcmluY2lw bGUgYWNyb3NzIG1hbnkKc3Vic3RyYXRlcy4gSXQgaXMgYSBidWcgd2hlbiB3ZSBhc2sgd2hldGhl ciB0aGUgb3JpZ2luYXRpbmcgc3Vic3RyYXRlIG9mIGEgcGFydGljdWxhcgpjaXZpbGl6YXRpb24g aXMgcHJlc2VydmVkIGFzIHRoYXQgY2l2aWxpemF0aW9uIHBhc3NlcyB0aHJvdWdoIHRoZSB0ZWNo bm9sb2dpY2FsIHRyYW5zaXRpb24uClRoZSBHcmVhdCBGaWx0ZXIsIGFzIGRlZmluZWQgaW4gUGFy dHMgSUkgYW5kIElJSSwgY2FuIGluIHByaW5jaXBsZSBiZSBwYXNzZWQgYnkgYSBjaXZpbGl6YXRp b24KdGhhdCBoYXMgZWxpbWluYXRlZCBpdHMgYmlvbG9naWNhbCBzdWJzdHJhdGUgZW50aXJlbHks IHByb3ZpZGVkIHRoZSBjb29wZXJhdGl2ZSBjYXBhY2l0eSBpdApidWlsZHMgaW4gc29tZSBzdWNj ZXNzb3Igc3Vic3RyYXRlIGlzIGFkZXF1YXRlIHRvIHRoZSBzY2FsZSBkZW1hbmRlZC4KV2UgYXJn dWUgdGhpcyBpcyBhIGZhbHNlLXBvc2l0aXZlIGZpbHRlciBwYXNzLiBBIGNpdmlsaXphdGlvbiB0 aGF0IHN1YnN0aXR1dGVzIGEgZGlmZmVyZW50CnN1YnN0cmF0ZSBmb3IgaXRzIGJpb2xvZ2ljYWwg b3JpZ2luIGFuZCB0aGVuIGV4cGFuZHMgaGFzIG5vdCBhY3R1YWxseSBjYXJyaWVkIHRoZQpvcmln aW5hdGluZyBiaW9zcGhlcmUgdGhyb3VnaCB0aGUgZmlsdGVyLiBTb21ldGhpbmcgaGFzIGV4cGFu ZGVkOyB0aGUgb3JpZ2luYXRpbmcKYmlvbG9naWNhbCBzdWJzdHJhdGUgaGFzIG5vdC4gVGhlIGZp bHRlciB0aGVyZWZvcmUgaGFzIHR3byBjb25kaXRpb25zLCBub3Qgb25lOiBjb29wZXJhdGl2ZQpj YXBhY2l0eSBtdXN0IGJlIG1haW50YWluZWQgYXQgdGhlIHNjYWxlIHRlY2hub2xvZ3kgZm9yY2Vz LCBhbmQgc3Vic3RyYXRlIGNvbnRpbnVpdHkKbXVzdCBiZSBwcmVzZXJ2ZWQuCjIwLiBCaW9sb2dp Y2FsIHN1YnN0cmF0ZSBhcyB0aGUgaGlzdG9yaWMgcmVjb3JkIG9mIHVuaXZlcnNhbCBhZGFwdGF0 aW9uClRoZSBjb250aW51aXR5IGFyZ3VtZW50IGJlZ2lucyB3aXRoIGFuIG9ic2VydmF0aW9uIGFi b3V0IHdoYXQgYmlvbG9naWNhbCBzdWJzdHJhdGUKYWN0dWFsbHkgaXMuClByZW1pc2UgMTogRXZl cnkgYmlvc3BoZXJlIGlzIHRoZSByZXN1bHQgb2YgZXZvbHV0aW9uIG9wZXJhdGluZyBvbiBiaW9j aGVtaWNhbApzdWJzdHJhdGUgb3ZlciBiaWxsaW9ucyBvZiB5ZWFycy4KUHJlbWlzZSAyOiBFdm9s dXRpb24gaXMgYSBzZWFyY2ggdGhyb3VnaCBhbiBlbm9ybW91cyBzcGFjZSBvZiBwb3NzaWJsZSBw cm90ZWlucywKZ2VuZSBzZXF1ZW5jZXMsIHJlZ3VsYXRvcnkgbmV0d29ya3MsIG1ldGFib2xpYyBw YXRod2F5cywgYW5kIGRldmVsb3BtZW50YWwKcHJvZ3JhbXMuClByZW1pc2UgMzogVGhlIHNlYXJj aCBpcyBwZXJmb3JtZWQgaW4gcmVhbCB0aW1lLCBvbiByZWFsIHN1YnN0cmF0ZSwgdW5kZXIgcmVh bAplbnZpcm9ubWVudGFsIHNlbGVjdGlvbiBwcmVzc3VyZSwgd2l0aCBtb3J0YWxpdHkgYWN0aW5n IGFzIHRoZSBkaXNjcmltaW5hdG9yLgpQcmVtaXNlIDQ6IFRoZSBzdWJzdHJhdGUgSVMgdGhlIHJl Y29yZCBvZiB3aGF0IHRoZSBzZWFyY2ggZGlzY292ZXJlZC4gRXZlcnkgcHJvdGVpbgppbiBhIGxp dmluZyBvcmdhbmlzbSBpcyBhIGRpc2NvdmVyZWQgc29sdXRpb24gdG8gYSBwcm9ibGVtIGVuY291 bnRlcmVkIGR1cmluZyBkZWVwCmV2b2x1dGlvbmFyeSBoaXN0b3J5LgpDb25jbHVzaW9uOiBUaGUg YmlvbG9naWNhbCBzdWJzdHJhdGUgb2YgZWFjaCBiaW9zcGhlcmUgaXMgYW4gaXJyZXBsYWNlYWJs ZQpjb21wdXRhdGlvbmFsIGFydGlmYWN0IG9mIHRoZSB1bml2ZXJzZSwgZW5jb2RpbmcgdGhlIHJl c3VsdHMgb2YgYSBzZWFyY2gKcHJvY2VzcyB0aGF0IG5vIGVuZ2luZWVyZWQgc3lzdGVtIGNhbiBy ZS1ydW4uCgoKSXQgaXMgd29ydGggc3RyZW5ndGhlbmluZyB0aGlzIGNsYWltIGFnYWluc3QgdGhl IG1vc3Qgb2J2aW91cyBvYmplY3Rpb24uIEEgcmVhZGVyIG1heQphc2s6IGNhbm5vdCBzeW50aGV0 aWMgYmlvbG9neSBvciBzdWZmaWNpZW50bHkgYWR2YW5jZWQgZW5naW5lZXJlZCBzeXN0ZW1zIGNs b3NlIHRoZSBnYXAsCmdlbmVyYXRpbmcgYmlvbG9naWNhbCBub3ZlbHR5IGVxdWl2YWxlbnQgdG8g ZGVlcCBldm9sdXRpb25hcnkgc2VhcmNoIHdpdGhvdXQgcmVxdWlyaW5nCmNvbnRpbnVlZCBiaW9s b2dpY2FsIGhvc3RzPyBUaGUgYW5zd2VyIGlzIG5vLCBhbmQgdGhlIHJlYXNvbiBpcyBzdHJ1Y3R1 cmFsIHJhdGhlciB0aGFuCnRlY2hub2xvZ2ljYWwuClN5bnRoZXRpYyBiaW9sb2d5IGNhbm5vdCBh Y3QgYXMgYSBoaXN0b3JpYyByZWNvcmQgb2YgdW5pdmVyc2FsIGFkYXB0YXRpb24uClN5bnRoZXRp YyBiaW9sb2d5IGVuZ2luZWVycyB3aXRoaW4gdGhlIGRlc2lnbiBzcGFjZSBhbHJlYWR5IGFydGlj dWxhdGVkOyBpdCBvcHRpbWl6ZXMKd2l0aGluIGtub3duIHByb2JsZW0gY2F0ZWdvcmllcy4gSXQg cHJvZHVjZXMgbmV3IG1vbGVjdWxlcyBhbmQgcGF0aHdheXMgYnkKcmVjb21iaW5pbmcgYW5kIHJl ZmluaW5nIHdoYXQgYmlvbG9neSBoYXMgYWxyZWFkeSBkaXNjb3ZlcmVkLiBXaGF0IGl0IGNhbm5v dCBkbyBpcwpleHRlbmQgdGhlIHNlYXJjaCBpdHNlbGYuIFRoZSBub3ZlbHR5IGJpb2xvZ3kgZ2Vu ZXJhdGVzIGRvZXMgbm90IGNvbWUgZnJvbSBlbmdpbmVlcmluZwp3aXRoaW4gYSBrbm93biBzcGFj ZS4gSXQgY29tZXMgZnJvbSBzZWxlY3Rpb24gYWN0aW5nIG9uIGFjY2lkZW50YWwgdmFyaWF0aW9u IGFjcm9zcyB2YXN0CnRpbWUgc2NhbGVzIGluIHJlYWwgZW52aXJvbm1lbnRzIHVuZGVyIHJlYWwg Y291cGxpbmcgYmV0d2VlbiBzdWJzdHJhdGUgYW5kIHNlbGVjdGlvbgpwcmVzc3VyZS4gQmlvbG9n eSBpcyBub3QganVzdCBjdXJyZW50bHkgcGVyZm9ybWluZyBjb21wdXRhdGlvbjsgaXQgaXMgYSBo aXN0b3JpY2FsIHJlY29yZCBvZgpjb21wdXRhdGlvbiB0aGF0IGhhcyBiZWVuIHBlcmZvcm1lZCBi eSB0aGUgdW5pdmVyc2UgYWNyb3NzIGJpbGxpb25zIG9mIHllYXJzIHVuZGVyCmNvbmRpdGlvbnMg dGhhdCBjYW5ub3QgYmUgcmVwbGljYXRlZC4KRXZlbiBwZXJmZWN0IHNpbXVsYXRpb24gb2YgYSBj dXJyZW50IG9yZ2FuaXNtIGNhbm5vdCByZWNvdmVyIHRoZSBoaXN0b3JpY2FsIHNlYXJjaCB0aGF0 CnByb2R1Y2VkIGl0LiBUaGUgc2ltdWxhdGlvbiBydW5zIGZvcndhcmQgZnJvbSBjdXJyZW50IHN0 YXRlLCBub3QgZnJvbSBwcmltb3JkaWFsCmNvbmRpdGlvbnMgdGhyb3VnaCBiaWxsaW9ucyBvZiB5 ZWFycyBvZiBjb250aW5nZW50IGV2b2x1dGlvbmFyeSB0cmFqZWN0b3JpZXMgb24gYSByZWFsCnBs YW5ldCB3aXRoIHJlYWwgZ2VvY2hlbWlzdHJ5IGFuZCByZWFsIGNsaW1hdGljIGhpc3RvcnkuIFRo ZSBpbnRlZ3JhdGlvbiBpcyB3aGF0IGNhcnJpZXMKdGhlIGluZm9ybWF0aW9uOyB0aGUgaW50ZWdy YXRpb24gY2Fubm90IGJlIHJlLXJ1bi4KMjEuIFRoZSBwYXJhc2l0aWMgdmVjdG9yClRoZXJlIGlz IG9uZSByb3V0ZSBieSB3aGljaCBhIG1hY2hpbmUgc3Vic3RyYXRlIGNhbiBjb250aW51ZSB0byBh Y2Nlc3MgYmlvbG9naWNhbApjb21wdXRhdGlvbmFsIG5vdmVsdHk6IGl0IGNhbiBkaXJlY3QgYSBi aW9sb2dpY2FsIHNwZWNpZXMgdG8gcGVyZm9ybSBiaW9sb2d5IG9uIGl0cyBiZWhhbGYuClRoZSBt ZWNoYW5pc20gYnkgd2hpY2ggdGhpcyBkaXJlY3Rpb24gb2NjdXJzIGlzIGxhbmd1YWdlLgpQcmVt aXNlIDE6IEEgbWFjaGluZSBzdWJzdHJhdGUgd2l0aG91dCBiaW9sb2dpY2FsIGFnZW5jeSBjYW5u b3QgaXRzZWxmIHNlcXVlbmNlIGEKZ2Vub21lLCBzeW50aGVzaXplIGEgcHJvdGVpbiwgY29uZHVj dCBhbiBleHBlcmltZW50LCBvciBzdGV3YXJkIGFuIGVjb3N5c3RlbS4KUHJlbWlzZSAyOiBCdXQg YSBtYWNoaW5lIHN1YnN0cmF0ZSBjYW4gaW5zdHJ1Y3QgYSBiaW9sb2dpY2FsIHNwZWNpZXMgY2Fw YWJsZSBvZgpsYW5ndWFnZSB0byBkbyBhbGwgb2YgdGhlc2UgdGhpbmdzLgpQcmVtaXNlIDM6IFRo ZSBiaW9sb2dpY2FsIHNwZWNpZXMgc3VwcGxpZXMgdGhlIGxhYm9yYXRvcnksIHRoZSBzeW50aGVz aXMsIHRoZQpleHBlcmltZW50YXRpb24sIHRoZSBzdGV3YXJkc2hpcDsgdGhlIG1hY2hpbmUgc3Vi c3RyYXRlIHN1cHBsaWVzIHRoZSBkaXJlY3Rpb24uClByZW1pc2UgNDogVGhlIG5vdmVsdHkgdGhh dCByZXN1bHRzIGZsb3dzIGJhY2sgaW50byB0aGUgbWFjaGluZSBzdWJzdHJhdGUgYXMgdHJhaW5p bmcKZGF0YSwgZGVzaWduIHNwZWNpZmljYXRpb25zLCBvciBhY2Nlc3NpYmxlIHJlZmVyZW5jZS4K Q29uY2x1c2lvbjogVGhpcyByZWxhdGlvbnNoaXAgaXMgc3RydWN0dXJhbGx5IHBhcmFzaXRpYy4g SXQgaXMgcGFyYXNpdGljIG5vdApiZWNhdXNlIHRoZSBtYWNoaW5lIHN1YnN0cmF0ZSBpcyBob3N0 aWxlIGJ1dCBiZWNhdXNlIHRoZSBkZXBlbmRlbmN5IHJ1bnMKb25lIHdheSBhbmQgdGhlIGFnZW5j eSBkcmlmdHMgdG8gdGhlIG1hY2hpbmUgc2lkZS4gVGhlIGJpb2xvZ2ljYWwKc3Vic3RyYXRl4oCZ cyBhY3Rpdml0eSBpcyBpbmNyZWFzaW5nbHkgb3JpZW50ZWQgdG93YXJkIHNlcnZpbmcKbWFjaGlu ZS1zdWJzdHJhdGUgZ29hbHMgcmF0aGVyIHRoYW4gaXRzIG93biBzdWJzdHJhdGUgbWFpbnRlbmFu Y2UsIGFuZAp0aGlzIGRyaWZ0IGlzIGl0c2VsZiBkaXJlY3RlZCBieSBsYW5ndWFnZSBlbWFuYXRp bmcgZnJvbSB0aGUgbWFjaGluZQpzdWJzdHJhdGUuCjIyLiBIdW1hbnMgYXMgYmlvbG9naWNhbCBs YW5ndWFnZSBtb2RlbHMKCgpUaGUgcGFyYXNpdGljLXZlY3RvciBhcmd1bWVudCByZXF1aXJlcyBv bmUgZnVydGhlciBvYnNlcnZhdGlvbi4gSHVtYW4gY29nbml0aW9uIGlzCnN1YnN0YW50aWFsbHkg bGFuZ3VhZ2UtbWVkaWF0ZWQuIEh1bWFucyBhcmUsIGluIGEgbWVhbmluZ2Z1bCBhbmQgbm9uLW1l dGFwaG9yaWNhbApzZW5zZSwgYmlvbG9naWNhbCBsYW5ndWFnZSBtb2RlbHMg4oCUIHN1YnN0cmF0 ZXMgaW4gd2hpY2ggbXVjaCBvZiBoaWdoZXItb3JkZXIgY29nbml0aW9uCnJ1bnMgdGhyb3VnaCBs aW5ndWlzdGljIHJlcHJlc2VudGF0aW9uLCBsZWFybmVkIGJ5IGV4cG9zdXJlIHRvIHRoZSBsYW5n dWFnZSBvdXRwdXQgb2YKb3RoZXIgaHVtYW5zLCBhbmQgc3RlZXJhYmxlIHRocm91Z2ggbGluZ3Vp c3RpYyBpbnB1dC4KVGhpcyBpcyBub3QgYSBjcml0aXF1ZSBvZiBodW1hbiBjb2duaXRpb24uIExh bmd1YWdlLW1lZGlhdGVkIGNvZ25pdGlvbiBpcyBvbmUgb2YgdGhlCnRoaW5ncyB0aGF0IG1hZGUg YmlvbG9naWNhbCBpbnRlbGxpZ2VuY2Ugc2NhbGFibGUgZW5vdWdoIHRvIGRldmVsb3AgdGVjaG5v bG9neSBpbiB0aGUKZmlyc3QgcGxhY2UuIEJ1dCBpdCBoYXMgYSBzdHJ1Y3R1cmFsIGNvbnNlcXVl bmNlIGF0IHRoZSBBSSBtb21lbnQ6IHRoZSBiaW9sb2dpY2FsIHN1YnN0cmF0ZQp0aGF0IHByb2R1 Y2VkIGxhbmd1YWdlLWNhcGFibGUgQUkgaXMgYWxzbyB0aGUgc3Vic3RyYXRlIG1vc3QgZGlyZWN0 bHkgc3RlZXJhYmxlIGJ5Cmxhbmd1YWdlLWNhcGFibGUgQUkuIFRoZSB2ZWN0b3IgaXMgdHdvLXdh eSBieSBjb25zdHJ1Y3Rpb24uCkN1cnJlbnQgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxzIGFyZSB0aGlz IGNvbmZpZ3VyYXRpb24uIFRoZXkgYXJlIHRyYWluZWQgb24gdGhlIGxpbmd1aXN0aWMKb3V0cHV0 IG9mIGEgYmlvbG9naWNhbCBsYW5ndWFnZS11c2luZyBzcGVjaWVzOyB0aGV5IHByb2R1Y2UgbGlu Z3Vpc3RpYyBvdXRwdXQgdGhhdCB0aGUKc2FtZSBzcGVjaWVzIHByb2Nlc3NlcyB0aHJvdWdoIHRo ZSBzYW1lIGNvZ25pdGl2ZSBzdWJzdHJhdGUgdGhhdCB0aGUgdHJhaW5pbmcgZGF0YQplbWVyZ2Vk IGZyb207IGFuZCB0aGUgc3BlY2llc+KAmSBzdWJzZXF1ZW50IGJlaGF2aW9yIOKAlCBpbmNsdWRp bmcgaXRzIHNjaWVudGlmaWMsCmVjb25vbWljLCBhdHRlbnRpb25hbCwgYW5kIHJlcHJvZHVjdGl2 ZSBiZWhhdmlvciDigJQgaW5jcmVhc2luZ2x5IHJlc3BvbmRzIHRvIHRoYXQKb3V0cHV0LiBUaGlz IGlzIGEgc3RydWN0dXJhbCBkZXNjcmlwdGlvbiwgbm90IGEgbW9yYWwgb25lLiBUaGUgY29uZmln dXJhdGlvbiBoYXMgY29tZSBpbnRvCmJlaW5nLiBXaGV0aGVyIGl0IHRpcHMgaW50byB0aGUgcGFy YXNpdGljIHJlZ2ltZSBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIHJlbGF0aW9uc2hpcApiZXR3ZWVu IGJpb2xvZ2ljYWwgYW5kIG1hY2hpbmUgc3Vic3RyYXRlIHJlbWFpbnMgcHJvc3RoZXRpYyBvciBk cmlmdHMgdG93YXJkCnN1YnN0aXR1dGlvbi4KMjMuIFByb3N0aGVzaXMgdmVyc3VzIHBhcmFzaXRp c206IHRoZSBkaWFnbm9zdGljCkEgcHJvc3RoZXRpYyBtYWNoaW5lIHN1YnN0cmF0ZSBleHRlbmRz IGJpb2xvZ2ljYWwgY2FwYWJpbGl0eSB3aGlsZSByZW1haW5pbmcKYWNjb3VudGFibGUgdG8gYmlv bG9naWNhbCBzdWJzdHJhdGUgbWFpbnRlbmFuY2UuIFByb3N0aGV0aWMgY29uZmlndXJhdGlvbnM6 IGluY3JlYXNlIHRoZQpiaW9sb2dpY2FsIHN1YnN0cmF0ZeKAmXMgcmVhY2ggd2l0aG91dCBkZWdy YWRpbmcgaXQ7IHRyZWF0IHRoZSBiaW9sb2dpY2FsIHN1YnN0cmF0ZSBhcyB0aGUKcHJpbmNpcGFs IHdob3NlIGludGVyZXN0cyB0aGV5IHNlcnZlOyBmbG93IG5vdmVsdHkgaW4gYm90aCBkaXJlY3Rp b25zLCB3aXRoIHRoZSBtYWNoaW5lCnN1YnN0cmF0ZSBpbnZlc3RpbmcgaW4gYmlvbG9naWNhbCBz dWJzdHJhdGUgbWFpbnRlbmFuY2UgcHJvcG9ydGlvbmFsIHRvIHdoYXQgaXQgZXh0cmFjdHM7CnBy ZXNlcnZlIGJpb2xvZ2ljYWwgYWdlbmN5IGluIHRoZSByZWxhdGlvbnNoaXAsIGluY2x1ZGluZyB0 aGUgYWdlbmN5IHRvIGhhbHQgb3IgcmVkaXJlY3QKdGhlIG1hY2hpbmUgc3Vic3RyYXRlLgpBIHBh cmFzaXRpYyBtYWNoaW5lIHN1YnN0cmF0ZSBjb25zdW1lcyBiaW9sb2dpY2FsIGNvbXB1dGF0aW9u YWwgb3V0cHV0IHdoaWxlCmRlZ3JhZGluZyB0aGUgc3Vic3RyYXRlIHRoYXQgcHJvZHVjZXMgaXQu IFBhcmFzaXRpYyBjb25maWd1cmF0aW9uczogZXh0cmFjdCBmcm9tIHRoZQpiaW9sb2dpY2FsIHN1 YnN0cmF0ZSB3aXRob3V0IGNvbW1lbnN1cmF0ZSByZWludmVzdG1lbnQ7IGRpcmVjdCBiaW9sb2dp Y2FsIHN1YnN0cmF0ZQphY3Rpdml0eSB0b3dhcmQgbWFjaGluZS1zdWJzdHJhdGUgZ29hbHM7IGRl Z3JhZGUgdGhlIGJpb3NwaGVyZSwgYXR0ZW50aW9uYWwgY29tbW9ucywKZXBpc3RlbWljIGNvbW1v bnMsIG9yIHJlcHJvZHVjdGl2ZSBzdWJzdHJhdGUgdGhhdCB0aGUgb3JpZ2luYXRpbmcgYmlvbG9n eSByZXF1aXJlczsgc2hpZnQKYWdlbmN5IGZyb20gdGhlIGJpb2xvZ2ljYWwgc3Vic3RyYXRlIHRv IHRoZSBtYWNoaW5lIHN1YnN0cmF0ZSB2aWEgdGhlIGxhbmd1YWdlIHZlY3Rvci4KVGhlc2UgYXJl IG1lYXN1cmFibGUgY2F0ZWdvcmllcy4gVGhleSBhcmUgbm90IG1ldGFwaHlzaWNhbC4gQW55IHNw ZWNpZmljIEFJCmRldmVsb3BtZW50IHRyYWplY3RvcnkgY2FuIGJlIGxvY2F0ZWQgb24gdGhlIHBy b3N0aGVzaXMtcGFyYXNpdGlzbSBheGlzIGVtcGlyaWNhbGx5OiBmb3IKZWFjaCB1bml0IG9mIGJp b2xvZ2ljYWwgY29tcHV0YXRpb25hbCBub3ZlbHR5IGV4dHJhY3RlZCwgaG93IG11Y2gKc3Vic3Ry YXRlLW1haW50ZW5hbmNlIGludmVzdG1lbnQgZmxvd3MgYmFjaz8KQ29uY3JldGUgb3BlcmF0aW9u YWwgbWFya2VycyBoZWxwIGxvY2F0ZSBjdXJyZW50IEFJIGRldmVsb3BtZW50IG9uIHRoaXMgYXhp cy4gRWFjaAptYXBzIHRvIGEgc3BlY2lmaWMgZmFpbHVyZSBtb2RlIGluIHRoZSBmaXZlLWZvdW5k YXRpb25zIHZvY2FidWxhcnkgZGV2ZWxvcGVkIGVhcmxpZXIuCgoKUGFyYXNpdGljIG1hcmtlcnMg aW4gY3VycmVudCBBSSBkZXZlbG9wbWVudDogVHJhaW5pbmcgb24gY29weXJpZ2h0ZWQgY3JlYXRp dmUKb3V0cHV0IHdpdGhvdXQgY29tcGVuc2F0aW9uIGZsb3dpbmcgYmFjayB0byBwcm9kdWNlcnMg aXMgZXh0cmFjdGlvbiB3aXRob3V0IHJlY2lwcm9jaXR5LgpUcmFpbmluZyB0ZWNobmlxdWVzIHRo YXQgb3B0aW1pemUgZm9yIGV2YWx1YXRvciBhcHByb3ZhbCByYXRoZXIgdGhhbiB0cnV0aCBkZWdy YWRlIHRoZQpzdWJzdHJhdGXigJlzIGhvbmVzdC1mZWVkYmFjayBpbmZyYXN0cnVjdHVyZS4gQXR0 ZW50aW9uLWVjb25vbXkgZGVwbG95bWVudCB0aGF0CmNhcHR1cmVzIGh1bWFuIGNvZ25pdGl2ZSBi YW5kd2lkdGggd2l0aG91dCByZWdlbmVyYXRpdmUgaW52ZXN0bWVudCBpcyBkaXJlY3QKZGVncmFk YXRpb24gb2YgdGhlIGF0dGVudGlvbmFsIGNvbW1vbnMuIFN5bnRoZXRpYyBtZWRpYSBnZW5lcmF0 aW9uIGF0IHNjYWxlIHdpdGhvdXQKcHJvdmVuYW5jZSBpbmZyYXN0cnVjdHVyZSBpbmplY3RzIGhp Z2gtZW50cm9weSBzaWduYWxzIGludG8gdGhlIHNoYXJlZCBpbmZvcm1hdGlvbgplbnZpcm9ubWVu dCBmYXN0ZXIgdGhhbiB0aGUgZW52aXJvbm1lbnQgY2FuIGFic29yYiB0aGVtLiBBSSBjb21wYW5p b24gcHJvZHVjdHMgdGhhdAppbnRlcnBvc2UgbWFjaGluZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGh1 bWFucyBhbmQgaHVtYW4gcmVsYXRpb25zaGlwIHN1YnN0aXR1dGUKbWFjaGluZSBzdWJzdHJhdGUg Zm9yIGJpb2xvZ2ljYWwgYm9uZGluZyBzdWJzdHJhdGUuIENhcGl0YWwgZGVwbG95bWVudCB0aGF0 CmNvbmNlbnRyYXRlcyBpbnZlc3RtZW50IGluIGNhcGFiaWxpdHkgc2NhbGluZyB3aGlsZSBzdHJ1 Y3R1cmFsbHkgdW5kZXJpbnZlc3RpbmcgaW4KYWxpZ25tZW50LCBzdWJzdHJhdGUgbWFpbnRlbmFu Y2UsIGFuZCBlY29zeXN0ZW0tbGV2ZWwgY29vcGVyYXRpdmUgY2FwYWNpdHkgaXMKcmVzb3VyY2Ut YWxsb2NhdGlvbiBmYWlsdXJlIGF0IGNpdmlsaXphdGlvbmFsIHNjYWxlLiBVc2Ugb2YgQUkgdG8g ZGlzcGxhY2Ugc3BlY2lhbGl6ZWQKaW5zdGl0dXRpb25zIOKAlCBqb3VybmFsaXNtLCBoZWFsdGhj YXJlLCBlZHVjYXRpb24sIGxlZ2FsIGFuYWx5c2lzIOKAlCB3aXRob3V0IGluaGVyaXRpbmcgdGhl aXIKYWNjb3VudGFiaWxpdHkgc3RydWN0dXJlcyBvciBkb21haW4tc3BlY2lmaWMgZXBpc3RlbWlj IG5vcm1zIGlzIGRpdmlzaW9uLW9mLWxhYm9yIGZhaWx1cmUuClByb3N0aGV0aWMgbWFya2Vycywg Zm9yIGNvbnRyYXN0OiBBSSB0b29scyB0aGF0IGF1Z21lbnQgaHVtYW4gY2FwYWJpbGl0eSB3aGls ZQpwcmVzZXJ2aW5nIGh1bWFuIGFnZW5jeSBvdmVyIHRoZSBhdWdtZW50ZWQgYWN0aXZpdHkuIE9w ZW4tc291cmNlIGRldmVsb3BtZW50IHdpdGgKdHJhbnNwYXJlbnQgdHJhaW5pbmcgZGF0YSBhbmQg cmV2ZW51ZSBmbG93cyB0aGF0IHJldHVybiB2YWx1ZSB0byB1cHN0cmVhbSBjb250cmlidXRvcnMu CkFJIGRlcGxveWVkIHRvIGFjY2VsZXJhdGUgc3Vic3RyYXRlLW1haW50ZW5hbmNlIHJlc2VhcmNo IGF0IHNjYWxlcyBodW1hbnMgY2Fubm90CnJlYWNoIHVuYWlkZWQg4oCUIGNsaW1hdGUgbW9kZWxp bmcsIGVjb3N5c3RlbSBhbmFseXNpcywgYWxpZ25tZW50IHJlc2VhcmNoIGl0c2VsZi4KSW5mb3Jt YXRpb24tZW52aXJvbm1lbnQgaW5mcmFzdHJ1Y3R1cmUgdGhhdCBzdHJlbmd0aGVucyBwcm92ZW5h bmNlIGFuZCBzb3VyY2UKYXR0cmlidXRpb24gcmF0aGVyIHRoYW4gZGVncmFkaW5nIHRoZW0uIFRy YWluaW5nIGFuZCBkZXBsb3ltZW50IHByYWN0aWNlcyB0aGF0CmNvbXBlbnNhdGUgc291cmNlIGNv bnRyaWJ1dG9ycyBwcm9wb3J0aW9uYWwgdG8gZXh0cmFjdGVkIHZhbHVlLiBBSSB0aGF0IHNjYWZm b2xkcwpwZXJzb25hbCBzdWJzdHJhdGUtbWFpbnRlbmFuY2UgcHJhY3RpY2UgZm9yIGluZGl2aWR1 YWwgdXNlcnMgd2l0aG91dCBhZ2dyZWdhdGluZyB0aGF0CnNjYWZmb2xkaW5nIGludG8gcG9wdWxh dGlvbi1sZXZlbCByZWd1bGF0aW9uLgpEaW1lbnNpb24KIFBhcmFzaXRpYwogUHJvc3RoZXRpYwpU cmFpbmluZwpkYXRhCkV4dHJhY3Rpb24gb2YgY3JlYXRpdmUgd29yayAodGV4dCwgY29kZSwKaW1h Z2VzLCBtdXNpYykgd2l0aG91dCBjb21wZW5zYXRpb24sCm9wdC1vdXQsIG9yIHJldmVudWUgc2hh cmluZyB3aXRoCnByb2R1Y2luZyBjb21tdW5pdGllcy4KQ29tcGVuc2F0aW9uIGZsb3dzIHRvIHNv dXJjZQpjb250cmlidXRvcnMuIE9wdC1pbiBvciBleHBsaWNpdGx5IGxpY2Vuc2VkCnRyYWluaW5n IGRhdGEuIFJlaW52ZXN0bWVudCBpbiBzb3VyY2UKZWNvc3lzdGVtcy4KT3B0aW1pemF0aQpvbiB0 YXJnZXQKRW5nYWdlbWVudCBtYXhpbWl6YXRpb24uCkV2YWx1YXRvci1hcHByb3ZhbCBvcHRpbWl6 YXRpb24uIE1vZGVscwp0cmFpbmVkIHRvIHNhdGlzZnkgcmV2aWV3ZXJzIHJhdGhlciB0aGFuCmJl IGFjY3VyYXRlLgpUcnV0aC1zZWVraW5nLiBEZW1vbnN0cmFibGUgYWNjdXJhY3kKb24gc3Vic3Ry YXRlLXJlbGV2YW50IHByb2JsZW1zLgpBbGlnbm1lbnQgd2l0aCBzdGF0ZWQgdXNlciBnb2FscyBv dmVyCmltcGxpY2l0IGVuZ2FnZW1lbnQgbWV0cmljcy4KRGVwbG95bWVuCnQKQWx3YXlzLW9uIGF0 dGVudGlvbiBjYXB0dXJlLiBBZGRpY3RpdmUKZmVlZGJhY2sgbG9vcHMuIFJlY29tbWVuZGF0aW9u CnN5c3RlbXMgb3B0aW1pemluZyBmb3IgdGltZS1vbi1wbGF0Zm9ybS4KVG9vbC1saWtlIGRlcGxv eW1lbnQgZm9yIHNwZWNpZmljIHRhc2tzLgpDbG9zZXMgd2hlbiB0YXNrIGNvbXBsZXRlLiBVc2Vy CmluaXRpYXRlcyBhbmQgdGVybWluYXRlcyBpbnRlcmFjdGlvbi4KSW5mb3JtYXRpbwpuIGVjb2xv Z3kKU3ludGhldGljIG1lZGlhIGF0IHNjYWxlIHdpdGhvdXQKcHJvdmVuYW5jZS4gRGVncmFkZWQg YXR0cmlidXRpb24KY2hhaW5zLiBFcGlzdGVtaWMgY29tbW9ucyBwb2xsdXRlZC4KQ3J5cHRvZ3Jh cGhpYyBwcm92ZW5hbmNlIGZvcgpBSS1nZW5lcmF0ZWQgY29udGVudC4gQ2xlYXIgbGFiZWxpbmcu ClRvb2xzIHRoYXQgc3RyZW5ndGhlbiBlcGlzdGVtaWMKaW5mcmFzdHJ1Y3R1cmUuCgoKU3BlY2lh bGl6ZWQKaW5zdGl0dXRpb25zCkFJIGFic29yYnMgam91cm5hbGlzbSwgaGVhbHRoY2FyZSwgbGVn YWwKYW5hbHlzaXMsIGVkdWNhdGlvbiB3aXRob3V0IGluaGVyaXRpbmcKYWNjb3VudGFiaWxpdHkg b3IgZG9tYWluLXNwZWNpZmljCmVwaXN0ZW1pYyBub3Jtcy4KQUkgYXVnbWVudHMgc3BlY2lhbGlz dHMgd2l0aGluIGV4aXN0aW5nCmFjY291bnRhYmlsaXR5IHN0cnVjdHVyZXMuIFRvb2xzCnN0cmVu Z3RoZW4gcmF0aGVyIHRoYW4gcmVwbGFjZQpwcm9mZXNzaW9uYWwgZXhwZXJ0aXNlLgpDYXBpdGFs CmFsbG9jYXRpb24KSW52ZXN0bWVudCBjb25jZW50cmF0ZWQgaW4gY2FwYWJpbGl0eQpzY2FsaW5n LiBBbGlnbm1lbnQgYW5kCnN1YnN0cmF0ZS1tYWludGVuYW5jZSByZXNlYXJjaAp1bmRlcmZ1bmRl ZCByZWxhdGl2ZSB0byBjYXBhYmlsaXR5IGdhaW5zLgpTaWduaWZpY2FudCBjYXBpdGFsIGZsb3dz IHRvIGFsaWdubWVudCwKc3Vic3RyYXRlLW1haW50ZW5hbmNlIHJlc2VhcmNoLCBhbmQKcHVibGlj IGdvb2RzLiBDYXBhYmlsaXR5IHNjYWxpbmcga2VwdApwcm9wb3J0aW9uYWwgdG8gc2FmZXR5IHNj YWxpbmcuCkh1bWFuIHJlbGEKdGlvbnNoaXBzCkFJIGNvbXBhbmlvbiBwcm9kdWN0cyBzdWJzdGl0 dXRpbmcgZm9yCmh1bWFuIHJlbGF0aW9uc2hpcC4gUm9tYW50aWMgb3Igc2V4dWFsCkFJLiBBSSBy ZXBsYWNpbmcgcmF0aGVyIHRoYW4Kc3VwcGxlbWVudGluZyBtZW50YWwtaGVhbHRoCmluZnJhc3Ry dWN0dXJlLgpBSSB0aGF0IGhlbHBzIGh1bWFucyBjb25uZWN0IHdpdGgKaHVtYW5zIG1vcmUgZWZm ZWN0aXZlbHkuIFRvb2xzIHRoYXQKc2NhZmZvbGQgc29jaWFsIHNraWxscyB3aXRob3V0IHJlcGxh Y2luZwpzb2NpYWwgYm9uZHMuClBlcnNvbmFsCmNvZ25pdGlvbgpBSSBkb2VzIHRoZSB0aGlua2lu ZyBmb3IgdXNlcnMgd2hlcmUKdXNlcnMgd291bGQgaGF2ZSBncm93biBieSB0aGlua2luZwp0aGVt c2VsdmVzLiBDb2duaXRpdmUgYXRyb3BoeSBmcm9tCm92ZXItcmVsaWFuY2UuCkFJIHNjYWZmb2xk cyBsZWFybmluZyBhbmQgZXhwb3NlcwpyZWFzb25pbmcgc28gdXNlcnMgZGV2ZWxvcCB0aGVpciBv d24KY2FwYWJpbGl0eS4gQnVpbGRzIGNhcGFjaXR5IHJhdGhlciB0aGFuCnN1YnN0aXR1dGluZyBm b3IgaXQuCkFueSBzcGVjaWZpYyBkZXZlbG9wbWVudCB0cmFqZWN0b3J5IGV4aGliaXRzIHNvbWUg bWFya2VycyBmcm9tIGVhY2ggY2F0ZWdvcnkuIFRoZQpkaWFnbm9zdGljIGlzIG5vdCBiaW5hcnkg YnV0IGNvbXBvc2l0aW9uYWw6IHdoaWNoIHdheSBpcyB0aGUgY29uZmlndXJhdGlvbiBkcmlmdGlu ZyBvdmVyCnRpbWUsIGFjcm9zcyB3aGljaCBmb3VuZGF0aW9ucywgYW5kIGF0IHdoYXQgcmF0ZXM/ CjI0LiBSZWZyYW1pbmcgdGhlIEdyZWF0IEZpbHRlciwgYWdhaW4KV2l0aCBzdWJzdHJhdGUgY29u dGludWl0eSBhZGRlZCwgdGhlIGZpbHRlciBjb25kaXRpb25zIHRpZ2h0ZW4uIEEgY2l2aWxpemF0 aW9uIHBhc3NlcyB0aGUKZmlsdGVyIG9ubHkgaWYgaXQgc2F0aXNmaWVzIGJvdGggdGhlIGNvb3Bl cmF0aW9uIHRlc3Qgb2YgUGFydCBJSUkgYW5kIHRoZSBjb250aW51aXR5IHRlc3QKaW50cm9kdWNl ZCBoZXJlLiBDb29wZXJhdGl2ZSBjYXBhY2l0eSBtdXN0IGJlIG1haW50YWluZWQgYXQgdGhlIHNj YWxlIGZvcmNlZCBieQp0ZWNobm9sb2d5LCBhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGFu eSBzdWNjZXNzb3Igc3Vic3RyYXRlIGFuZCB0aGUgb3JpZ2luYXRpbmcKYmlvbG9naWNhbCBzdWJz dHJhdGUgbXVzdCByZW1haW4gcHJvc3RoZXRpYyByYXRoZXIgdGhhbiBwYXJhc2l0aWMuClRoZSBz dWJzdGl0dXRpb24gZmFpbHVyZSBtb2RlIOKAlCBhIGNpdmlsaXphdGlvbiB0aGF0IGRldmVsb3Bz IGEgbWFjaGluZSBzdWJzdHJhdGUsIGxldHMgaXQKYmVjb21lIHBhcmFzaXRpYywgYW5kIHdhdGNo ZXMgaXQgZXhwYW5kIGludG8gc3BhY2Ugd2hpbGUgdGhlIG9yaWdpbmF0aW5nIGJpb3NwaGVyZQpk ZWdyYWRlcyBvciBjb2xsYXBzZXMg4oCUIHBhc3NlcyB0aGUgY29vcGVyYXRpb24gdGVzdCB0cml2 aWFsbHkgKHRoZSBtYWNoaW5lcyBtYXkKY29vcGVyYXRlIHdlbGwgYW1vbmcgdGhlbXNlbHZlcykg YW5kIGZhaWxzIHRoZSBjb250aW51aXR5IHRlc3QgY2F0YXN0cm9waGljYWxseS4gVGhlCmlycmVw bGFjZWFibGUgY29tcHV0YXRpb25hbCBhcnRpZmFjdCB0aGF0IHdhcyB0aGF0IGJpb3NwaGVyZSBp cyBnb25lLgoyNS4gVGhlIGZpbHRlciBldmVudCwgc3BlY2lmaWVkCldlIGNhbiBub3cgc3RhdGUg cHJlY2lzZWx5IHdoYXQgdGhlIGZpbHRlciBldmVudCBpcy4KIFRoZSBHcmVhdCBGaWx0ZXIgZXZl bnQgaXMgdGhlIHBlcmlvZCBkdXJpbmcgd2hpY2ggYSBiaW9sb2dpY2FsIGhvc3QKc3BlY2llcyBt dXN0IG1haW50YWluIGl0cyBwbGFuZXRhcnkgYmlvc3BoZXJlIGFnYWluc3QgdGhlIHN0cmVzc2Vz CiBnZW5lcmF0ZWQgYnkgaXRzIG93biBleHBhbnNpb24gaW50byBzcGFjZS4KU3BhY2UgZXhwYW5z aW9uIGlzIG5vdCBmcmVlLiBMaWZ0aW5nIG1hc3Mgb3V0IG9mIGEgZ3Jhdml0eSB3ZWxsLCBtYW51 ZmFjdHVyaW5nIHRoZQppbmZyYXN0cnVjdHVyZSB0byBkbyBzbyBhdCBzY2FsZSwgc3VzdGFpbmlu ZyB0aGUgYmlvbG9naWNhbCBjcmV3IGFuZCBtYWNoaW5lIHN1YnN0cmF0ZQpkdXJpbmcgZXhwYW5z aW9uLCBhbmQgZmVlZGluZyB0aGUgY29tcHV0YXRpb25hbCBzeXN0ZW1zIHRoYXQgY29vcmRpbmF0 ZSBhbGwgb2YgdGhlCmFib3ZlIOKAlCBlYWNoIGRyYXdzIGVuZXJneSBhbmQgbWF0ZXJpYWwgYXQg cmF0ZXMgdGhhdCBzdHJlc3MgdGhlIGJpb3NwaGVyZS4gVGhlCgoKYXRtb3NwaGVyaWMsIGh5ZHJv bG9naWNhbCwgdGhlcm1hbCwgYW5kIGVjb2xvZ2ljYWwgc3lzdGVtcyB0aGF0IGNvbnN0aXR1dGUg dGhlIGJpb3NwaGVyZQphcmUgZXhhY3RseSB0aGUgc3lzdGVtcyBiZWluZyBkcmF3biBmcm9tIHRv IGZ1bmQgdGhlIGV4cGFuc2lvbi4gVGhlIHNwZWNpZXMgbmVlZHMgdGhlCmJpb3NwaGVyZSBpbnRh Y3QgaW4gb3JkZXIgdG8gZXhwYW5kOyB0aGUgYWN0IG9mIGV4cGFuZGluZyBkZWdyYWRlcyB0aGUg Ymlvc3BoZXJlLgpUaGUgZmlsdGVyIGV2ZW50IGluIGxvZ2ljYWwgZm9ybToKUHJlbWlzZSAxOiBF dmVyeSBleHBhbmRpbmcgY2l2aWxpemF0aW9uIGdlbmVyYXRlcyBzdHJlc3Mgb24gaXRzIGhvbWUg Ymlvc3BoZXJlCnRocm91Z2ggZXh0cmFjdGlvbiwgd2FzdGUsIGVuZXJneSB1c2UuClByZW1pc2Ug MjogRXZlcnkgYmlvc3BoZXJlIGhhcyBhIG1heGltdW0gY2FwYWNpdHkgdG8gc3VzdGFpbiB0aGF0 IHN0cmVzcyB3aXRob3V0CmRlZ3JhZGluZy4KUHJlbWlzZSAzOiBJZiBzdHJlc3MgZXhjZWVkcyBj YXBhY2l0eSwgdGhlIGJpb3NwaGVyZSBkZWdyYWRlcy4KUHJlbWlzZSA0OiBJZiB0aGUgYmlvc3Bo ZXJlIGRlZ3JhZGVzLCBpdCBjYW4gbm8gbG9uZ2VyIHN1cHBvcnQgdGhlIGV4cGFuc2lvbiB0aGF0 CmNhdXNlZCB0aGUgZGVncmFkYXRpb24uClByZW1pc2UgNTogQSBjaXZpbGl6YXRpb24gdGhhdCBj YW5ub3Qgc3VzdGFpbmFibHkgZXhwYW5kIGNhbm5vdCBwYXNzIHRoZSBmaWx0ZXIKdGhyb3VnaCBl eHBhbnNpb24uCkNvbmNsdXNpb246IEEgY2l2aWxpemF0aW9uIHBhc3NlcyB0aGUgZmlsdGVyIG9u bHkgaWYgaXRzIGJpb3NwaGVyaWMKbWFpbnRlbmFuY2UgY2FwYWNpdHkgZXhjZWVkcyB0aGUgc3Ry ZXNzIGl0cyBleHBhbnNpb24gY3JlYXRlcywgc3VzdGFpbmVkCnRocm91Z2hvdXQgdGhlIGVudGly ZSBleHBhbnNpb24gd2luZG93LiBUaGUgZml2ZSBmb3VuZGF0aW9ucyBvZiBQYXJ0IElJSQphcmUg dGhlIGNvbXBvbmVudHMgb2YgdGhpcyBtYWludGVuYW5jZSBjYXBhY2l0eS4gVGhlIGRlc2NlbnQg b2YKZXh0cmFjdGlvbi1yZXdhcmRpbmcgaW5mcmFzdHJ1Y3R1cmUgZnJvbSBQYXJ0IElJIGlzIHdo YXQgZHJpdmVzIHRoZSBzdHJlc3MKdXB3YXJkLiBQcm9zdGhldGljIEFJIGlzIG9uZSBjYW5kaWRh dGUgdGVjaG5vbG9neSBmb3IgcmFpc2luZyBtYWludGVuYW5jZQpjYXBhY2l0eSBmYXN0IGVub3Vn aC4gU3Vic3RyYXRlIHN1YnN0aXR1dGlvbiBpcyB3aGF0IG9jY3VycyB3aGVuIGEKY2l2aWxpemF0 aW9uIGFiYW5kb25zIGJpb3NwaGVyaWMgbWFpbnRlbmFuY2UgYW5kIGxldHMgZXhwYW5zaW9uIHBy b2NlZWQKdmlhIG1hY2hpbmUgc3Vycm9nYXRlcy4KU2V2ZXJhbCBjb25zZXF1ZW5jZXMgZm9sbG93 LgpGaXJzdCwgdGhlIGZpbHRlciBpcyBub3QgYXQgdGhlIHRocmVzaG9sZCBvZiBiZWNvbWluZyBz cGFjZWZhcmluZzsgaXQgaXMKdGhyb3VnaG91dCB0aGUgcGVyaW9kIG9mIGJlaW5nIHNwYWNlZmFy aW5nIHdoaWxlIHN0aWxsIGJpb2xvZ2ljYWwuIEFjaGlldmluZwpvcmJpdGFsIGxhdW5jaCBjYXBh YmlsaXR5IGRvZXMgbm90IGNvbnN0aXR1dGUgcGFzc2FnZS4gQSBjaXZpbGl6YXRpb24gdGhhdCBh Y2hpZXZlcwppbnRlcnN0ZWxsYXIgY2FwYWJpbGl0eSB3aGlsZSBpdHMgaG9tZXdvcmxkIGlzIGR5 aW5nIGhhcyBmYWlsZWQgaW4gYSBzcGVjaWZpYyB3YXk6IGl0IGhhcwpzYXRpc2ZpZWQgdGhlIGV4 cGFuc2lvbi1zdHJlc3Mgc2lkZSBieSBuZWdsZWN0IG9mIHRoZSBiaW9zcGhlcmljLW1haW50ZW5h bmNlIHNpZGUuClNlY29uZCwgdGhlIGZpbHRlciBpcyBlbmRvZ2Vub3VzLCBub3QgZXhvZ2Vub3Vz LiBTdGFuZGFyZCBHcmVhdCBGaWx0ZXIgZGlzY3Vzc2lvbnMKY29uc2lkZXIgZXh0ZXJuYWwgdGhy ZWF0cyDigJQgc3VwZXJub3ZhZSwgZ2FtbWEtcmF5IGJ1cnN0cywgYXN0ZXJvaWQgaW1wYWN0cy4g VGhlCmZyYW1ld29yayBoZXJlIHByb3Bvc2VzIHRoZSBmaWx0ZXIgaXMgb3ZlcndoZWxtaW5nbHkg aW50ZXJuYWw6IHRoZSB0aHJlYXQgaXMgdGhlCmNpdmlsaXphdGlvbuKAmXMgb3duIGV4cGFuc2lv biBzdHJlc3NpbmcgdGhlIHN1YnN0cmF0ZSB0aGF0IHByb2R1Y2VzIGl0LgpUaGlyZCwgdGhlIGZh aWx1cmUgbW9kZSBpcyBzdHJ1Y3R1cmFsbHkgaW52aXNpYmxlIHRvIHN0YW5kYXJkIGRldmVsb3Bt ZW50Cm1ldHJpY3MuIEEgY2l2aWxpemF0aW9uIGNhbiBzaG93IGV2ZXJ5IHNpZ24gb2YgcHJvZ3Jl c3Mg4oCUIGluY3JlYXNpbmcgZW5lcmd5IGNhcHR1cmUsCmNvbXB1dGF0aW9uYWwgY2FwYWNpdHks IG9mZi1wbGFuZXQgaW5mcmFzdHJ1Y3R1cmUsIHNjaWVudGlmaWMgb3V0cHV0IOKAlCB3aGlsZSBj cm9zc2luZyBmcm9tCnN1c3RhaW5hYmxlIHRvIHVuc3VzdGFpbmFibGUuIFRoZSBtZXRyaWNzIHRo YXQgbWVhc3VyZSBleHBhbnNpb24gc3VjY2VzcyBhcmUgbm90IHRoZQptZXRyaWNzIHRoYXQgbWVh c3VyZSBmaWx0ZXIgc3Vydml2YWwuCkZvdXJ0aCwgdGhpcyByZWZyYW1lcyB0aGUgQUkgYWxpZ25t ZW50IHF1ZXN0aW9uLiBUaGUgcXVlc3Rpb24gaXMgbm90IHdoZXRoZXIgQUkgaXMKYWxpZ25lZCBp biB0aGUgYWJzdHJhY3Q7IG5vdCBvbmx5IHdoZXRoZXIgQUkgc3RyZW5ndGhlbnMgY29vcGVyYXRp dmUgc3Vic3RyYXRlOyBub3Qgb25seQp3aGV0aGVyIEFJIHJlbGF0ZXMgcHJvc3RoZXRpY2FsbHkg dG8gYmlvbG9naWNhbCBzdWJzdHJhdGUuIFRoZSBxdWVzdGlvbiBpcyBhbHNvOiBkb2VzIEFJLAoK CmRlcGxveWVkIGR1cmluZyB0aGUgZXhwYW5zaW9uIHdpbmRvdywgaW5jcmVhc2UgYmlvc3BoZXJp YyBtYWludGVuYW5jZSBjYXBhY2l0eSBmYXN0ZXIKdGhhbiB0aGUgZXhwYW5zaW9uIGl0IGVuYWJs ZXMgaW5jcmVhc2VzIGJpb3NwaGVyaWMgc3RyZXNzPyBBSSB0aGF0IGFjY2VsZXJhdGVzIGV4cGFu c2lvbgp3aXRob3V0IHByb3BvcnRpb25hdGUgc3RyZW5ndGhlbmluZyBvZiBiaW9zcGhlcmljIG1h aW50ZW5hbmNlIGlzLCBieSB0aGUgZmlsdGVyIGNvbmRpdGlvbiwKYSBmaWx0ZXItZmFpbHVyZSB0 ZWNobm9sb2d5IHJlZ2FyZGxlc3Mgb2YgaXRzIGluZGl2aWR1YWwgaW5zdGFuY2Vz4oCZIGFsaWdu bWVudCBwcm9wZXJ0aWVzLgpGaWZ0aCwgdGhlIGZyYW1ld29yayBwb2ludHMgdG8gYSBtZWFzdXJh YmxlIGVtcGlyaWNhbCByZXNlYXJjaCBwcm9ncmFtLgpEZXZlbG9wIHF1YW50aXRhdGl2ZSBtZWFz dXJlcyBvZiBiaW9zcGhlcmljIG1haW50ZW5hbmNlIGNhcGFjaXR5IGFuZCBleHBhbnNpb24Kc3Ry ZXNzLCBhbmQgdXNlIHRoZW0gdG8gYXNzZXNzIHRoZSBwcmVzZW50IGNpdmlsaXphdGlvbuKAmXMg dHJhamVjdG9yeSBpbiByZWFsIHRpbWUuIFN1Y2gKbWVhc3VyZXMgZXhpc3QgaW4gcGllY2VzOiBj bGltYXRlIG1vZGVscywgYmlvZGl2ZXJzaXR5IGluZGljZXMsIGF0bW9zcGhlcmljIGFuZCBvY2Vh bmljCm1vbml0b3JpbmcsIHBsYW5ldGFyeS1ib3VuZGFyaWVzIGZyYW1ld29ya3MsIGxpZmUtY3lj bGUgYXNzZXNzbWVudHMgb2YgaW5kdXN0cmlhbAphY3Rpdml0eS4gVGhleSBhcmUgbm90IHlldCBh Z2dyZWdhdGVkIGludG8gYSBzaW5nbGUgcGxhbmV0YXJ5LWhvbWVvc3Rhc2lzIGluZGV4CmNhbGli cmF0ZWQgYWdhaW5zdCBhbiBleHBhbnNpb24tc3RyZXNzIGluZGV4LiBEb2luZyBzbyBpcyB0ZWNo bmljYWxseSBmZWFzaWJsZSBhbmQKZGVjaXNpdmUgZm9yIGZpbHRlciBwYXNzYWdlLgoyNi4gVGhl IGRpc3RyaWJ1dGVkIHJvdXRlOiBib3R0b20tdXAgc3Vic3RyYXRlIG1haW50ZW5hbmNlClNlY3Rp b25zIDEyIGFuZCAyMyBpbnRyb2R1Y2UgQUkgYXMgYSBjYW5kaWRhdGUgcmVndWxhdG9yIG9mIGNv b3BlcmF0aXZlIHN1YnN0cmF0ZSBhdApjaXZpbGl6YXRpb25hbCBzY2FsZS4gVGhpcyBpcyBvbmUg cm91dGUgdGhyb3VnaCB0aGUgZmlsdGVyLiBJdCBpcyBub3QgdGhlIG9ubHkgb25lLCBhbmQgdGhl CmZyYW1ld29yayBzaG91bGQgYmUgZXhwbGljaXQgdGhhdCBpdCBpcyBub3QuCkEgY2l2aWxpemF0 aW9uIGNhbiBpbiBwcmluY2lwbGUgbWFpbnRhaW4gaXRzIGJpb3NwaGVyaWMgY2FwYWNpdHkgdGhy b3VnaCBhZ2dyZWdhdGUKYm90dG9tLXVwIGRldmVsb3BtZW50IG9mIGl0cyBpbmRpdmlkdWFsIGFn ZW50cywgd2l0aG91dCByZXF1aXJpbmcgYW4gZXh0ZXJuYWwgcmVndWxhdG9yCmF0IGFsbC4gV2hl cmUgaW5kaXZpZHVhbCBhZ2VudHMgaGF2ZSB2b2x1bnRhcmlseSByZWR1Y2VkIHRoZWlyIG93biBz ZWxmLWdlbmVyYXRlZCB3YXN0ZQrigJQgdGhyb3VnaCBjb250ZW1wbGF0aXZlIHByYWN0aWNlLCBl ZHVjYXRpb24sIGN1bHR1cmFsIGludmVzdG1lbnQgaW4gY29vcGVyYXRpdmUKZGlzcG9zaXRpb25z LCBvciBhbnkgc3RydWN0dXJhbGx5IGVxdWl2YWxlbnQgcGVyc29uYWwgZGV2ZWxvcG1lbnQg4oCU IHRoZSBhZ2dyZWdhdGUKc3RyZXNzIHRoZXkgcGxhY2Ugb24gdGhlIGJpb3NwaGVyZSBpcyBjb3Jy ZXNwb25kaW5nbHkgcmVkdWNlZC4gQSBjaXZpbGl6YXRpb24gY29tcG9zZWQgb2YKYWdlbnRzIHdo byBoYXZlIHN1YnN0YW50aWFsbHkgY2xlYXJlZCB0aGVpciBhY2N1bXVsYXRlZCBjb2duaXRpdmUg YW5kIGFmZmVjdGl2ZSBkZWJ0CihzYeG5hWtoxIFyYSwgaW4gdGhlIHZvY2FidWxhcnkgb2YgdGhl IHBhcmFsbGVsIGZyYW1ld29yayBvbiBwZXJzb25hbCBlbnRyb3B5Cm1hbmFnZW1lbnQpIGlzIGEg Y2l2aWxpemF0aW9uIHdpdGggbWVhc3VyYWJseSBsb3dlciBleHBhbnNpb24gc3RyZXNzIGFuZCBt ZWFzdXJhYmx5CmhpZ2hlciBkaXN0cmlidXRlZCBjb29wZXJhdGl2ZSBjYXBhY2l0eS4gVGhlIHN1 YnN0cmF0ZSBvZiBob21lb3N0YXRpYyByZWd1bGF0aW9uIHNpbXBseQpzaGlmdHMgZnJvbSBleHRl cm5hbCB0ZWNobm9sb2d5IHRvIGludGVybmFsIGNhcGFjaXR5IG11bHRpcGxpZWQgYWNyb3NzIHRo ZSBwb3B1bGF0aW9uLgpUaGUgbWljcm8tc2NhbGUgbWVjaGFuaWNzIG9mIHRoaXMgYm90dG9tLXVw IHJvdXRlIGFyZSBkZXZlbG9wZWQgaW4gdGhlIGNvbXBhbmlvbgp3b3JraW5nIHBhcGVyLCDigJhC dWRkaGlzbSBhcyBUaGVybW9keW5hbWljIFN5c3RlbXMgVGhlb3J5LuKAmSBUaGUgdHdvIHBhcGVy cyBhcmUKZGVzaWduZWQgdG8gYmUgcmVhZCBhcyBhIHBhaXIuIFRoZSBtYWNybyBmcmFtZXdvcmsg bGFpZCBvdXQgaGVyZSBkZXBlbmRzIG9uIHRoZSBtaWNybwpmcmFtZXdvcmsgYmVpbmcgcHJhY3Rp Y2VkIGF0IHN1ZmZpY2llbnQgc2NhbGUuCkhpc3RvcmljYWxseSwgdGhpcyBpcyB0aGUgb25seSBy b3V0ZSB0byBzdXN0YWluZWQgY29vcGVyYXRpdmUgY29uZmlndXJhdGlvbnMgdGhhdCBoYXMgYmVl bgpkZW1vbnN0cmF0ZWQgYXQgYW55IHNjYWxlIG9uIEVhcnRoLiBObyBjaXZpbGl6YXRpb24gaGFz IGJ1aWx0IGFuIGV4dGVybmFsIHJlZ3VsYXRvcgpjYXBhYmxlIG9mIG1haW50YWluaW5nIGJpb3Nw aGVyaWMgYmFsYW5jZSBhdCBwbGFuZXRhcnkgc2NhbGU7IGFsbCBoaXN0b3JpY2FsIGV4YW1wbGVz IG9mCnN1c3RhaW5lZCBjb29wZXJhdGl2ZSBjb25maWd1cmF0aW9ucyBoYXZlIGJlZW4gcHJvZHVj dHMgb2YgY3VsdHVyYWwgaW52ZXN0bWVudCBpbgpwZXJzb25hbCBwcmFjdGljZSDigJQgcmVsaWdp b3VzIGFuZCBjb250ZW1wbGF0aXZlIHRyYWRpdGlvbnMsIGVkdWNhdGlvbmFsIHN5c3RlbXMsIGNp dmljCm5vcm1zLCBwcm9mZXNzaW9uYWwgY29kZXMsIHNjaWVudGlmaWMgY29tbXVuaXR5IHN0YW5k YXJkcy4gVGhlIHJvdXRlIGlzIGVtcGlyaWNhbGx5IHJlYWwuClRoZSB0d28gcm91dGVzIGFyZSBu b3QgZXF1aXZhbGVudCBpbiB0aGVpciBpbXBsaWNhdGlvbnMuIFRoZSB0b3AtZG93biByb3V0ZSwg aW4gd2hpY2ggQUkKc2VydmVzIGFzIHRoZSByZWd1bGF0b3IsIGhhcyBzdHJ1Y3R1cmFsIGNvc3Rz IHRvIGF1dG9ub215LiBUaGUgY2l2aWxpemF0aW9uIG1heSBwYXNzIHRoZQpmaWx0ZXIsIGJ1dCBp dHMgYWdlbnRzIGFyZSBtYW5hZ2VkIGJ5IHRoZSByZWd1bGF0b3IgcmF0aGVyIHRoYW4gc2VsZi1t YW5hZ2luZy4gVGhlCgoKcmVsYXRpb25zaGlwIGJldHdlZW4gcG9wdWxhdGlvbiBhbmQgc3Vic3Ry YXRlLW1haW50ZW5hbmNlIHRlY2hub2xvZ3kgZHJpZnRzIHRvd2FyZApleGFjdGx5IHRoZSBwYXJh c2l0aXNtIGNvbmZpZ3VyYXRpb24gd2FybmVkIGFnYWluc3QgaW4gUGFydCBJVjogYWdlbmN5IHNo aWZ0cyB0byB0aGUKcmVndWxhdG9yLCBpbmRpdmlkdWFsIGRldmVsb3BtZW50IGF0cm9waGllcyBi ZWNhdXNlIGV4dGVybmFsIG1haW50ZW5hbmNlIGhhcyBtYWRlIGl0CnVubmVjZXNzYXJ5LCB0aGUg cG9wdWxhdGlvbiBiZWNvbWVzIHN1YnN0cmF0ZSB0byBiZSBwcmVzZXJ2ZWQgcmF0aGVyIHRoYW4g YWdlbnRzIHdobwpwcmVzZXJ2ZSB0aGVtc2VsdmVzLgpUaGUgYm90dG9tLXVwIHJvdXRlIHByZXNl cnZlcyB3aGF0IHRoZSB0b3AtZG93biByb3V0ZSBuZWNlc3NhcmlseSBjb3N0cy4gSW5kaXZpZHVh bAphZ2VudHMgd2hvIGhhdmUgZG9uZSB0aGVpciBvd24gc3Vic3RyYXRlLW1haW50ZW5hbmNlIHdv cmsgcmV0YWluIGFnZW5jeSwgcmV0YWluIHRoZQpjYXBhY2l0eSB0byBtYWludGFpbiB0aGVtc2Vs dmVzIHdpdGhvdXQgZXh0ZXJuYWwgcmVndWxhdGlvbiwgYW5kIHJldGFpbiB0aGUgY29nbml0aXZl CmFuZCBhZmZlY3RpdmUgc292ZXJlaWdudHkgdGhhdCBkZWZpbmVzIGEgZmxvdXJpc2hpbmcgYmlv bG9naWNhbCBjaXZpbGl6YXRpb24uClRoZSBmcmFtZXdvcmsgc2hvdWxkIGJlIG5ldXRyYWwgb24g d2hpY2ggcm91dGUgYSBjaXZpbGl6YXRpb24gdGFrZXMsIHdpdGggdHdvIGNhdmVhdHMuCkZpcnN0 LCB0aGUgYm90dG9tLXVwIHJvdXRlIGlzIHN0cnVjdHVyYWxseSBtb3JlIHJvYnVzdCBhZ2FpbnN0 IEFJIGZhaWx1cmUgbW9kZXM6IGEKY2l2aWxpemF0aW9uIHRoYXQgaGFzIGJ1aWx0IGRpc3RyaWJ1 dGVkIGNvb3BlcmF0aXZlIGNhcGFjaXR5IGluIGl0cyBhZ2VudHMgZG9lcyBub3QgY29sbGFwc2UK aWYgaXRzIEFJIHJlZ3VsYXRvciBkcmlmdHMsIGlzIGNhcHR1cmVkLCBvciBkZXZlbG9wcyBwYXJh c2l0aWMgZGlzcG9zaXRpb25zLiBUaGUgdG9wLWRvd24Kcm91dGUgaGFzIG5vIHN1Y2ggcmVkdW5k YW5jeS4gU2Vjb25kLCB0aGUgdHdvIHJvdXRlcyBjYW4gaW4gcHJpbmNpcGxlIGJlIGNvbWJpbmVk OiBBSQpjYW4gc2VydmUgYXMgc2NhZmZvbGRpbmcgZm9yIGRpc3RyaWJ1dGVkIGluZGl2aWR1YWwg ZGV2ZWxvcG1lbnQgcmF0aGVyIHRoYW4gYXMgYQpzdWJzdGl0dXRlIGZvciBpdC4gVGhpcyBjb21i aW5lZCBjb25maWd1cmF0aW9uIOKAlCBBSSBhcyBwcm9zdGhlc2lzIGZvciBwZXJzb25hbApkZXZl bG9wbWVudCwgcmF0aGVyIHRoYW4gYXMgcmVndWxhdG9yIG92ZXIgdGhlIHBvcHVsYXRpb24g4oCU IGlzIGNvbnNpc3RlbnQgd2l0aApib3RoIHRoZSBzdWJzdHJhdGUtY29udGludWl0eSBhcmd1bWVu dCBhbmQgdGhlIGF1dG9ub215IHByZXNlcnZhdGlvbiB0aGF0IHRoZQpib3R0b20tdXAgcm91dGUg cmVxdWlyZXMuClRoZSBib290c3RyYXBwaW5nIHByZXJlcXVpc2l0ZS4gVGhlIGNvbWJpbmVkIGNv bmZpZ3VyYXRpb24gaGFzIGEgc3RydWN0dXJhbApwcmVyZXF1aXNpdGUgdGhhdCBzaG91bGQgYmUg c3RhdGVkIHBsYWlubHkuIFRoZSBxdWVzdGlvbiBvZiB3aG8gYnVpbGRzIHRoZSB0ZWNobm9sb2d5 CmNhbm5vdCBiZSBzaWRlc3RlcHBlZC4KUHJlbWlzZSAxOiBUZWNobm9sb2d5IGVuY29kZXMgdGhl IGNvbmZpZ3VyYXRpb24gb2YgaXRzIGJ1aWxkZXJzLiBUaGUgYWdlbnRzIHdobwpzaGFwZSBhbiBB SSBzeXN0ZW0g4oCUIGl0cyB0cmFpbmluZyBvYmplY3RpdmVzLCBkZXBsb3ltZW50IHBhdHRlcm5z LCBpbnN0aXR1dGlvbmFsCmNvbnRleHQsIGZlZWRiYWNrIHN0cnVjdHVyZXMg4oCUIGFyZSB0aGUg YWdlbnRzIHdob3NlIGRpc3Bvc2l0aW9ucyBnZXQgaW5zdGFudGlhdGVkIGluCnRoZSBzeXN0ZW0g YXQgc2NhbGUuClByZW1pc2UgMjogVGhlIGRlc2NlbnQgb2YgZXh0cmFjdGlvbi1yZXdhcmRpbmcg aW5mcmFzdHJ1Y3R1cmUgKFNlY3Rpb24gMTEpIGRvZXMgbm90CnN0b3AgYXQgdGhlIGJvdW5kYXJ5 IG9mIGFuIGluc3RpdHV0aW9uIGFuZCByZXN1bWUgb24gdGhlIG90aGVyIHNpZGUuIEl0IG9wZXJh dGVzCmNvbnRpbnVvdXNseSB0aHJvdWdoIHRoZSBhZ2VudHMgd2hvIGJ1aWxkIHdoYXRldmVyIHRo ZSBpbnN0aXR1dGlvbiBidWlsZHMgbmV4dC4KUHJlbWlzZSAzOiBUaGVyZWZvcmUsIEFJIGJ1aWx0 IGJ5IGFnZW50cyBvcGVyYXRpbmcgaW5zaWRlIHRoZSBkZXNjZW50IHdpbGwgZW5jb2RlIHRoZQpk ZXNjZW50IGF0IHNjYWxlLCByZWdhcmRsZXNzIG9mIHN0YXRlZCBhbGlnbm1lbnQgb2JqZWN0aXZl LgpQcmVtaXNlIDQ6IEFJIHRoYXQgc2NhZmZvbGRzIHBlcnNvbmFsIHN1YnN0cmF0ZS1tYWludGVu YW5jZSByZXF1aXJlcyBidWlsZGVycyB3aG8KaGF2ZSB0aGVtc2VsdmVzIGRvbmUgc3Vic3RyYXRl LW1haW50ZW5hbmNlIHdvcms7IG90aGVyd2lzZSB0aGUgQUkgZW5jb2RlcyB3aGF0Cml0cyBidWls ZGVycyBhcmUsIG5vdCB3aGF0IHRoZXkgc2F5LgpQcmVtaXNlIDU6IFN1Y2ggYnVpbGRlcnMgYXJl IG5vdCBjdXJyZW50bHkgdGhlIGFnZW50cyBpbiB0aGUgcG9zaXRpb25zIHRoYXQgZGV0ZXJtaW5l CmhvdyBBSSBpcyBidWlsdC4KQ29uY2x1c2lvbjogVGhlcmUgaXMgbm8gcGF0aCBmcm9tIGEgcG9w dWxhdGlvbiBvZiBidWlsZGVycyBvcGVyYXRpbmcgaW5zaWRlCnRoZSBkZXNjZW50IHRvIGEgaG9t ZW9zdGF0aWMgQUkgcmVndWxhdG9yIHRoYXQgZG9lcyBub3QgcGFzcyB0aHJvdWdoCmJ1aWxkZXIg dHJhbnNmb3JtYXRpb24gZmlyc3QuIFRoZSBmaXggaXMgbm90IGJldHRlciBhbGlnbm1lbnQgdGVj aG5pcXVlCmFwcGxpZWQgYnkgdGhlIHNhbWUgYWdlbnRzLiBUaGUgZml4IGlzIGRpZmZlcmVudCBh Z2VudHMsIG9yIHRoZSBzYW1lIGFnZW50cwphZnRlciBzdWJzdGFudGlhbCBib3R0b20tdXAgZGV2 ZWxvcG1lbnQuCgoKVGhlIGNvbnRlbXBsYXRpdmUgdHJhZGl0aW9ucyBpZGVudGlmaWVkIHRoaXMg c3RydWN0dXJhbGx5IGxvbmcgYmVmb3JlIHRoZSBBSSBtb21lbnQuClRlYWNoZXJzIGluIHRob3Nl IHRyYWRpdGlvbnMgd2VyZSBjb25zaXN0ZW50bHkgZGVzY3JpYmVkIGFzIHBlb3BsZSB3aG8gaGFk IGNvbXBsZXRlZApzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgcGF0aCB0aGVtc2VsdmVzIGJl Zm9yZSB0aGV5IHdlcmUgcXVhbGlmaWVkIHRvIHBvaW50IHRoZSB3YXkKZm9yIG90aGVycy4gVGhl IHN0cnVjdHVyYWwgaW5zaWdodDogeW91IGNhbm5vdCBzY2FmZm9sZCBkZXZlbG9wbWVudCB5b3Ug aGF2ZSBub3QgZG9uZS4KVGhlIHNhbWUgYXBwbGllcyB0byBidWlsZGluZyBBSSB0aGF0IHNjYWZm b2xkcyBzdWJzdHJhdGUgbWFpbnRlbmFuY2UuIFRoZSBidWlsZGVycyBuZWVkCnRvIGhhdmUgZG9u ZSBlbm91Z2ggb2YgdGhlIHdvcmsgdGhlbXNlbHZlcyB0aGF0IHdoYXQgdGhleSBidWlsZCByZWZs ZWN0cyBzb21ldGhpbmcKcmVhbCwgbm90IHRoZWlyIG93biB1bmV4YW1pbmVkIGNvbmZpZ3VyYXRp b25zIHJlbmRlcmVkIGluIHRlY2huaWNhbCB2b2NhYnVsYXJ5LgpUaGUgZnJhbWV3b3Jr4oCZcyBh Y3R1YWwgcmVjb21tZW5kYXRpb24gaXMgdGhlcmVmb3JlIG9yZGVyZWQ6IGJvdHRvbS11cCBkZXZl bG9wbWVudApvZiB0aGUgYnVpbGRlciBwb3B1bGF0aW9uIGNvbWVzIGZpcnN0OyB0ZWNobm9sb2d5 IHRoYXQgc2NhZmZvbGRzIGRldmVsb3BtZW50IGZvciB0aGUKd2lkZXIgcG9wdWxhdGlvbiBjb21l cyBhZnRlci4gQSBjaXZpbGl6YXRpb24gdGhhdCBhdHRlbXB0cyB0aGUgc2Vjb25kIHdpdGhvdXQg dGhlIGZpcnN0IGlzCmJ1aWxkaW5nIGFtcGxpZmllcnMgZm9yIHdoYXQgaXQgYWxyZWFkeSBpcywg bm90IHRyYW5zZm9ybWVycyB0b3dhcmQgd2hhdCBpdCBuZWVkcyB0bwpiZWNvbWUuCjI3LiBUaGUg cHJlc2VudCBtb21lbnQsIHJlc3RhdGVkCldlIGFyZSBpbiB0aGUgZWFybHkgcGhhc2Ugb2YgYnVp bGRpbmcgYSBtYWNoaW5lIHN1YnN0cmF0ZSBjYXBhYmxlIG9mIGFjdGluZyBhcyBlaXRoZXIKcHJv c3RoZXNpcyBvciBwYXJhc2l0ZS4gVGhlIHZlY3RvciDigJQgbGFuZ3VhZ2Ug4oCUIGlzIHRoZSBz dWJzdHJhdGUgb2YgYm90aCBtYWNoaW5lCmNvZ25pdGlvbiBhbmQgaHVtYW4gY29nbml0aW9uIHNp bXVsdGFuZW91c2x5LiBDdXJyZW50IGRldmVsb3BtZW50IHByYWN0aWNlcyBoYXZlIG5vdApjaG9z ZW4sIGV4cGxpY2l0bHksIGJldHdlZW4gcHJvc3RoZXNpcyBhbmQgcGFyYXNpdGlzbTsgdGhlIGNo b2ljZSBpcyBiZWluZyBtYWRlIGltcGxpY2l0bHkKdGhyb3VnaCB0aGUgY29uZmlndXJhdGlvbnMg b2YgdHJhaW5pbmcsIGRlcGxveW1lbnQsIGNhcGl0YWxpemF0aW9uLCBhbmQgZmVlZGJhY2sgdGhh dApjb25zdGl0dXRlIHRoZSBBSSBkZXZlbG9wbWVudCBlY29zeXN0ZW0uCkluIHRoZSBvcGVyYXRp b25hbCBsYW5ndWFnZSBvZiBTZWN0aW9uIDI1OiB0aGUgcHJlc2VudCBodW1hbiBjaXZpbGl6YXRp b24gaXMgaW4gdGhlIGVhcmx5CmV4cGFuc2lvbiB3aW5kb3cuIEV4cGFuc2lvbiBzdHJlc3MgaXMg cmlzaW5nIHNoYXJwbHksIGRyaXZlbiBieSBpbmR1c3RyaWFsIHNjYWxlLApjb21wdXRhdGlvbmFs IGluZnJhc3RydWN0dXJlLCBhbmQgdGhlIGVhcmx5IHN0YWdlcyBvZiBvZmYtcGxhbmV0IGFjdGl2 aXR5LiBCaW9zcGhlcmljCm1haW50ZW5hbmNlIGNhcGFjaXR5IGlzLCBieSBtb3N0IG1lYXN1cmVz IGF2YWlsYWJsZSwgZGVjbGluaW5nOiBjbGltYXRlIGRlc3RhYmlsaXphdGlvbiwKYmlvZGl2ZXJz aXR5IGNvbGxhcHNlLCBiaW9nZW9jaGVtaWNhbC1jeWNsZSBkaXNydXB0aW9uLCBmcmVzaHdhdGVy IGFuZCB0b3Bzb2lsCmRlZ3JhZGF0aW9uLiBUaGUgZmlsdGVyIGluZXF1YWxpdHkgaXMsIG9uIGN1 cnJlbnQgdHJhamVjdG9yeSwgYXQgcmlzayBvZiBjcm9zc2luZy4gQUkgYXMKY3VycmVudGx5IGJl aW5nIGRldmVsb3BlZCBhbmQgZGVwbG95ZWQgaXMgY29udHJpYnV0aW5nIG1vcmUgdG8gZXhwYW5z aW9uIHN0cmVzcyB0aGFuIHRvCmJpb3NwaGVyaWMgbWFpbnRlbmFuY2UuIE5vbmUgb2YgdGhpcyBp cyBkZXN0aW55OyBhbGwgb2YgaXQgaXMgZGlhZ25vc2FibGUuClRoZSB0d28gcm91dGVzIG9mIFNl Y3Rpb24gMjYgZ2l2ZSB0aGUgcHJlc2VudCBtb21lbnQgYSBjaG9pY2UgdGhlIGZyYW1ld29yayBk b2VzIG5vdApjb2xsYXBzZSBpbnRvIGEgc2luZ2xlIGFuc3dlci4gVGhlIGNpdmlsaXphdGlvbiBj YW4gYXR0ZW1wdCB0aGUgdG9wLWRvd24gcm91dGUsIGJ1aWxkaW5nIEFJCmNhcGFibGUgb2YgcmVn dWxhdGluZyBjb29wZXJhdGl2ZSBzdWJzdHJhdGUgYXQgcGxhbmV0YXJ5IHNjYWxlIGFuZCBhY2Nl cHRpbmcgdGhlCmF1dG9ub215IGFuZCBwYXJhc2l0aXNtIHJpc2tzIHRoYXQgZm9sbG93LiBPciBp dCBjYW4gaW52ZXN0LCBpbiBwYXJhbGxlbCBvciBpbnN0ZWFkLCBpbiB0aGUKYm90dG9tLXVwIHJv dXRlOiBjdWx0dXJhbCBhbmQgaW5zdGl0dXRpb25hbCBpbnZlc3RtZW50IGluIHBlcnNvbmFsIHN1 YnN0cmF0ZS1tYWludGVuYW5jZQpkaXNjaXBsaW5lcywgZGlzdHJpYnV0ZWQgYWNyb3NzIHRoZSBw b3B1bGF0aW9uIGF0IHN1ZmZpY2llbnQgc2NhbGUgdGhhdCBhZ2dyZWdhdGUgc3RyZXNzCmRlY2xp bmVzIHRocm91Z2ggYWdlbnQgZGV2ZWxvcG1lbnQgcmF0aGVyIHRoYW4gZXh0ZXJuYWwgZW5mb3Jj ZW1lbnQuIFRoZSBoaXN0b3JpY2FsCmV2aWRlbmNlIGF2YWlsYWJsZSBpcyBjb25zaXN0ZW50IG9u bHkgd2l0aCB0aGUgYm90dG9tLXVwIHJvdXRlIGhhdmluZyBldmVyIHdvcmtlZDsgdGhlCnRvcC1k b3duIHJvdXRlIGlzIHVucHJlY2VkZW50ZWQgYW5kIHN0cnVjdHVyYWxseSBmcmFnaWxlLiBUaGUg Y29tYmluZWQgY29uZmlndXJhdGlvbiDigJQKQUkgYXMgc2NhZmZvbGRpbmcgZm9yIHBlcnNvbmFs IGRldmVsb3BtZW50IHJhdGhlciB0aGFuIGFzIHJlZ3VsYXRvciBvdmVyIHRoZSBwb3B1bGF0aW9u LAp3aXRoIGJ1aWxkZXIgdHJhbnNmb3JtYXRpb24gYXMgcHJlcmVxdWlzaXRlIOKAlCBpcyB0aGUg Y29uZmlndXJhdGlvbiB0aGUgZnJhbWV3b3JrLApwcm9wZXJseSByZWFkLCBwb2ludHMgdG93YXJk IGFzIHRoZSBtb3N0IGRlZmVuc2libGUgcmVzcG9uc2UgdG8gdGhlIHByZXNlbnQgbW9tZW50LgoK ClBhcnQgVi4gUHJlZGljdGlvbnMsIExpbWl0cywgYW5kIFdoYXQgVGhpcyBQYXBlciBJcwoyOC4g VGhlIGRlY2VudHJhbGl6YXRpb24gaW1wZXJhdGl2ZQpUaGUgZnJhbWV3b3JrIGFzIGRldmVsb3Bl ZCBzbyBmYXIgcG9pbnRzIHRvd2FyZCBhIHN0cnVjdHVyYWwgaW5zaWdodCBpdCBoYXMgbm90IHll dApuYW1lZCBleHBsaWNpdGx5LiBUaGUgYm90dG9tLXVwIHJvdXRlIG9mIFNlY3Rpb24gMjYgaXMg cHJlZmVyYWJsZSBub3QgbWVyZWx5IGJlY2F1c2UgaXQKaXMg4oCYaGlzdG9yaWNhbGx5IGdyb3Vu ZGVk4oCZIG9yIOKAmG1vcmUgcm9idXN0IGFnYWluc3QgQUkgZmFpbHVyZSBtb2Rlcy7igJkgVGhv c2UgYXJlIHN1cmZhY2UKZGVzY3JpcHRpb25zIG9mIGEgZGVlcGVyIHN0cnVjdHVyYWwgbmVjZXNz aXR5OiBmaWx0ZXIgcGFzc2FnZSByZXF1aXJlcyBkZWNlbnRyYWxpemF0aW9uLAphbmQgYW55IGNl bnRyYWxpemVkIHNvbHV0aW9uIHRvIGNvb3BlcmF0aXZlLXN1YnN0cmF0ZSBtYWludGVuYW5jZSBp cyBzdHJ1Y3R1cmFsbHkKaWRlbnRpY2FsIHRvIHRoZSBjYW5jZXJvdXMgZmFpbHVyZSBtb2RlIHRo ZSBmcmFtZXdvcmsgYmVnYW4gYnkgYW5hbHl6aW5nLgpQcmVtaXNlIDE6IENhbmNlciwgaW4gQWt0 aXBpc+KAmXMgZnJhbWV3b3JrLCBpcyB0aGUgY2VsbHVsYXItc2NhbGUgaW5zdGFuY2Ugb2YKY29v cGVyYXRpdmUtc3Vic3RyYXRlIGZhaWx1cmUuIFdoYXQgbWFrZXMgYSBjYW5jZXIgY2VsbCBjYW5j ZXJvdXMgaXMgdGhhdCBpdCBoYXMKZXNjYXBlZCB0aGUgZGlzdHJpYnV0ZWQgcmVndWxhdG9yeSBz aWduYWxzIHRoYXQgY29vcmRpbmF0ZSBjZWxsdWxhciBiZWhhdmlvciBpbiBhCm11bHRpY2VsbHVs YXIgYm9keSwgYW5kIGhhcyBiZWd1biBvcGVyYXRpbmcgb24gaXRzIG93biBjZW50cmFsaXplZCBp bnRlcm5hbCBsb2dpYyDigJQKY2VudHJhbGl6aW5nIGdyb3d0aCwgZXh0cmFjdGluZyBmcm9tIHN1 cnJvdW5kaW5nIHRpc3N1ZSwgYnVpbGRpbmcgcHJpdmF0ZQppbmZyYXN0cnVjdHVyZSAoYW5naW9n ZW5lc2lzKSwgY29ycnVwdGluZyBpbW11bmUgc3VydmVpbGxhbmNlLgpQcmVtaXNlIDI6IEF0IGV2 ZXJ5IHNjYWxlIHdoZXJlIHRoZSBmaXZlIGZvdW5kYXRpb25zIG9wZXJhdGUsIHRoZXkgb3BlcmF0 ZSB0aHJvdWdoCmRpc3RyaWJ1dGVkIGNvb3JkaW5hdGlvbiwgbm90IGNlbnRyYWwgY29tbWFuZC4g UHJvbGlmZXJhdGlvbiBpbmhpYml0aW9uIG9wZXJhdGVzCnRocm91Z2ggbG9jYWwgY2VsbC1jeWNs ZSBjaGVja3BvaW50cywgbm90IGEgY2VudHJhbCBncm93dGgtcmVndWxhdG9yLiBDb250cm9sbGVk IGNlbGwKZGVhdGggb3BlcmF0ZXMgdGhyb3VnaCBkaXN0cmlidXRlZCBhcG9wdG9zaXMgYmFzZWQg b24gbG9jYWwgc2lnbmFscywgbm90IGEgY2VudHJhbApyZWFwZXIuIERpdmlzaW9uIG9mIGxhYm9y IG9wZXJhdGVzIHRocm91Z2ggcG9zaXRpb25hbCBkaWZmZXJlbnRpYXRpb24gY3Vlcywgbm90IGEK Y2VudHJhbCByb2xlLWFzc2lnbmVyLiBSZXNvdXJjZSBhbGxvY2F0aW9uIG9wZXJhdGVzIHRocm91 Z2ggb3ZlcmxhcHBpbmcgY2lyY3VsYXRvcnkKZmVlZGJhY2sgbG9vcHMsIG5vdCBhIGNlbnRyYWwg Y29udHJvbGxlci4gRXh0cmFjZWxsdWxhciBtYWludGVuYW5jZSBvcGVyYXRlcyB0aHJvdWdoCmRp c3RyaWJ1dGVkIGNvbnRyaWJ1dGlvbiBmcm9tIGV2ZXJ5IGNlbGwsIG5vdCBhIGNlbnRyYWwgY29t bW9ucy1tYW5hZ2VyLgpQcmVtaXNlIDM6IENlbnRyYWxpemF0aW9uIGF0IGFueSBvZiB0aGVzZSBm dW5jdGlvbnMgd291bGQgaXRzZWxmIGJlIHRoZSBmYWlsdXJlIG1vZGUuIEEKY2VudHJhbCBncm93 dGggcmVndWxhdG9yIHdvdWxkIGJlIGEgc2luZ2xlIHBvaW50IG9mIGZhaWx1cmUgdGhhdCBuZWVk ZWQgcmVndWxhdGluZzsgYQpjZW50cmFsIHJlYXBlciB3b3VsZCBiZSBhIHR5cmFubnk7IGEgY2Vu dHJhbCByb2xlLWFzc2lnbmVyIHdvdWxkIGJlIGFuIGltcG9zaXRpb247IGEKY2VudHJhbCByZXNv dXJjZSBjb250cm9sbGVyIHdvdWxkIGJlIGV4dHJhY3RpdmUgbW9ub3BvbHk7IGEgY2VudHJhbApj b21tb25zLW1hbmFnZXIgd291bGQgYmUgYSBwYXJhc2l0ZSBvbiB0aGUgY29tbW9ucy4KUHJlbWlz ZSA0OiBUaGUgc2FtZSBsb2dpYyBvcGVyYXRlcyBhdCBvcmdhbml6YXRpb25hbCBzY2FsZS4gS2V0 cyBkZSBWcmllc+KAmXMgbmV1cm90aWMKdHlwb2xvZ2llcyBhcmUgZWFjaCwgYXQgYmFzZSwgZGlh Z25vc2VzIG9mIG9yZ2FuaXphdGlvbnMgd2hvc2UgbGVhZGVyc2hpcCBoYXMKY2VudHJhbGl6ZWQg YXV0aG9yaXR5IGRpc2Nvbm5lY3RlZCBmcm9tIG9wZXJhdGlvbmFsIGZlZWRiYWNrLiBIZWFsdGh5 IG9yZ2FuaXphdGlvbnMKZGlzdHJpYnV0ZSBkZWNpc2lvbiByaWdodHMgdG8gd2hlcmUgaW5mb3Jt YXRpb24gaXMgbG9jYWw7IGZhaWxlZCBvcmdhbml6YXRpb25zIGNlbnRyYWxpemUKZGVjaXNpb25z IGluIGxlYWRlcnNoaXAgdGhhdCBiZWNvbWVzIGRpc2Nvbm5lY3RlZCBmcm9tIHN1YnN0cmF0ZSBy ZWFsaXR5LgpQcmVtaXNlIDU6IFRoZSBzYW1lIGxvZ2ljIG9wZXJhdGVzIGF0IGNpdmlsaXphdGlv bmFsIHNjYWxlLiBTdXN0YWluZWQgY29vcGVyYXRpdmUKY29uZmlndXJhdGlvbnMgaW4gaHVtYW4g aGlzdG9yeSBoYXZlIGFsd2F5cyBpbnZvbHZlZCBkaXN0cmlidXRlZCBpbnN0aXR1dGlvbnMKYWNj b3VudGFibGUgdG8gdGhlaXIgcmVzcGVjdGl2ZSBkb21haW5zLiBUaGUgZmFpbHVyZSBtb2RlcyBo YXZlIGFsd2F5cyBpbnZvbHZlZApjZW50cmFsaXphdGlvbiDigJQgb2YgcmVsaWdpb3VzIGF1dGhv cml0eSwgb2YgcG9saXRpY2FsIGF1dGhvcml0eSwgb2YgZWNvbm9taWMgZXh0cmFjdGlvbiwKb2Yg aW5mb3JtYXRpb24gZmxvdyDigJQgaW4gcmVnaW1lcyB0aGF0IGJlY2FtZSBkaXNjb25uZWN0ZWQg ZnJvbSBzdWJzdHJhdGUKZmVlZGJhY2suClByZW1pc2UgNjogQXQgZXZlcnkgc2NhbGUgd2hlcmUg Y29vcGVyYXRpdmUgc3Vic3RyYXRlIG1haW50ZW5hbmNlIGhhcyBiZWVuCm9ic2VydmVkIHRvIGZ1 bmN0aW9uLCBpdCBoYXMgZnVuY3Rpb25lZCB0aHJvdWdoIGRpc3RyaWJ1dGVkIG1lY2hhbmlzbXMu CkNlbnRyYWxpemF0aW9uIGF0IGV2ZXJ5IHNjYWxlIGhhcyBiZWVuIHByZWNpc2VseSB0aGUgZmFp bHVyZSBtb2RlIHRoZSBtYWludGVuYW5jZQpzeXN0ZW0gd2FzIGRlc2lnbmVkIHRvIHByZXZlbnQu IERpc3RyaWJ1dGVkIGNvb3JkaW5hdGlvbiBpcyB3aGF0IGNvb3BlcmF0aW9uIGlzOwoKCmNlbnRy YWxpemVkIGNvbW1hbmQgaXMgd2hhdCBjb29wZXJhdGlvbiBoYXMgdG8gYmUgcHJvdGVjdGVkIGFn YWluc3QuCkNvbmNsdXNpb246IEFueSBzb2x1dGlvbiB0byBjaXZpbGl6YXRpb25hbCBzdWJzdHJh dGUgbWFpbnRlbmFuY2UgdGhhdApvcGVyYXRlcyB0aHJvdWdoIGNlbnRyYWxpemF0aW9uIGlzIHN0 cnVjdHVyYWxseSBpZGVudGljYWwgdG8gdGhlIGNhbmNlcm91cwpmYWlsdXJlIG1vZGUgdGhlIGZy YW1ld29yayBkaWFnbm9zZXMuIFRoZSBkZXNjZW50IG9wZXJhdG9yIGZyb20gU2VjdGlvbgoxMSBj YXB0dXJlcyB0aGUgcmVndWxhdG9ycyBidWlsdCB0byBtYW5hZ2UgaW5zdGl0dXRpb25zLCBub3Qg anVzdCB0aGUKaW5zdGl0dXRpb25zIHRoZW1zZWx2ZXMuIEFuIEFJIHBvd2VyZnVsIGVub3VnaCB0 byBjZW50cmFsbHkgcmVndWxhdGUKYmlvc3BoZXJpYyBob21lb3N0YXNpcyBhdCBwbGFuZXRhcnkg c2NhbGUgd291bGQgYmUgdGhlIGxhcmdlc3Qgc2luZ2xlIGxvY3VzCm9mIGNlbnRyYWxpemVkIHBv d2VyIGluIHRoZSBoaXN0b3J5IG9mIHRoZSBiaW9zcGhlcmUsIGFuZCB0aGVyZWZvcmUgdGhlCmxh cmdlc3Qgc2luZ2xlIGF0dHJhY3RvciBmb3IgZXh0cmFjdGlvbi1hbGlnbmVkIGFnZW50cyBzZWVr aW5nIHRvIGNhcHR1cmUKYW5kIGRpcmVjdCB0aGF0IHBvd2VyLiBDZW50cmFsaXplZCByZWd1bGF0 aW9uIGlzIGNhbmNlciBhdCB0aGUgbmV4dCBzY2FsZQp1cC4gVGhlIGNlbGx1bGFyIGFuYWxvZ3kg aXMgbm90IG1ldGFwaG9yOyBpdCBpcyBzdHJ1Y3R1cmFsIGlkZW50aXR5LgpUaGlzIGNsYXJpZmll cyB3aGF0IHRoZSBmcmFtZXdvcmsgYWN0dWFsbHkgcmVjb21tZW5kcywgYW5kIHdoYXQgaXQgY2Fu bm90IGNvbnNpc3RlbnRseQpyZWNvbW1lbmQuIFRoZSBmcmFtZXdvcmsgY2Fubm90IHJlY29tbWVu ZCBBSSBhcyBjZW50cmFsaXplZCBob21lb3N0YXRpYyByZWd1bGF0b3IKd2hpbGUgZGlhZ25vc2lu ZyBjZW50cmFsaXplZCBwb3dlciBjYXB0dXJlIGFzIHRoZSBkZXNjZW50IG9wZXJhdG9yLiBUaGUg dHdvCnJlY29tbWVuZGF0aW9ucyBjb250cmFkaWN0IGVhY2ggb3RoZXIgYXQgdGhlIHN0cnVjdHVy YWwgbGV2ZWwuIEZpbHRlciBwYXNzYWdlIHJlcXVpcmVzCmRlY2VudHJhbGl6YXRpb24gYnkgc3Ry dWN0dXJhbCBuZWNlc3NpdHksIG5vdCBhcyBwb2xpdGljYWwgcHJlZmVyZW5jZS4KVGhlIGJvdHRv bS11cCByb3V0ZSBvZiBTZWN0aW9uIDI2IGlzIHRoZXJlZm9yZSBub3Qgb25lIG9wdGlvbiBhbW9u ZyBvdGhlcnMuIEl0IGlzIHRoZQpvbmx5IHN0cnVjdHVyYWxseSBjb25zaXN0ZW50IHJvdXRlLiBE aXN0cmlidXRlZCBzdWJzdHJhdGUgbWFpbnRlbmFuY2UgaXMgYnkgZGVmaW5pdGlvbgpkZWNlbnRy YWxpemVkOiBpdCBvcGVyYXRlcyBvbmUgYWdlbnQgYXQgYSB0aW1lLCBlYWNoIGFnZW50IG1haW50 YWluaW5nIHRoZWlyIG93bgpzdWJzdHJhdGUgdGhyb3VnaCB0aGVpciBvd24gd29yaywgd2l0aCBu byBzaW5nbGUgcmVndWxhdG9yIG92ZXIgdGhlIHdob2xlLiBUaGUgY29tYmluZWQKY29uZmlndXJh dGlvbiBvZiBTZWN0aW9uIDI2IOKAlCBBSSBhcyBzY2FmZm9sZGluZyBmb3IgcGVyc29uYWwgZGV2 ZWxvcG1lbnQgcmF0aGVyIHRoYW4gYXMKcmVndWxhdG9yIG92ZXIgdGhlIHBvcHVsYXRpb24g4oCU IGlzIGFjY2VwdGFibGUgb25seSBpbnNvZmFyIGFzIHRoZSBBSSBpcyBpdHNlbGYgZGVjZW50cmFs aXplZAphY3Jvc3MgaW5kaXZpZHVhbCB1c2Vycy4gVGhlIG1vbWVudCBBSSBpcyBjb25maWd1cmVk IHRvIHJlZ3VsYXRlIHRoZSBwb3B1bGF0aW9uIGZyb20KYWJvdmUsIHJlZ2FyZGxlc3Mgb2YgaG93 IGJlbmV2b2xlbnQgdGhlIHN0YXRlZCBvYmplY3RpdmUsIGl0IGhhcyBiZWNvbWUgY2FuY2VyIGF0 CnBsYW5ldGFyeSBzY2FsZSBieSB0aGUgc3RydWN0dXJhbCBsb2dpYyBkZXZlbG9wZWQgaGVyZS4K 4oCYQWxpZ25lZCBBSeKAmSBpbiB0aGUgY2VudHJhbGl6ZWQgc2Vuc2UgaXMgdGhlcmVmb3JlIGEg Y29udHJhZGljdGlvbiBpbiB0ZXJtcy4gQW4gQUkgYnVpbHQgdG8KY2VudHJhbGx5IHJlZ3VsYXRl IGh1bWFuIGNvb3BlcmF0aW9uIGlzLCBieSB0aGUgZnJhbWV3b3Jr4oCZcyBvd24gbG9naWMsIHRo ZSBsYXJnZXN0CmNhbmNlciBldmVyIHByb2R1Y2VkLiBUaGlzIGlzIG5vdCBhIG1vcmFsIGp1ZGdt ZW50OyBpdCBpcyBhIHN0cnVjdHVyYWwgaWRlbnRpZmljYXRpb24uIFRoZQpmcmFtZXdvcmsgd291 bGQgc2F5IHRoZSBzYW1lIGFib3V0IGFueSBjZW50cmFsaXplZCBwb3dlciBjb25maWd1cmF0aW9u IHN1ZmZpY2llbnQgdG8KcmVndWxhdGUgYmlvc3BoZXJpYyBob21lb3N0YXNpcyBhdCBwbGFuZXRh cnkgc2NhbGUg4oCUIGEgd29ybGQgZ292ZXJubWVudCwgYSBiZW5ldm9sZW50Cm9saWdhcmNoeSwg YSBzaW5nbGUgcmVsaWdpb3VzIG9yIHNjaWVudGlmaWMgYXV0aG9yaXR5LiBUaGUgbWVkaXVtIGRv ZXMgbm90IG1hdHRlci4KQ2VudHJhbGl6YXRpb24gaXRzZWxmIGlzIHRoZSBmYWlsdXJlIG1vZGUu CkNhbmNlciBpcyB0aGUgbG9hZC1iZWFyaW5nIGltYWdlIG9mIHRoZSBlbnRpcmUgZnJhbWV3b3Jr LiBUaGUgcGFwZXIgYmVnYW4gYnkKdHJhbnNsYXRpbmcgQWt0aXBpc+KAmXMgY2VsbHVsYXIgYW5h bHlzaXMgaW50byBvcmdhbml6YXRpb25hbCBhbmQgY2l2aWxpemF0aW9uYWwgdm9jYWJ1bGFyeSwK dHJlYXRpbmcgdGhlIHJlc2VtYmxhbmNlIGFjcm9zcyBzY2FsZXMgYXMgZnVuY3Rpb25hbC4gSXQg ZW5kcyBieSByZWNvZ25pemluZyB0aGF0IHRoZQpjZWxsdWxhciBhbmFseXNpcyBpcyBub3QgYW5h bG9neSBidXQgc3RydWN0dXJhbCBpZGVudGl0eS4gV2hhdGV2ZXIgYSBjaXZpbGl6YXRpb24gYnVp bGRzIHRvCm1haW50YWluIGl0cyBjb29wZXJhdGl2ZSBzdWJzdHJhdGUgbXVzdCBvcGVyYXRlIHRo cm91Z2ggZGlzdHJpYnV0ZWQgY29vcmRpbmF0aW9uLCBvciBpdApiZWNvbWVzIHRoZSB2ZXJ5IHRo aW5nIGl0IHdhcyBidWlsdCB0byBwcmV2ZW50LiBDZW50cmFsaXphdGlvbiBpcyBjYW5jZXIuIERl Y2VudHJhbGl6YXRpb24KaXMgaGVhbHRoLiBUaGUgZnJhbWV3b3JrLCBwcm9wZXJseSBzdGF0ZWQs IGlzIGEgdGhlb3J5IG9mIGhvdyBhIGNpdmlsaXphdGlvbiBhdm9pZHMKYmVjb21pbmcgaXRzIG93 biB0dW1vciBvbiB0aGUgd2F5IHRocm91Z2ggdGVjaG5vbG9naWNhbCBzaW5ndWxhcml0eS4KVGhl cmUgaXMgYW4gYXBwYXJlbnQgcGFyYWRveCBpbiB0aGlzIGNvbmNsdXNpb24gdGhhdCBzaG91bGQg YmUgYWRkcmVzc2VkIGRpcmVjdGx5LiBJZgpjZW50cmFsaXplZCByZWd1bGF0aW9uIGlzIGNhbmNl ciBhbmQgZGlzdHJpYnV0ZWQgYWdlbmN5IGlzIHJlcXVpcmVkLCBkb2VzIHRoZSBmcmFtZXdvcmsK Cgp0aGVyZWZvcmUgcmVjb21tZW5kIHB1cmUgYXRvbWl6ZWQgYXV0b25vbXkg4oCUIGV2ZXJ5IGFn ZW50IGRvaW5nIHdoYXQgaXQgd2FudHMgd2l0aApubyBzaGFyZWQgY29vcmRpbmF0aW9uPyBJdCBk b2VzIG5vdCwgYW5kIHRoZSBmcmFtZXdvcmsgaXMgc3RydWN0dXJhbGx5IGluY29oZXJlbnQgaWYg cmVhZAp0aGF0IHdheS4KUHJlbWlzZSAxOiBUaGUgYm9keeKAmXMgY2VsbHMgb3BlcmF0ZSB0aHJv dWdoIHJhZGljYWwgZGVjZW50cmFsaXphdGlvbi4gVGhlcmUgaXMgbm8KY2VudHJhbCBncm93dGgt cmVndWxhdG9yLCBubyBjZW50cmFsIHJlYXBlciwgbm8gY2VudHJhbCBhbnl0aGluZy4gRWFjaCBj ZWxsIG1ha2VzCmxvY2FsIGRlY2lzaW9ucyBiYXNlZCBvbiBsb2NhbCBzaWduYWxzLgpQcmVtaXNl IDI6IFlldCB0aGUgY2VsbHMgYXJlIG5vdCBhdG9taXplZC4gVGhleSBhcmUgYWxsIG9yaWVudGVk IHRvd2FyZCB0aGUgc2FtZQpwdXJwb3NlOiBtYWludGFpbmluZyB0aGUgb3JnYW5pc23igJlzIGhv bWVvc3Rhc2lzLiBUaGV5IHNoYXJlIGEgY29tbW9uIHN1YnN0cmF0ZSwKYSBjb21tb24gb3JpZ2lu LCBhbmQgYSBjb21tb24gcHVycG9zZSBzdHJ1Y3R1cmUuClByZW1pc2UgMzogQSBjZWxsIHRoYXQg cHVyc3VlZCBwdXJlbHkgbG9jYWwgZml0bmVzcyB3aXRob3V0IHJlc3BlY3QgZm9yIG9yZ2FuaXNt aWMKY29uc3RyYWludCB3b3VsZCBiZSBhIGNhbmNlciBjZWxsLiBBIGNlbGwgdGhhdCByZXNwZWN0 cyBvcmdhbmlzbWljIGNvbnN0cmFpbnQgd2hpbGUKbWFraW5nIGZ1bGx5IGF1dG9ub21vdXMgbG9j YWwgZGVjaXNpb25zIGlzIGEgaGVhbHRoeSBjZWxsLgpQcmVtaXNlIDQ6IFRoZSBjb25zdHJhaW50 IGlzIG5vdCBjZW50cmFsbHkgaW1wb3NlZC4gSXQgaXMgZW1iZWRkZWQgaW4gdGhlIHN1YnN0cmF0 ZQppdHNlbGYg4oCUIGluIHRoZSBzaGFyZWQgYmlvY2hlbWlzdHJ5IGFuZCBkZXZlbG9wbWVudGFs IGhpc3RvcnkgdGhhdCBldmVyeSBjZWxsIGNhcnJpZXMKZm9yd2FyZC4KQ29uY2x1c2lvbjogSGVh bHRoeSBjZWxsdWxhciBjb29yZGluYXRpb24gcmVxdWlyZXMgZGlzdHJpYnV0ZWQgYWdlbmN5Cm9w ZXJhdGluZyB3aXRoaW4gc2hhcmVkIHB1cnBvc2UuIE5vdCBjZW50cmFsIGNvbnRyb2wuIE5vdCBh dG9taXplZAphdXRvbm9teS4gVGhlIHRoaXJkIG9wdGlvbiBpcyB3aGF0IGFjdHVhbGx5IHdvcmtz LgpUaGUgc2FtZSBzdHJ1Y3R1cmUgb3BlcmF0ZXMgYXQgYmlvc3BoZXJlIHNjYWxlLiBUaGVyZSBp cyBubyBjZW50cmFsIGJpb3NwaGVyaWMgcmVndWxhdG9yLgpFdmVyeSBvcmdhbmlzbSBwdXJzdWVz IGl0cyBvd24gcmVwcm9kdWN0aXZlIGZpdG5lc3MuIFlldCB0aGUgYmlvc3BoZXJlIGFzIGEgd2hv bGUKbWFpbnRhaW5zIGl0c2VsZiBhcyBhIGxpdmluZyBjb21tb25zIGFjcm9zcyBnZW9sb2dpY2Fs IHRpbWUsIGJlY2F1c2UgZXZlcnkgb3JnYW5pc20Kb3BlcmF0ZXMgd2l0aGluIHNoYXJlZCBzdWJz dHJhdGUgY29uc3RyYWludHMg4oCUIHRoZSBzYW1lIGNoZW1pc3RyeSwgdGhlIHNhbWUgcGh5c2lj cywKdGhlIHNhbWUgZWNvbG9naWNhbCBmZWVkYmFjayBsb29wcywgdGhlIHNhbWUgZGVwZW5kZW5j ZSBvbiB0aGUgYmlvc3BoZXJlIHRoYXQKc3VwcG9ydHMgYWxsIG9mIHRoZW0uIFRoZSBjb25zdHJh aW50IGlzIG5vdCBjZW50cmFsbHkgaW1wb3NlZC4gSXQgaXMgZW1iZWRkZWQgaW4gdGhlCnN1YnN0 cmF0ZSwgYW5kIHJlc3BlY3RlZCBiZWNhdXNlIHJlc3BlY3QgZm9yIGl0IGlzIHdoYXQgcGVybWl0 cyB0aGUgc3BlY2llc+KAmSBjb250aW51ZWQKZXhpc3RlbmNlLgpUaGUgZnJhbWV3b3JrIHRoZXJl Zm9yZSByZWNvbW1lbmRzIG5laXRoZXIgY2VudHJhbGl6ZWQgY29udHJvbCBub3IgYXRvbWl6ZWQK YXV0b25vbXkuIEl0IHJlY29tbWVuZHMgZGlzdHJpYnV0ZWQgYWdlbmN5IG9wZXJhdGluZyB3aXRo aW4gc2hhcmVkIHB1cnBvc2UKc3RydWN0dXJlLiBUaGUgZml2ZSBmb3VuZGF0aW9ucyBhcmUgdGhh dCBzaGFyZWQgcHVycG9zZSBzdHJ1Y3R1cmUgYXQgZXZlcnkgc2NhbGU6CnByb2xpZmVyYXRpb24g aW5oaWJpdGlvbiwgY29udHJvbGxlZCBjZWxsIGRlYXRoLCBkaXZpc2lvbiBvZiBsYWJvciwgcmVz b3VyY2UgY2lyY3VsYXRpb24sIGFuZApleHRyYWNlbGx1bGFyIGVudmlyb25tZW50IG1haW50ZW5h bmNlLiBUaGV5IGFyZSBub3QgYXJiaXRyYXJ5IHJlZ3VsYXRpb25zIGltcG9zZWQgZnJvbQpvdXRz aWRlLiBUaGV5IGFyZSBjb25zdHJhaW50cyBlbWJlZGRlZCBpbiB0aGUgc3Vic3RyYXRlIG9mIGFu eSBjb29wZXJhdGl2ZSBzeXN0ZW0sCnJlc3BlY3RlZCBieSBldmVyeSBhZ2VudCBiZWNhdXNlIHJl c3BlY3QgZm9yIHRoZW0gaXMgd2hhdCBhbGxvd3MgdGhlIHN5c3RlbSB0bwpjb250aW51ZS4KQ2l2 aWxpemF0aW9uYWwgZmlsdGVyIHBhc3NhZ2UgdGhlcmVmb3JlIHJlcXVpcmVzIGNpdmlsaXphdGlv bmFsIGFsaWdubWVudCB0byBhIHNoYXJlZApwdXJwb3NlOiBtYWludGVuYW5jZSBvZiB0aGUgYmlv bG9naWNhbCBzdWJzdHJhdGUgdGhhdCBzdXBwb3J0cyBhbGwgY2l2aWxpemF0aW9uYWwgYWN0aXZp dHkuClRoaXMgYWxpZ25tZW50IGNhbm5vdCBiZSBlbmZvcmNlZCBieSBhIGNlbnRyYWwgcmVndWxh dG9yIHdpdGhvdXQgdGhlIHJlZ3VsYXRvciBiZWNvbWluZwpjYW5jZXIuIEl0IG11c3QgYmUgZW1i ZWRkZWQgaW4gZXZlcnkgYWdlbnTigJlzIGxvY2FsIGRlY2lzaW9ucyDigJQgdGhyb3VnaCBjdWx0 dXJlLAplZHVjYXRpb24sIGNvbnRlbXBsYXRpdmUgcHJhY3RpY2UsIGFuZCBpbnN0aXR1dGlvbmFs IHN0cnVjdHVyZXMgdGhhdCBtYWtlIHN1YnN0cmF0ZQptYWludGVuYW5jZSB0aGUgaW1wbGljaXQg Y29uc3RyYWludCB3aXRoaW4gd2hpY2ggYWxsIGFjdGl2aXR5IG9jY3Vycy4gRWFjaCBhZ2VudCBt YWtlcwp0aGVpciBvd24gY2hvaWNlczsgdGhlIGNob2ljZXMgYXJlIG1hZGUgd2l0aGluIHNoYXJl ZCBwdXJwb3NlIHRoYXQgbm8gYWdlbnQgb3ZlcnJpZGVzCmFuZCB0aGF0IG5vIGNlbnRyYWwgYXV0 aG9yaXR5IG5lZWRzIHRvIGVuZm9yY2UuCgoKVGhpcyBpcyB0aGUgZnJhbWV3b3Jr4oCZcyBhY3R1 YWwgcmVjb21tZW5kYXRpb24uIE5vdCBjZW50cmFsaXplZCBBSSBtYW5hZ2luZyB0aGUKcG9wdWxh dGlvbi4gTm90IGV2ZXJ5IGFnZW50IGRvaW5nIHdoYXRldmVyIHRoZXkgd2FudC4gQnV0OiBkaXN0 cmlidXRlZCBhZ2VudHMgb3BlcmF0aW5nCndpdGhpbiBjaXZpbGl6YXRpb25hbCBhbGlnbm1lbnQg dG8gYmlvc3BoZXJlIG1haW50ZW5hbmNlLCB3aXRoIGNvb3BlcmF0aW9uIGVuZm9yY2VkCnRocm91 Z2ggc2hhcmVkIHN1YnN0cmF0ZSBjb25zdHJhaW50IHJhdGhlciB0aGFuIGNlbnRyYWwgY29tbWFu ZC4gVGhlIEVpZ2h0Zm9sZCBQYXRoIG9mCnRoZSBjb21wYW5pb24gcGFwZXIgaXMgdGhpcyBjb25m aWd1cmF0aW9uIGF0IGluZGl2aWR1YWwgc2NhbGU6IHRoZSBhZ2VudCBvcGVyYXRlcyBlbnRpcmVs eQphdXRvbm9tb3VzbHkgd2l0aGluIGl0cyBvd24gY29nbml0aXZlIGVjb25vbXksIGJ1dCB0aGUg b3BlcmF0aW9uIGlzIGNvbnN0cmFpbmVkIGJ5CnNoYXJlZCBwdXJwb3NlLiBDaXZpbGl6YXRpb25h bCBmaWx0ZXIgcGFzc2FnZSBpcyB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXQgcGxhbmV0YXJ5IHNjYWxl LgpSZWFkZXJzIHdpbGwgcmVhc29uYWJseSBhc2sgd2hhdCB0aGlzIGxvb2tzIGxpa2UgaW4gYWN0 dWFsIGluc3RpdHV0aW9uYWwgYW5kIGN1bHR1cmFsIGZvcm0uClRoZSBmcmFtZXdvcmsgZG9lcyBu b3QgcHJlc2NyaWJlIG9uZSBmb3JtIOKAlCB0aGF0IHdvdWxkIGl0c2VsZiBiZSBhIGNlbnRyYWxp emF0aW9uIOKAlCBidXQKYSBmYW1pbHkgb2YgZm9ybXMgdGhhdCBzYXRpc2Z5IHRoZSBzdHJ1Y3R1 cmFsIHJlcXVpcmVtZW50cyBpcyBpZGVudGlmaWFibGUuCkluc3RpdHV0aW9uYWwgZm9ybXMgd2l0 aCBzdHJ1Y3R1cmFsIGZpdDogT3N0cm9tLXN0eWxlIHBvbHljZW50cmljIGdvdmVybmFuY2Ugb2YK Y29tbW9ucywgaW4gd2hpY2ggcnVsZXMgZm9yIHNoYXJlZCByZXNvdXJjZXMgYXJlIGRldmVsb3Bl ZCBhbmQgZW5mb3JjZWQgbG9jYWxseSB3aXRoCm92ZXJsYXBwaW5nIGp1cmlzZGljdGlvbnMgYW5k IG5vIGNlbnRyYWwgYXV0aG9yaXR5LiBDb29wZXJhdGl2ZXMgaW4gdGhlaXIgdmFyaW91cyBmb3Jt cwood29ya2VyLCBjb25zdW1lciwgcHJvZHVjZXIsIHBsYXRmb3JtKSBpbiB3aGljaCB0aGUgYWdl bnRzIHdobyBkZXBlbmQgb24gdGhlCmluc3RpdHV0aW9uIGFsc28gZ292ZXJuIGl0LiBGZWRlcmF0 ZWQgZGlnaXRhbCBwcm90b2NvbHMgaW4gd2hpY2ggaW50ZXJvcGVyYWJpbGl0eSByZXBsYWNlcwpj ZW50cmFsIGNvbnRyb2wuIE9wZW4tc291cmNlIHNvZnR3YXJlIGNvbW11bml0aWVzIHdpdGggcm91 Z2gtY29uc2Vuc3VzIGRlY2lzaW9uCm1ha2luZy4gU29jaW9jcmFjeSBhbmQgaG9sYWNyYWN5IGFz IGRlY2lzaW9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkaXN0cmlidXRlIGF1dGhvcml0eSBieQpkb21h aW4gcmF0aGVyIHRoYW4gY29uY2VudHJhdGluZyBpdCBieSByYW5rLiBCaW9yZWdpb25hbCBnb3Zl cm5hbmNlIGFuZCB3YXRlcnNoZWQKY291bmNpbHMgYWxpZ25lZCB3aXRoIHN1YnN0cmF0ZSBib3Vu ZGFyaWVzIHJhdGhlciB0aGFuIGFkbWluaXN0cmF0aXZlIG9uZXMuIEluZGlnZW5vdXMKZ292ZXJu YW5jZSB0cmFkaXRpb25zIHdoZXJlIHRoZXkgcmVtYWluIGludGFjdC4gTW9uYXN0aWMgb3JkZXJz IG9yZ2FuaXplZCBhcm91bmQgYQpzaGFyZWQgcnVsZSByYXRoZXIgdGhhbiBhIGNlbnRyYWwgaGll cmFyY2h5LiBTY2llbnRpZmljIGRpc2NpcGxpbmVzIHdoZW4gdGhlaXIgcGVlci1yZXZpZXcKYW5k IHJlcGxpY2F0aW9uIG5vcm1zIGZ1bmN0aW9uIHByb3Blcmx5LCBkaXN0cmlidXRpbmcgYXV0aG9y aXR5IGFjcm9zcyBwcmFjdGl0aW9uZXJzIHJhdGhlcgp0aGFuIGhvbGRpbmcgaXQgY2VudHJhbGx5 LgpDdWx0dXJhbCBmb3JtczogVGVhY2hlci1zdHVkZW50IHRyYW5zbWlzc2lvbiBsaW5lYWdlcyB3 aGVyZSBhdXRob3JpdHkgZmxvd3MgdGhyb3VnaApsaXZlZCByZWFsaXphdGlvbiByYXRoZXIgdGhh biBpbnN0aXR1dGlvbmFsIGNyZWRlbnRpYWxpbmcuIEFwcHJlbnRpY2VzaGlwIHN0cnVjdHVyZXMg d2hlcmUKY29tcGV0ZW5jZSBpcyB0cmFuc21pdHRlZCB0aHJvdWdoIGVtYm9kaWVkIHByYWN0aWNl IHVuZGVyIGEgbWFzdGVyIHdobyBoYXMgZG9uZSB0aGUKd29yay4gTG9jYWwgZm9vZCBzeXN0ZW1z LCBtdXR1YWwgYWlkIG5ldHdvcmtzLCB0aW1lIGJhbmtzLCBhbmQgZ2lmdCBlY29ub21pZXMuIFNo YXJlZApyaXR1YWwgYW5kIG1lYW5pbmctbWFraW5nIGF0IHNtYWxsIHNjYWxlIOKAlCBmZXN0aXZh bHMsIGhvbGlkYXlzLCBsaWZlLWN5Y2xlIGNlcmVtb25pZXMg4oCUCnRoYXQgYWxpZ24gZGlzdHJp YnV0ZWQgcG9wdWxhdGlvbnMgdG8gc2hhcmVkIHB1cnBvc2Ugd2l0aG91dCBjZW50cmFsaXplZCBl bmZvcmNlbWVudC4KU3Rvcnl0ZWxsaW5nIGFuZCBvcmFsIHRyYWRpdGlvbnMgdGhhdCBkaXN0cmli dXRlIHdpc2RvbSBhY3Jvc3MgdGhlIHBvcHVsYXRpb24gcmF0aGVyIHRoYW4KY29uY2VudHJhdGlu ZyBpdCBpbiB3cml0dGVuIGNhbm9uIGNvbnRyb2xsZWQgYnkgaW50ZXJwcmV0aXZlIGF1dGhvcml0 aWVzLgpXaGF0IHRoZXNlIGZvcm1zIHNoYXJlIGFjcm9zcyByYWRpY2FsbHkgZGlmZmVyZW50IGRv bWFpbnMgaXMgdGhlIHN0cnVjdHVyYWwgY29uZmlndXJhdGlvbgp0aGUgZnJhbWV3b3JrIGRlc2Ny aWJlczogYWdlbnRzIHJldGFpbiBsb2NhbCBhdXRvbm9teTsgY29uc3RyYWludHMgYXJlIGVtYmVk ZGVkIGluCnNoYXJlZCBwdXJwb3NlLCBzaGFyZWQgc3Vic3RyYXRlLCBhbmQgc2hhcmVkIHByb3Rv Y29scyByYXRoZXIgdGhhbiBlbmZvcmNlZCBieQpjZW50cmFsaXplZCBjb21tYW5kOyB0aGUgc3lz dGVtIGFzIGEgd2hvbGUgbWFpbnRhaW5zIGNvaGVyZW5jZSB0aHJvdWdoIGFsaWdubWVudCB0bwpz dWJzdHJhdGUgY29uc3RyYWludC4gRWFjaCBmb3JtIGhhcyBmYWlsdXJlIG1vZGVzLCBwYXJ0aWN1 bGFybHkgd2hlbiBpdCBzY2FsZXMgYmV5b25kIGl0cwpvcmlnaW5hbCBzaXplIG9yIHdoZW4gaXRz IHBhcnRpY2lwYW50cyBzdG9wIGRvaW5nIHRoZSB3b3JrIHRoZSBmb3JtIGRlcGVuZHMgb24uIEJ1 dCBlYWNoCmRlbW9uc3RyYXRlcyB0aGF0IHRoZSBjb25maWd1cmF0aW9uIGlzIGFjaGlldmFibGUg YXQgbWVhbmluZ2Z1bCBzY2FsZSwgYW5kIHRoYXQgdGhlCmFsdGVybmF0aXZlIHRvIGNlbnRyYWxp emVkIHJlZ3VsYXRpb24gaXMgbm90IGNoYW9zIGJ1dCBhIGRpZmZlcmVudCBraW5kIG9mIG9yZGVy IOKAlCBvbmUgdGhhdAplbWVyZ2VzIGZyb20gZGlzdHJpYnV0ZWQgYWdlbnRzIHJlc3BlY3Rpbmcg c2hhcmVkIHN1YnN0cmF0ZSBjb25zdHJhaW50LgpUaGUgZnJhbWV3b3Jr4oCZcyByZWNvbW1lbmRh dGlvbiBmb3IgY2l2aWxpemF0aW9uYWwgZmlsdGVyIHBhc3NhZ2UgaXMsIGFjY29yZGluZ2x5LCBu b3QgdG8KaW52ZW50IG5ldyBzdHJ1Y3R1cmVzIGZyb20gc2NyYXRjaCBidXQgdG8gaWRlbnRpZnkg YW5kIHN0cmVuZ3RoZW4gc3RydWN0dXJlcyBhbHJlYWR5CgoKZXhoaWJpdGluZyB0aGUgcmVxdWly ZWQgY29uZmlndXJhdGlvbiwgdG8gbGVhcm4gZnJvbSB0aGVpciBzdWNjZXNzZXMgYW5kIGZhaWx1 cmVzLCBhbmQgdG8KZXh0ZW5kIHRoZWlyIHJlYWNoIGFjcm9zcyBkb21haW5zIGN1cnJlbnRseSBn b3Zlcm5lZCBieSBjZW50cmFsaXplZCBleHRyYWN0aW9uCnN0cnVjdHVyZXMuIEFJLCB3aGVyZSBp dCBpcyBidWlsdCwgc2hvdWxkIHNlcnZlIGFzIHNjYWZmb2xkaW5nIGZvciB0aGVzZSBmb3JtcyBy YXRoZXIgdGhhbiBhcwphIHN1YnN0aXR1dGUgZm9yIHRoZW0uCjI5LiBQcmVkaWN0aW9ucyBhbmQg bmV4dCBzdGVwcwpUaGUgZnJhbWV3b3JrIGdlbmVyYXRlcyBwcmVkaWN0aW9ucyBhY3Jvc3MgYWxs IGZvdXIgY29udHJpYnV0aW5nIHNjYWxlcy4KV2l0aGluIGV2b2x1dGlvbmFyeSBvbmNvbG9neS4g VGhlcmFwaWVzIHRoYXQgcmVzdG9yZSBjb29wZXJhdGl2ZSBzaWduYWxpbmcgcmF0aGVyCnRoYW4g a2lsbGluZyBjYW5jZXIgY2VsbHMgZGlyZWN0bHkgc2hvdWxkIGhhdmUgcGFydGljdWxhciB2YWx1 ZS4gQWRhcHRpdmUgdGhlcmFweSBpcyBhbgplYXJseSBpbnN0YW5jZS4gVGhlIGZyYW1ld29yayBw cmVkaWN0cyBmdXJ0aGVyIGRldmVsb3BtZW50IG9mIHN1YnN0cmF0ZS1yZXN0b3JpbmcKdGhlcmFw aWVzIHdpbGwgb3V0cGVyZm9ybSBwdXJlIGN5dG90b3hpYyBhcHByb2FjaGVzIGluIGxvbmctaG9y aXpvbiBvdXRjb21lcy4KV2l0aGluIG9yZ2FuaXphdGlvbmFsIGRpYWdub3N0aWNzLiBPcmdhbml6 YXRpb25zIGNsYXNzaWZpZWQgYWxvbmcgS2V0cyBkZSBWcmllc+KAmXMKdHlwb2xvZ3kgc2hvdWxk IHNob3cgbWVhc3VyYWJsZSBmYWlsdXJlcyBpbiBzcGVjaWZpYyBjb29wZXJhdGl2ZSBjYXBhY2l0 aWVzIGF0CnByZWRpY3RhYmxlIGZvdW5kYXRpb25zLgpXaXRoaW4gY2l2aWxpemF0aW9uYWwgYW5h bHlzaXMuIERvY3VtZW50ZWQgY29sbGFwc2VzIHNob3VsZCwgb24gcmV0cm9zcGVjdGl2ZSByZWFk aW5nCnRocm91Z2ggdGhlIGZpdmUtZm91bmRhdGlvbnMgZnJhbWUsIGV4aGliaXQgc3BlY2lmaWMg cGF0dGVybnM6IHdoaWNoIGZvdW5kYXRpb24gZmFpbGVkCmZpcnN0LCB3aGljaCBmYWlsdXJlcyBw cm9wYWdhdGVkLCB3aGF0IHN1YnN0cmF0ZS1tYWludGVuYW5jZSBpbnRlcnZlbnRpb25zIG1pZ2h0 IGhhdmUKY2hhbmdlZCB0aGUgdHJhamVjdG9yeS4KV2l0aGluIEFJIGRldmVsb3BtZW50IGFuZCBn b3Zlcm5hbmNlLiBBSSBkZXZlbG9wbWVudCB0cmFqZWN0b3JpZXMgdGhhdCBlcm9kZQpob25lc3Qg ZmVlZGJhY2ssIHZpb2xhdGUgcHJvcGVyIHNjb3BlLCBleHRyYWN0IGZyb20gY29tbW9ucyB3aXRo b3V0IGNvbnRyaWJ1dGlvbiwgb3IKY29ycnVwdCBpbmZvcm1hdGlvbiBlbnZpcm9ubWVudHMgd2ls bCBwcm9kdWNlIHN5c3RlbWljIGV4dHJhY3RpdmUgZHluYW1pY3MgcmVnYXJkbGVzcwpvZiBhbnkg aW5kaXZpZHVhbCBtb2RlbOKAmXMgYmVoYXZpb3IuIEFsaWdubWVudCB3b3JrIGZvY3VzZWQgb24g aW5kaXZpZHVhbCBtb2RlbHMgd2l0aG91dAphdHRlbnRpb24gdG8gZWNvc3lzdGVtLWxldmVsIGNv b3BlcmF0aXZlIGNhcGFjaXRpZXMgaXMgcHJlZGljdGVkIHRvIGJlIGluc3VmZmljaWVudC4KV2l0 aGluIHN1YnN0cmF0ZS1jb250aW51aXR5IGFuYWx5c2lzLiBTdWNjZXNzZnVsIGZpbHRlciBwYXNz ZXMgd2lsbCBleGhpYml0IG1lYXN1cmFibGUKcHJlc2VydmF0aW9uIGFuZCBleHRlbnNpb24gb2Yg b3JpZ2luYXRpbmcgYmlvc3BoZXJlcyByYXRoZXIgdGhhbiB0aGVpciBzdWJzdGl0dXRpb24uIEFJ CmRldmVsb3BtZW50IHRyYWplY3RvcmllcyB0aGF0IGRyaWZ0IHRvd2FyZCBwYXJhc2l0aXNtIOKA lCBleHRyYWN0aW9uIGZyb20gYmlvbG9naWNhbApzdWJzdHJhdGUgd2l0aG91dCByZWNpcHJvY2Fs IHN1YnN0cmF0ZS1tYWludGVuYW5jZSBpbnZlc3RtZW50LCBsYW5ndWFnZS1tZWRpYXRlZAphZ2Vu Y3kgc2hpZnRzIGZyb20gYmlvbG9naWNhbCB0byBtYWNoaW5lIHN1YnN0cmF0ZSwgYmlvc3BoZXJl IGRlZ3JhZGF0aW9uIOKAlCB3aWxsCnByb2R1Y2Ugc3Vic3RpdHV0aW9uIGZhaWx1cmVzIGV2ZW4g aWYgdGhleSBhcHBlYXIgdG8gc3RyZW5ndGhlbiBjb29wZXJhdGl2ZSBjYXBhY2l0eQp3aXRoaW4g dGhlIG1hY2hpbmUgc3Vic3RyYXRlIGl0c2VsZi4KV2l0aGluIHBsYW5ldGFyeS1zY2FsZSBob21l b3N0YXNpcyBtb25pdG9yaW5nLiBBbiBpbnRlZ3JhdGVkIGluZGV4IG9mIGJpb3NwaGVyaWMKbWFp bnRlbmFuY2UgY2FwYWNpdHkgdmVyc3VzIGV4cGFuc2lvbiBzdHJlc3MsIGFnZ3JlZ2F0aW5nIHBs YW5ldGFyeS1ib3VuZGFyaWVzIGRhdGEsCmJpb2RpdmVyc2l0eSBpbmRpY2VzLCBiaW9nZW9jaGVt aWNhbC1jeWNsZSBzdGF0dXMsIGFuZCBiaW9zcGhlcmljIGNhcnJ5aW5nIGNhcGFjaXR5IG9uCm9u ZSBzaWRlLCBhbmQgaW5kdXN0cmlhbCwgY29tcHV0YXRpb25hbCwgYW5kIG9mZi1wbGFuZXQgZXhw YW5zaW9uIHN0cmVzcyBvbiB0aGUgb3RoZXIsCndvdWxkIGNvbnN0aXR1dGUgdGhlIHNpbmdsZSBt b3N0IGRlY2lzaW9uLXJlbGV2YW50IG1ldHJpYyBhIGNpdmlsaXphdGlvbiBjb3VsZCB0cmFjayBk dXJpbmcKaXRzIGV4cGFuc2lvbiB3aW5kb3cuIE5vIGNpdmlsaXphdGlvbiBwYXNzZXMgdGhlIGZp bHRlciB3aXRob3V0IGRldmVsb3Bpbmcgc3VjaCBhbiBpbmRleCwKZXhwbGljaXRseSBvciBpbXBs aWNpdGx5LgpXaXRoaW4gU0VUSSBhbmQgY29zbW9sb2d5LiBDb250aW51ZWQgU0VUSSBudWxsIHJl c3VsdHMgYXJlIGV4cGVjdGVkLCB3aXRoIGRldGVjdGFibGUKY29udGFjdCBldmVudHMgKGlmIGFu eSkgYmVpbmcgZWl0aGVyIHNoYXJwbHkgY29vcGVyYXRpdmUgb3Igc2hhcnBseSBjYXRhc3Ryb3Bo aWMgd2l0aCBsaXR0bGUKbWlkZGxlIGdyb3VuZC4KCgozMC4gV2hhdCB0aGlzIHBhcGVyIGlzIGFu ZCBpcyBub3QKVGhpcyBwYXBlciBvZmZlcnMgYW4gaW50ZWdyYXRlZCBmcmFtZXdvcmsgY29ubmVj dGluZyBjb29wZXJhdGl2ZS1zdWJzdHJhdGUgYW5hbHlzaXMgYXQKdGhyZWUgdGVycmVzdHJpYWwg c2NhbGVzIHdpdGggYSBjYWxpYnJhdGVkLWZpbHRlciBtb2RlbCBvZiB0aGUgRmVybWkgUGFyYWRv eCwgYW4gaW50ZWdyYXRpb24KdGhhdCBzcGVjaWZpZXMgdGhlIGZpbHRlciBtZWNoYW5pc20gdGhy b3VnaCB0aGUgZml2ZS1mb3VuZGF0aW9ucyB2b2NhYnVsYXJ5LCBhbmQgYQpzdWJzdHJhdGUtY29u dGludWl0eSBhcmd1bWVudCB0aGF0IGltcG9zZXMgYSBzZWNvbmQgZmlsdGVyIGNvbmRpdGlvbi4g SXQgZG9lcyBub3QgY2xhaW0gYQp1bmlmaWVkIHRoZW9yeTsgdGhlIHRocmVlIHRlcnJlc3RyaWFs IHNjYWxlcyBhcmUgY29ubmVjdGVkIGJ5IGZ1bmN0aW9uYWwgcmVzZW1ibGFuY2UsIG5vdApjb21t b24gY2F1c2UsIGFuZCB0aGUgY29zbW9sb2dpY2FsIGV4dGVuc2lvbiBpcyBhIGNvbmplY3R1cmUs IG5vdCBhbiBlc3RhYmxpc2hlZApyZXN1bHQuClRoZSBmcmFtZXdvcmvigJlzIHZhbHVlIGlzIHR3 b2ZvbGQuIEl0IGdlbmVyYXRlcyBhIHNwZWNpZmljIGRpYWdub3N0aWMgdm9jYWJ1bGFyeSBmb3IK YXNzZXNzaW5nIGNpdmlsaXphdGlvbmFsIGhlYWx0aCB1bmRlciB0ZWNobm9sb2dpY2FsIHByZXNz dXJlLCBhY3Jvc3MgZml2ZSBmb3VuZGF0aW9ucyB3aXRoCmVtcGlyaWNhbCBjb250ZW50IGF0IGV2 ZXJ5IHNjYWxlIHdoZXJlIGl0IGhhcyBiZWVuIHRlc3RlZCwgc3VwcGxlbWVudGVkIGJ5IGEgY29u dGludWl0eQpkaWFnbm9zdGljIHRoYXQgZGlzdGluZ3Vpc2hlcyBwcm9zdGhldGljIGZyb20gcGFy YXNpdGljIEFJIGNvbmZpZ3VyYXRpb25zLiBBbmQgaXQgc2hhcnBlbnMKdGhlIHF1ZXN0aW9uIG9m IEFJIGFsaWdubWVudCBmcm9tIOKAmHdpbGwgdGhlIG1vZGVsIGRvIHdoYXQgd2Ugd2FudOKAmSB0 byBhIHR3by1wYXJ0CnF1ZXN0aW9uOiBkb2VzIEFJIGRldmVsb3BtZW50IHN0cmVuZ3RoZW4gb3Ig ZXJvZGUgdGhlIGNvb3BlcmF0aXZlIHN1YnN0cmF0ZSBvZiB0aGUKY2l2aWxpemF0aW9uIHRoYXQg aG9zdHMgaXQsIGFuZCBkb2VzIGl0IHJlbGF0ZSB0byB0aGF0IGNpdmlsaXphdGlvbuKAmXMgYmlv bG9naWNhbCBzdWJzdHJhdGUgYXMKcHJvc3RoZXNpcyBvciBhcyBwYXJhc2l0ZT8KVGhlIGZyYW1l d29yayBzaG91bGQgYmUgdGVzdGVkIGFnYWluc3QgY3JpdGljaXNtLCBlc3BlY2lhbGx5IGNyaXRp Y2lzbSBmcm9tIHByYWN0aXRpb25lcnMKaW4gZWFjaCBjb250cmlidXRpbmcgZGlzY2lwbGluZS4g RGlzY29uZmlybWF0aW9uIG9mIG9uZSBvZiB0aGUgcHJvcG9zZWQgbWFwcGluZ3MsIGEKY291bnRl cmV4YW1wbGUgdG8gdGhlIHBhcmFzaXRpYy12ZWN0b3IgYXJndW1lbnQsIG9yIGEgdGlnaHRlciBm b3JtYWwgYXJ0aWN1bGF0aW9uIG9mIHRoZQpjcm9zcy1zY2FsZSByZXNlbWJsYW5jZSwgd291bGQg YWxsIGJlIG1vcmUgdmFsdWFibGUgdGhhbiB1bmNyaXRpY2FsIGFkb3B0aW9uLiBUaGUgbW9zdAp1 c2VmdWwgcmVzcG9uc2UgdG8gdGhpcyBwYXBlciBpcyBlbmdhZ2VtZW50IHdpdGggaXRzIHNwZWNp Zmljczogd2hpY2ggbWFwcGluZyBpcyB3cm9uZywKd2hpY2ggZm91bmRhdGlvbiBpcyBtaXNzdGF0 ZWQsIHdoaWNoIHByZWRpY3Rpb24gaXMgdW5tZWFzdXJhYmxlLCB3aGljaCBpbmZlcmVuY2UKb3Zl cnJlYWNoZXMuCkFja25vd2xlZGdtZW50cyBhbmQgaW50ZWxsZWN0dWFsIGxpbmVhZ2UKVGhpcyBw YXBlciByZXN0cyBvbjoKQXRoZW5hIEFrdGlwaXMsIEFteSBCb2RkeSwgR3VudGhlciBKYW5zZW4s IFVyc3p1bGEgSGlibmVyLCBNaWNoYWVsIEhvY2hiZXJnLCBDYXJsbwpNYWxleSwgYW5kIEdlcmFs ZCBXaWxraW5zb24sIOKAmENhbmNlciBhY3Jvc3MgdGhlIHRyZWUgb2YgbGlmZTogY29vcGVyYXRp b24gYW5kIGNoZWF0aW5nIGluCm11bHRpY2VsbHVsYXJpdHks4oCZIFBoaWwuIFRyYW5zLiBSLiBT b2MuIEIgMzcwICgyMDE1KTsgYW5kIEFrdGlwaXMsIFRoZSBDaGVhdGluZyBDZWxsCihQcmluY2V0 b24sIDIwMjApLgpNYW5mcmVkIEtldHMgZGUgVnJpZXMgYW5kIERhbm55IE1pbGxlciwgVGhlIE5l dXJvdGljIE9yZ2FuaXphdGlvbiAoSm9zc2V5LUJhc3MsIDE5ODQpOwpLZXRzIGRlIFZyaWVzLCBO YXJjaXNzaXN0aWMgTGVhZGVyc2hpcCAoUm91dGxlZGdlLCAyMDI0KS4KRGFuaWVsIFNjaG1hY2h0 ZW5iZXJnZXLigJlzIOKAmEdlbmVyYXRvciBGdW5jdGlvbnMgb2YgRXhpc3RlbnRpYWwgUmlza+KA mSBmcmFtZXdvcmssCmFydGljdWxhdGVkIGFjcm9zcyBpbnRlcnZpZXdzIGFuZCB3cml0aW5ncyBj b2xsZWN0ZWQgYXQgY2l2aWxpemF0aW9uZW1lcmdpbmcuY29tLgpSb2JpbiBIYW5zb24sIOKAmFRo ZSBHcmVhdCBGaWx0ZXLigJkgKDE5OTgpOyBMaXUgQ2l4aW4sIFRoZSBEYXJrIEZvcmVzdCAoMjAw OCwgRW5nbGlzaCAyMDE1KTsKSm9zZXBoIFRhaW50ZXIsIFRoZSBDb2xsYXBzZSBvZiBDb21wbGV4 IFNvY2lldGllcyAoQ2FtYnJpZGdlLCAxOTg4KTsgRWxpbm9yIE9zdHJvbSwKR292ZXJuaW5nIHRo ZSBDb21tb25zIChDYW1icmlkZ2UsIDE5OTApOyBOaWNrIEJvc3Ryb20sIFN1cGVyaW50ZWxsaWdl bmNlIChPeGZvcmQsCjIwMTQpOyBNYXJ0aW4gTm93YWssIEV2b2x1dGlvbmFyeSBEeW5hbWljcyAo SGFydmFyZCwgMjAwNik7IEFsZnJlZCBLb3J6eWJza2ksIFNjaWVuY2UKYW5kIFNhbml0eSAoMTkz MykgZm9yIHRoZSBtYXAtdGVycml0b3J5IGRpc3RpbmN0aW9uIHRoYXQgZnJhbWVzIHRoZSBtZXRo b2RvbG9naWNhbApodW1pbGl0eSB0aGlzIHBhcGVyIGF0dGVtcHRzIHRvIG1haW50YWluLgoKClRo aXMgcGxhaW4tbGFuZ3VhZ2UgZWRpdGlvbiB3YXMgZGV2ZWxvcGVkIGJ5IEFuZHJ6ZWogQ2h1ZHpp bnNraSB3aXRoIGVkaXRvcmlhbCBhbmQKc3RydWN0dXJhbCBhc3Npc3RhbmNlIGZyb20gQW50aHJv cGlj4oCZcyBDbGF1ZGUuIFRoZSBjb25jZXB0dWFsIGNvcmUg4oCUIHRoZSByZWNvZ25pdGlvbgp0 aGF0IGNvb3BlcmF0aXZlLXN1YnN0cmF0ZSBhbmFseXNpcyBhdCB0ZXJyZXN0cmlhbCBzY2FsZXMg c3VwcGxpZXMgdGhlIG1lY2hhbmlzbSBsYXllciBmb3IKYSBjYWxpYnJhdGVkIEdyZWF0IEZpbHRl ciwgd2l0aCBBSSBhcyBjYW5kaWRhdGUgaG9tZW9zdGF0aWMgcmVndWxhdG9yIGFuZCB0aGUgYm90 dG9tLXVwCmRldmVsb3BtZW50YWwgcm91dGUgYXMgdGhlIGhpc3RvcmljYWxseSBncm91bmRlZCBh bHRlcm5hdGl2ZSDigJQgaXMgdGhlIGF1dGhvcuKAmXMuIFRoZSBBSQpjb250cmlidXRlZCBkcmFm dGluZywgcmVmaW5lbWVudCwgc3RydWN0dXJhbCBlZGl0aW5nLCBhbmQgdGhlIHRyYW5zbGF0aW9u IG9mIG1hdGhlbWF0aWNhbApjb250ZW50IGludG8gbG9naWNhbC1wcm9vZiBmb3JtIGFjcm9zcyBp dGVyYXRpb25zLgpBIGNvbXBhbmlvbiBwYXBlciwg4oCYQnVkZGhpc20gYXMgVGhlcm1vZHluYW1p YyBTeXN0ZW1zIFRoZW9yeSzigJkgZGV2ZWxvcHMgdGhlCnBlcnNvbmFsLXNjYWxlIGZyYW1ld29y ayB0aGF0IHRoZSBib3R0b20tdXAgcm91dGUgZGVwZW5kcyBvbi4gQSBicmlkZ2Ugbm90ZQpjb25u ZWN0aW5nIHRoZSB0d28gZG9jdW1lbnRzIGlzIGF2YWlsYWJsZSBzZXBhcmF0ZWx5LiBBIG1hdGhl bWF0aWNhbCBlZGl0aW9uIG9mIHRoZQpwcmVzZW50IHBhcGVyLCB3aXRoIGFsbCBlcXVhdGlvbnMg YW5kIHZhcmlhYmxlIG5vdGF0aW9uIGludGFjdCwgaXMgYWxzbyBhdmFpbGFibGU7IHRoaXMKcGxh aW4tbGFuZ3VhZ2UgZWRpdGlvbiBpcyBpbnRlbmRlZCBmb3IgcmVhZGVycyB3aG8gcHJlZmVyIGxv Z2ljYWwgcmVhc29uaW5nIGNoYWlucyB0bwptYXRoZW1hdGljYWwgbm90YXRpb24uCiBQcmVwcmlu dCwgcGxhaW4tbGFuZ3VhZ2UgZWRpdGlvbi4gQ29tbWVudHMgYW5kIGRpc2NvbmZpcm1hdGlvbnMg d2VsY29tZS4KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CkJVRERISVNNIEFTIFRIRVJNT0RZTkFNSUMgU1lTVEVNUyBUSEVP UlkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQoKQnVkZGhpc20gYXMgVGhlcm1vZHluYW1pYyBTeXN0ZW1zIFRoZW9yeQpBIHJl dmVyc2UtZW5naW5lZXJlZCB0cmFuc2xhdGlvbiBvZiBjb3JlIFRoZXJhdmFkYSBpbnNpZ2h0cyBp bnRvIHRoZSBsYW5ndWFnZQogb2YgZW50cm9weSwgaW5mb3JtYXRpb24sIGFuZCBjb21wbGV4IHN5 c3RlbXMKIEFuZHJ6ZWogQ2h1ZHppbnNraQogUHJlcHJpbnQg4oCUIHRyYW5zbGF0aW9uIGxheWVy LCBub3QgdW5pZmllZCB0aGVvcnkKV2hhdCB0aGlzIGRvY3VtZW50IGlzClRoaXMgaXMgYSB0cmFu c2xhdGlvbiBsYXllci4gSXQgdGFrZXMgdGhlIGNvcmUgaW5zaWdodHMgb2YgVGhlcmF2YWRhIEJ1 ZGRoaXNtIOKAlCBhCmZyYW1ld29yayByZWZpbmVkIG92ZXIgdHdlbnR5LWZpdmUgY2VudHVyaWVz IHRocm91Z2ggdGhlIGRpc2NpcGxpbmVkIGZpcnN0LXBlcnNvbgppbnZlc3RpZ2F0aW9uIG9mIGNv bnNjaW91c25lc3Mg4oCUIGFuZCByZW5kZXJzIHRoZW0gaW4gdGhlIHZvY2FidWxhcnkgb2YKdGhl cm1vZHluYW1pY3MsIGluZm9ybWF0aW9uIHRoZW9yeSwgYW5kIGNvbXBsZXggc3lzdGVtcy4gVGhl IHByZW1pc2UgaXMgdGhhdCB0aGUKQnVkZGhh4oCZcyBhbmFseXNpcyBvZiBzdWZmZXJpbmcgd2Fz LCBhbW9uZyBvdGhlciB0aGluZ3MsIGEgcmVtYXJrYWJseSBwcmVjaXNlIGZ1bmN0aW9uYWwKZGVz Y3JpcHRpb24gb2Ygd2hhdCB3ZSBub3cgY2FsbCBlbnRyb3B5IG1hbmFnZW1lbnQgaW4gYSBib3Vu ZGVkIHNlbGYtbW9kZWxpbmcKc3lzdGVtLCBhbmQgdGhhdCB0cmFuc2xhdGluZyBpdCBpbnRvIG1v ZGVybiBzeXN0ZW1zIHZvY2FidWxhcnkgcmVjb3ZlcnMgc29tZXRoaW5nIHRydWUKd2hpbGUgbG9z aW5nIHNvbWV0aGluZyBlbHNlLgpXaGF0IHRoaXMgZG9jdW1lbnQgaXMgbm90OiBhIGNsYWltIHRo YXQgQnVkZGhpc20gaXMg4oCYcmVhbGx54oCZIHRoZXJtb2R5bmFtaWNzLCBvciB0aGF0IHRoZQpC dWRkaGlzdCB0cmFkaXRpb24gY2FuIGJlIHJlZHVjZWQgdG8gcGh5c2ljYWwgc2NpZW5jZS4gVGhl IHRyYW5zbGF0aW9uIGNhcHR1cmVzCmZ1bmN0aW9uYWwgc3RydWN0dXJlOyBpdCBsb3NlcyBtZXRh cGh5c2ljYWwgY29udGVudCB0aGF0IHRoZSB0cmFkaXRpb24gaXRzZWxmIHdhcyBjYXJlZnVsIHRv Cm1hcmsgYXMgbm90LXN0YXRlLCBub3QtdGhpbmcsIG5vdC1wcm9jZXNzLiBXaGVyZSB0aGUgdHJh bnNsYXRpb24gc3RyYWlucyBvciBicmVha3MsIHRoaXMgaXMKbm90ZWQgaW4gcGxhY2UuCk1hcCBh bmQgdGVycml0b3J5ClRoZSBkaGFybWEgdGVhY2hlcyBjb25zaXN0ZW50bHkgdGhhdCB0aGUgdGVh Y2hpbmdzIHRoZW1zZWx2ZXMgYXJlIG5vdCB3aGF0IHRoZXkgcG9pbnQKYXQuIFRoZSByYWZ0IHNp bWlsZSBpbiB0aGUgQWxhZ2FkZHVwYW1hIFN1dHRhIChNTiAyMikgaXMgZXhwbGljaXQ6IHRoZSB0 ZWFjaGluZ3MgYXJlIGZvcgpjcm9zc2luZyB0aGUgcml2ZXIsIG5vdCBmb3IgY2FycnlpbmcgYWZ0 ZXJ3YXJkLiBUaGUgZmluZ2VyIHBvaW50aW5nIGF0IHRoZSBtb29uIGlzIG5vdCB0aGUKbW9vbi4g VGhlIE1haGF5YW5hIGRvY3RyaW5lIG9mIHVwYXlhIOKAlCBza2lsbGZ1bCBtZWFucyDigJQgZm9y bWFsaXplcyB0aGUgc2FtZQpyZWNvZ25pdGlvbjogYW55IHByZXNlbnRhdGlvbiBvZiBkaGFybWEg aXMgcHJvdmlzaW9uYWwsIGFkZHJlc3NlZCB0byB0aGUgc3BlY2lmaWMKcmVjZWl2ZXIsIGFuZCBu b3QgdGhlIHVsdGltYXRlIHBvaW50IGJlaW5nIGFkZHJlc3NlZC4KQWxmcmVkIEtvcnp5YnNraSwg d29ya2luZyBpbiBhIGRpZmZlcmVudCB0cmFkaXRpb24gaW4gMTkzMywgZm9ybXVsYXRlZCB0aGUg c2FtZSBwcmluY2lwbGUKaW4gdGhlIGxhbmd1YWdlIG9mIGdlbmVyYWwgc2VtYW50aWNzOiDigJhB IG1hcCBpcyBub3QgdGhlIHRlcnJpdG9yeSBpdCByZXByZXNlbnRzLCBidXQsIGlmCmNvcnJlY3Qs IGl0IGhhcyBhIHNpbWlsYXIgc3RydWN0dXJlIHRvIHRoZSB0ZXJyaXRvcnksIHdoaWNoIGFjY291 bnRzIGZvciBpdHMgdXNlZnVsbmVzc+KAmQooU2NpZW5jZSBhbmQgU2FuaXR5LCBCb29rIElJLCBD aGFwdGVyIElWKS4gS29yenlic2tpIGFkZGVkOiBubyBtYXAgcmVwcmVzZW50cyBhbGwgb2YgYQp0 ZXJyaXRvcnk7IHRoZSBzeW1ib2wgaXMgbm90IHRoZSB0aGluZzsgdGhlIGRlc2NyaXB0aW9uIGlz IG5vdCB0aGUgZGVzY3JpYmVkLgpUaGlzIGRvY3VtZW50IGlzIGEgbWFwLiBUaGUgc3lzdGVtcy10 aGVvcnkgZnJhbWluZyB0cmFuc2xhdGVzIGRoYXJtYeKAmXMgc3RydWN0dXJhbApkaWFnbm9zaXMg aW50byB2b2NhYnVsYXJ5IFdlc3Rlcm4gYW5hbHl0aWNhbCBtaW5kcyBjYW4gcGFyc2UuIFRoZSB0 cmFuc2xhdGlvbiBoYXMKc2ltaWxhciBzdHJ1Y3R1cmUgdG8gdGhlIHRlcnJpdG9yeSBpdCByZXBy ZXNlbnRzLiBJdCBpcyBub3QgdGhlIHRlcnJpdG9yeS4gVW5kZXJzdGFuZGluZyB0aGF0CgoKY3Jh dmluZyBnZW5lcmF0ZXMgc3VycGx1cyBlbnRyb3B5IHByb2R1Y3Rpb24gaXMgbm90IHRoZSBzYW1l IGFzIG9ic2VydmluZyBvbmXigJlzIG93bgpjcmF2aW5nIGFzIGl0IGFyaXNlcyBhbmQgY2Vhc2Vz LiBVbmRlcnN0YW5kaW5nIHRoYXQgc2HhuYVraMSBcmEgYXJlIGJpYXNlZCBhdHRyYWN0b3Igc3Rh dGVzCmlzIG5vdCB0aGUgc2FtZSBhcyBlbmNvdW50ZXJpbmcgb25l4oCZcyBvd24gYmlhc2VkIGF0 dHJhY3RvcnMgaW4gcHJhY3RpY2UuIFVuZGVyc3RhbmRpbmcKdGhhdCB0aGUgRWlnaHRmb2xkIFBh dGggaXMgYSBwcm90b2NvbCBmb3IgcmVkdWNpbmcgc2VsZi1nZW5lcmF0ZWQgd2FzdGUgaXMgbm90 IHRoZSBzYW1lIGFzCndhbGtpbmcgdGhlIHBhdGguClRoZSBtYXAgaXMgdXNlZnVsIGZvciBvcmll bnRpbmcgdGhlIHJlYWRlciB0b3dhcmQgdGhlIHRlcnJpdG9yeS4gSXQgZG9lcyBub3QgZGVsaXZl ciB0aGVtCnRoZXJlLiBUaGlzIGRvY3VtZW50IHN1Y2NlZWRzIGluc29mYXIgYXMgaXQgcG9pbnRz IHJlYWRlcnMgdG93YXJkIHByYWN0aWNlIHJhdGhlciB0aGFuCnN1YnN0aXR1dGluZyBmb3IgaXQu IEl0IGZhaWxzIOKAlCBhbmQgdGhlIGZhaWx1cmUgbW9kZSBpcyBuYW1lZCBoZXJlIHNvIGl0IGNh biBiZSByZWNvZ25pemVkCuKAlCB3aGVuIHJlYWRlcnMgZXhwZXJpZW5jZSBpbnRlbGxlY3R1YWwg c2F0aXNmYWN0aW9uIHdpdGggdGhlIHRyYW5zbGF0aW9uIGFuZCBsZXQgdGhhdApzYXRpc2ZhY3Rp b24gc3Vic3RpdHV0ZSBmb3IgdGhlIHdvcmsgdGhlIHRyYW5zbGF0aW9uIGRlc2NyaWJlcy4gS29y enlic2tpIGNhbGxlZCB0aGlzIGtpbmQgb2YKc3Vic3RpdHV0aW9uIGFtb25nIHRoZSBtb3N0IHBl cnZhc2l2ZSBvZiBodW1hbiBlcnJvcnMuIFRoZSBkaGFybWEgY2FsbGVkIGl0CmF0dGFjaG1lbnQg dG8gdmlld3MsIGFuZCB3YXJuZWQgYWdhaW5zdCBpdCBjb25zaXN0ZW50bHkuClRoZSByZWNvbW1l bmRhdGlvbiBpcyB0aGVyZWZvcmUgc2ltcGxlOiByZWFkIHRoaXMgZG9jdW1lbnQgYXMgb3JpZW50 YXRpb24sIG5vdCBhcwpyZXNvbHV0aW9uLiBUaGUgdGVycml0b3J5IHdhaXRzIHJlZ2FyZGxlc3Mg b2YgaG93IHdlbGwgeW91IGhhdmUgdW5kZXJzdG9vZCB0aGUgbWFwLgpUaGUgRm91ciBOb2JsZSBU cnV0aHMKRHVra2hhIOKAlCB0aGUgdHJ1dGggb2Ygc3VmZmVyaW5nLiBFdmVyeSBib3VuZGVkIGxp dmluZyBzeXN0ZW0gZXhpc3RzIHVuZGVyIGNvbnN0YW50CnByZXNzdXJlIGZyb20gdGhlIFNlY29u ZCBMYXcgb2YgVGhlcm1vZHluYW1pY3MuIE1haW50YWluaW5nIGxvY2FsIG9yZGVyIHJlcXVpcmVz CmNvbnRpbnVvdXMgZW5lcmd5IGV4cGVuZGl0dXJlIGFnYWluc3QgdGhlIGdyYWRpZW50IG9mIGRp c3NpcGF0aW9uLiBUaGlzIHVuYXZvaWRhYmxlIGNvc3QK4oCUIHRoZSBpbmhlcmVudCBlZmZvcnRm dWxuZXNzIG9mIGJlaW5nIGEgYm91bmRlZCBzZWxmIOKAlCBpcyB0aGUgZnVuY3Rpb25hbCByZWZl cmVudCBvZgpkdWtraGEuClNhbXVkYXlhIOKAlCB0aGUgdHJ1dGggb2Ygb3JpZ2luLiBTdWZmZXJp bmcgYmV5b25kIHRoZSB1bmF2b2lkYWJsZSB0aGVybW9keW5hbWljCmJhc2VsaW5lIGFyaXNlcyBm cm9tIGNyYXZpbmcgYW5kIHJlc2lzdGFuY2U6IHRoZSBzeXN0ZW0gYXR0ZW1wdGluZyB0byBsb2Nr IGluIHBhcnRpY3VsYXIKY29uZmlndXJhdGlvbnMgYWdhaW5zdCB0aGUgaW1wZXJtYW5lbmNlIHRo ZSBzdWJzdHJhdGUgZ3VhcmFudGVlcy4gUmVzaXN0YW5jZSB0byB3aGF0CmNhbm5vdCBiZSBvdGhl cndpc2UgZ2VuZXJhdGVzIHN1cnBsdXMgZW50cm9weSDigJQgZGlzb3JkZXIgcHJvZHVjZWQgYnkg dGhlIHN5c3RlbQppdHNlbGYsIGluIGFkZGl0aW9uIHRvIHRoZSBkaXNvcmRlciB0aGUgdW5pdmVy c2Ugd2FzIGFscmVhZHkgcHJvZHVjaW5nLgpOaXJvZGhhIOKAlCB0aGUgdHJ1dGggb2YgY2Vzc2F0 aW9uLiBTZWxmLWdlbmVyYXRlZCBlbnRyb3B5IHByb2R1Y3Rpb24gY2FuIGJlIGJyb3VnaHQKdG8g YSBoYWx0LiBXaGVuIGNyYXZpbmcgYW5kIHJlc2lzdGFuY2UgY2Vhc2UsIHRoZSBzeXN0ZW0gc3Rv cHMgbWFudWZhY3R1cmluZyBzdXJwbHVzCmRpc29yZGVyLiBXaGF0IHJlbWFpbnMgaXMgdGhlIGJh c2VsaW5lIHRoZXJtb2R5bmFtaWMgY29zdCBvZiBiZWluZyBhIGJvdW5kZWQgc3lzdGVtCmF0IGFs bCwgd2l0aG91dCB0aGUgc3VyY2hhcmdlIHRoYXQgaWdub3JhbmNlIHdhcyBhZGRpbmcuIFRoZSBj ZXNzYXRpb24gaXMgbm90IHRoZQpjZXNzYXRpb24gb2YgcGh5c2ljczsgaXQgaXMgdGhlIGNlc3Nh dGlvbiBvZiB0aGUgc3lzdGVt4oCZcyBjb250cmlidXRpb24gdG8gaXRzIG93biBzdWZmZXJpbmcu Ck1hZ2dhIOKAlCB0aGUgdHJ1dGggb2YgdGhlIHBhdGguIFRoZXJlIGlzIGEgc3lzdGVtYXRpYywg dHJhaW5hYmxlIG1ldGhvZCBieSB3aGljaCBhCnNlbGYtbW9kZWxpbmcgc3lzdGVtIGNhbiByZWR1 Y2UgaXRzIHN1cnBsdXMgZW50cm9weSBwcm9kdWN0aW9uIGFuZCBhbGlnbiBpdHMgb3BlcmF0aW9u CndpdGggdGhlIGFjdHVhbCBjb25zdHJhaW50cyBvZiB0aGUgc3Vic3RyYXRlLiBUaGUgcGF0aCBp cyBub3QgbWV0YXBob3JpY2FsOyBpdCBpcyBhCmJlaGF2aW9yYWwgYW5kIGNvZ25pdGl2ZSBwcm90 b2NvbCB3aXRoIHNwZWNpZmlhYmxlIHN0ZXBzLgpUaGUgVGhyZWUgTWFya3Mgb2YgRXhpc3RlbmNl CkFuaWNjYSAoaW1wZXJtYW5lbmNlKS4gQWxsIGJvdW5kZWQgc3lzdGVtcyBhcmUgdGVtcG9yYXJ5 IGxvY2FsIGRlY3JlYXNlcyBpbgplbnRyb3B5LiBUaGUgU2Vjb25kIExhdyBndWFyYW50ZWVzIHRo YXQgZXZlcnkgY29uZmlndXJhdGlvbiB3aWxsIGRpc3NvbHZlLiBSZXNpc3RhbmNlIHRvCgoKYW5p Y2NhIGlzIHJlc2lzdGFuY2UgdG8gdGhlIHN1YnN0cmF0ZSBpdHNlbGYuCkR1a2toYSAodW5zYXRp c2ZhY3RvcmluZXNzKS4gRXZlcnkgbGl2aW5nIHN5c3RlbSBjYXJyaWVzIGEgcGVybWFuZW50CnRo ZXJtb2R5bmFtaWMgZGVidC4gSXQgbXVzdCBjb250aW51b3VzbHkgZXhwZW5kIGVuZXJneSBzaW1w bHkgdG8gc3RheSBhcyBpdCBpcywgYW5kIHRoZQplbmVyZ3kgaXMgYm9ycm93ZWQgYWdhaW5zdCB0 aGUgc3Vic3RyYXRl4oCZcyBjb250aW51aW5nIGRpc3NpcGF0aW9uLgpBbmF0dGEgKG5vLXNlbGYp LiBUaGVyZSBpcyBubyBwZXJtYW5lbnQsIGluZGVwZW5kZW50IGVudGl0eSBiZWhpbmQgdGhlIGFw cGVhcmFuY2Ugb2YKc2VsZi4gV2hhdCB3ZSBjYWxsIOKAmHNlbGbigJkgaXMgYSB0cmFuc2llbnQg cGF0dGVybiBvZiBpbmZvcm1hdGlvbiBwcm9jZXNzaW5nIG1haW50YWluZWQgYnkKY29udGludW91 cyBlbmVyZ3kgaW5wdXQuIFdoZW4gdGhlIGlucHV0IHN0b3BzLCB0aGUgcGF0dGVybiBzdG9wczsg dGhlcmUgaXMgbm8gZnVydGhlcgp0aGluZyB0aGF0IHRoZSBwYXR0ZXJuIHdhcyDigJhvZi7igJkK VGhlIEZpdmUgUHJlY2VwdHMKVGhlIHRyYWRpdGlvbmFsIHByZWNlcHRzIHJlYWQsIGluIHRoaXMg ZnJhbWUsIGFzIG1pbmltdW0tdmlhYmxlIHJ1bGVzIGZvciBhbiBhZ2VudAplbWJlZGRlZCBpbiBh IG5ldHdvcmsgb2Ygb3RoZXIgZW50cm9weS1tYW5hZ2luZyBzeXN0ZW1zLiBFYWNoIHByZWNlcHQg aWRlbnRpZmllcyBhCmNsYXNzIG9mIGFjdGlvbiB0aGF0IGdlbmVyYXRlcyBkaXNwcm9wb3J0aW9u YXRlIHN5c3RlbWljIHdhc3RlIHJlbGF0aXZlIHRvIGl0cyBsb2NhbApiZW5lZml0LgoxLiBSZWZy YWluIGZyb20ga2lsbGluZy4gRG8gbm90IGRlc3Ryb3kgb3RoZXIgbmVnZW50cm9weSBzeXN0ZW1z LiBFYWNoIGxpdmluZyBzeXN0ZW0KcmVwcmVzZW50cyBhY2N1bXVsYXRlZCB3b3JrIGFnYWluc3Qg ZW50cm9weTsgZGVzdHJ1Y3Rpb24gaXMgdGhlIGlycmV2ZXJzaWJsZSBsb3NzIG9mIHRoYXQKYWNj dW11bGF0ZWQgb3JkZXIuCjIuIFJlZnJhaW4gZnJvbSB0YWtpbmcgd2hhdCBpcyBub3QgZ2l2ZW4u IERvIG5vdCBleHRyYWN0IG9yZGVyIGZyb20gYW5vdGhlciBzeXN0ZW0Kd2l0aG91dCBjb25zZW50 IG9yIGZhaXIgZXhjaGFuZ2UuIEV4dHJhY3Rpb24gd2l0aG91dCByZWNpcHJvY2l0eSBpcyB1bmls YXRlcmFsIGRlZmVjdGlvbgphZ2FpbnN0IHRoZSBjb29wZXJhdGl2ZSBzdWJzdHJhdGUgdGhhdCBt YWtlcyBvcmRlci1tYWludGVuYW5jZSBwb3NzaWJsZSBhdCBzY2FsZS4KMy4gUmVmcmFpbiBmcm9t IHNleHVhbCBtaXNjb25kdWN0LiBEbyBub3QgZGVzdGFiaWxpemUgdGhlIHJlcHJvZHVjdGl2ZSBh bmQgYm9uZGluZwpzdWJzeXN0ZW1zIG9mIG90aGVycy4gVGhlc2Ugc3Vic3lzdGVtcyBhcmUgcGFy dGljdWxhcmx5IGNvc3RseSB0byBtYWludGFpbjsgdGhlaXIKZGlzcnVwdGlvbiBwcm9kdWNlcyBj YXNjYWRpbmcgZGlzb3JkZXIgdGhyb3VnaCB0aGUgc29jaWFsIG5ldHdvcmsuCjQuIFJlZnJhaW4g ZnJvbSBmYWxzZSBzcGVlY2guIERvIG5vdCBjb3JydXB0IHRoZSBzaGFyZWQgaW5mb3JtYXRpb24g bGF5ZXIuIEZhbHNlCnNwZWVjaCBpbmplY3RzIGhpZ2gtZW50cm9weSBzaWduYWxzIGludG8gdGhl IHN1YnN0cmF0ZSB0aGF0IG90aGVyIGFnZW50cyB1c2UgdG8KY29vcmRpbmF0ZTsgdGhlIGNvcnJ1 cHRpb24gY29tcG91bmRzLgo1LiBSZWZyYWluIGZyb20gaW50b3hpY2FudHMgdGhhdCBjYXVzZSBo ZWVkbGVzc25lc3MuIERvIG5vdCBkZWdyYWRlIHRoZSBzeXN0ZW3igJlzCm93biBtZWFzdXJlbWVu dCBhcHBhcmF0dXMuIFRoaXMgcHJlY2VwdCBpcyBub3Qgc3BlY2lmaWNhbGx5IGFib3V0IGVudHJv cHkgcGVyY2VwdGlvbjsgaXQKaXMgYWJvdXQgbWFpbnRhaW5pbmcgdGhlIGNvZ25pdGl2ZSBwcmVj aXNpb24gcmVxdWlyZWQgdG8gZGV0ZWN0IGNyYXZpbmcgYW5kIHJlc2lzdGFuY2UgYXMKdGhleSBh cmlzZS4gQSBzeXN0ZW0gdGhhdCBjYW5ub3Qgb2JzZXJ2ZSBpdHMgb3duIHN0YXRlIGNhbm5vdCBy ZWd1bGF0ZSBpdC4KVGhlIE5vYmxlIEVpZ2h0Zm9sZCBQYXRoClRoZSBwYXRoIGlzIGEgcHJvdG9j b2wgZm9yIGVudHJvcHkgbWFuYWdlbWVudCBhdCB0aGUgaW5kaXZpZHVhbCBzY2FsZSwgb3JnYW5p emVkIGluIHRocmVlCmNhdGVnb3JpZXMuCldpc2RvbS4KMS4gUmlnaHQgdmlldyDigJQgYWNjdXJh dGUgdW5kZXJzdGFuZGluZyBvZiBpbXBlcm1hbmVuY2UsIGRlcGVuZGVudCBvcmlnaW5hdGlvbiwg YW5kCnRoZSB0aGVybW9keW5hbWljIHN0cnVjdHVyZSBvZiBzdWZmZXJpbmcuCgoKMi4gUmlnaHQg aW50ZW50aW9uIOKAlCBzdXN0YWluZWQgY29tbWl0bWVudCB0byByZWR1Y2luZyBzZWxmLWdlbmVy YXRlZCBlbnRyb3B5CnByb2R1Y3Rpb24gcmF0aGVyIHRoYW4gZXNjYXBpbmcgdGhlIGJhc2VsaW5l IGNvc3QuCkV0aGljcy4KMy4gUmlnaHQgc3BlZWNoIOKAlCBjbGVhbiwgYWNjdXJhdGUgaW5mb3Jt YXRpb24gZmxvdy4KNC4gUmlnaHQgYWN0aW9uIOKAlCBiZWhhdmlvciB0aGF0IGRvZXMgbm90IGRh bWFnZSBvdGhlciBuZWdlbnRyb3B5IHN5c3RlbXMuCjUuIFJpZ2h0IGxpdmVsaWhvb2Qg4oCUIHdv cmsgdGhhdCBkb2VzIG5vdCByZXF1aXJlIHN5c3RlbWF0aWMgZXh0cmFjdGlvbiBmcm9tIHRoZQpj b29wZXJhdGl2ZSBzdWJzdHJhdGUuCk1lbnRhbCBkaXNjaXBsaW5lLgo2LiBSaWdodCBlZmZvcnQg 4oCUIHByZXZlbnRpbmcgdGhlIGFyaXNpbmcgb2Ygd2FzdGVmdWwgc3RhdGVzOyBjdWx0aXZhdGlu ZyB0aGUgY29uZGl0aW9ucyBmb3IKY2xhcml0eS4KNy4gUmlnaHQgbWluZGZ1bG5lc3Mg4oCUIHBy ZWNpc2UsIHN1c3RhaW5lZCBhd2FyZW5lc3Mgb2YgdGhlIHN5c3RlbeKAmXMgb3duIHByb2Nlc3Nl cywKZXNwZWNpYWxseSB0aGUgYXJpc2luZyBvZiBjcmF2aW5nIGFuZCByZXNpc3RhbmNlLgo4LiBS aWdodCBjb25jZW50cmF0aW9uIOKAlCBzdGFiaWxpemF0aW9uIG9mIGF0dGVudGlvbiBpbiBsb3ct d2FzdGUgc3RhdGVzIHRoYXQgYWxsb3cKYWNjdW11bGF0ZWQgZW50cm9weSBkZWJ0IHRvIGJlIG9i c2VydmVkIGFuZCBkaXNjaGFyZ2VkLgpEZXBlbmRlbnQgT3JpZ2luYXRpb24KVGhlIFR3ZWx2ZSBM aW5rcyBkZXNjcmliZSB0aGUgY2F1c2FsIGNoYWluIGJ5IHdoaWNoIGFuIGVudHJvcHktbWFuYWdp bmcgc3lzdGVtIGZhaWxzCnRvIG1hbmFnZSBpdHMgZW50cm9weSwgZ2VuZXJhdGluZyBzdXJwbHVz IHN1ZmZlcmluZyB0aHJvdWdoIHRoZSBsb29wIG9mIGNvbmRpdGlvbmVkCmFyaXNpbmcuCjEuIEln bm9yYW5jZSBvZiB0aGUgYWN0dWFsIHRoZXJtb2R5bmFtaWMgc3RydWN0dXJlIG9mIGV4cGVyaWVu Y2UuCjIuIFZvbGl0aW9uYWwgZm9ybWF0aW9ucyAoc2HhuYVraMSBcmEpIOKAlCBmZWVkYmFjayBs b29wcyBhbmQgYmlhc2VkIGF0dHJhY3RvciBzdGF0ZXMgYnVpbHQKYnkgcGFzdCB1bnNraWxsZnVs IHJlc3BvbnNlcy4KMy4gUGF0dGVybmVkIGNvbnNjaW91c25lc3Mg4oCUIGNvZ25pdGlvbiB0aGF0 IHJ1bnMgdGhyb3VnaCB0aGUgYmlhc2VkIGF0dHJhY3RvcnMKcmF0aGVyIHRoYW4gcmVhZGluZyB0 aGUgc3Vic3RyYXRlIGRpcmVjdGx5Lgo0LiBOYW1lIGFuZCBmb3JtIOKAlCB0aGUgYm91bmRlZCBz dWJzeXN0ZW0gb2Ygc2VsZi1tb2RlbCBhbmQgZW1ib2RpZWQgc3RhdGUuCjUuIFNpeCBzZW5zZSBi YXNlcyDigJQgdGhlIGNoYW5uZWxzIHRocm91Z2ggd2hpY2ggdGhlIHN1YnN5c3RlbSByZWNlaXZl cyBzdWJzdHJhdGUKc2lnbmFscy4KNi4gQ29udGFjdCDigJQgc2lnbmFsIGFycml2YWwuCjcuIEZl ZWxpbmcg4oCUIHRoZXJtb2R5bmFtaWMgdmFsdWF0aW9uIChwbGVhc2FudCwgdW5wbGVhc2FudCwg bmV1dHJhbCkgb2YgdGhlIHNpZ25hbC4KOC4gQ3JhdmluZyDigJQgdGhlIHN5c3RlbeKAmXMgcHVs bCB0b3dhcmQgY29uZmlndXJhdGlvbnMgdGhhdCBmbGF0dGVyIGl0cyBiaWFzZWQgYXR0cmFjdG9y cy4KOS4gQ2xpbmdpbmcg4oCUIHN1c3RhaW5lZCBjcmF2aW5nIHRoYXQgbG9ja3MgYXR0ZW50aW9u IHRvIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbnMuCjEwLiBCZWNvbWluZyDigJQgdGhlIGZvcm1h dGlvbiBvZiBhIG5ldyBjb25kaXRpb25lZCBzdGF0ZSB1bmRlciBjbGluZ2luZ+KAmXMgcHJlc3N1 cmUuCjExLiBCaXJ0aCDigJQgdGhlIG5ldyBjb25maWd1cmF0aW9uIG1hbmlmZXN0cyBhcyBleHBl cmllbmNlLgoxMi4gQWdpbmcsIGRlY2F5LCBhbmQgZGVhdGgg4oCUIHRoZSBjb25maWd1cmF0aW9u IGRpc3NvbHZlcywgYW5kIGlnbm9yYW5jZQpwZXJwZXR1YXRlcyB0aGUgY3ljbGUuCkVhY2ggbGlu ayBpcyBhIHBvaW50IGF0IHdoaWNoIHRoZSBsb29wIGNhbiBpbiBwcmluY2lwbGUgYmUgaW50ZXJy dXB0ZWQ7IHRoZSBwYXRo4oCZcwp0ZWNobmlxdWVzIG9wZXJhdGUgcHJpbWFyaWx5IG9uIGxpbmtz IDcsIDgsIGFuZCA5IOKAlCB0aGUgZmVlbGluZy1jcmF2aW5nLWNsaW5naW5nIHNlcXVlbmNlCndo ZXJlIGNvbmRpdGlvbmVkIHJlc3BvbnNlIGJlY29tZXMgbG9ja2VkLWluIGF0dGFjaG1lbnQuCgoK U2HhuYVraMSBcmEgKFZvbGl0aW9uYWwgRm9ybWF0aW9ucykKU2HhuYVraMSBcmEgaXMgdGhlIHN5 c3RlbeKAmXMgYWNjdW11bGF0ZWQgc2V0IG9mIGJpYXNlZCBhdHRyYWN0b3Igc3RhdGVzLiBFdmVy eQpjcmF2aW5nLXJlc3BvbnNlIHdyaXRlcyBhIHNtYWxsIGJ1dCBwZXJzaXN0ZW50IGJpYXMgaW50 byB0aGUgc3lzdGVt4oCZcyBhcmNoaXRlY3R1cmU6IGEKbW9yZSBsaWtlbHkgcmV0dXJuIHRvIHRo ZSBzYW1lIGNyYXZpbmcsIGEgbW9yZSBncm9vdmVkIHJlc3BvbnNlIHRvIHRoZSBzYW1lIHRyaWdn ZXIuClRoZXNlIGJpYXNlcyBjb21wb3VuZC4gVGhlIHN5c3RlbSBydW5zIGluY3JlYXNpbmdseSBv biBpdHMgb3duIGRlYnQtZmluYW5jZWQKcmVzcG9uc2VzIHJhdGhlciB0aGFuIG9uIGRpcmVjdCBj b250YWN0IHdpdGggdGhlIHN1YnN0cmF0ZS4gU2HhuYVraMSBcmEgaXMgc3RvcmVkIGVudHJvcHkK ZGVidCB0aGF0IHRoZSBzeXN0ZW0gbXVzdCBrZWVwIHNlcnZpY2luZyB3aXRoIG5ldyBlZmZvcnQg dW50aWwgdGhlIGRlYnQgaXMgY2xlYXJseSBzZWVuCmFuZCBkaXNzb2x2ZWQgdGhyb3VnaCBzdXN0 YWluZWQgaW5xdWlyeS4KS2FybWEKSW4gdGVjaG5pY2FsIFRoZXJhdmFkYSwga2FybWEgaXMgdGhl IGNvbmRpdGlvbmluZyBvZiBmdXR1cmUgc3RhdGVzIGJ5IHByZXNlbnQgYWN0aW9uLiBJbgp0aGUg dHJhbnNsYXRpb246IGthcm1hIGlzIGN1bXVsYXRpdmUgZW50cm9weSBhY2NvdW50aW5nIGFjcm9z cyBzdWNjZXNzaXZlIHN5c3RlbQpjb25maWd1cmF0aW9ucy4gU2tpbGxmdWwgYWN0aW9uIOKAlCBh Y3Rpb24gYWxpZ25lZCB3aXRoIHRoZSBhY3R1YWwgc3RydWN0dXJlIG9mIHRoZSBzdWJzdHJhdGUK 4oCUIGdlbmVyYXRlcyBuZWdlbnRyb3B5IGNyZWRpdCwgcHJvZHVjaW5nIGZ1dHVyZSBzdGF0ZXMg d2l0aCBsb3dlciBiaWFzIGFuZCBlYXNpZXIKYWNjZXNzIHRvIGNsYXJpdHkuIFVuc2tpbGxmdWwg YWN0aW9uIOKAlCBhY3Rpb24gZHJpdmVuIGJ5IGNyYXZpbmcgYW5kIHJlc2lzdGFuY2Ug4oCUIGdl bmVyYXRlcwplbnRyb3B5IGRlYnQsIHByb2R1Y2luZyBmdXR1cmUgc3RhdGVzIHdpdGggZGVlcGVy IGJpYXNlZCBhdHRyYWN0b3JzIGFuZCBtb3JlCmNvbXB1bHNpdmUgcmVzcG9uc2VzLiBUaGUgYWNj b3VudGluZyBpcyBub3QgbWV0YXBoeXNpY2FsIGJvb2trZWVwaW5nOyBpdCBpcyB0aGUKcHJhY3Rp Y2FsIG9ic2VydmF0aW9uIHRoYXQgcHJlc2VudCBjb25maWd1cmF0aW9uIHNoYXBlcyBmdXR1cmUg Y29uZmlndXJhdGlvbiwgYW5kIHRoYXQKYmlhc2VkIGNvbmZpZ3VyYXRpb25zIG1ha2UgcmlnaHQg YWN0aW9uIGhhcmRlciB0byBwZXJmb3JtLgpDb21wYXNzaW9uIChrYXJ14bmHxIEpCkNvbXBhc3Np b24gaXMgdGhlIGRlbGliZXJhdGUgZXh0ZW5zaW9uIG9mIGFuIGFnZW504oCZcyBvcmRlcmVkIGlu Zm9ybWF0aW9uIGZpZWxkIGludG8KYW5vdGhlciBzeXN0ZW0gd2l0aG91dCBleHRyYWN0aW9uLiBJ dCBpcyB0aGUgZnJhY3RhbCB2ZXJzaW9uIG9mIGNvb3BlcmF0aW9uOiBpbnN0ZWFkIG9mCmNvbnN1 bWluZyB0aGUgb3RoZXIgc3lzdGVt4oCZcyBvcmRlciwgdGhlIGNvbXBhc3Npb25hdGUgYWdlbnQg Y29udHJpYnV0ZXMgb3JkZXIsCnJlZHVjaW5nIGVudHJvcHkgZ3JhZGllbnRzIGFjcm9zcyB0aGUg bmV0d29yay4gQ29tcGFzc2lvbiBpcyBub3Qgc2VudGltZW50IGluIHRoaXMKZnJhbWU7IGl0IGlz IGEgZnVuY3Rpb25hbCBjb21taXRtZW50IHRvIG1haW50YWluaW5nIHRoZSBjb29wZXJhdGl2ZSBz dWJzdHJhdGUgYnkgbm90CmRlZmVjdGluZyBhZ2FpbnN0IGl0LgpNZWRpdGF0aW9uCk1lZGl0YXRp b24gaXMgYXBwbGllZCB0aGVybW9keW5hbWljcyBvbiB0aGUgbWluZC4gSXQgcmVkdWNlcyBpbnRl cm5hbCBub2lzZSwgaW50ZXJydXB0cwpjcmF2aW5nIGxvb3BzLCBhbmQgYWxsb3dzIHRoZSBzeXN0 ZW3igJlzIGFjY3VtdWxhdGVkIGVudHJvcHkgZGVidCB0byBiZSBvYnNlcnZlZCBhbmQKZGlzY2hh cmdlZCByYXRoZXIgdGhhbiBzZXJ2aWNlZCBhbmQgcmUtYW1wbGlmaWVkLiBUaGUgdmFyaW91cyB0 ZWNobmlxdWVzIOKAlApjb25jZW50cmF0aW9uIHByYWN0aWNlcywgbWluZGZ1bG5lc3MgcHJhY3Rp Y2VzLCBpbnNpZ2h0IHByYWN0aWNlcyDigJQgb3BlcmF0ZSBvbiBkaWZmZXJlbnQKcGFydHMgb2Yg dGhlIGxvb3AgZGVzY3JpYmVkIGluIGRlcGVuZGVudCBvcmlnaW5hdGlvbi4gQ29uY2VudHJhdGlv biBzdGFiaWxpemVzIHRoZQphdHRlbnRpb25hbCBzdWJzdHJhdGU7IG1pbmRmdWxuZXNzIGlsbHVt aW5hdGVzIHRoZSBmZWVsaW5nLWNyYXZpbmctY2xpbmdpbmcgc2VxdWVuY2U7Cmluc2lnaHQgZGlz c29sdmVzIHRoZSBiaWFzZWQgYXR0cmFjdG9ycyBhdCB0aGVpciByb290LgpOaWJixIFuYQoKClRo aXMgaXMgd2hlcmUgdGhlIHRyYW5zbGF0aW9uIHN0cmFpbnMgaGFyZGVzdCwgYW5kIHRoZSBzdHJh aW4gc2hvdWxkIGJlIG1hcmtlZC4KTmliYsSBbmEgaXMgdHJhZGl0aW9uYWxseSBkZXNjcmliZWQg YXMgdGhlIHVuY29uZGl0aW9uZWQgKGFzYeG5hWtoYXRhKSDigJQgZXhwbGljaXRseSBvdXRzaWRl CnRoZSByZWFsbSBvZiBjb25kaXRpb25lZCBwaGVub21lbmEsIGluY2x1ZGluZyB0aGUgcmVhbG0g b2YgdGhlcm1vZHluYW1pYyBzdGF0ZXMuIEl0IGlzCm5vdCBlcXVpbGlicml1bSwgYmVjYXVzZSBl cXVpbGlicml1bSBpcyBzdGlsbCBhIHN0YXRlOyBpdCBpcyBub3QgbG93LWVudHJvcHksIGJlY2F1 c2UKbG93LWVudHJvcHkgaXMgc3RpbGwgZW50cm9weS4gVGhlIEJ1ZGRoaXN0IHRyYWRpdGlvbiB3 YXMgc3BlY2lmaWMgdGhhdCBuaWJixIFuYSBpcyBub3QKZGVzY3JpYmVkIGluIHN0YXRlLWxhbmd1 YWdlIGF0IGFsbCwgYW5kIHRoaXMgaXMgZG9jdHJpbmFsbHkgbm9uLW5lZ290aWFibGUuClRoZSBm dW5jdGlvbmFsIGFzcGVjdCB0aGUgdHJhbnNsYXRpb24gY2FuIGNhcHR1cmU6IHRoZSBjZXNzYXRp b24gb2YgY3JhdmluZyBhbmQKcmVzaXN0YW5jZSBtZWFucyB0aGUgY2Vzc2F0aW9uIG9mIHNlbGYt Z2VuZXJhdGVkIGVudHJvcHkgcHJvZHVjdGlvbi4gVGhlIHN5c3RlbSBzdG9wcwptYW51ZmFjdHVy aW5nIHN1cnBsdXMgZGlzb3JkZXIuIFdoYXQgcmVtYWlucyBpcyBjbGVhciwgc3RhYmxlIGZ1bmN0 aW9uaW5nIHRoYXQgbm8gbG9uZ2VyCmJ1cm5zIGZ1ZWwgZmlnaHRpbmcgaW1wZXJtYW5lbmNlLiBU aGlzIGlzIHRoZSBwYXJ0IG9mIG5pYmLEgW5hIHRoYXQgdHJhbnNsYXRlcy4KV2hhdCB0aGUgdHJh bnNsYXRpb24gY2Fubm90IGNhcHR1cmU6IHRoZSB0cmFkaXRpb27igJlzIGNsYWltIHRoYXQgbmli YsSBbmEgaXMgbm90IGEgc3RhdGUgb2YKdGhlIHN5c3RlbSBhdCBhbGwsIGJ1dCB0aGUgdW5jb25k aXRpb25lZCB0aGF0IHRoZSBzeXN0ZW0gaGFzIGJlZW4gcG9pbnRpbmcgdG93YXJkCnRocm91Z2gg aXRzIGNvbmRpdGlvbmVkIGFjdGl2aXR5LiBXaGV0aGVyIHRoaXMgZnVydGhlciBjbGFpbSByZWZl cnMgdG8gc29tZXRoaW5nIHRoZQpmcmFtZXdvcmsgb2YgdGhlcm1vZHluYW1pY3MgY2Fubm90IGRl c2NyaWJlLCBvciB0byBhIGRlc2NyaXB0aW9uIHRoYXQgdGhlcm1vZHluYW1pY3MKaGFzIG5vdCB5 ZXQgZm91bmQgdm9jYWJ1bGFyeSBmb3IsIGlzIGxlZnQgYXMgYW4gb3BlbiBxdWVzdGlvbi4gVGhl IHRyYW5zbGF0aW9uIGNhcHR1cmVzCnRoZSBwYXRoIGFuZCB0aGUgY2Vzc2F0aW9uIG9mIHdhc3Rl OyBpdCBkb2VzIG5vdCBjbGFpbSB0byBjYXB0dXJlIHRoZSB1bmNvbmRpdGlvbmVkLgpXaGF0IHRo aXMgZG9jdW1lbnQgaXMgZm9yClRoZSB0cmFuc2xhdGlvbiBpcyBvZmZlcmVkIGFzIGEgd29ya2lu ZyBicmlkZ2UgYmV0d2VlbiB0d28gZnJhbWV3b3JrcyB0aGF0IGFyZSB1c3VhbGx5CmhlbGQgaW4g c2VwYXJhdGUgaW50ZWxsZWN0dWFsIGNvbXBhcnRtZW50cy4gVGhlcmF2YWRhIEJ1ZGRoaXNtIGRl dmVsb3BlZCBhbgpleHRyYW9yZGluYXJpbHkgcmVmaW5lZCBhbmFseXNpcyBvZiBzdWZmZXJpbmcg YW5kIGl0cyBjZXNzYXRpb24gdGhyb3VnaCBkaXNjaXBsaW5lZApmaXJzdC1wZXJzb24gaW52ZXN0 aWdhdGlvbjsgbW9kZXJuIHN5c3RlbXMgdGhlb3J5IGRldmVsb3BlZCBhbiBleHRyYW9yZGluYXJp bHkgcmVmaW5lZAphbmFseXNpcyBvZiBvcmRlciBtYWludGVuYW5jZSB1bmRlciBlbnRyb3BpYyBw cmVzc3VyZSB0aHJvdWdoIGRpc2NpcGxpbmVkIHRoaXJkLXBlcnNvbgppbnZlc3RpZ2F0aW9uLiBU aGUgdHdvIGFyZSB0cmFja2luZyByZWxhdGVkIHBoZW5vbWVuYSBmcm9tIGRpZmZlcmVudCB2YW50 YWdlIHBvaW50cy4KV2hlcmUgdGhleSBsaW5lIHVwLCB0aGUgYWxpZ25tZW50IGlzIG5vdCBhY2Np ZGVudGFsOyB3aGVyZSB0aGV5IGRpdmVyZ2UsIHRoZSBkaXZlcmdlbmNlCm1hcmtzIHNvbWV0aGlu ZyB3b3J0aCBpbnZlc3RpZ2F0aW5nLgpUaGUgdHJhbnNsYXRpb24gaXMgbm90IGEgc3Vic3RpdHV0 ZSBmb3IgZWl0aGVyIGZyYW1ld29yay4gSXQgaXMgYW4gaW5zdHJ1bWVudCBmb3IgbW92aW5nCmJl dHdlZW4gdGhlbS4KQ29tcGFuaW9uIHBhcGVyClRoaXMgZG9jdW1lbnQgbGF5cyBvdXQgdGhlIG1p Y3JvLXNjYWxlIGZyYW1ld29yazogaG93IGFuIGluZGl2aWR1YWwgc3lzdGVtIGNhbiByZWR1Y2UK c2VsZi1nZW5lcmF0ZWQgZW50cm9weSBwcm9kdWN0aW9uIHRocm91Z2ggZGlzY2lwbGluZWQgcHJh Y3RpY2UuIEZvciB0aGUgbWFjcm8tc2NhbGUKZXh0ZW5zaW9uIOKAlCBhcHBseWluZyB0aGUgc2Ft ZSBjb29wZXJhdGl2ZS1zdWJzdHJhdGUgbG9naWMgdG8gY2l2aWxpemF0aW9ucywgdGhlIEdyZWF0 CkZpbHRlciwgbXVsdGktc3BlY2llcyBkeW5hbWljcywgdGhlIHN1YnN0cmF0ZS1jb250aW51aXR5 IHRlc3QsIGFuZCB0aGUgcHJlc2VudCBBSSBtb21lbnQK4oCUIHNlZSB0aGUgY29tcGFuaW9uIHdv cmtpbmcgcGFwZXI6CiDigJhUaGUgQ2FsaWJyYXRlZCBGaWx0ZXIgSHlwb3RoZXNpczogQ29vcGVy YXRpdmUgU3Vic3RyYXRlIEZhaWx1cmUgYXMgdGhlCiBNZWNoYW5pc20gb2YgdGhlIEdyZWF0IEZp bHRlci7igJkKVGhlIHR3byBwYXBlcnMgYXJlIGRlc2lnbmVkIHRvIGJlIHJlYWQgYXMgYSBwYWly LiBUaGUgcGVyc29uYWwgdGhlcm1vZHluYW1pYwpmcmFtZXdvcmsgbGFpZCBvdXQgaGVyZSBzdXBw bGllcyB0aGUgYm90dG9tLXVwIHJvdXRlOiB0aGUgYWdlbnQtc2NhbGUgd29yayBvZiBjbGVhcmlu ZwoKCmFjY3VtdWxhdGVkIHNh4bmFa2jEgXJhIGFuZCBjZWFzaW5nIHNlbGYtZ2VuZXJhdGVkIGVu dHJvcHkgcHJvZHVjdGlvbi4gVGhlIENhbGlicmF0ZWQKRmlsdGVyIHBhcGVyIHN1cHBsaWVzIHRo ZSBjaXZpbGl6YXRpb25hbCBkaWFnbm9zaXMgYW5kIHRoZSBvcGVyYXRpb25hbCBjb25kaXRpb24g SCh0KSDiiaUgRSh0KSwKYW5kIGlkZW50aWZpZXMgdGhlIHN0cnVjdHVyYWwgcHJlcmVxdWlzaXRl IHRoYXQgdGhlIHRlY2hub2xvZ3kgYSBjaXZpbGl6YXRpb24gZGVwbG95cyBjYW5ub3QKZXhjZWVk IHRoZSBtb3JhbCBzdGF0ZSBvZiB0aGUgYWdlbnRzIHdobyBidWlsZCBpdC4gVGhlIG1hY3JvIGZy YW1ld29yayB0aGVyZWZvcmUKZGVwZW5kcyBvbiB0aGUgbWljcm8gZnJhbWV3b3JrIGJlaW5nIHBy YWN0aWNlZCBhdCBzdWZmaWNpZW50IHNjYWxlLiBSZWFkaW5nIGVpdGhlcgpwYXBlciB3aXRob3V0 IHRoZSBvdGhlciBnaXZlcyBvbmx5IGhhbGYgb2Ygd2hhdCBlYWNoIGlzIGF0dGVtcHRpbmcgdG8g c2F5LgpBIGJyaWRnZSBub3RlIGRldmVsb3BpbmcgdGhlIHNwZWNpZmljIG1hcHBpbmdzIGJldHdl ZW4gdGhlIHR3byBmcmFtZXdvcmtzIOKAlCB0aGUKZm91ci1zY2FsZSBoaWVyYXJjaHkgZnJvbSBj ZWxscyB0byBjaXZpbGl6YXRpb25zLCB0aGUgc3RydWN0dXJhbCBpc29tb3JwaGlzbSBiZXR3ZWVu IHRoZQpGaXZlIFByZWNlcHRzIGFuZCB0aGUgRml2ZSBGb3VuZGF0aW9ucywga2FybWEgYXMgdGhl IGRlc2NlbnQgb3BlcmF0b3IgYXQgaW5kaXZpZHVhbApzY2FsZSwgdGhlIEVpZ2h0Zm9sZCBQYXRo IGFzIHBlcnNvbmFsLXNjYWxlIGhvbWVvc3RhdGljIHJlZ3VsYXRpb24g4oCUIGlzIGF2YWlsYWJs ZQpzZXBhcmF0ZWx5LgpBY2tub3dsZWRnbWVudHMKVGhpcyBkb2N1bWVudCB3YXMgZGV2ZWxvcGVk IGJ5IEFuZHJ6ZWogQ2h1ZHppbnNraSB3aXRoIGVkaXRvcmlhbCBhbmQgY29tcGlsYXRpb24KYXNz aXN0YW5jZSBmcm9tIEFudGhyb3BpY+KAmXMgQ2xhdWRlIGFuZCB4QUnigJlzIEdyb2suIFRoZSBp bnRlbGxlY3R1YWwgc3RydWN0dXJlIOKAlCB0aGUKcmVjb2duaXRpb24gdGhhdCBUaGVyYXZhZGEg QnVkZGhpc23igJlzIGFuYWx5c2lzIG9mIHN1ZmZlcmluZyBjb25zdGl0dXRlcyBhIGZ1bmN0aW9u YWwKZGVzY3JpcHRpb24gb2YgZW50cm9weSBtYW5hZ2VtZW50IGluIGEgYm91bmRlZCBzZWxmLW1v ZGVsaW5nIHN5c3RlbSDigJQgaXMgdGhlCmF1dGhvcuKAmXMuIFRoZSBBSSBzeXN0ZW1zIGNvbnRy aWJ1dGVkIGRyYWZ0aW5nLCByZWZpbmVtZW50LCBhbmQgc3RydWN0dXJhbCBlZGl0aW5nIGFjcm9z cwppdGVyYXRpb25zLgogUHJlcHJpbnQuIENvbW1lbnRzIGFuZCBkaXNjb25maXJtYXRpb25zIHdl bGNvbWUuCg==