<?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>98643</bug_id>
          
          <creation_ts>2012-10-08 05:26:29 -0700</creation_ts>
          <short_desc>[EFL][WK2] Use URL instead of URI in the API</short_desc>
          <delta_ts>2012-10-08 07:03:57 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736632</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-08 05:26:29 -0700</bug_when>
    <thetext>We currently use both URL and URI in the WK2 EFL API. We should switch to using only one of them for consistency (as discussed on the mailing list).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736643</commentid>
    <comment_count>1</comment_count>
      <attachid>167528</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-08 06:00:39 -0700</bug_when>
    <thetext>Created attachment 167528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736644</commentid>
    <comment_count>2</comment_count>
      <attachid>167528</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-08 06:05:22 -0700</bug_when>
    <thetext>Comment on attachment 167528
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167528&amp;action=review

&gt; Tools/MiniBrowser/efl/CMakeLists.txt:49
&gt; -ADD_DEFINITIONS(-DTHEME_DIR=\&quot;${THEME_BINARY_DIR}\&quot;)
&gt; +ADD_DEFINITIONS(-DTHEME_DIR=\&quot;${THEME_BINARY_DIR}\&quot; -DEFL_WK2=1)

you want to commit this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736647</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-08 06:09:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 167528 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167528&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/CMakeLists.txt:49
&gt; &gt; -ADD_DEFINITIONS(-DTHEME_DIR=\&quot;${THEME_BINARY_DIR}\&quot;)
&gt; &gt; +ADD_DEFINITIONS(-DTHEME_DIR=\&quot;${THEME_BINARY_DIR}\&quot; -DEFL_WK2=1)
&gt; 
&gt; you want to commit this?

Yes, unless someone has a better idea.

url_bar.c is shared by both EWebLauncher and Minibrowser so I need to way to distinguish if I should use WK1 or WK2 API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736675</commentid>
    <comment_count>4</comment_count>
      <attachid>167528</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 07:03:52 -0700</bug_when>
    <thetext>Comment on attachment 167528
Patch

Clearing flags on attachment: 167528

Committed r130637: &lt;http://trac.webkit.org/changeset/130637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736676</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 07:03:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167528</attachid>
            <date>2012-10-08 06:00:39 -0700</date>
            <delta_ts>2012-10-08 07:03:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>98643_wk2_api_url.patch</filename>
            <type>text/plain</type>
            <size>45905</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyZjFlZjNiLi5mNzIwODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkg
QEAKKzIwMTItMTAtMDggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFVzZSBVUkwgaW5zdGVhZCBvZiBVUkkgaW4gdGhl
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg2
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
VVJMIGluc3RlYWQgb2YgVVJJIGluIFdlYktpdDIgRUZMIEFQSS4gVGhpcyBjaGFuZ2UKKyAgICAg
ICAgd2FzIGRpc2N1c3NlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBhaW1zIGF0IG1ha2luZwor
ICAgICAgICB0aGUgQVBJIG1vcmUgY29uc2lzdGVudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcDoKKyAgICAgICAgKF9Fd2tfQmFj
a19Gb3J3YXJkX0xpc3RfSXRlbSk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV91cmxfZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX29yaWdpbmFs
X3VybF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3Bw
OgorICAgICAgICAoZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3Rlcik6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwOgorICAgICAgICAoZGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19kb3dubG9hZF9qb2IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
cmVzb3VyY2VfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3Zp
ZXdfdXJsX3VwZGF0ZSk6CisgICAgICAgIChld2tfdmlld191cmxfc2V0KToKKyAgICAgICAgKGV3
a192aWV3X3VybF9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfcmVsb2FkKToKKyAgICAgICAgKGV3
a192aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZF9maW5p
c2hlZCk6CisgICAgICAgIChld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3JlZGlyZWN0KToKKyAg
ICAgICAgKGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3RhcnRlZCk6CisgICAgICAgIChld2tf
dmlld19odG1sX3N0cmluZ19sb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGll
bnQuY3BwOgorICAgICAgICAoZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNw
cDoKKyAgICAgICAgKEVXSzJVbml0VGVzdDo6RVdLMlVuaXRUZXN0QmFzZTo6bG9hZFVybFN5bmMp
OgorICAgICAgICAoRVdLMlVuaXRUZXN0OjpvblVSTENoYW5nZWQpOgorICAgICAgICAoRVdLMlVu
aXRUZXN0Ojp0aW1lT3V0V2hpbGVXYWl0aW5nVW50aWxVUkxDaGFuZ2VkVG8pOgorICAgICAgICAo
RVdLMlVuaXRUZXN0OjpFV0syVW5pdFRlc3RCYXNlOjp3YWl0VW50aWxVUkxDaGFuZ2VkVG8pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRU
ZXN0QmFzZS5oOgorICAgICAgICAoRVdLMlVuaXRUZXN0QmFzZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwOgor
ICAgICAgICAoRVdLMlVuaXRUZXN0U2VydmVyOjpFV0syVW5pdFRlc3RTZXJ2ZXIpOgorICAgICAg
ICAoRVdLMlVuaXRUZXN0U2VydmVyOjp+RVdLMlVuaXRUZXN0U2VydmVyKToKKyAgICAgICAgKEVX
SzJVbml0VGVzdFNlcnZlcjo6Z2V0VVJMRm9yUGF0aCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuaDoKKyAgICAgICAg
KEVXSzJVbml0VGVzdFNlcnZlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
cmVzb3VyY2VzL3JlZGlyZWN0X3VybF90b19kZWZhdWx0Lmh0bWw6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9yZXNvdXJjZXMvcmVkaXJlY3RfdXJp
X3RvX2RlZmF1bHQuaHRtbC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfYmFja19mb3J3YXJkX2xpc3QuY3BwOgorICAgICAgICAoY2hlY2tJdGVtKToKKyAgICAg
ICAgKHVybEZyb21UaXRsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX2NvbnRleHQuY3BwOgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29va2llX21hbmFnZXIuY3BwOgorICAgICAgICAo
VEVTVF9GKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfZG93
bmxvYWRfam9iLmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvdGVzdF9ld2syX3NldHRpbmdzLmNwcDoKKyAgICAgICAgKFRFU1RfRik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwOgorICAg
ICAgICAoVEVTVF9GKToKKwogMjAxMi0xMC0wOCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4u
dHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVy
IHIxMzA2MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcAppbmRleCA1Njc5NzczLi43MDQ1
NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCkBAIC0zOSw5ICszOSw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBzdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
IHsKICAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0
aGUgb2JqZWN0ICovCiAgICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiB3
a0l0ZW07Ci0gICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgdXJpOworICAgIG11dGFibGUg
V0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKICAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyB0
aXRsZTsKLSAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVyaTsKKyAgICBt
dXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVSTDsKIAogICAgIF9Fd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKICAgICAg
ICAgOiBfX3JlZigxKQpAQCAtODMsMTMgKzgzLDEzIEBAIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fdW5yZWYoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiAgICAgZGVs
ZXRlIGl0ZW07CiB9CiAKLWNvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3Vy
aV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCitjb25zdCBjaGFy
KiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91cmxfZ2V0KGNvbnN0IEV3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtKiBpdGVtKQogewogICAgIEVXS19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dL
X0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtLCAwKTsKIAotICAgIGl0ZW0tPnVyaSA9IFdLRWlu
YVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKHdrSXRl
bSkpOworICAgIGl0ZW0tPnVybCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1Db3B5VVJMKHdrSXRlbSkpOwogCi0gICAgcmV0dXJuIGl0ZW0tPnVyaTsK
KyAgICByZXR1cm4gaXRlbS0+dXJsOwogfQogCiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJk
X2xpc3RfaXRlbV90aXRsZV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0
ZW0pCkBAIC0xMDEsMTMgKzEwMSwxMyBAQCBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xp
c3RfaXRlbV90aXRsZV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZQogICAgIHJl
dHVybiBpdGVtLT50aXRsZTsKIH0KIAotY29uc3QgY2hhciogZXdrX2JhY2tfZm9yd2FyZF9saXN0
X2l0ZW1fb3JpZ2luYWxfdXJpX2dldChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSog
aXRlbSkKK2NvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX29yaWdpbmFsX3Vy
bF9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdL
X0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3a0l0ZW0sIDAp
OwogCi0gICAgaXRlbS0+b3JpZ2luYWxVcmkgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywg
V0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weU9yaWdpbmFsVVJMKHdrSXRlbSkpOworICAgIGl0ZW0t
Pm9yaWdpbmFsVVJMID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRM
aXN0SXRlbUNvcHlPcmlnaW5hbFVSTCh3a0l0ZW0pKTsKIAotICAgIHJldHVybiBpdGVtLT5vcmln
aW5hbFVyaTsKKyAgICByZXR1cm4gaXRlbS0+b3JpZ2luYWxVUkw7CiB9CiAKIEV3a19CYWNrX0Zv
cndhcmRfTGlzdF9JdGVtKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9uZXcoV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGJhY2tGb3J3YXJkTGlzdEl0ZW1EYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0u
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtLmgKaW5kZXggYTEyMjdkZi4uM2M1NDRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bS5oCkBAIC01OSwyMSArNTksMjEgQEAgRUFQSSBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSAq
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcmVmKEV3a19CYWNrX0ZvcndhcmQKIEVBUEkgdm9p
ZCBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZihFd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbSAqaXRlbSk7CiAKIC8qKgotICogUmV0dXJucyBVUkkgb2YgdGhlIGl0ZW0uCisgKiBSZXR1
cm5zIFVSTCBvZiB0aGUgaXRlbS4KICAqCi0gKiBUaGUgcmV0dXJuZWQgVVJJIG1heSBkaWZmZXIg
ZnJvbSB0aGUgb3JpZ2luYWwgVVJJIChGb3IgZXhhbXBsZSBpZiB0aGUgcGFnZSB3YXMgcmVkaXJl
Y3RlZCkuCisgKiBUaGUgcmV0dXJuZWQgVVJMIG1heSBkaWZmZXIgZnJvbSB0aGUgb3JpZ2luYWwg
VVJMIChGb3IgZXhhbXBsZSBpZiB0aGUgcGFnZSB3YXMgcmVkaXJlY3RlZCkuCiAgKgotICogQHNl
ZSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9vcmlnaW5hbF91cmlfZ2V0KCkKKyAqIEBzZWUg
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJsX2dldCgpCiAgKgogICogQHBh
cmFtIGl0ZW0gdGhlIGJhY2stZm9yd2FyZCBsaXN0IGl0ZW0gaW5zdGFuY2UKICAqCi0gKiBAcmV0
dXJuIHRoZSBVUkkgb2YgdGhlIEBhIGl0ZW0gb3IgQGMgTlVMTCBpbiBjYXNlIG9mIGVycm9yLiBU
aGlzIHBvaW50ZXIgaXMKKyAqIEByZXR1cm4gdGhlIFVSTCBvZiB0aGUgQGEgaXRlbSBvciBAYyBO
VUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoaXMgcG9pbnRlciBpcwogICogICAgICAgICBndWFyYW50
ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCiAgKiAgICAg
ICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKICAqICAgICAgICAgZWlu
YV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IK
ICAqICAgICAgICAgc3RyZHVwKCkKICAqLwotRUFQSSBjb25zdCBjaGFyICpld2tfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV91cmlfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtICpp
dGVtKTsKK0VBUEkgY29uc3QgY2hhciAqZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJsX2dl
dChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSAqaXRlbSk7CiAKIC8qKgogICogUmV0
dXJucyB0aXRsZSBvZiB0aGUgaXRlbS4KQEAgLTg5LDE5ICs4OSwxOSBAQCBFQVBJIGNvbnN0IGNo
YXIgKmV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VyaV9nZXQoY29uc3QgRXdrX0JhY2tfRm9y
d2FyZF9MaXN0XwogRUFQSSBjb25zdCBjaGFyICpld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90
aXRsZV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gKml0ZW0pOwogCiAvKioK
LSAqIFJldHVybnMgb3JpZ2luYWwgVVJJIG9mIHRoZSBpdGVtLgorICogUmV0dXJucyBvcmlnaW5h
bCBVUkwgb2YgdGhlIGl0ZW0uCiAgKgotICogQHNlZSBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV91cmlfZ2V0KCkKKyAqIEBzZWUgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJsX2dldCgp
CiAgKgogICogQHBhcmFtIGl0ZW0gdGhlIGJhY2stZm9yd2FyZCBsaXN0IGl0ZW0gaW5zdGFuY2UK
ICAqCi0gKiBAcmV0dXJuIHRoZSBvcmlnaW5hbCBVUkkgb2YgdGhlIEBhIGl0ZW0gb3IgQGMgTlVM
TCBpbiBjYXNlIG9mIGVycm9yLiBUaGlzIHBvaW50ZXIgaXMKKyAqIEByZXR1cm4gdGhlIG9yaWdp
bmFsIFVSTCBvZiB0aGUgQGEgaXRlbSBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3IuIFRoaXMg
cG9pbnRlciBpcwogICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUs
IHNvIHdoZW5ldmVyIHBvc3NpYmxlCiAgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUg
Y3ljbGVzIGFuZCB1c2UKICAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFk
IG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKICAqICAgICAgICAgc3RyZHVwKCkKICAqLwot
RUFQSSBjb25zdCBjaGFyICpld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9vcmlnaW5hbF91cmlf
Z2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtICppdGVtKTsKK0VBUEkgY29uc3Qg
Y2hhciAqZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJsX2dldChjb25zdCBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSAqaXRlbSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3Bw
CmluZGV4IDRhOWMzY2EuLmIwZGVmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTI2MSw3ICsyNjEsNyBAQCBFd2tfQ29udGV4
dCogZXdrX2NvbnRleHRfbmV3X3dpdGhfaW5qZWN0ZWRfYnVuZGxlX3BhdGgoY29uc3QgY2hhciog
cGF0aCkKICAgICByZXR1cm4gbmV3IEV3a19Db250ZXh0KGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
V2l0aEluamVjdGVkQnVuZGxlUGF0aChwYXRoUmVmLmdldCgpKSkpOwogfQogCi1FaW5hX0Jvb2wg
ZXdrX2NvbnRleHRfdXJpX3NjaGVtZV9yZWdpc3RlcihFd2tfQ29udGV4dCogZXdrQ29udGV4dCwg
Y29uc3QgY2hhciogc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2
b2lkKiB1c2VyRGF0YSkKK0VpbmFfQm9vbCBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVy
KEV3a19Db250ZXh0KiBld2tDb250ZXh0LCBjb25zdCBjaGFyKiBzY2hlbWUsIEV3a19VcmxfU2No
ZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQogewogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChld2tDb250ZXh0LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNjaGVtZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKaW5kZXggZTZlOWUwYy4uYmY4MjdjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBA
IC01MCw3ICs1MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dCBFd2tfQ29udGV4dDsK
IAogLyoqCiAgKiBAdHlwZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19VcmxfU2No
ZW1lX1JlcXVlc3RfQ2IKLSAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tf
Y29udGV4dF91cmlfc2NoZW1lX3JlZ2lzdGVyKCkuCisgKiBAYnJpZWYgQ2FsbGJhY2sgdHlwZSBm
b3IgdXNlIHdpdGggZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcigpLgogICovCiB0eXBl
ZGVmIHZvaWQgKCpFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiKSAoRXdrX1VybF9TY2hlbWVfUmVx
dWVzdCAqcmVxdWVzdCwgdm9pZCAqdXNlcl9kYXRhKTsKIApAQCAtMTQ3LDcgKzE0Nyw3IEBAIEVB
UEkgRXdrX0Nvb2tpZV9NYW5hZ2VyICpld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29u
c3QgRXdrX0NvbnRleHQgKmNvbnRlCiAgKiBAcGFyYW0gdXNlcl9kYXRhIGRhdGEgdG8gcGFzcyB0
byBjYWxsYmFjayBmdW5jdGlvbgogICoKICAqIEBjb2RlCi0gKiBzdGF0aWMgdm9pZCBhYm91dF91
cmlfc2NoZW1lX3JlcXVlc3RfY2IoRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqcmVxdWVzdCwgdm9p
ZCAqdXNlcl9kYXRhKQorICogc3RhdGljIHZvaWQgYWJvdXRfdXJsX3NjaGVtZV9yZXF1ZXN0X2Ni
KEV3a19VcmxfU2NoZW1lX1JlcXVlc3QgKnJlcXVlc3QsIHZvaWQgKnVzZXJfZGF0YSkKICAqIHsK
ICAqICAgICBjb25zdCBjaGFyICpwYXRoOwogICogICAgIGNoYXIgKmNvbnRlbnRzX2RhdGEgPSBO
VUxMOwpAQCAtMTcyLDcgKzE3Miw3IEBAIEVBUEkgRXdrX0Nvb2tpZV9NYW5hZ2VyICpld2tfY29u
dGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQgKmNvbnRlCiAgKiB9CiAg
KiBAZW5kY29kZQogICovCi1FQVBJIEVpbmFfQm9vbCBld2tfY29udGV4dF91cmlfc2NoZW1lX3Jl
Z2lzdGVyKEV3a19Db250ZXh0ICpjb250ZXh0LCBjb25zdCBjaGFyICpzY2hlbWUsIEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQgKnVzZXJfZGF0YSk7CitFQVBJIEVpbmFf
Qm9vbCBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlZ2lzdGVyKEV3a19Db250ZXh0ICpjb250ZXh0
LCBjb25zdCBjaGFyICpzY2hlbWUsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ss
IHZvaWQgKnVzZXJfZGF0YSk7CiAKIC8qKgogICogU2V0cyB2aWJyYXRpb24gY2xpZW50IGNhbGxi
YWNrcyB0byBoYW5kbGUgdGhlIHRhY3RpbGUgZmVlZGJhY2sgaW4gdGhlIGZvcm0gb2YKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25s
b2FkX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCmluZGV4IDZlNDNkYzEuLjJiYmI3ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2Fk
X2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfZG93bmxvYWRfY2xpZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgV0tTdHJp
bmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250ZXh0UmVm
LCBXS0Rvd25sbwogICAgIC8vIGFuZCB0aGUgc3VnZ2VzdGVkIGZpbGUgbmFtZS4KICAgICBld2tf
dmlld19kb3dubG9hZF9qb2JfcmVxdWVzdGVkKGV3a19kb3dubG9hZF9qb2Jfdmlld19nZXQoZG93
bmxvYWQpLCBkb3dubG9hZCk7CiAKLSAgICAvLyBEb3dubG9hZFNvdXAgZXhwZWN0cyB0aGUgZGVz
dGluYXRpb24gdG8gYmUgYSBVUkkuCisgICAgLy8gRG93bmxvYWRTb3VwIGV4cGVjdHMgdGhlIGRl
c3RpbmF0aW9uIHRvIGJlIGEgVVJMLgogICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9IFN0cmluZygi
ZmlsZTovLyIpICsgU3RyaW5nOjpmcm9tVVRGOChld2tfZG93bmxvYWRfam9iX2Rlc3RpbmF0aW9u
X2dldChkb3dubG9hZCkpOwogCiAgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGRlc3RpbmF0aW9uLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5oCmluZGV4IGZkY2MxMGUuLjM4ODI3
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3du
bG9hZF9qb2IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93
bmxvYWRfam9iLmgKQEAgLTExMiw3ICsxMTIsNyBAQCBFQVBJIEV3a19VcmxfUmVxdWVzdCAqZXdr
X2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dldChjb25zdCBFd2tfRG93bmxvYWRfSm9iICpkb3dubAog
RUFQSSBFd2tfVXJsX1Jlc3BvbnNlICpld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNlX2dldChjb25z
dCBFd2tfRG93bmxvYWRfSm9iICpkb3dubG9hZCk7CiAKIC8qKgotICogUXVlcnkgdGhlIFVSSSB0
byB3aGljaCB0aGUgZG93bmxvYWRlZCBmaWxlIHdpbGwgYmUgd3JpdHRlbi4KKyAqIFF1ZXJ5IHRo
ZSBVUkwgdG8gd2hpY2ggdGhlIGRvd25sb2FkZWQgZmlsZSB3aWxsIGJlIHdyaXR0ZW4uCiAgKgog
ICogQHBhcmFtIGRvd25sb2FkIGEgI0V3a19Eb3dubG9hZF9Kb2IgdG8gcXVlcnkuCiAgKgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9w
cml2YXRlLmgKaW5kZXggYzdmODI5OC4uNGZkNGNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5oCkBAIC0yOCw2
ICsyOCw2IEBACiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOwog
Ci1Fd2tfUmVzb3VyY2UqIGV3a19yZXNvdXJjZV9uZXcoY29uc3QgY2hhciogdXJpLCBib29sIGlz
TWFpblJlc291cmNlKTsKK0V3a19SZXNvdXJjZSogZXdrX3Jlc291cmNlX25ldyhjb25zdCBjaGFy
KiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpOwogCiAjZW5kaWYgLy8gZXdrX3Jlc291cmNlX3By
aXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3Bw
CmluZGV4IGY0NjAyZjUuLjQwZTMxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Q
cml2YXRlX0RhdGEgewogI2VuZGlmCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZVByb3h5
OwogCi0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVyaTsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
dXJsOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKICAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdGhlbWU7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGN1c3RvbUVuY29kaW5nOwpAQCAtODU5
LDExICs4NTksMTEgQEAgRXdrX0NvbnRleHQqIGV3a192aWV3X2NvbnRleHRfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogCiAvKioKICAqIEBpbnRlcm5hbAotICogVGhlIHVyaSBvZiB2
aWV3IHdhcyBjaGFuZ2VkIGJ5IHRoZSBmcmFtZSBsb2FkZXIuCisgKiBUaGUgdXJsIG9mIHZpZXcg
d2FzIGNoYW5nZWQgYnkgdGhlIGZyYW1lIGxvYWRlci4KICAqCi0gKiBFbWl0cyBzaWduYWw6ICJ1
cmksY2hhbmdlZCIgd2l0aCBwb2ludGVyIHRvIG5ldyB1cmkgc3RyaW5nLgorICogRW1pdHMgc2ln
bmFsOiAidXJsLGNoYW5nZWQiIHdpdGggcG9pbnRlciB0byBuZXcgdXJsIHN0cmluZy4KICAqLwot
dm9pZCBld2tfdmlld191cmlfdXBkYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQordm9pZCBld2tf
dmlld191cmxfdXBkYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKICAgICBFV0tfVklFV19QUklWX0dF
VF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKQEAgLTg3MiwzMiArODcyLDMyIEBAIHZvaWQg
ZXdrX3ZpZXdfdXJpX3VwZGF0ZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBpZiAoYWN0aXZl
VVJMLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHByaXYtPnVyaSA9PSBh
Y3RpdmVVUkwudXRmOCgpLmRhdGEoKSkKKyAgICBpZiAocHJpdi0+dXJsID09IGFjdGl2ZVVSTC51
dGY4KCkuZGF0YSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcml2LT51cmkgPSBhY3RpdmVV
UkwudXRmOCgpLmRhdGEoKTsKLSAgICBjb25zdCBjaGFyKiBjYWxsYmFja0FyZ3VtZW50ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgY2hhcio+KHByaXYtPnVyaSk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChld2tWaWV3LCAidXJpLGNoYW5nZWQiLCBjb25zdF9jYXN0PGNoYXIqPihj
YWxsYmFja0FyZ3VtZW50KSk7CisgICAgcHJpdi0+dXJsID0gYWN0aXZlVVJMLnV0ZjgoKS5kYXRh
KCk7CisgICAgY29uc3QgY2hhciogY2FsbGJhY2tBcmd1bWVudCA9IHN0YXRpY19jYXN0PGNvbnN0
IGNoYXIqPihwcml2LT51cmwpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwo
ZXdrVmlldywgInVybCxjaGFuZ2VkIiwgY29uc3RfY2FzdDxjaGFyKj4oY2FsbGJhY2tBcmd1bWVu
dCkpOwogfQogCi1FaW5hX0Jvb2wgZXdrX3ZpZXdfdXJpX3NldChFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgY2hhciogdXJpKQorRWluYV9Cb29sIGV3a192aWV3X3VybF9zZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHVybCkKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwodXJpLCBmYWxzZSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHVybCwgZmFsc2UpOwogCi0gICAgcHJpdi0+cGFnZVByb3h5LT5sb2FkVVJMKHVyaSk7
Ci0gICAgZXdrX3ZpZXdfdXJpX3VwZGF0ZShld2tWaWV3KTsKKyAgICBwcml2LT5wYWdlUHJveHkt
PmxvYWRVUkwodXJsKTsKKyAgICBld2tfdmlld191cmxfdXBkYXRlKGV3a1ZpZXcpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWNvbnN0IGNoYXIqIGV3a192aWV3X3VyaV9nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCitjb25zdCBjaGFyKiBld2tfdmlld191cmxfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCAwKTsKIAotICAgIHJldHVybiBwcml2LT51cmk7CisgICAgcmV0dXJuIHBy
aXYtPnVybDsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZChFdmFzX09iamVjdCogZXdr
VmlldykKQEAgLTkwNiw3ICs5MDYsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkKEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIGZhbHNlKTsKIAogICAgIHByaXYtPnBhZ2VQcm94eS0+cmVsb2FkKC8qcmVsb2Fk
RnJvbU9yaWdpbiovIGZhbHNlKTsKLSAgICBld2tfdmlld191cmlfdXBkYXRlKGV3a1ZpZXcpOwor
ICAgIGV3a192aWV3X3VybF91cGRhdGUoZXdrVmlldyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTkxNyw3ICs5MTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNo
ZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKICAgICBwcml2LT5wYWdlUHJveHktPnJlbG9hZCgv
KnJlbG9hZEZyb21PcmlnaW4qLyB0cnVlKTsKLSAgICBld2tfdmlld191cmlfdXBkYXRlKGV3a1Zp
ZXcpOworICAgIGV3a192aWV3X3VybF91cGRhdGUoZXdrVmlldyk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTE0MjUsNyArMTQyNSw3IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9lcnJvcihFdmFz
X09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0Vycm9yKiBlcnJvcikKICAqLwogdm9pZCBld2tf
dmlld19sb2FkX2ZpbmlzaGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIGV3a192aWV3
X3VyaV91cGRhdGUoZXdrVmlldyk7CisgICAgZXdrX3ZpZXdfdXJsX3VwZGF0ZShld2tWaWV3KTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJsb2FkLGZpbmlz
aGVkIiwgMCk7CiB9CiAKQEAgLTE0NDgsNyArMTQ0OCw3IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9w
cm92aXNpb25hbF9mYWlsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19FcnJvciog
ZXJyCiAgKi8KIHZvaWQgZXdrX3ZpZXdfbG9hZF9wcm92aXNpb25hbF9yZWRpcmVjdChFdmFzX09i
amVjdCogZXdrVmlldykKIHsKLSAgICBld2tfdmlld191cmlfdXBkYXRlKGV3a1ZpZXcpOworICAg
IGV3a192aWV3X3VybF91cGRhdGUoZXdrVmlldyk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfY2FsbChld2tWaWV3LCAibG9hZCxwcm92aXNpb25hbCxyZWRpcmVjdCIsIDApOwogfQog
CkBAIC0xNDY3LDcgKzE0NjcsNyBAQCB2b2lkIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3Rh
cnRlZChFdmFzX09iamVjdCogZXdrVmlldykKICAgICAvLyB0aGUgbG9hZGluZ1Jlc291cmNlcyBI
YXNoTWFwIHRvIHN0YXJ0IGNsZWFuLgogICAgIF9ld2tfdmlld19wcml2X2xvYWRpbmdfcmVzb3Vy
Y2VzX2NsZWFyKHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXApOwogCi0gICAgZXdrX3ZpZXdfdXJp
X3VwZGF0ZShld2tWaWV3KTsKKyAgICBld2tfdmlld191cmxfdXBkYXRlKGV3a1ZpZXcpOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgImxvYWQscHJvdmlzaW9u
YWwsc3RhcnRlZCIsIDApOwogfQogCkBAIC0xNTAzLDcgKzE1MDMsNyBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfaHRtbF9zdHJpbmdfbG9hZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciog
aHRtbCwgY29ucwogICAgICAgICBwcml2LT5wYWdlUHJveHktPmxvYWRBbHRlcm5hdGVIVE1MU3Ry
aW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZyb21VVEY4KGJh
c2VVcmwpIDogIiIsIFN0cmluZzo6ZnJvbVVURjgodW5yZWFjaGFibGVVcmwpKTsKICAgICBlbHNl
CiAgICAgICAgIHByaXYtPnBhZ2VQcm94eS0+bG9hZEhUTUxTdHJpbmcoU3RyaW5nOjpmcm9tVVRG
OChodG1sKSwgYmFzZVVybCA/IFN0cmluZzo6ZnJvbVVURjgoYmFzZVVybCkgOiAiIik7Ci0gICAg
ZXdrX3ZpZXdfdXJpX3VwZGF0ZShld2tWaWV3KTsKKyAgICBld2tfdmlld191cmxfdXBkYXRlKGV3
a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCAwODNlOTIzLi5iN2E2ODVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTYzLDcgKzYzLDcgQEAKICAq
IC0gInJlc291cmNlLHJlcXVlc3Qsc2VudCIsIGNvbnN0IEV3a19SZXNvdXJjZV9SZXF1ZXN0Kjog
YSByZXNvdXJjZSByZXF1ZXN0IHdhcyBzZW50LgogICogLSAidGV4dCxmb3VuZCIsIHVuc2lnbmVk
IGludCo6IHRoZSByZXF1ZXN0ZWQgdGV4dCB3YXMgZm91bmQgYW5kIGl0IGdpdmVzIHRoZSBudW1i
ZXIgb2YgbWF0Y2hlcy4KICAqIC0gInRpdGxlLGNoYW5nZWQiLCBjb25zdCBjaGFyKjogdGl0bGUg
b2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCi0gKiAtICJ1cmksY2hhbmdlZCIsIGNvbnN0
IGNoYXIqOiB1cmkgb2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCisgKiAtICJ1cmwsY2hh
bmdlZCIsIGNvbnN0IGNoYXIqOiB1cmwgb2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCiAg
KiAtICJ3ZWJwcm9jZXNzLGNyYXNoZWQiLCBFaW5hX0Jvb2wqOiBleHBlY3RzIGEgQGMgRUlOQV9U
UlVFIGlmIHdlYiBwcm9jZXNzIGNyYXNoIGlzIGhhbmRsZWQ7IEBjIEVJTkFfRkFMU0UsIG90aGVy
d2lzZS4KICAqLwogCkBAIC0zMzMsMjcgKzMzMywyNyBAQCBFQVBJIEV2YXNfT2JqZWN0ICpld2tf
dmlld19hZGRfd2l0aF9jb250ZXh0KEV2YXMgKmUsIEV3a19Db250ZXh0ICpjb250ZXh0KTsKIEVB
UEkgRXdrX0NvbnRleHQgKmV3a192aWV3X2NvbnRleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpv
KTsKIAogLyoqCi0gKiBBc2tzIHRoZSBvYmplY3QgdG8gbG9hZCB0aGUgZ2l2ZW4gVVJJLgorICog
QXNrcyB0aGUgb2JqZWN0IHRvIGxvYWQgdGhlIGdpdmVuIFVSTC4KICAqCi0gKiBAcGFyYW0gbyB2
aWV3IG9iamVjdCB0byBsb2FkIEBhIFVSSQotICogQHBhcmFtIHVyaSB1bmlmb3JtIHJlc291cmNl
IGlkZW50aWZpZXIgdG8gbG9hZAorICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gbG9hZCBAYSBV
UkwKKyAqIEBwYXJhbSB1cmwgdW5pZm9ybSByZXNvdXJjZSBpZGVudGlmaWVyIHRvIGxvYWQKICAq
CiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpcyByZXR1cm5lZCBpZiBAYSBvIGlzIHZhbGlkLCBp
cnJlc3BlY3RpdmUgb2YgbG9hZCwKICAqICAgICAgICAgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWls
dXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sIGV3a192aWV3X3VyaV9zZXQoRXZhc19PYmplY3QgKm8s
IGNvbnN0IGNoYXIgKnVyaSk7CitFQVBJIEVpbmFfQm9vbCBld2tfdmlld191cmxfc2V0KEV2YXNf
T2JqZWN0ICpvLCBjb25zdCBjaGFyICp1cmwpOwogCiAvKioKLSAqIFJldHVybnMgdGhlIGN1cnJl
bnQgVVJJIHN0cmluZyBvZiB2aWV3IG9iamVjdC4KKyAqIFJldHVybnMgdGhlIGN1cnJlbnQgVVJM
IHN0cmluZyBvZiB2aWV3IG9iamVjdC4KICAqCiAgKiBJdCByZXR1cm5zIGFuIGludGVybmFsIHN0
cmluZyBhbmQgc2hvdWxkIG5vdAogICogYmUgbW9kaWZpZWQuIFRoZSBzdHJpbmcgaXMgZ3VhcmFu
dGVlZCB0byBiZSBzdHJpbmdzaGFyZWQuCiAgKgotICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8g
Z2V0IGN1cnJlbnQgVVJJCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBnZXQgY3VycmVudCBV
UkwKICAqCi0gKiBAcmV0dXJuIGN1cnJlbnQgVVJJIG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBm
YWlsdXJlCisgKiBAcmV0dXJuIGN1cnJlbnQgVVJMIG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBm
YWlsdXJlCiAgKi8KLUVBUEkgY29uc3QgY2hhciAqZXdrX3ZpZXdfdXJpX2dldChjb25zdCBFdmFz
X09iamVjdCAqbyk7CitFQVBJIGNvbnN0IGNoYXIgKmV3a192aWV3X3VybF9nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8pOwogCiAvKioKICAqIEFza3MgdGhlIG1haW4gZnJhbWUgdG8gcmVsb2FkIHRo
ZSBjdXJyZW50IGRvY3VtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAppbmRleCBjZGM4MDU4Li4y
YjYwNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRp
YyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLU2FtCiAgICAgICAgIHJldHVybjsKIAogICAgIEV2YXNfT2JqZWN0KiBl
d2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSk7Ci0gICAgZXdrX3ZpZXdfdXJpX3VwZGF0ZShld2tWaWV3KTsKKyAgICBld2tfdmll
d191cmxfdXBkYXRlKGV3a1ZpZXcpOwogfQogCiB2b2lkIGV3a192aWV3X2xvYWRlcl9jbGllbnRf
YXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRl
eCA0NDEyZTRlLi4wZTQ4MThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgZXdrX3Zp
ZXdfcmVzb3VyY2VfbG9hZF9pbml0aWF0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90
IHJlc291cmNlSWRlCiB2b2lkIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1VybF9SZXNw
b25zZSogcmVzcG9uc2UpOwogdm9pZCBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0X3NlbnQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1VybF9S
ZXF1ZXN0KiByZXF1ZXN0LCBFd2tfVXJsX1Jlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlKTsKIHZv
aWQgZXdrX3ZpZXdfdGV4dF9mb3VuZChFdmFzX09iamVjdCogZXdrVmlldywgdW5zaWduZWQgaW50
IG1hdGNoQ291bnQpOwotdm9pZCBld2tfdmlld191cmlfdXBkYXRlKEV2YXNfT2JqZWN0KiBld2tW
aWV3KTsKK3ZvaWQgZXdrX3ZpZXdfdXJsX3VwZGF0ZShFdmFzX09iamVjdCogZXdrVmlldyk7CiB2
b2lkIGV3a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZChjb25zdCBFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdf
YmFzZV9hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0
VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuY3BwCmluZGV4IDhkZTMy
YTIuLjRkNTMyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RC
YXNlLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEVXSzJVbml0VGVzdEJhc2U6OlRlYXJEb3du
KCkKIAogdm9pZCBFV0syVW5pdFRlc3RCYXNlOjpsb2FkVXJsU3luYyhjb25zdCBjaGFyKiB1cmwp
CiB7Ci0gICAgZXdrX3ZpZXdfdXJpX3NldChtX3dlYlZpZXcsIHVybCk7CisgICAgZXdrX3ZpZXdf
dXJsX3NldChtX3dlYlZpZXcsIHVybCk7CiAgICAgd2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiB9
CiAKQEAgLTE5NiwxNyArMTk2LDE3IEBAIGJvb2wgRVdLMlVuaXRUZXN0QmFzZTo6d2FpdFVudGls
VGl0bGVDaGFuZ2VkVG8oY29uc3QgY2hhciogZXhwZWN0ZWRUaXRsZSwgZG91YmxlCiAgICAgcmV0
dXJuICFkYXRhLmRpZFRpbWVPdXQoKTsKIH0KIAotc3RhdGljIHZvaWQgb25VUklDaGFuZ2VkKHZv
aWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2ViVmlldywgdm9pZCopCitzdGF0aWMgdm9pZCBv
blVSTENoYW5nZWQodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJWaWV3LCB2b2lkKikK
IHsKICAgICBDYWxsYmFja0RhdGFFeHBlY3RlZFZhbHVlPENTdHJpbmc+KiBkYXRhID0gc3RhdGlj
X2Nhc3Q8Q2FsbGJhY2tEYXRhRXhwZWN0ZWRWYWx1ZTxDU3RyaW5nPio+KHVzZXJEYXRhKTsKIAot
ICAgIGlmIChzdHJjbXAoZXdrX3ZpZXdfdXJpX2dldCh3ZWJWaWV3KSwgZGF0YS0+ZXhwZWN0ZWRW
YWx1ZSgpLmRhdGEoKSkpCisgICAgaWYgKHN0cmNtcChld2tfdmlld191cmxfZ2V0KHdlYlZpZXcp
LCBkYXRhLT5leHBlY3RlZFZhbHVlKCkuZGF0YSgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
ZGF0YS0+c2V0RG9uZSgpOwogfQogCi1zdGF0aWMgYm9vbCB0aW1lT3V0V2hpbGVXYWl0aW5nVW50
aWxVUklDaGFuZ2VkVG8odm9pZCogdXNlckRhdGEpCitzdGF0aWMgYm9vbCB0aW1lT3V0V2hpbGVX
YWl0aW5nVW50aWxVUkxDaGFuZ2VkVG8odm9pZCogdXNlckRhdGEpCiB7CiAgICAgQ2FsbGJhY2tE
YXRhRXhwZWN0ZWRWYWx1ZTxDU3RyaW5nPiogZGF0YSA9IHN0YXRpY19jYXN0PENhbGxiYWNrRGF0
YUV4cGVjdGVkVmFsdWU8Q1N0cmluZz4qPih1c2VyRGF0YSk7CiAgICAgZGF0YS0+c2V0VGltZWRP
dXQoKTsKQEAgLTIxNCwxNiArMjE0LDE2IEBAIHN0YXRpYyBib29sIHRpbWVPdXRXaGlsZVdhaXRp
bmdVbnRpbFVSSUNoYW5nZWRUbyh2b2lkKiB1c2VyRGF0YSkKICAgICByZXR1cm4gRUNPUkVfQ0FM
TEJBQ0tfQ0FOQ0VMOwogfQogCi1ib29sIEVXSzJVbml0VGVzdEJhc2U6OndhaXRVbnRpbFVSSUNo
YW5nZWRUbyhjb25zdCBjaGFyKiBleHBlY3RlZFVSSSwgZG91YmxlIHRpbWVvdXRTZWNvbmRzKQor
Ym9vbCBFV0syVW5pdFRlc3RCYXNlOjp3YWl0VW50aWxVUkxDaGFuZ2VkVG8oY29uc3QgY2hhciog
ZXhwZWN0ZWRVUkwsIGRvdWJsZSB0aW1lb3V0U2Vjb25kcykKIHsKLSAgICBDYWxsYmFja0RhdGFF
eHBlY3RlZFZhbHVlPENTdHJpbmc+IGRhdGEoZXhwZWN0ZWRVUkksIHRpbWVvdXRTZWNvbmRzLCBy
ZWludGVycHJldF9jYXN0PEVjb3JlX1Rhc2tfQ2I+KHRpbWVPdXRXaGlsZVdhaXRpbmdVbnRpbFVS
SUNoYW5nZWRUbykpOworICAgIENhbGxiYWNrRGF0YUV4cGVjdGVkVmFsdWU8Q1N0cmluZz4gZGF0
YShleHBlY3RlZFVSTCwgdGltZW91dFNlY29uZHMsIHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFz
a19DYj4odGltZU91dFdoaWxlV2FpdGluZ1VudGlsVVJMQ2hhbmdlZFRvKSk7CiAKLSAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobV93ZWJWaWV3LCAidXJpLGNoYW5nZWQiLCBvblVS
SUNoYW5nZWQsICZkYXRhKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobV93
ZWJWaWV3LCAidXJsLGNoYW5nZWQiLCBvblVSTENoYW5nZWQsICZkYXRhKTsKIAogICAgIHdoaWxl
ICghZGF0YS5pc0RvbmUoKSkKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKIAot
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX3dlYlZpZXcsICJ1cmksY2hhbmdl
ZCIsIG9uVVJJQ2hhbmdlZCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1f
d2ViVmlldywgInVybCxjaGFuZ2VkIiwgb25VUkxDaGFuZ2VkKTsKIAogICAgIHJldHVybiAhZGF0
YS5kaWRUaW1lT3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0
QmFzZS5oCmluZGV4IDc5ODI2NmUuLjFlOGE1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRp
bHMvRVdLMlVuaXRUZXN0QmFzZS5oCkBAIC00NSw3ICs0NSw3IEBAIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRUaW1lb3V0U2Vjb25kcyA9IDEwLjA7CiAgICAgYm9v
bCB3YWl0VW50aWxMb2FkRmluaXNoZWQoZG91YmxlIHRpbWVvdXRTZWNvbmRzID0gZGVmYXVsdFRp
bWVvdXRTZWNvbmRzKTsKICAgICBib29sIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKGNvbnN0IGNo
YXIqIGV4cGVjdGVkVGl0bGUsIGRvdWJsZSB0aW1lb3V0U2Vjb25kcyA9IGRlZmF1bHRUaW1lb3V0
U2Vjb25kcyk7Ci0gICAgYm9vbCB3YWl0VW50aWxVUklDaGFuZ2VkVG8oY29uc3QgY2hhciogZXhw
ZWN0ZWRVUkksIGRvdWJsZSB0aW1lb3V0U2Vjb25kcyA9IGRlZmF1bHRUaW1lb3V0U2Vjb25kcyk7
CisgICAgYm9vbCB3YWl0VW50aWxVUkxDaGFuZ2VkVG8oY29uc3QgY2hhciogZXhwZWN0ZWRVUkws
IGRvdWJsZSB0aW1lb3V0U2Vjb25kcyA9IGRlZmF1bHRUaW1lb3V0U2Vjb25kcyk7CiAKICAgICB2
b2lkIG1vdXNlQ2xpY2soaW50IHgsIGludCB5KTsKICAgICB2b2lkIG1vdXNlRG93bihpbnQgeCwg
aW50IHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVz
dHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RTZXJ2ZXIu
Y3BwCmluZGV4IDUyZTZhZjQuLjRlZjRjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0
aWxzL0VXSzJVbml0VGVzdFNlcnZlci5jcHAKQEAgLTI3LDE0ICsyNywxNCBAQCBFV0syVW5pdFRl
c3RTZXJ2ZXI6OkVXSzJVbml0VGVzdFNlcnZlcigpCiAgICAgc291cF9hZGRyZXNzX3Jlc29sdmVf
c3luYyhhZGRyZXNzLCAwKTsKIAogICAgIG1fc291cFNlcnZlciA9IHNvdXBfc2VydmVyX25ldyhT
T1VQX1NFUlZFUl9JTlRFUkZBQ0UsIGFkZHJlc3MsIHN0YXRpY19jYXN0PGNoYXIqPigwKSk7Ci0g
ICAgbV9iYXNlVVJJID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIpOwotICAgIHNv
dXBfdXJpX3NldF9wb3J0KG1fYmFzZVVSSSwgc291cF9zZXJ2ZXJfZ2V0X3BvcnQobV9zb3VwU2Vy
dmVyKSk7CisgICAgbV9iYXNlVVJMID0gc291cF91cmlfbmV3KCJodHRwOi8vMTI3LjAuMC4xLyIp
OworICAgIHNvdXBfdXJpX3NldF9wb3J0KG1fYmFzZVVSTCwgc291cF9zZXJ2ZXJfZ2V0X3BvcnQo
bV9zb3VwU2VydmVyKSk7CiAgICAgZ19vYmplY3RfdW5yZWYoYWRkcmVzcyk7CiB9CiAKIEVXSzJV
bml0VGVzdFNlcnZlcjo6fkVXSzJVbml0VGVzdFNlcnZlcigpCiB7Ci0gICAgc291cF91cmlfZnJl
ZShtX2Jhc2VVUkkpOworICAgIHNvdXBfdXJpX2ZyZWUobV9iYXNlVVJMKTsKICAgICBnX29iamVj
dF91bnJlZihtX3NvdXBTZXJ2ZXIpOwogfQogCkBAIC00NCwxMyArNDQsMTMgQEAgdm9pZCBFV0sy
VW5pdFRlc3RTZXJ2ZXI6OnJ1bihTb3VwU2VydmVyQ2FsbGJhY2sgc2VydmVyQ2FsbGJhY2spCiAg
ICAgc291cF9zZXJ2ZXJfYWRkX2hhbmRsZXIobV9zb3VwU2VydmVyLCAwLCBzZXJ2ZXJDYWxsYmFj
aywgMCwgMCk7CiB9CiAKLUNTdHJpbmcgRVdLMlVuaXRUZXN0U2VydmVyOjpnZXRVUklGb3JQYXRo
KGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0CitDU3RyaW5nIEVXSzJVbml0VGVzdFNlcnZlcjo6Z2V0
VVJMRm9yUGF0aChjb25zdCBjaGFyKiBwYXRoKSBjb25zdAogewotICAgIFNvdXBVUkkqIHNvdXBV
UkkgPSBzb3VwX3VyaV9uZXdfd2l0aF9iYXNlKG1fYmFzZVVSSSwgcGF0aCk7Ci0gICAgY2hhciog
dXJpID0gc291cF91cmlfdG9fc3RyaW5nKHNvdXBVUkksIGZhbHNlKTsKLSAgICBDU3RyaW5nIHVy
aVN0cmluZyA9IHVyaTsKLSAgICBmcmVlKHVyaSk7Ci0gICAgc291cF91cmlfZnJlZShzb3VwVVJJ
KTsKKyAgICBTb3VwVVJJKiBzb3VwVVJMID0gc291cF91cmlfbmV3X3dpdGhfYmFzZShtX2Jhc2VV
UkwsIHBhdGgpOworICAgIGNoYXIqIHVybCA9IHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJMLCBm
YWxzZSk7CisgICAgQ1N0cmluZyB1cmxTdHJpbmcgPSB1cmw7CisgICAgZnJlZSh1cmwpOworICAg
IHNvdXBfdXJpX2ZyZWUoc291cFVSTCk7CiAKLSAgICByZXR1cm4gdXJpU3RyaW5nOworICAgIHJl
dHVybiB1cmxTdHJpbmc7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNlcnZlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRl
c3RTZXJ2ZXIuaAppbmRleCAzZWIxNDZmLi5iOTY3Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdFNl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRU
ZXN0VXRpbHMvRVdLMlVuaXRUZXN0U2VydmVyLmgKQEAgLTI5LDE0ICsyOSwxMiBAQCBwdWJsaWM6
CiAgICAgRVdLMlVuaXRUZXN0U2VydmVyKCk7CiAgICAgdmlydHVhbCB+RVdLMlVuaXRUZXN0U2Vy
dmVyKCk7CiAKLSAgICBTb3VwVVJJKiBiYXNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVVJJ
OyB9Ci0KLSAgICBDU3RyaW5nIGdldFVSSUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkgY29uc3Q7
CisgICAgQ1N0cmluZyBnZXRVUkxGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpIGNvbnN0OwogICAg
IHZvaWQgcnVuKFNvdXBTZXJ2ZXJDYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAgU291cFNlcnZl
ciogbV9zb3VwU2VydmVyOwotICAgIFNvdXBVUkkqIG1fYmFzZVVSSTsKKyAgICBTb3VwVVJJKiBt
X2Jhc2VVUkw7CiB9OwogCiAjZW5kaWYgLy8gRVdLMlVuaXRUZXN0U2VydmVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Jlc291cmNlcy9yZWRp
cmVjdF91cmlfdG9fZGVmYXVsdC5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvcmVzb3VyY2VzL3JlZGlyZWN0X3VyaV90b19kZWZhdWx0Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0NmZkMTEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvcmVzb3VyY2VzL3JlZGlyZWN0X3VyaV90b19kZWZh
dWx0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgot
PGJvZHk+Ci08c2NyaXB0PgotbG9jYXRpb24uaHJlZj0iLi9kZWZhdWx0X3Rlc3RfcGFnZS5odG1s
IjsKLTwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvcmVzb3VyY2VzL3JlZGlyZWN0X3VybF90b19kZWZhdWx0Lmh0bWwg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9yZXNvdXJjZXMvcmVkaXJl
Y3RfdXJsX3RvX2RlZmF1bHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44NDZmZDExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvcmVzb3VyY2VzL3JlZGlyZWN0X3VybF90b19kZWZhdWx0Lmh0bWwKQEAgLTAs
MCArMSw2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK2xvY2F0aW9uLmhy
ZWY9Ii4vZGVmYXVsdF90ZXN0X3BhZ2UuaHRtbCI7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9i
YWNrX2ZvcndhcmRfbGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90
ZXN0cy90ZXN0X2V3azJfYmFja19mb3J3YXJkX2xpc3QuY3BwCmluZGV4IDQ2MjM1MWYuLmU4YzM4
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl9iYWNrX2ZvcndhcmRfbGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2JhY2tfZm9yd2FyZF9saXN0LmNwcApAQCAtNjEs
MTkgKzYxLDE5IEBAIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrTmF2aWdhdGlvbihTb3VwU2Vy
dmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjCiAgICAgc291cF9tZXNzYWdlX2Jv
ZHlfY29tcGxldGUobWVzc2FnZS0+cmVzcG9uc2VfYm9keSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCBjaGVja0l0ZW0oRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0sIGNvbnN0IGNo
YXIqIHRpdGxlLCBjb25zdCBjaGFyKiB1cmksIGNvbnN0IGNoYXIqIG9yaWdpbmFsVVJJKQorc3Rh
dGljIGlubGluZSB2b2lkIGNoZWNrSXRlbShFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRl
bSwgY29uc3QgY2hhciogdGl0bGUsIGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogb3JpZ2lu
YWxVUkwpCiB7CiAgICAgQVNTRVJUX1RSVUUoaXRlbSk7Ci0gICAgRVhQRUNUX1NUUkVRKHVyaSwg
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJpX2dldChpdGVtKSk7CisgICAgRVhQRUNUX1NU
UkVRKHVybCwgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJsX2dldChpdGVtKSk7CiAgICAg
RVhQRUNUX1NUUkVRKHRpdGxlLCBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV90aXRsZV9nZXQo
aXRlbSkpOwotICAgIEVYUEVDVF9TVFJFUShvcmlnaW5hbFVSSSwgZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fb3JpZ2luYWxfdXJpX2dldChpdGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKG9yaWdp
bmFsVVJMLCBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9vcmlnaW5hbF91cmxfZ2V0KGl0ZW0p
KTsKIH0KIAogc3RhdGljIGlubGluZSBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsRnJvbVRpdGxlKEVX
SzJVbml0VGVzdFNlcnZlciogaHR0cFNlcnZlciwgY29uc3QgY2hhciogdGl0bGUpCiB7CiAgICAg
RWluYV9TdHJidWYqIHBhdGggPSBlaW5hX3N0cmJ1Zl9uZXcoKTsKICAgICBlaW5hX3N0cmJ1Zl9h
cHBlbmRfcHJpbnRmKHBhdGgsICIvJXMiLCB0aXRsZSk7Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5n
IHJlcyA9IGh0dHBTZXJ2ZXItPmdldFVSSUZvclBhdGgoZWluYV9zdHJidWZfc3RyaW5nX2dldChw
YXRoKSkuZGF0YSgpOworICAgIFdLRWluYVNoYXJlZFN0cmluZyByZXMgPSBodHRwU2VydmVyLT5n
ZXRVUkxGb3JQYXRoKGVpbmFfc3RyYnVmX3N0cmluZ19nZXQocGF0aCkpLmRhdGEoKTsKICAgICBl
aW5hX3N0cmJ1Zl9mcmVlKHBhdGgpOwogCiAgICAgcmV0dXJuIHJlczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250
ZXh0LmNwcAppbmRleCA5MjBkNzViLi5mZjVjZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3Bw
CkBAIC02NCw5ICs2NCw5IEBAIHN0YXRpYyB2b2lkIHNjaGVtZVJlcXVlc3RDYWxsYmFjayhFd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0KiByZXF1ZXN0LCB2b2lkKiB1c2VyRGF0CiAgICAgQVNTRVJUX1RS
VUUoZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9maW5pc2gocmVxdWVzdCwgaHRtbFJlcGx5LCBzdHJs
ZW4oaHRtbFJlcGx5KSwgInRleHQvaHRtbCIpKTsKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJh
c2UsIGV3a19jb250ZXh0X3VyaV9zY2hlbWVfcmVnaXN0ZXIpCitURVNUX0YoRVdLMlVuaXRUZXN0
QmFzZSwgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcikKIHsKLSAgICBld2tfY29udGV4
dF91cmlfc2NoZW1lX3JlZ2lzdGVyKGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSksICJm
b29zY2hlbWUiLCBzY2hlbWVSZXF1ZXN0Q2FsbGJhY2ssIDApOworICAgIGV3a19jb250ZXh0X3Vy
bF9zY2hlbWVfcmVnaXN0ZXIoZXdrX3ZpZXdfY29udGV4dF9nZXQod2ViVmlldygpKSwgImZvb3Nj
aGVtZSIsIHNjaGVtZVJlcXVlc3RDYWxsYmFjaywgMCk7CiAgICAgbG9hZFVybFN5bmMoImZvb3Nj
aGVtZTpNeVBhdGgiKTsKICAgICBBU1NFUlRfU1RSRVEoIkZvbyIsIGV3a192aWV3X3RpdGxlX2dl
dCh3ZWJWaWV3KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29va2llX21hbmFnZXIuY3BwCmlu
ZGV4IDM3MWM5ODAuLjg1NTlmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nvb2tpZV9tYW5hZ2Vy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29v
a2llX21hbmFnZXJfYWNjZXB0X3BvbGljeSkKIAogICAgIC8vIERlZmF1bHQgcG9saWN5IGlzIEVX
S19DT09LSUVfQUNDRVBUX1BPTElDWV9OT19USElSRF9QQVJUWS4KICAgICBBU1NFUlRfRVEoRVdL
X0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05PX1RISVJEX1BBUlRZLCBnZXRBY2NlcHRQb2xpY3koY29v
a2llTWFuYWdlcikpOwotICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZvclBhdGgo
Ii9pbmRleC5odG1sIikuZGF0YSgpKTsKKyAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRV
UkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CiAKICAgICBFaW5hX0xpc3QqIGhvc3Ru
YW1lcyA9IGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpOwogICAgIEFTU0VS
VF9FUSgxLCBlaW5hX2xpc3RfY291bnQoaG9zdG5hbWVzKSk7CkBAIC0xMzcsNyArMTM3LDcgQEAg
VEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5
KQogICAgIC8vIENoYW5nZSBwb2xpY3kgdG8gRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZ
UwogICAgIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X3NldChjb29raWVNYW5hZ2Vy
LCBFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTKTsKICAgICBBU1NFUlRfRVEoRVdLX0NP
T0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZUywgZ2V0QWNjZXB0UG9saWN5KGNvb2tpZU1hbmFnZXIp
KTsKLSAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvaW5kZXguaHRt
bCIpLmRhdGEoKSk7CisgICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJMRm9yUGF0aCgi
L2luZGV4Lmh0bWwiKS5kYXRhKCkpOwogCiAgICAgaG9zdG5hbWVzID0gZ2V0SG9zdG5hbWVzV2l0
aENvb2tpZXMoY29va2llTWFuYWdlcik7CiAgICAgQVNTRVJUX0VRKDIsIGVpbmFfbGlzdF9jb3Vu
dChob3N0bmFtZXMpKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFz
ZSwgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FjY2VwdF9wb2xpY3kpCiAgICAgLy8gQ2hhbmdlIHBvbGlj
eSB0byBFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfTkVWRVIKICAgICBld2tfY29va2llX21hbmFn
ZXJfYWNjZXB0X3BvbGljeV9zZXQoY29va2llTWFuYWdlciwgRVdLX0NPT0tJRV9BQ0NFUFRfUE9M
SUNZX05FVkVSKTsKICAgICBBU1NFUlRfRVEoRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05FVkVS
LCBnZXRBY2NlcHRQb2xpY3koY29va2llTWFuYWdlcikpOwotICAgIGxvYWRVcmxTeW5jKGh0dHBT
ZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKKyAgICBsb2FkVXJs
U3luYyhodHRwU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXguaHRtbCIpLmRhdGEoKSk7CiAg
ICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdlcikp
OwogfQogCkBAIC0xNzUsNyArMTc1LDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19j
b29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKQogICAgIGV3a19jb29raWVfbWFuYWdlcl9jaGFu
Z2VzX3dhdGNoKGNvb2tpZU1hbmFnZXIsIG9uQ29va2llc0NoYW5nZWQsICZjb29raWVzQ2hhbmdl
ZCk7CiAKICAgICAvLyBDaGVjayBmb3IgY29va2llIGNoYW5nZXMgbm90aWZpY2F0aW9ucwotICAg
IGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0
YSgpKTsKKyAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvaW5kZXgu
aHRtbCIpLmRhdGEoKSk7CiAKICAgICB3aGlsZSAoIWNvb2tpZXNDaGFuZ2VkKQogICAgICAgICBl
Y29yZV9tYWluX2xvb3BfaXRlcmF0ZSgpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIFRFU1RfRihFV0sy
VW5pdFRlc3RCYXNlLCBld2tfY29va2llX21hbmFnZXJfY2hhbmdlc193YXRjaCkKICAgICAvLyBT
dG9wIHdhdGNoaW5nIGZvciBub3RpZmljYXRpb25zCiAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX2No
YW5nZXNfd2F0Y2goY29va2llTWFuYWdlciwgMCwgMCk7CiAgICAgY29va2llc0NoYW5nZWQgPSBm
YWxzZTsKLSAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvaW5kZXgu
aHRtbCIpLmRhdGEoKSk7CisgICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJMRm9yUGF0
aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOwogICAgIEFTU0VSVF9FUSgyLCBjb3VudEhvc3RuYW1l
c1dpdGhDb29raWVzKGNvb2tpZU1hbmFnZXIpKTsKICAgICBBU1NFUlRfRkFMU0UoY29va2llc0No
YW5nZWQpOwogCkBAIC0yMDQsNyArMjA0LDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3
a19jb29raWVfbWFuYWdlcl9jaGFuZ2VzX3dhdGNoKQogICAgIEFTU0VSVF9UUlVFKG1rdGVtcCh0
ZXh0U3RvcmFnZTIpKTsKIAogICAgIGV3a19jb29raWVfbWFuYWdlcl9wZXJzaXN0ZW50X3N0b3Jh
Z2Vfc2V0KGNvb2tpZU1hbmFnZXIsIHRleHRTdG9yYWdlMSwgRVdLX0NPT0tJRV9QRVJTSVNURU5U
X1NUT1JBR0VfVEVYVCk7Ci0gICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0
aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdl
dFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKICAgICBBU1NFUlRfRVEoMiwgY291
bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7CiAKICAgICBjb29raWVzQ2hh
bmdlZCA9IGZhbHNlOwpAQCAtMjMzLDcgKzIzMyw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNl
LCBld2tfY29va2llX21hbmFnZXJfY29va2llc19kZWxldGUpCiAgICAgZXdrX2Nvb2tpZV9tYW5h
Z2VyX2FjY2VwdF9wb2xpY3lfc2V0KGNvb2tpZU1hbmFnZXIsIEVXS19DT09LSUVfQUNDRVBUX1BP
TElDWV9BTFdBWVMpOwogICAgIEFTU0VSVF9FUShFV0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxX
QVlTLCBnZXRBY2NlcHRQb2xpY3koY29va2llTWFuYWdlcikpOwogCi0gICAgbG9hZFVybFN5bmMo
aHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworICAgIGxv
YWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgp
KTsKICAgICBFaW5hX0xpc3QqIGhvc3RuYW1lcyA9IGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNv
b2tpZU1hbmFnZXIpOwogICAgIEFTU0VSVF9FUSgyLCBlaW5hX2xpc3RfY291bnQoaG9zdG5hbWVz
KSk7CiAgICAgZnJlZUhvc3ROYW1lcyhob3N0bmFtZXMpOwpAQCAtMjUwLDcgKzI1MCw3IEBAIFRF
U1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfY29va2llX21hbmFnZXJfY29va2llc19kZWxldGUp
CiAgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdl
cikpOwogCiAgICAgLy8gR2V0IGFsbCBjb29raWVzIGFnYWluCi0gICAgbG9hZFVybFN5bmMoaHR0
cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworICAgIGxvYWRV
cmxTeW5jKGh0dHBTZXJ2ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsK
ICAgICBBU1NFUlRfRVEoMiwgY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2Vy
KSk7CiAKICAgICAvLyBDbGVhciBhbGwgY29va2llcwpAQCAtMjc5LDE0ICsyNzksMTQgQEAgVEVT
VF9GKEVXSzJVbml0VGVzdEJhc2UsIERJU0FCTEVEX2V3a19jb29raWVfbWFuYWdlcl9wZXJtYW5l
bnRfc3RvcmFnZSkKICAgICBld2tfY29va2llX21hbmFnZXJfcGVyc2lzdGVudF9zdG9yYWdlX3Nl
dChjb29raWVNYW5hZ2VyLCB0ZXh0U3RvcmFnZSwgRVdLX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JB
R0VfVEVYVCk7CiAgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5hbWVzV2l0aENvb2tpZXMoY29v
a2llTWFuYWdlcikpOwogCi0gICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0
aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2ZXItPmdl
dFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKICAgICBBU1NFUlRfRVEoMiwgY291
bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7CiAKICAgICAvLyBTUUxpdGUg
c3RvcmFnZSB1c2luZyBhIG5ldyBmaWxlLgogICAgIGV3a19jb29raWVfbWFuYWdlcl9wZXJzaXN0
ZW50X3N0b3JhZ2Vfc2V0KGNvb2tpZU1hbmFnZXIsIHNxbGl0ZVN0b3JhZ2UsIEVXS19DT09LSUVf
UEVSU0lTVEVOVF9TVE9SQUdFX1NRTElURSk7CiAgICAgQVNTRVJUX0VRKDAsIGNvdW50SG9zdG5h
bWVzV2l0aENvb2tpZXMoY29va2llTWFuYWdlcikpOwogCi0gICAgbG9hZFVybFN5bmMoaHR0cFNl
cnZlci0+Z2V0VVJJRm9yUGF0aCgiL2luZGV4Lmh0bWwiKS5kYXRhKCkpOworICAgIGxvYWRVcmxT
eW5jKGh0dHBTZXJ2ZXItPmdldFVSTEZvclBhdGgoIi9pbmRleC5odG1sIikuZGF0YSgpKTsKICAg
ICBBU1NFUlRfRVEoMiwgY291bnRIb3N0bmFtZXNXaXRoQ29va2llcyhjb29raWVNYW5hZ2VyKSk7
CiAKICAgICAvLyBUZXh0IHN0b3JhZ2UgdXNpbmcgYW4gZXhpc3RpbmcgZmlsZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9kb3du
bG9hZF9qb2IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX2Rvd25sb2FkX2pvYi5jcHAKaW5kZXggZjgxMWQ0My4uMTQ5NDkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Rvd25s
b2FkX2pvYi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMv
dGVzdF9ld2syX2Rvd25sb2FkX2pvYi5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBURVNUX0YoRVdL
MlVuaXRUZXN0QmFzZSwgZXdrX2Rvd25sb2FkKQogICAgIGNoYXIgZGVzdGluYXRpb25QYXRoW10g
PSAiL3RtcC9wZGYtZmlsZS5YWFhYWFgiOwogICAgIEFTU0VSVF9UUlVFKG1rdGVtcChkZXN0aW5h
dGlvblBhdGgpKTsKIAotICAgIENTdHJpbmcgZmlsZVVybCA9IGh0dHBTZXJ2ZXItPmdldFVSSUZv
clBhdGgodGVzdEZpbGVQYXRoKTsKKyAgICBDU3RyaW5nIGZpbGVVcmwgPSBodHRwU2VydmVyLT5n
ZXRVUkxGb3JQYXRoKHRlc3RGaWxlUGF0aCk7CiAKICAgICBEb3dubG9hZFRlc3REYXRhIHVzZXJE
YXRhID0geyBmaWxlVXJsLmRhdGEoKSwgZGVzdGluYXRpb25QYXRoIH07CiAgICAgQVNTRVJUX0ZB
TFNFKGZpbGVFeGlzdHMoZGVzdGluYXRpb25QYXRoKSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgVEVT
VF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19kb3dubG9hZCkKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQod2ViVmlldygpLCAiZG93bmxvYWQsZmluaXNoZWQiLCBvbl9kb3dubG9h
ZF9maW5pc2hlZCwgJnVzZXJEYXRhKTsKIAogICAgIC8vIERvd25sb2FkIHRlc3QgcGRmCi0gICAg
ZXdrX3ZpZXdfdXJpX3NldCh3ZWJWaWV3KCksIGZpbGVVcmwuZGF0YSgpKTsKKyAgICBld2tfdmll
d191cmxfc2V0KHdlYlZpZXcoKSwgZmlsZVVybC5kYXRhKCkpOwogICAgIGVjb3JlX21haW5fbG9v
cF9iZWdpbigpOwogCiAgICAgLy8gQ2xlYW4gdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc2V0dGluZ3MuY3BwCmlu
ZGV4IDU5NmYzNjguLjU2MmY3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3NldHRpbmdzLmNwcApAQCAtMTEw
LDE0ICsxMTAsMTQgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19zZXR0aW5nc19maWxl
X2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkKQogICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0
aW5nc19maWxlX2FjY2Vzc19mcm9tX2ZpbGVfdXJsc19hbGxvd2VkX2dldChzZXR0aW5ncykpOwog
CiAgICAgLy8gQ2hlY2sgdGhhdCBmaWxlIGFjY2VzcyBmcm9tIGZpbGU6Ly8gVVJMcyBpcyBhbGxv
d2VkLgotICAgIGV3a192aWV3X3VyaV9zZXQod2ViVmlldygpLCB0ZXN0VVJMLmRhdGEoKSk7Cisg
ICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJWaWV3KCksIHRlc3RVUkwuZGF0YSgpKTsKICAgICBBU1NF
UlRfVFJVRSh3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiRnJhbWUgbG9hZGVkIikpOwogCiAgICAg
QVNTRVJUX1RSVUUoZXdrX3NldHRpbmdzX2ZpbGVfYWNjZXNzX2Zyb21fZmlsZV91cmxzX2FsbG93
ZWRfc2V0KHNldHRpbmdzLCBmYWxzZSkpOwogICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGluZ3Nf
ZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfYWxsb3dlZF9nZXQoc2V0dGluZ3MpKTsKIAogICAg
IC8vIENoZWNrIHRoYXQgZmlsZSBhY2Nlc3MgZnJvbSBmaWxlOi8vIFVSTHMgaXMgTk9UIGFsbG93
ZWQuCi0gICAgZXdrX3ZpZXdfdXJpX3NldCh3ZWJWaWV3KCksIHRlc3RVUkwuZGF0YSgpKTsKKyAg
ICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwgdGVzdFVSTC5kYXRhKCkpOwogICAgIEFTU0VS
VF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJGcmFtZSBOT1QgbG9hZGVkIikpOwogfQog
CkBAIC0xMjgsMTkgKzEyOCwxOSBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3NldHRp
bmdzX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldCkKIAogICAgIC8vIFRoZSBmcmFtZSBmbGF0
dGVuaW5nIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCiAgICAgQVNTRVJUX0ZBTFNFKGV3a19zZXR0
aW5nc19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19nZXQoc2V0dGluZ3MpKTsKLSAgICBld2tfdmll
d191cmlfc2V0KHdlYlZpZXcoKSwgZW52aXJvbm1lbnQtPnVybEZvclJlc291cmNlKCJmcmFtZV9m
bGF0dGVuaW5nX3Rlc3QuaHRtbCIpLmRhdGEoKSk7CisgICAgZXdrX3ZpZXdfdXJsX3NldCh3ZWJW
aWV3KCksIGVudmlyb25tZW50LT51cmxGb3JSZXNvdXJjZSgiZnJhbWVfZmxhdHRlbmluZ190ZXN0
Lmh0bWwiKS5kYXRhKCkpOwogICAgIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCIyMDAiKTsgLy8g
d2lkdGggb2YgaWZyYW1lIHRhZy4KICAgICBBU1NFUlRfU1RSRVEoIjIwMCIsIGV3a192aWV3X3Rp
dGxlX2dldCh3ZWJWaWV3KCkpKTsKIAogICAgIEFTU0VSVF9UUlVFKGV3a19zZXR0aW5nc19lbmFi
bGVfZnJhbWVfZmxhdHRlbmluZ19zZXQoc2V0dGluZ3MsIHRydWUpKTsKICAgICBBU1NFUlRfVFJV
RShld2tfc2V0dGluZ3NfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmdfZ2V0KHNldHRpbmdzKSk7Ci0g
ICAgZXdrX3ZpZXdfdXJpX3NldCh3ZWJWaWV3KCksIGVudmlyb25tZW50LT51cmxGb3JSZXNvdXJj
ZSgiZnJhbWVfZmxhdHRlbmluZ190ZXN0Lmh0bWwiKS5kYXRhKCkpOworICAgIGV3a192aWV3X3Vy
bF9zZXQod2ViVmlldygpLCBlbnZpcm9ubWVudC0+dXJsRm9yUmVzb3VyY2UoImZyYW1lX2ZsYXR0
ZW5pbmdfdGVzdC5odG1sIikuZGF0YSgpKTsKICAgICB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygi
NjAwIik7IC8vIHdpZHRoIG9mIGZyYW1lX2ZsYXR0ZW5pbmdfdGVzdF9zdWJmcmFtZS5odG1sCiAg
ICAgQVNTRVJUX1NUUkVRKCI2MDAiLCBld2tfdmlld190aXRsZV9nZXQod2ViVmlldygpKSk7CiAK
ICAgICBBU1NFUlRfVFJVRShld2tfc2V0dGluZ3NfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmdfc2V0
KHNldHRpbmdzLCBmYWxzZSkpOwogICAgIEFTU0VSVF9GQUxTRShld2tfc2V0dGluZ3NfZW5hYmxl
X2ZyYW1lX2ZsYXR0ZW5pbmdfZ2V0KHNldHRpbmdzKSk7Ci0gICAgZXdrX3ZpZXdfdXJpX3NldCh3
ZWJWaWV3KCksIGVudmlyb25tZW50LT51cmxGb3JSZXNvdXJjZSgiZnJhbWVfZmxhdHRlbmluZ190
ZXN0Lmh0bWwiKS5kYXRhKCkpOworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmlldygpLCBlbnZp
cm9ubWVudC0+dXJsRm9yUmVzb3VyY2UoImZyYW1lX2ZsYXR0ZW5pbmdfdGVzdC5odG1sIikuZGF0
YSgpKTsKICAgICB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbygiMjAwIik7IC8vIHdpZHRoIG9mIGlm
cmFtZSB0YWcuCiAgICAgQVNTRVJUX1NUUkVRKCIyMDAiLCBld2tfdmlld190aXRsZV9nZXQod2Vi
VmlldygpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKaW5kZXggNDRjNGJhMS4uODA1YTNjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2sy
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl92aWV3LmNwcApAQCAtNDQsMTggKzQ0LDE4IEBAIHN0YXRpYyB2b2lkIG9uTG9hZEZp
bmlzaGVkRm9yUmVkaXJlY3Rpb24odm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCop
CiAgICAgKCpjb3VudExvYWRGaW5pc2hlZCktLTsKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJh
c2UsIGV3a192aWV3X3VyaV9nZXQpCitURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdf
dXJsX2dldCkKIHsKICAgICBsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdl
VXJsKCkpOwotICAgIEVYUEVDVF9TVFJFUShlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJs
KCksIGV3a192aWV3X3VyaV9nZXQod2ViVmlldygpKSk7CisgICAgRVhQRUNUX1NUUkVRKGVudmly
b25tZW50LT5kZWZhdWx0VGVzdFBhZ2VVcmwoKSwgZXdrX3ZpZXdfdXJsX2dldCh3ZWJWaWV3KCkp
KTsKIAogICAgIGludCBjb3VudExvYWRGaW5pc2hlZCA9IDI7CiAgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hl
ZEZvclJlZGlyZWN0aW9uLCAmY291bnRMb2FkRmluaXNoZWQpOwotICAgIGV3a192aWV3X3VyaV9z
ZXQod2ViVmlldygpLCBlbnZpcm9ubWVudC0+dXJsRm9yUmVzb3VyY2UoInJlZGlyZWN0X3VyaV90
b19kZWZhdWx0Lmh0bWwiKS5kYXRhKCkpOworICAgIGV3a192aWV3X3VybF9zZXQod2ViVmlldygp
LCBlbnZpcm9ubWVudC0+dXJsRm9yUmVzb3VyY2UoInJlZGlyZWN0X3VybF90b19kZWZhdWx0Lmh0
bWwiKS5kYXRhKCkpOwogICAgIHdoaWxlIChjb3VudExvYWRGaW5pc2hlZCkKICAgICAgICAgZWNv
cmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19k
ZWwod2ViVmlldygpLCAibG9hZCxmaW5pc2hlZCIsIG9uTG9hZEZpbmlzaGVkRm9yUmVkaXJlY3Rp
b24pOwotICAgIEVYUEVDVF9TVFJFUShlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJsKCks
IGV3a192aWV3X3VyaV9nZXQod2ViVmlldygpKSk7CisgICAgRVhQRUNUX1NUUkVRKGVudmlyb25t
ZW50LT5kZWZhdWx0VGVzdFBhZ2VVcmwoKSwgZXdrX3ZpZXdfdXJsX2dldCh3ZWJWaWV3KCkpKTsK
IH0KIAogVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2RldmljZV9waXhlbF9yYXRp
bykKQEAgLTEwNiwxMyArMTA2LDEzIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmll
d19uYXZpZ2F0aW9uKQogICAgIGh0dHBTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFja05hdmlnYXRp
b24pOwogCiAgICAgLy8gVmlzaXQgUGFnZTEKLSAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5n
ZXRVUklGb3JQYXRoKCIvUGFnZTEiKS5kYXRhKCkpOworICAgIGxvYWRVcmxTeW5jKGh0dHBTZXJ2
ZXItPmdldFVSTEZvclBhdGgoIi9QYWdlMSIpLmRhdGEoKSk7CiAgICAgQVNTRVJUX1NUUkVRKCJQ
YWdlMSIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKICAgICBBU1NFUlRfRkFMU0Uo
ZXdrX3ZpZXdfYmFja19wb3NzaWJsZSh3ZWJWaWV3KCkpKTsKICAgICBBU1NFUlRfRkFMU0UoZXdr
X3ZpZXdfZm9yd2FyZF9wb3NzaWJsZSh3ZWJWaWV3KCkpKTsKIAogICAgIC8vIFZpc2l0IFBhZ2Uy
Ci0gICAgbG9hZFVybFN5bmMoaHR0cFNlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL1BhZ2UyIikuZGF0
YSgpKTsKKyAgICBsb2FkVXJsU3luYyhodHRwU2VydmVyLT5nZXRVUkxGb3JQYXRoKCIvUGFnZTIi
KS5kYXRhKCkpOwogICAgIEFTU0VSVF9TVFJFUSgiUGFnZTIiLCBld2tfdmlld190aXRsZV9nZXQo
d2ViVmlldygpKSk7CiAgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfYmFja19wb3NzaWJsZSh3ZWJW
aWV3KCkpKTsKICAgICBBU1NFUlRfRkFMU0UoZXdrX3ZpZXdfZm9yd2FyZF9wb3NzaWJsZSh3ZWJW
aWV3KCkpKTsKQEAgLTM1MSwxMyArMzUxLDEzIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBl
d2tfdmlld19mdWxsX3NjcmVlbl9leGl0KQogCiBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdr
X3ZpZXdfc2FtZV9wYWdlX25hdmlnYXRpb24pCiB7Ci0gICAgLy8gVGVzdHMgdGhhdCBzYW1lIHBh
Z2UgbmF2aWdhdGlvbiB1cGRhdGVzIHRoZSBwYWdlIFVSSS4KKyAgICAvLyBUZXN0cyB0aGF0IHNh
bWUgcGFnZSBuYXZpZ2F0aW9uIHVwZGF0ZXMgdGhlIHBhZ2UgVVJMLgogICAgIFN0cmluZyB0ZXN0
VXJsID0gZW52aXJvbm1lbnQtPnVybEZvclJlc291cmNlKCJzYW1lX3BhZ2VfbmF2aWdhdGlvbi5o
dG1sIikuZGF0YSgpOwogICAgIGxvYWRVcmxTeW5jKHRlc3RVcmwudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgQVNTRVJUX1NUUkVRKHRlc3RVcmwudXRmOCgpLmRhdGEoKSwgZXdrX3ZpZXdfdXJpX2dldCh3
ZWJWaWV3KCkpKTsKKyAgICBBU1NFUlRfU1RSRVEodGVzdFVybC51dGY4KCkuZGF0YSgpLCBld2tf
dmlld191cmxfZ2V0KHdlYlZpZXcoKSkpOwogICAgIG1vdXNlQ2xpY2soNTAsIDUwKTsKICAgICB0
ZXN0VXJsID0gdGVzdFVybCArICcjJzsKLSAgICBBU1NFUlRfVFJVRSh3YWl0VW50aWxVUklDaGFu
Z2VkVG8odGVzdFVybC51dGY4KCkuZGF0YSgpKSk7CisgICAgQVNTRVJUX1RSVUUod2FpdFVudGls
VVJMQ2hhbmdlZFRvKHRlc3RVcmwudXRmOCgpLmRhdGEoKSkpOwogfQogCiBURVNUX0YoRVdLMlVu
aXRUZXN0QmFzZSwgZXdrX3ZpZXdfdGl0bGVfY2hhbmdlZCkKQEAgLTczMCw3ICs3MzAsNyBAQCBU
RVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfY29sb3JfcGlja2VyX2NvbG9yX3NldCkK
ICAgICB3aGlsZSAoIWhhbmRsZWQpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7
CiAKLSAgICAvLyA4LiBDbGljayBidXR0b24gdG8gcmVtb3ZlIGlucHV0IGVsZW1lbnQgZHVyaW5n
IGNvbG9yIHBpY2tlciBpcyBzaG93bi4KKyAgICAvLyA4LiBDbGljayBidXR0b24gdG8gcmVtb3Zl
IGlucHV0IGVsZW1lbnQgZHVybG5nIGNvbG9yIHBpY2tlciBpcyBzaG93bi4KICAgICBhcGktPmlu
cHV0X3BpY2tlcl9jb2xvcl9kaXNtaXNzID0gaGlkZUNvbG9yUGlja2VyQnlSZW1vdmluZ0VsZW1l
bnQ7CiAgICAgbW91c2VDbGljayg4MCwgMjApOwogCkBAIC05MTcsNyArOTE3LDcgQEAgVEVTVF9G
KEVXSzJVbml0VGVzdEJhc2UsIHdpbmRvd19tb3ZlX3Jlc2l6ZSkKICAgICBFWFBFQ1RfRVEoODAw
LCB3aWR0aCk7CiAgICAgRVhQRUNUX0VRKDYwMCwgaGVpZ2h0KTsKIAotICAgIGV3a192aWV3X3Vy
aV9zZXQod2ViVmlldygpLCBlbnZpcm9ubWVudC0+dXJsRm9yUmVzb3VyY2UoIndpbmRvd19tb3Zl
X3Jlc2l6ZS5odG1sIikuZGF0YSgpKTsKKyAgICBld2tfdmlld191cmxfc2V0KHdlYlZpZXcoKSwg
ZW52aXJvbm1lbnQtPnVybEZvclJlc291cmNlKCJ3aW5kb3dfbW92ZV9yZXNpemUuaHRtbCIpLmRh
dGEoKSk7CiAgICAgQVNTRVJUX1RSVUUod2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oIk1vdmVkIGFu
ZCByZXNpemVkIikpOwogCiAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgd2luZG93IGhhcyBiZWVuIG1v
dmVkIGFuZCByZXNpemVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDFhNTJjMDYuLjRkMGZmYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMC0wOCAgQ2hy
aXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtF
RkxdW1dLMl0gVXNlIFVSTCBpbnN0ZWFkIG9mIFVSSSBpbiB0aGUgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODY0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBNaW5pYnJvd3NlciB0byBy
ZWZsZWN0IEFQSSBjaGFuZ2VzLiBXZSBub3cKKyAgICAgICAgdXNlIFVSTCBpbnN0ZWFkIG9mIFVS
SSBpbiBXSzIgRUZMIEFQSS4KKworICAgICAgICAqIEVXZWJMYXVuY2hlci91cmxfYmFyLmM6Cisg
ICAgICAgIChvbl91cmxiYXJfa2V5X2Rvd24pOgorICAgICAgICAqIE1pbmlCcm93c2VyL2VmbC9D
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAg
ICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAod2luZG93X2NyZWF0ZSk6CisKIDIwMTItMTAt
MDggIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0g
UmVlbmFibGUgcGx1Z2luIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJs
X2Jhci5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwppbmRleCA0MDhiNWFjLi5mNTY3
NTg4IDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5jCisrKyBiL1Rvb2xz
L0VXZWJMYXVuY2hlci91cmxfYmFyLmMKQEAgLTUwLDcgKzUwLDExIEBAIG9uX3VybGJhcl9rZXlf
ZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9p
bmZvKQogCiAgICAgY2hhciAqdXJsID0gX3VybF9iYXJfdXJsX2dldF93aXRoX3Byb3RvY29sKHVy
bEJhcik7CiAgICAgaWYgKHVybCkgeworI2lmZGVmIEVGTF9XSzIKKyAgICAgICAgZXdrX3ZpZXdf
dXJsX3NldCh1cmxCYXItPndlYlZpZXcsIHVybCk7CisjZWxzZQogICAgICAgICBld2tfdmlld191
cmlfc2V0KHVybEJhci0+d2ViVmlldywgdXJsKTsKKyNlbmRpZgogICAgICAgICBmcmVlKHVybCk7
CiAgICAgfQogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh1cmxCYXItPndlYlZpZXcsIEVJTkFf
VFJVRSk7CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggMjIyOTVhNS4uNGQ0
NzdlNSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAtNDYsNyArNDYsNyBA
QCBJRiAoRU5BQkxFX0dMSUJfU1VQUE9SVCkKICAgICApCiBFTkRJRiAoKQogCi1BRERfREVGSU5J
VElPTlMoLURUSEVNRV9ESVI9XCIke1RIRU1FX0JJTkFSWV9ESVJ9XCIpCitBRERfREVGSU5JVElP
TlMoLURUSEVNRV9ESVI9XCIke1RIRU1FX0JJTkFSWV9ESVJ9XCIgLURFRkxfV0syPTEpCiAKIElO
Q0xVREVfRElSRUNUT1JJRVMoJHtNaW5pQnJvd3Nlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93
c2VyL2VmbC9tYWluLmMKaW5kZXggODMyNjE1NC4uZmU1MmUzMiAxMDA2NDQKLS0tIGEvVG9vbHMv
TWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGljIHZvaWQKIG9uX3VybF9jaGFuZ2VkKHZvaWQgKnVz
ZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAg
QnJvd3Nlcl9XaW5kb3cgKndpbmRvdyA9IChCcm93c2VyX1dpbmRvdyAqKXVzZXJfZGF0YTsKLSAg
ICB1cmxfYmFyX3VybF9zZXQod2luZG93LT51cmxfYmFyLCBld2tfdmlld191cmlfZ2V0KHdpbmRv
dy0+d2VidmlldykpOworICAgIHVybF9iYXJfdXJsX3NldCh3aW5kb3ctPnVybF9iYXIsIGV3a192
aWV3X3VybF9nZXQod2luZG93LT53ZWJ2aWV3KSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0zMzQs
NyArMzM0LDcgQEAgc3RhdGljIEJyb3dzZXJfV2luZG93ICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNo
YXIgKnVybCwgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmcKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQod2luZG93LT53ZWJ2aWV3LCAibG9hZCxlcnJvciIsIG9uX2Vycm9yLCB3
aW5kb3cpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3aW5kb3ctPndlYnZp
ZXcsICJsb2FkLHByb2dyZXNzIiwgb25fcHJvZ3Jlc3MsIHdpbmRvdyk7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdpbmRvdy0+d2VidmlldywgInRpdGxlLGNoYW5nZWQiLCBv
bl90aXRsZV9jaGFuZ2VkLCB3aW5kb3cpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2FkZCh3aW5kb3ctPndlYnZpZXcsICJ1cmksY2hhbmdlZCIsIG9uX3VybF9jaGFuZ2VkLCB3aW5k
b3cpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3aW5kb3ctPndlYnZpZXcs
ICJ1cmwsY2hhbmdlZCIsIG9uX3VybF9jaGFuZ2VkLCB3aW5kb3cpOwogCiAgICAgZXZhc19vYmpl
Y3RfZXZlbnRfY2FsbGJhY2tfYWRkKHdpbmRvdy0+d2VidmlldywgRVZBU19DQUxMQkFDS19LRVlf
RE9XTiwgb25fa2V5X2Rvd24sIHdpbmRvdyk7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfYWRkKHdpbmRvdy0+d2VidmlldywgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBvbl9tb3Vz
ZV9kb3duLCB3aW5kb3cpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBCcm93c2VyX1dpbmRv
dyAqd2luZG93X2NyZWF0ZShjb25zdCBjaGFyICp1cmwsIEVpbmFfQm9vbCBmcmFtZV9mbGF0dGVu
aW5nCiAKICAgICB3aW5kb3ctPnVybF9iYXIgPSB1cmxfYmFyX2FkZCh3aW5kb3ctPndlYnZpZXcs
IERFRkFVTFRfV0lEVEgpOwogCi0gICAgZXdrX3ZpZXdfdXJpX3NldCh3aW5kb3ctPndlYnZpZXcs
IHVybCk7CisgICAgZXdrX3ZpZXdfdXJsX3NldCh3aW5kb3ctPndlYnZpZXcsIHVybCk7CiAKICAg
ICByZXR1cm4gd2luZG93OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>