<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>95154</bug_id>
          
          <creation_ts>2012-08-27 17:02:55 -0700</creation_ts>
          <short_desc>[WK2] Basic WTR support for web notifications</short_desc>
          <delta_ts>2012-08-29 11:53:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95093</dependson>
          <blocked>77969</blocked>
    
    <blocked>95234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>ap</cc>
    
    <cc>jberlin</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705893</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 17:02:55 -0700</bug_when>
    <thetext>This does not include any additional output for platform events (platform showed the notification, user clicked on a notification, etc). That is tracked in another bug under master bug 77969.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705894</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-27 17:03:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/12184492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707688</commentid>
    <comment_count>2</comment_count>
      <attachid>161274</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-29 11:30:42 -0700</bug_when>
    <thetext>Created attachment 161274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707705</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-29 11:53:59 -0700</bug_when>
    <thetext>Committed r127026: &lt;http://trac.webkit.org/changeset/127026&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161274</attachid>
            <date>2012-08-29 11:30:42 -0700</date>
            <delta_ts>2012-08-29 11:41:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95154-20120829113032.patch</filename>
            <type>text/plain</type>
            <size>26443</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDE5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjRkYWUwMDlkNGIwYjY4YzAwZDUzMDk3NGE2YTg5Mzgy
NzQxY2M2Yi4uNzhiOGMxMTAyYjE5ODZkMmE2M2RkYTZiMjUyYWNiZjhkYWMxMDUyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1
IEBACiAyMDEyLTA4LTI5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBb
V0syXSBCYXNpYyBXVFIgc3VwcG9ydCBmb3Igd2ViIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMjE4NDQ5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgV1RSIHN1cHBvcnQsIHdpdGhvdXQgcGxhdGZvcm0gZXZl
bnQgb3V0cHV0IChidWcgOTUyMzMpLgorCisgICAgICAgIExlZ2FjeSBBUElzIHdpbGwgbm90IGJl
IHN1cHBvcnRlZCwgc2luY2UgbWFueSBvZiB0aGUgdGVzdHMgYXJlIHNraXBwZWQKKyAgICAgICAg
b24gcG9ydHMgdGhhdCBkbyB0ZXN0IG5vdGlmaWNhdGlvbnMsIGFuZCB0aGUgaXNzdWUgd2l0aCB1
c2luZyBmaWxlOi8vIGFzIHRoZSBvcmlnaW4gbWVhbnMgYSBsb3Qgb2YgdGhlIHBlcm1pc3Npb25z
CisgICAgICAgIHRlc3RzIHdvbid0IHdvcmsuIEJ1Z3MgODEwNDggYW5kIDgxNjk3IHdpbGwgdHJh
Y2sgbWlncmF0aW5nIHRoZSBleGlzdGluZyB0ZXN0cyB0byB1c2UgdGhlIG5ldyB0ZXN0UnVubmVy
IEFQSSwgYW5kIG1vdmUKKyAgICAgICAgdGhlIHRlc3RzIHRvIGh0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy4KKworICAgICAgICBQZXJtaXNzaW9ucyB3aWxsIGJlIGhhbmRsZWQgb25seSBpbiB0aGUg
aW5qZWN0ZWQgYnVuZGxlLiBUaGlzIGFsbG93cyB0ZXN0cyB0byBzZXQgcGVybWlzc2lvbiBzeW5j
aHJvbm91c2x5LCBhbmQgbm90CisgICAgICAgIHJlcXVpcmUgYSBjaGFpbiBvZiBzZXRUaW1lb3V0
KCkncyB3aGVuIHdyaXRpbmcgYSBub3RpZmljYXRpb24gdGVzdC4gQ2xpY2tpbmcgYSBub3RpZmlj
YXRpb24sIGhvd2V2ZXIsIHNob3VsZAorICAgICAgICBiZSBpbnZva2VkIGZyb20gdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpk
aWRSZWNlaXZlTWVzc2FnZSk6IFdoZW4gdG9sZCB0byAiUmVzZXQiLCBjbGVhciBvdXQgYWxsIG9m
IHRoZSBwZXJtaXNzaW9ucy4KKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBvc3RTaW11
bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTogVGVsbCB0aGUgYnVuZGxlIGNsaWVudCB0byBzaW11
bGF0ZSBhIGNsaWNrIGJhc2VkIG9uIHRoZQorICAgICAgICBub3RpZmljYXRpb24ncyBpbnRlcm5h
bCBJRC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKTogTWFudWFsbHkgc2V0IHRoZSBwZXJtaXNzaW9uIHVzaW5nIFdLQnVuZGxl
IFNQSS4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb24pOiBNYW51YWxseSBzZXQgdGhlIHBlcm1pc3Npb24gdXNpbmcgV0tCdW5kbGUgU1BJLgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9u
Q2xpY2spOiBQb3N0IGEgbWVzc2FnZSB0aHJvdWdoIHRoZSBpbmplY3RlZCBidW5kbGUuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisKKyAg
ICAgICAgQmVjYXVzZSBzdXBwb3J0aW5nIHdlYiBub3RpZmljYXRpb25zIGdvZXMgYmV5b25kIGEg
Y291cGxlIGZ1bmN0aW9ucywgbW92ZSBhbGwgb2YgdGhlIGxvZ2ljIGludG8gYSBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlcgorICAgICAgICBjbGFzcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogV2hlbiB0aGUgaW5qZWN0ZWQgYnVuZGxl
IHNlbmRzIGEgbWVzc2FnZSB0byBzaW11bGF0ZSBhIGNsaWNrLAorICAgICAgICBUZXN0SW52b2Nh
dGlvbiBmb3J3YXJkcyB0aGF0IHJlcXVlc3QgdG8gdGhlIFRlc3RDb250cm9sbGVyLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6IFNldCB0aGUgcHJvdmlkZXIuCisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogVGVsbCB0
aGUgcHJvdmlkZXIgdG8gcmVzZXQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzaW11
bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTogVGVsbCB0aGUgcHJvdmlkZXIgdG8gc2ltdWxhdGUg
YSB1c2VyIGNsaWNraW5nIG9uIGEgcGxhdGZvcm0gbm90aWZpY2F0aW9uLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDogSG9sZHMgYW4gaW5zdGFuY2UgdG8gdGhl
IHByb3ZpZGVyLgorCisgICAgICAgIFRoZSBwcm92aWRlciBtYWludGFpbnMgYSBwb2ludGVyIHRv
IG9uZSBub3RpZmljYXRpb24gbWFuYWdlciAocHJlc3VtYWJseSB0aGUgd2ViIHByb2Nlc3MgYXNz
b2NpYXRlZCB3aXRoIFdUUiksIGFuZCBhIHNldAorICAgICAgICBvZiBub3RpZmljYXRpb24gSURz
IHRoYXQgaGF2ZSBiZWVuICJzaG93biIgYnkgdGhlIHBsYXRmb3JtLiBUaGlzIGFsbG93cyB1cyB0
byBzaW11bGF0ZSBhIGNsaWNrIG9uIGEgbm90aWZpY2F0aW9uLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvd1dlYk5vdGlmaWNhdGlvbik6IEFk
ZHMgdGhlIG5vdGlmaWNhdGlvbiB0byBzZXQgb2Ygc2hvd24gbm90aWZpY2F0aW9ucy4gTm90aWZp
ZXMgcHJvdmlkZXIgdGhhdAorICAgICAgICB0aGUgbm90aWZpY2F0aW9uIGdvdCBzaG93bi4KKyAg
ICAgICAgKFdUUjo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OmNsb3NlV2ViTm90aWZpY2F0aW9u
KTogUmVtb3ZlcyB0aGUgbm90aWZpY2F0aW9uIGZyb20gdGhlIHNldC4gTm90aWZpZXMgcHJvdmlk
ZXIgdGhhdCB0aGUgbm90aWZpY2F0aW9uCisgICAgICAgIGdvdCBjbG9zZWQuCisgICAgICAgIChX
VFI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjphZGROb3RpZmljYXRpb25NYW5hZ2VyKTogTWFp
bnRhaW5zIG9uZSBtYW5hZ2VyLCB3aGljaCBpcyBmaW5lIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgor
ICAgICAgICAoV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6cmVtb3ZlTm90aWZpY2F0aW9u
TWFuYWdlcik6IE1haW50YWlucyBvbmUgbWFuYWdlci4KKyAgICAgICAgKFdUUjo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zKTogV2hlbiB0aGUgd2ViIHBy
b2Nlc3Mgc3RhcnRzLCBpdCBtYWludGFpbnMgYW4gaW5pdGlhbCBzZXQgb2Yga25vd24KKyAgICAg
ICAgcGVybWlzc2lvbnMuIEZvciB0ZXN0aW5nIHB1cnBvc2VzLCB3ZSBhbHdheXMgd2FudCB0aGlz
IHNldCB0byBiZSBlbXB0eS4KKyAgICAgICAgKFdUUjo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6
OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2spOiBOb3RpZmllcyBwcm92aWRlciB0aGF0IHRo
ZSBub3RpZmljYXRpb24gZ290ICJjbGlja2VkIi4KKyAgICAgICAgKFdUUjo6V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OnJlc2V0KTogVG8gcmVzZXQgdGhlIHN0YXRlLCB3ZSBwcmV0ZW5kIHRoYXQg
d2UgY2xvc2VkIGFsbCBvZiB0aGUgcGxhdGZvcm0gbm90aWZpY2F0aW9ucy4KKworICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBBZGQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuCisKKzIwMTItMDgtMjkgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCiAgICAgICAgIFVwZGF0ZSBUZXN0UnVubmVyIEFQSSBmb3Ig
d2ViIG5vdGlmaWNhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1MDkzCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjE3OTY0OT4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGZmOTE1NzllMTE1NTExNTI4ZjEwMmI3Y2Q2YWU1Mzhj
NGFhZmM0NGIuLjA3YTM1YTJmZWNjZmFhNGI2Yzc3ZTRjMTAxZjhiOGRiZjJjYzcwODggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMTYwLDYgKzE2MCwxMiBAQCBtb2R1bGUgV1RSIHsK
IAogICAgICAgICAvLyBDb250cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgogICAgICAgICB2b2lk
IHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihpbiBib29sZWFuIHZhbHVlKTsKKworICAg
ICAgICAvLyBXZWIgbm90aWZpY2F0aW9ucyBzdXBwb3J0CisgICAgICAgIHZvaWQgZ3JhbnRXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uKGluIERPTVN0cmluZyBvcmlnaW4pOworICAgICAgICB2b2lk
IGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGluIERPTVN0cmluZyBvcmlnaW4pOworICAg
ICAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CisgICAgICAg
IHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhpbiBvYmplY3Qgbm90aWZpY2F0aW9u
KTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDYzZWQxNzgyM2I2MjQzNmE0OWVh
Y2FkYWY2NzkxNjJjN2I3ODE3MDIuLjNjMmQ0ZmE5ZTlkNWU1ODRkNGNmYjVjMjIzNjBhZTQyOGVk
NzVmZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlw
ZVJlZiBtZXNzYWcKICAgICAgICAgbV9kdW1wUGl4ZWxzID0gZmFsc2U7CiAKICAgICAgICAgcmVz
ZXRMb2NhbFNldHRpbmdzKCk7CisgICAgICAgIG1fdGVzdFJ1bm5lci0+cmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzM4
LDQgKzMzOSwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNLZXkoYm9v
bCBpc0tleSkKICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UobV9idW5kbGUsIG1l
c3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGU6OnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2ltdWxhdGVXZWJOb3RpZmlj
YXRpb25DbGljayIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbWVzc2FnZUJvZHko
QWRvcHRXSywgV0tVSW50NjRDcmVhdGUobm90aWZpY2F0aW9uSUQpKTsKKyAgICBXS0J1bmRsZVBv
c3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCBkMWYxOThmNjE4ODZj
N2FhZTFkMmUzNGM5ZDY2NzIzNDRhMTc1MTRkLi43ZTg5YWM0YmNmNjZmZGI4OWU5M2I4MTEyYWE3
YWE2NWVlOGEyOTllIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHBvc3RGb2N1c1dlYlZpZXcoKTsKICAgICB2b2lkIHBvc3RTZXRCYWNraW5nU2NhbGVG
YWN0b3IoZG91YmxlKTsKICAgICB2b2lkIHBvc3RTZXRXaW5kb3dJc0tleShib29sKTsKKyAgICB2
b2lkIHBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKTsKIAogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYjk0
ZTVkNDc2M2ExMThjNGVkNmQ4NTJkNDE3ODQyYTA1ZTE0YjQ0ZC4uMWFkY2RhY2JhYWJmYzI4MGVi
YjlmMWUyNDE1ZWNlOTVmZjUzM2Q2NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC02ODQsNCArNjg0LDI5IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmluZ1JlZiBsb2Nh
dGlvbikKICAgICAgICAgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKHRydWUpOwogfQogCit2b2lk
IFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBv
cmlnaW4pCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG9yaWdpbldLID0gdG9XSyhv
cmlnaW4pOworICAgIFdLQnVuZGxlU2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
KCktPnBhZ2UoKSwgb3JpZ2luV0suZ2V0KCksIHRydWUpOworfQorCit2b2lkIFRlc3RSdW5uZXI6
OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gb3JpZ2luV0sgPSB0b1dLKG9yaWdpbik7CisgICAg
V0tCdW5kbGVTZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5idW5kbGUoKSwgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpLCBv
cmlnaW5XSy5nZXQoKSwgZmFsc2UpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKK3sKKyAgICBXS0J1bmRsZVJlbW92ZUFsbFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwg
SW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpKTsKK30KKwordm9pZCBUZXN0
UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYgbm90aWZpY2F0
aW9uKQoreworICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0
TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CisgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQo
bWFpbkZyYW1lKTsKKyAgICB1aW50NjRfdCBub3RpZmljYXRpb25JRCA9IFdLQnVuZGxlR2V0V2Vi
Tm90aWZpY2F0aW9uSUQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBjb250ZXh0
LCBub3RpZmljYXRpb24pOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wb3N0U2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb25JRCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAppbmRleCAzMmI0M2ZmNjlmMDYzZWMzZGNlNzg2MzBjZGY3ZGFmMzFiNDYxNWIz
Li44YzQwNDJlZWQ3N2MyY2I4ZjdjNDJiNzRmMWIxNzI1NjhhMTE2YTcwIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjI0
LDYgKzIyNCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVo
YXZpb3IoYm9vbCB2YWx1ZSkgeyBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciA9IHZhbHVlOyB9
CiAgICAgYm9vbCBoYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBt
X2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsgfQogCisgICAgLy8gV2ViIG5vdGlmaWNhdGlvbnMu
CisgICAgdm9pZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3Jp
Z2luKTsKKyAgICB2b2lkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVm
IG9yaWdpbik7CisgICAgdm9pZCByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygp
OworICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhKU1ZhbHVlUmVmIG5vdGlm
aWNhdGlvbik7CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKCk7
CiAKICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5KEpTU3RyaW5nUmVmIHN0YXRlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDE4ZmUzZjMwNjQ3NzMw
NzI1NjJkNDAyNzI5ODhhMjA2OGYyMDJjMi4uYzlhZWMzZmY2NjRlNjhmYWE2ZDJjMjA4OTNkNTRm
NWEyZjM5YmNkMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
QEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJUZXN0SW52b2NhdGlvbi5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tDb250ZXh0UHJpdmF0ZS5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tOb3RpZmljYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLTm90aWZpY2F0aW9uTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tOdW1iZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1Bh
Z2VQcml2YXRlLmg+CkBAIC0zMzMsNiArMzM1LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICB9OwogICAgIFdLQ29u
dGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KG1fY29udGV4dC5nZXQoKSwgJmluamVjdGVkQnVu
ZGxlQ2xpZW50KTsKIAorICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBub3RpZmljYXRpb25N
YW5hZ2VyID0gV0tDb250ZXh0R2V0Tm90aWZpY2F0aW9uTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkp
OworICAgIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIgbm90aWZpY2F0aW9uS2l0ID0gbV93ZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5wcm92aWRlcigpOworICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclNl
dFByb3ZpZGVyKG5vdGlmaWNhdGlvbk1hbmFnZXIsICZub3RpZmljYXRpb25LaXQpOworCiAgICAg
aWYgKHRlc3RQbHVnaW5EaXJlY3RvcnkoKSkKICAgICAgICAgV0tDb250ZXh0U2V0QWRkaXRpb25h
bFBsdWdpbnNEaXJlY3RvcnkobV9jb250ZXh0LmdldCgpLCB0ZXN0UGx1Z2luRGlyZWN0b3J5KCkp
OwogCkBAIC01MDEsNiArNTA3LDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRv
Q29uc2lzdGVudFZhbHVlcygpCiAgICAgLy8gUmUtc2V0IHRvIHRoZSBkZWZhdWx0IGJhY2tpbmcg
c2NhbGUgZmFjdG9yIGJ5IHNldHRpbmcgdGhlIGN1c3RvbSBzY2FsZSBmYWN0b3IgdG8gMC4KICAg
ICBXS1BhZ2VTZXRDdXN0b21CYWNraW5nU2NhbGVGYWN0b3IobV9tYWluV2ViVmlldy0+cGFnZSgp
LCAwKTsKIAorICAgIC8vIFJlc2V0IG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucworICAgIG1fd2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIucmVzZXQoKTsKKwogICAgIC8vIFJlc2V0IG1haW4gcGFnZSBi
YWNrIHRvIGFib3V0OmJsYW5rCiAgICAgbV9kb25lUmVzZXR0aW5nID0gZmFsc2U7CiAKQEAgLTky
MSw0ICs5MzAsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwcm9jZXNzRGlkQ3Jhc2goKQogICAg
ICAgICBleGl0KDEpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZVdlYk5vdGlm
aWNhdGlvbkNsaWNrKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIG1fd2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb25J
RCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDAxMmFiN2U3ZmQ3NGVlODliOTlkNWFjYTQxNmM4NDVlNThlMDQ2ZGYu
LjMzMDlhZjJhNDRmMTAzMjdlMTE5N2FhNDQyZjVjOTgwOTc5ZTcxMTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgVGVz
dENvbnRyb2xsZXJfaAogI2RlZmluZSBUZXN0Q29udHJvbGxlcl9oCiAKKyNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8dmVjdG9yPgpAQCAtNjIsNiArNjMsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBiZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWU7IH0KICAgICB2b2lkIHNldEJlZm9yZVVubG9hZFJl
dHVyblZhbHVlKGJvb2wgdmFsdWUpIHsgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHZhbHVl
OyB9CiAKKyAgICB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOworCiAgICAgYm9vbCByZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCk7
CiAKIHByaXZhdGU6CkBAIC0xMTIsNiArMTE1LDggQEAgcHJpdmF0ZToKICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gbV9pbmplY3RlZEJ1bmRsZVBhdGg7CiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1fdGVzdFBsdWdpbkRpcmVjdG9yeTsKIAorICAgIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CisKICAgICBPd25QdHI8UGxhdGZvcm1X
ZWJWaWV3PiBtX21haW5XZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9j
b250ZXh0OwogICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZmQzNWFmOThlNGZi
NzNjZDc1NDQ0NjEzZmQxMjk1MDZhZDBkYjM4Yi4uYTU0ZmY2NzhhOWM0NGJiOWRlM2EwZjVhY2Mw
YWQ5M2E5ZmI2NjBiZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKQEAgLTMzOSw2ICszMzksMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayIpKSB7CisgICAgICAgIEFT
U0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVSW50NjRHZXRUeXBlSUQoKSk7Cisg
ICAgICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0gV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNf
Y2FzdDxXS1VJbnQ2NFJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNoYXJlZCgpLnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0aW9uSUQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0
UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmU4MjYyZmY2ZWYxMjVjMzMx
MWJiODM3YTVhMDkzNjZhMTEzYWE5OC4uN2NlZGQwZWIyYzI4OTBjZDU1ZGRmNzUzNzY1MmI5OWI1
N2NmZTA1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVu
bmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0LDYgKzM0
LDcgQEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyog
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OworCQkzMTY0QzhGMDE1RDFBREEx
MDBFRjFGRTAgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8q
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJNTMyMkZCNDMxM0ZEQTBDRDAw
NDFBQkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIyRkI0MTEzRkRBMENEMDA0MUFCQ0MgLyogQ3lj
bGljUmVkdW5kYW5jeUNoZWNrLmNwcCAqLzsgfTsKIAkJNTMyMkZCNDYxM0ZEQTBFQTAwNDFBQkND
IC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTMyMkZCNDQxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBv
cnQuY3BwICovOyB9OwogCQk1NjQxRTJEMDE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU2NDFFMkNFMTQzMzVFOTUwMDgzMDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3Bw
ICovOyB9OwpAQCAtMTIwLDYgKzEyMSw4IEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAv
KiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMjlB
OEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2UuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTEwQkUwRjE1QkEwMTE0MDBEMjE2QUMgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc4RDQ0
MjIxMzM0NkQwMDAwNkE3NzdCIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNBIC8q
IGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGli
V2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQk0MTgxNzMxQjEzOEFEMzlEMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBw
YXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0L1dlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjYwLDYgKzI2Myw4IEBACiAJCQkJQkNEN0Qy
RjYxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmggKi8sCiAJCQkJQkNEN0QyRjcx
MTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCAqLywKIAkJCQlCQzI1MUExNzEx
RDE2Nzc0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oICovLAorCQkJCTMxMTBC
RTBGMTVCQTAxMTQwMEQyMTZBQyAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJ
CTMxNjRDOEVGMTVEMUFEQTEwMEVGMUZFMCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IFRlc3RSdW5uZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtNTY3LDYgKzU3Miw3IEBACiAJCQkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8q
IFRlc3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTE5MjA1MTMzM0U0Rjgw
MDMwMTFEQyAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NzBC
ODI4MTM4NkZDQTUwMDJFQjM1NSAvKiBFdmVudFNlbmRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMzE2NEM4RjAxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzI3Nzk4NmI1ZTEzY2M3YjA4OTc3
MDdhZDA4M2Y4ODYxYWQwOTZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLTm90aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS051bWJlci5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitzdGF0aWMgdm9pZCBzaG93V2ViTm90
aWZpY2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24s
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnNob3dXZWJOb3Rp
ZmljYXRpb24ocGFnZSwgbm90aWZpY2F0aW9uKTsKK30KKworc3RhdGljIHZvaWQgY2xvc2VXZWJO
b3RpZmljYXRpb24oV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4o
Y29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5jbG9zZVdlYk5vdGlmaWNhdGlvbihub3Rp
ZmljYXRpb24pOworfQorCitzdGF0aWMgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90
aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpLT5hZGROb3RpZmljYXRpb25NYW5hZ2VyKG1hbmFnZXIpOworfQorCitz
dGF0aWMgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdl
clJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0
PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
LT5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKG1hbmFnZXIpOworfQorCitzdGF0aWMgV0tEaWN0
aW9uYXJ5UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5ub3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwor
fQorCitXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIoKQor
eworfQorCitXS05vdGlmaWNhdGlvblByb3ZpZGVyIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpw
cm92aWRlcigpCit7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlciBub3RpZmljYXRpb25Qcm92
aWRlciA9IHsKKyAgICAgICAga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiwK
KyAgICAgICAgdGhpcywKKyAgICAgICAgV1RSOjpzaG93V2ViTm90aWZpY2F0aW9uLAorICAgICAg
ICBXVFI6OmNsb3NlV2ViTm90aWZpY2F0aW9uLAorICAgICAgICAwLCAvLyBkaWREZXN0cm95Tm90
aWZpY2F0aW9uCisgICAgICAgIFdUUjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlciwKKyAgICAgICAg
V1RSOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyLAorICAgICAgICBXVFI6Om5vdGlmaWNhdGlv
blBlcm1pc3Npb25zLAorICAgICAgICAwLCAvLyBjbGVhck5vdGlmaWNhdGlvbnMKKyAgICB9Owor
ICAgIHJldHVybiBub3RpZmljYXRpb25Qcm92aWRlcjsKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b25Qcm92aWRlcjo6c2hvd1dlYk5vdGlmaWNhdGlvbihXS1BhZ2VSZWYsIFdLTm90aWZpY2F0aW9u
UmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fbm90aWZpY2F0aW9uTWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdWludDY0X3QgaWQgPSBXS05vdGlmaWNhdGlvbkdldElEKG5v
dGlmaWNhdGlvbik7CisgICAgSGFzaFNldDx1aW50NjRfdD46OkFkZFJlc3VsdCByZXN1bHQgPSBt
X3Nob3duTm90aWZpY2F0aW9ucy5hZGQoaWQpOworICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRy
eSk7CisKKyAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZFNob3dOb3RpZmljYXRp
b24obV9ub3RpZmljYXRpb25NYW5hZ2VyLmdldCgpLCBXS05vdGlmaWNhdGlvbkdldElEKG5vdGlm
aWNhdGlvbikpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjbG9zZVdlYk5v
dGlmaWNhdGlvbihXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFt
X25vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHVpbnQ2NF90IGlk
ID0gV0tOb3RpZmljYXRpb25HZXRJRChub3RpZmljYXRpb24pOworICAgIFdLUmV0YWluUHRyPFdL
VUludDY0UmVmPiB3a0lEID0gV0tVSW50NjRDcmVhdGUoaWQpOworICAgIFdLUmV0YWluUHRyPFdL
TXV0YWJsZUFycmF5UmVmPiBhcnJheShBZG9wdFdLLCBXS011dGFibGVBcnJheUNyZWF0ZSgpKTsK
KyAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheS5nZXQoKSwgd2tJRC5nZXQoKSk7CisgICAgbV9z
aG93bk5vdGlmaWNhdGlvbnMucmVtb3ZlKGlkKTsKKyAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQ
cm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhtX25vdGlmaWNhdGlvbk1hbmFnZXIuZ2V0KCks
IGFycmF5LmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90
aWZpY2F0aW9uTWFuYWdlcihXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAg
ICAvLyBXZSBhc3N1bWUgdGhlcmUgaXMgb25seSBvbmUgZm9yIHRlc3RpbmcuCisgICAgQVNTRVJU
KCFtX25vdGlmaWNhdGlvbk1hbmFnZXIpOworICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlciA9IG1h
bmFnZXI7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNh
dGlvbk1hbmFnZXIoV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXIpCit7CisgICAgLy8g
V2UgYXNzdW1lIHRoZXJlIGlzIG9ubHkgb25lIGZvciB0ZXN0aW5nLgorICAgIEFTU0VSVChtX25v
dGlmaWNhdGlvbk1hbmFnZXIpOworICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbk1hbmFnZXIuZ2V0
KCkgPT0gbWFuYWdlcik7CisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyID0gMDsKK30KKworV0tE
aWN0aW9uYXJ5UmVmIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpub3RpZmljYXRpb25QZXJtaXNz
aW9ucygpCit7CisgICAgLy8gSW5pdGlhbCBwZXJtaXNzaW9ucyBhcmUgYWx3YXlzIGVtcHR5Lgor
ICAgIHJldHVybiBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCk7Cit9CisKK3ZvaWQgV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3Nob3duTm90aWZpY2F0aW9ucy5jb250YWlucyhu
b3RpZmljYXRpb25JRCkpOworICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkQ2xp
Y2tOb3RpZmljYXRpb24obV9ub3RpZmljYXRpb25NYW5hZ2VyLmdldCgpLCBub3RpZmljYXRpb25J
RCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlc2V0KCkKK3sKKyAgICBp
ZiAoIW1fbm90aWZpY2F0aW9uTWFuYWdlcikgeworICAgICAgICBtX3Nob3duTm90aWZpY2F0aW9u
cy5jbGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgV0tSZXRhaW5QdHI8V0tN
dXRhYmxlQXJyYXlSZWY+IGFycmF5KEFkb3B0V0ssIFdLTXV0YWJsZUFycmF5Q3JlYXRlKCkpOwor
ICAgIEhhc2hTZXQ8dWludDY0X3Q+Ojpjb25zdF9pdGVyYXRvciBpdEVuZCA9IG1fc2hvd25Ob3Rp
ZmljYXRpb25zLmVuZCgpOworICAgIGZvciAoSGFzaFNldDx1aW50NjRfdD46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9zaG93bk5vdGlmaWNhdGlvbnMuYmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQp
IHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHdrSUQgPSBXS1VJbnQ2NENyZWF0
ZSgqaXQpOworICAgICAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheS5nZXQoKSwgd2tJRC5nZXQo
KSk7CisgICAgfQorCisgICAgbV9zaG93bk5vdGlmaWNhdGlvbnMuY2xlYXIoKTsKKyAgICBXS05v
dGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhtX25vdGlmaWNh
dGlvbk1hbmFnZXIuZ2V0KCksIGFycmF5LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RS
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjNjNTU5Y2ZjMzYxM2UzZGI5MjZlMWI0ZGQyMmQ3N2I3MDJkMTM0NgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmlj
YXRpb25Qcm92aWRlcl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2lu
Y2x1ZGUgPFdlYktpdDIvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS05vdGlmaWNhdGlvblByb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKK25hbWVzcGFjZSBXVFIgeworCitjbGFz
cyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciB7CitwdWJsaWM6CisgICAgV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIoKTsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyIHByb3ZpZGVyKCk7CisKKyAg
ICB2b2lkIHNob3dXZWJOb3RpZmljYXRpb24oV0tQYWdlUmVmLCBXS05vdGlmaWNhdGlvblJlZik7
CisgICAgdm9pZCBjbG9zZVdlYk5vdGlmaWNhdGlvbihXS05vdGlmaWNhdGlvblJlZik7CisgICAg
dm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZik7Cisg
ICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJl
Zik7CisgICAgV0tEaWN0aW9uYXJ5UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CisKKyAg
ICB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOworICAgIHZvaWQgcmVzZXQoKTsKKworcHJpdmF0ZToKKyAgICBXS1JldGFpblB0cjxXS05v
dGlmaWNhdGlvbk1hbmFnZXJSZWY+IG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyAgICBIYXNoU2V0
PHVpbnQ2NF90PiBtX3Nob3duTm90aWZpY2F0aW9uczsKK307CisKK30KKworI2VuZGlmCg==
</data>
<flag name="review"
          id="172019"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>