<?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>118779</bug_id>
          
          <creation_ts>2013-07-16 22:37:22 -0700</creation_ts>
          <short_desc>[EFL][WK2] EWK2ViewTest should be defined by inheriting from EWK2UnitTestBase.</short_desc>
          <delta_ts>2013-07-17 00:23:50 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>118716</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Donggwan Kim">donggwan.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909157</commentid>
    <comment_count>0</comment_count>
    <who name="Donggwan Kim">donggwan.kim</who>
    <bug_when>2013-07-16 22:37:22 -0700</bug_when>
    <thetext>Same approach as https://bugs.webkit.org/show_bug.cgi?id=118717</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909158</commentid>
    <comment_count>1</comment_count>
      <attachid>206855</attachid>
    <who name="Donggwan Kim">donggwan.kim</who>
    <bug_when>2013-07-16 22:39:08 -0700</bug_when>
    <thetext>Created attachment 206855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909183</commentid>
    <comment_count>2</comment_count>
      <attachid>206855</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-16 23:54:18 -0700</bug_when>
    <thetext>Comment on attachment 206855
Patch

Ok, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909221</commentid>
    <comment_count>3</comment_count>
      <attachid>206855</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-17 00:23:48 -0700</bug_when>
    <thetext>Comment on attachment 206855
Patch

Clearing flags on attachment: 206855

Committed r152771: &lt;http://trac.webkit.org/changeset/152771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909222</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-17 00:23:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206855</attachid>
            <date>2013-07-16 22:39:08 -0700</date>
            <delta_ts>2013-07-17 00:23:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118779-20130716223911.patch</filename>
            <type>text/plain</type>
            <size>28241</size>
            <attacher name="Donggwan Kim">donggwan.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjJlZDIxY2E1ODYyNzVm
MGJiYTI4Zjg2YjFmN2VmOTY3YmY0MWJiMC4uOTAzYmY4Y2RlZTkyYjQ5OThiYzEwNjdjMjE2Zjcz
OGUyYTJhNDIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA3LTE2ICBEb25n
LUd3YW4gS2ltICA8ZG9uZ2d3YW4ua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dL
Ml0gRVdLMlZpZXdUZXN0IHNob3VsZCBiZSBkZWZpbmVkIGJ5IGluaGVyaXRpbmcgZnJvbSBFV0sy
VW5pdFRlc3RCYXNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE4Nzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSXQgc2hvdWxkIGJlIGRlZmluZWQgYXMgcmVsZXZhbnQgdGVzdCBjbGFzcyBzcGVjaWZp
YyB0byBlYWNoIHRlc3QgZmlsZSBmb3IgbW9yZSByZWFkYWJpbGl0eS4KKyAgICAgICAgSXQgY291
bGQgYmUgaGVscGZ1bCB0byByZW1vdmUgdW5uZWNlc3Nhcnkgc3RhdGljIG1ldGhvZHMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6CisgICAg
ICAgIChFV0syVmlld1Rlc3Q6Om9uTG9hZEZpbmlzaGVkRm9yUmVkaXJlY3Rpb24pOgorICAgICAg
ICAoRVdLMlZpZXdUZXN0OjpzZXJ2ZXJDYWxsYmFja05hdmlnYXRpb24pOgorICAgICAgICAoRVdL
MlZpZXdUZXN0OjpvbkZvcm1BYm91dFRvQmVTdWJtaXR0ZWQpOgorICAgICAgICAoRVdLMlZpZXdU
ZXN0OjpmdWxsU2NyZWVuQ2FsbGJhY2spOgorICAgICAgICAoRVdLMlZpZXdUZXN0OjpmdWxsU2Ny
ZWVuRXhpdENhbGxiYWNrKToKKyAgICAgICAgKEVXSzJWaWV3VGVzdDo6Y2hlY2tBbGVydCk6Cisg
ICAgICAgIChFV0syVmlld1Rlc3Q6OmNoZWNrQ29uZmlybSk6CisgICAgICAgIChFV0syVmlld1Rl
c3Q6OmNoZWNrUHJvbXB0KToKKyAgICAgICAgKEVXSzJWaWV3VGVzdDo6b25UZXh0Rm91bmQpOgor
ICAgICAgICAoRVdLMlZpZXdUZXN0OjpvblZpYnJhdGUpOgorICAgICAgICAoRVdLMlZpZXdUZXN0
OjpvbkNhbmNlbFZpYnJhdGlvbik6CisgICAgICAgIChFV0syVmlld1Rlc3Q6OmxvYWRWaWJyYXRp
b25IVE1MU3RyaW5nKToKKyAgICAgICAgKEVXSzJWaWV3VGVzdDo6b25Db250ZW50c1NpemVDaGFu
Z2VkUG9ydHJhaXQpOgorICAgICAgICAoRVdLMlZpZXdUZXN0OjpvbkNvbnRlbnRzU2l6ZUNoYW5n
ZWRMYW5kc2NhcGUpOgorICAgICAgICAoRVdLMlZpZXdUZXN0OjpQYWdlQ29udGVudHNBc01IVE1M
Q2FsbGJhY2spOgorICAgICAgICAoRVdLMlZpZXdUZXN0OjpQYWdlQ29udGVudHNBc1N0cmluZ0Nh
bGxiYWNrKToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTMtMDctMTYgIEFsZXhleSBQcm9za3Vy
eWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE1MDI5MSk6IENo
aW5lc2UgcHJlZGljdGl2ZSBpbnB1dCBwb3AtdXAgZGlzYXBwZWFycyBvbiB0d2l0dGVyLmNvbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX3ZpZXcuY3BwCmluZGV4IDM5NjgxMDdjNzMzNjdjNWIwMTJjZjAzZmJhYTM1ZmE2Y2Ni
Mjk2MmUuLmI2NTI0MDAwNzljMzQzNDAzNjY2NmRkNzU5M2E0ZmU5NmE5OTU4NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3
azJfdmlldy5jcHAKQEAgLTI5LDkgKzI5LDIxNSBAQAogdXNpbmcgbmFtZXNwYWNlIEVXSzJVbml0
VGVzdDsKIAogZXh0ZXJuIEVXSzJVbml0VGVzdEVudmlyb25tZW50KiBlbnZpcm9ubWVudDsKLWJv
b2wgZnVsbFNjcmVlbkNhbGxiYWNrQ2FsbGVkOwogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwg
ZXdrX3ZpZXdfdHlwZV9jaGVjaykKK3N0YXRpYyBib29sIGZ1bGxTY3JlZW5DYWxsYmFja0NhbGxl
ZDsKK3N0YXRpYyBib29sIG9idGFpbmVkUGFnZUNvbnRlbnRzID0gZmFsc2U7CisKK3N0YXRpYyBz
dHJ1Y3QgeworICAgIGNvbnN0IGNoYXIqIGV4cGVjdGVkTWVzc2FnZTsKKyAgICBib29sIGNhbGxl
ZDsKK30gYWxlcnRDYWxsYmFja0RhdGE7CisKK3N0YXRpYyBzdHJ1Y3QgeworICAgIGNvbnN0IGNo
YXIqIGV4cGVjdGVkTWVzc2FnZTsKKyAgICBib29sIHJlc3VsdDsKKyAgICBib29sIGNhbGxlZDsK
K30gY29uZmlybUNhbGxiYWNrRGF0YTsKKworc3RhdGljIHN0cnVjdCB7CisgICAgY29uc3QgY2hh
ciogZXhwZWN0ZWRNZXNzYWdlOworICAgIGNvbnN0IGNoYXIqIGV4cGVjdGVkRGVmYXVsdFZhbHVl
OworICAgIGNvbnN0IGNoYXIqIHJlc3VsdDsKKyAgICBib29sIGNhbGxlZDsKK30gcHJvbXB0Q2Fs
bGJhY2tEYXRhOworCitjbGFzcyBFV0syVmlld1Rlc3QgOiBwdWJsaWMgRVdLMlVuaXRUZXN0QmFz
ZSB7CitwdWJsaWM6CisgICAgc3RydWN0IFZpYnJhdGlvbkNiRGF0YSB7CisgICAgICAgIGJvb2wg
ZGlkUmVjZWl2ZVZpYnJhdGU7IC8vIFdoZXRoZXIgdGhlIHZpYnJhdGlvbiBldmVudCByZWNlaXZl
ZC4KKyAgICAgICAgYm9vbCBkaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uOyAvLyBXaGV0aGVyIHRo
ZSBjYW5jZWwgdmlicmF0aW9uIGV2ZW50IHJlY2VpdmVkLgorICAgICAgICB1bnNpZ25lZCB2aWJy
YXRlQ2FsbGVkQ291bnQ7IC8vIFZpYnJhdGUgY2FsbGJhY2tzIGNvdW50LgorICAgICAgICB1bnNp
Z25lZCBleHBlY3RlZFZpYnJhdGlvblRpbWU7IC8vIEV4cGVjdGVkIHZpYnJhdGlvbiB0aW1lLgor
ICAgIH07CisKKyAgICBzdGF0aWMgdm9pZCBvbkxvYWRGaW5pc2hlZEZvclJlZGlyZWN0aW9uKHZv
aWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsKKyAgICAgICAgaW50KiBj
b3VudExvYWRGaW5pc2hlZCA9IHN0YXRpY19jYXN0PGludCo+KHVzZXJEYXRhKTsKKyAgICAgICAg
KCpjb3VudExvYWRGaW5pc2hlZCktLTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzZXJ2ZXJD
YWxsYmFja05hdmlnYXRpb24oU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2Fn
ZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRDb250ZXh0KiwgZ3Bv
aW50ZXIpCisgICAgeworICAgICAgICBpZiAobWVzc2FnZS0+bWV0aG9kICE9IFNPVVBfTUVUSE9E
X0dFVCkgeworICAgICAgICAgICAgc291cF9tZXNzYWdlX3NldF9zdGF0dXMobWVzc2FnZSwgU09V
UF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVT
X09LKTsKKworICAgICAgICBFaW5hX1N0cmJ1ZiogYm9keSA9IGVpbmFfc3RyYnVmX25ldygpOwor
ICAgICAgICBlaW5hX3N0cmJ1Zl9hcHBlbmRfcHJpbnRmKGJvZHksICI8aHRtbD48dGl0bGU+JXM8
L3RpdGxlPjxib2R5PiVzPC9ib2R5PjwvaHRtbD4iLCBwYXRoICsgMSwgcGF0aCArIDEpOworICAg
ICAgICBjb25zdCBzaXplX3QgYm9keUxlbmd0aCA9IGVpbmFfc3RyYnVmX2xlbmd0aF9nZXQoYm9k
eSk7CisgICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9i
b2R5LCBTT1VQX01FTU9SWV9UQUtFLCBlaW5hX3N0cmJ1Zl9zdHJpbmdfc3RlYWwoYm9keSksIGJv
ZHlMZW5ndGgpOworICAgICAgICBlaW5hX3N0cmJ1Zl9mcmVlKGJvZHkpOworCisgICAgICAgIHNv
dXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIG9uRm9ybUFib3V0VG9CZVN1Ym1pdHRlZCh2b2lkKiB1c2VyRGF0
YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBFd2tfRm9y
bV9TdWJtaXNzaW9uX1JlcXVlc3QqIHJlcXVlc3QgPSBzdGF0aWNfY2FzdDxFd2tfRm9ybV9TdWJt
aXNzaW9uX1JlcXVlc3QqPihldmVudEluZm8pOworICAgICAgICBib29sKiBoYW5kbGVkID0gc3Rh
dGljX2Nhc3Q8Ym9vbCo+KHVzZXJEYXRhKTsKKworICAgICAgICBBU1NFUlRfVFJVRShyZXF1ZXN0
KTsKKworICAgICAgICBFaW5hX0xpc3QqIGZpZWxkTmFtZXMgPSBld2tfZm9ybV9zdWJtaXNzaW9u
X3JlcXVlc3RfZmllbGRfbmFtZXNfZ2V0KHJlcXVlc3QpOworICAgICAgICBBU1NFUlRfVFJVRShm
aWVsZE5hbWVzKTsKKyAgICAgICAgQVNTRVJUX0VRKDMsIGVpbmFfbGlzdF9jb3VudChmaWVsZE5h
bWVzKSk7CisgICAgICAgIHZvaWQqIGRhdGE7CisgICAgICAgIEVJTkFfTElTVF9GUkVFKGZpZWxk
TmFtZXMsIGRhdGEpCisgICAgICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzdGF0aWNfY2Fz
dDxjaGFyKj4oZGF0YSkpOworCisgICAgICAgIGNvbnN0IGNoYXIqIHZhbHVlMSA9IGV3a19mb3Jt
X3N1Ym1pc3Npb25fcmVxdWVzdF9maWVsZF92YWx1ZV9nZXQocmVxdWVzdCwgInRleHQxIik7Cisg
ICAgICAgIEFTU0VSVF9TVFJFUSgidmFsdWUxIiwgdmFsdWUxKTsKKyAgICAgICAgZWluYV9zdHJp
bmdzaGFyZV9kZWwodmFsdWUxKTsKKyAgICAgICAgY29uc3QgY2hhciogdmFsdWUyID0gZXdrX2Zv
cm1fc3VibWlzc2lvbl9yZXF1ZXN0X2ZpZWxkX3ZhbHVlX2dldChyZXF1ZXN0LCAidGV4dDIiKTsK
KyAgICAgICAgQVNTRVJUX1NUUkVRKCJ2YWx1ZTIiLCB2YWx1ZTIpOworICAgICAgICBlaW5hX3N0
cmluZ3NoYXJlX2RlbCh2YWx1ZTIpOworICAgICAgICBjb25zdCBjaGFyKiBwYXNzd29yZCA9IGV3
a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9maWVsZF92YWx1ZV9nZXQocmVxdWVzdCwgInBhc3N3
b3JkIik7CisgICAgICAgIEFTU0VSVF9TVFJFUSgic2VjcmV0IiwgcGFzc3dvcmQpOworICAgICAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbChwYXNzd29yZCk7CisKKyAgICAgICAgKmhhbmRsZWQgPSB0
cnVlOworICAgIH0KKworICAgIHN0YXRpYyBFaW5hX0Jvb2wgZnVsbFNjcmVlbkNhbGxiYWNrKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgRXdrX1NlY3VyaXR5X09yaWdpbiopCisgICAg
eworICAgICAgICBmdWxsU2NyZWVuQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RhdGljIEVpbmFfQm9vbCBmdWxsU2NyZWVuRXhpdENh
bGxiYWNrKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKKyAgICB7CisgICAgICAgIGZ1
bGxTY3JlZW5DYWxsYmFja0NhbGxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgdm9pZCBjaGVja0FsZXJ0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBj
b25zdCBjaGFyKiBtZXNzYWdlKQorICAgIHsKKyAgICAgICAgYWxlcnRDYWxsYmFja0RhdGEuY2Fs
bGVkID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKG1lc3NhZ2UsIGFsZXJ0Q2FsbGJhY2tE
YXRhLmV4cGVjdGVkTWVzc2FnZSk7CisgICAgfQorCisgICAgc3RhdGljIEVpbmFfQm9vbCBjaGVj
a0NvbmZpcm0oRXdrX1ZpZXdfU21hcnRfRGF0YSosIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCisgICAg
eworICAgICAgICBjb25maXJtQ2FsbGJhY2tEYXRhLmNhbGxlZCA9IHRydWU7CisgICAgICAgIEVY
UEVDVF9TVFJFUShtZXNzYWdlLCBjb25maXJtQ2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSk7
CisgICAgICAgIHJldHVybiBjb25maXJtQ2FsbGJhY2tEYXRhLnJlc3VsdDsKKyAgICB9CisKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogY2hlY2tQcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIGNv
bnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIGRlZmF1bHRWYWx1ZSkKKyAgICB7CisgICAg
ICAgIHByb21wdENhbGxiYWNrRGF0YS5jYWxsZWQgPSB0cnVlOworICAgICAgICBFWFBFQ1RfU1RS
RVEobWVzc2FnZSwgcHJvbXB0Q2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSk7CisgICAgICAg
IEVYUEVDVF9TVFJFUShkZWZhdWx0VmFsdWUsIHByb21wdENhbGxiYWNrRGF0YS5leHBlY3RlZERl
ZmF1bHRWYWx1ZSk7CisKKyAgICAgICAgaWYgKCFwcm9tcHRDYWxsYmFja0RhdGEucmVzdWx0KQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVf
YWRkKHByb21wdENhbGxiYWNrRGF0YS5yZXN1bHQpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lk
IG9uVGV4dEZvdW5kKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5m
bykKKyAgICB7CisgICAgICAgIGludCogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8aW50Kj4odXNlckRh
dGEpOworICAgICAgICB1bnNpZ25lZCogbWF0Y2hDb3VudCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
Kj4oZXZlbnRJbmZvKTsKKworICAgICAgICAqcmVzdWx0ID0gKm1hdGNoQ291bnQ7CisgICAgfQor
CisgICAgc3RhdGljIHZvaWQgb25WaWJyYXRlKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCos
IHZvaWQqIGV2ZW50SW5mbykKKyAgICB7CisgICAgICAgIFZpYnJhdGlvbkNiRGF0YSogZGF0YSA9
IHN0YXRpY19jYXN0PFZpYnJhdGlvbkNiRGF0YSo+KHVzZXJEYXRhKTsKKyAgICAgICAgdW5zaWdu
ZWQqIHZpYnJhdGlvblRpbWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCo+KGV2ZW50SW5mbyk7Cisg
ICAgICAgIGlmICgqdmlicmF0aW9uVGltZSA9PSBkYXRhLT5leHBlY3RlZFZpYnJhdGlvblRpbWUp
CisgICAgICAgICAgICBkYXRhLT5kaWRSZWNlaXZlVmlicmF0ZSA9IHRydWU7CisgICAgICAgIGRh
dGEtPnZpYnJhdGVDYWxsZWRDb3VudCsrOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uQ2Fu
Y2VsVmlicmF0aW9uKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHZvaWQqKQorICAgIHsK
KyAgICAgICAgVmlicmF0aW9uQ2JEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8VmlicmF0aW9uQ2JE
YXRhKj4odXNlckRhdGEpOworICAgICAgICBkYXRhLT5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9u
ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBsb2FkVmlicmF0aW9uSFRNTFN0cmlu
ZyhFdmFzX09iamVjdCogd2ViVmlldywgY29uc3QgY2hhciogdmlicmF0aW9uUGF0dGVybiwgYm9v
bCB3YWl0Rm9yVmlicmF0aW9uRXZlbnQsIFZpYnJhdGlvbkNiRGF0YSogZGF0YSkKKyAgICB7Cisg
ICAgICAgIGNvbnN0IGNoYXIqIGNvbnRlbnQgPQorICAgICAgICAgICAgIjxodG1sPjxoZWFkPjxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5jdGlvbiB2aWJyYXRlKCkgeyBuYXZpZ2F0
b3IudmlicmF0ZSglcyk7IgorICAgICAgICAgICAgIiBkb2N1bWVudC50aXRsZSA9IFwiTG9hZGVk
XCI7IH08L3NjcmlwdD48L2hlYWQ+PGJvZHkgb25sb2FkPSd2aWJyYXRlKCknPjwvYm9keT48L2h0
bWw+IjsKKworICAgICAgICBkYXRhLT5kaWRSZWNlaXZlVmlicmF0ZSA9IGZhbHNlOworICAgICAg
ICBkYXRhLT5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uID0gZmFsc2U7CisgICAgICAgIGRhdGEt
PnZpYnJhdGVDYWxsZWRDb3VudCA9IDA7CisgICAgICAgIEVpbmFfU3RyYnVmKiBidWZmZXIgPSBl
aW5hX3N0cmJ1Zl9uZXcoKTsKKyAgICAgICAgZWluYV9zdHJidWZfYXBwZW5kX3ByaW50ZihidWZm
ZXIsIGNvbnRlbnQsIHZpYnJhdGlvblBhdHRlcm4pOworICAgICAgICBld2tfdmlld19odG1sX3N0
cmluZ19sb2FkKHdlYlZpZXcsIGVpbmFfc3RyYnVmX3N0cmluZ19nZXQoYnVmZmVyKSwgMCwgMCk7
CisgICAgICAgIGVpbmFfc3RyYnVmX2ZyZWUoYnVmZmVyKTsKKworICAgICAgICBpZiAoIXdhaXRG
b3JWaWJyYXRpb25FdmVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB3aGlsZSAo
IWRhdGEtPmRpZFJlY2VpdmVWaWJyYXRlICYmICFkYXRhLT5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0
aW9uKQorICAgICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgdm9pZCBvbkNvbnRlbnRzU2l6ZUNoYW5nZWRQb3J0cmFpdCh2b2lkKiB1c2VyRGF0
YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCisgICAgeworICAgICAgICBib29sKiBy
ZXN1bHQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNlckRhdGEpOworICAgICAgICBFd2tfQ1NTX1Np
emUqIHNpemUgPSBzdGF0aWNfY2FzdDxFd2tfQ1NTX1NpemUqPihldmVudEluZm8pOworICAgICAg
ICBpZiAoc2l6ZS0+dyA9PSAyMDAwICYmIHNpemUtPmggPT0gMzAwMCkKKyAgICAgICAgICAgICpy
ZXN1bHQgPSB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIG9uQ29udGVudHNTaXplQ2hh
bmdlZExhbmRzY2FwZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudElu
Zm8pCisgICAgeworICAgICAgICBib29sKiByZXN1bHQgPSBzdGF0aWNfY2FzdDxib29sKj4odXNl
ckRhdGEpOworICAgICAgICBFd2tfQ1NTX1NpemUqIHNpemUgPSBzdGF0aWNfY2FzdDxFd2tfQ1NT
X1NpemUqPihldmVudEluZm8pOworICAgICAgICBpZiAoc2l6ZS0+dyA9PSAzMDAwICYmIHNpemUt
PmggPT0gMjAwMCkKKyAgICAgICAgICAgICpyZXN1bHQgPSB0cnVlOworICAgIH0KKworICAgIHN0
YXRpYyB2b2lkIFBhZ2VDb250ZW50c0FzTUhUTUxDYWxsYmFjayhFd2tfUGFnZV9Db250ZW50c19U
eXBlIHR5cGUsIGNvbnN0IGNoYXIqIGRhdGEsIHZvaWQqKQorICAgIHsKKyAgICAgICAgLy8gQ2hl
Y2sgdGhlIHR5cGUKKyAgICAgICAgQVNTRVJUX0VRKEVXS19QQUdFX0NPTlRFTlRTX1RZUEVfTUhU
TUwsIHR5cGUpOworCisgICAgICAgIC8vIFRoZSB2YXJpYWJsZSBkYXRhIHNob3VsZCBoYXZlIGJl
bG93IHRleHQgYmxvY2suCisgICAgICAgIGNvbnN0IFN0cmluZyBleHBlY3RlZE1IVE1MID0gIlxy
XG5cclxuPD0wMGg9MDB0PTAwbT0wMGw9MDA+PTAwPD0wMGg9MDBlPTAwYT0wMGQ9MDA+PTAwPD0w
MG09MDBlPTAwdD0wMGE9MDAgPTAwYz1cclxuIgorICAgICAgICAgICAgIj0wMGg9MDBhPTAwcj0w
MHM9MDBlPTAwdD0wMD0zRD0wMFwiPTAwVT0wMFQ9MDBGPTAwLT0wMDE9MDA2PTAwTD0wMEU9MDBc
Ij0wMD49XHJcbiIKKyAgICAgICAgICAgICI9MDA8PTAwLz0wMGg9MDBlPTAwYT0wMGQ9MDA+PTAw
PD0wMGI9MDBvPTAwZD0wMHk9MDA+PTAwPD0wMHA9MDA+PTAwUz0wMGk9MDA9XHJcbiIKKyAgICAg
ICAgICAgICJtPTAwcD0wMGw9MDBlPTAwID0wMEg9MDBUPTAwTT0wMEw9MDA8PTAwLz0wMHA9MDA+
PTAwPD0wMC89MDBiPTAwbz0wMGQ9MDB5PVxyXG4iCisgICAgICAgICAgICAiPTAwPj0wMDw9MDAv
PTAwaD0wMHQ9MDBtPTAwbD0wMD49MDBcclxuIjsKKworICAgICAgICBBU1NFUlRfVFJVRShTdHJp
bmcoZGF0YSkuY29udGFpbnMoZXhwZWN0ZWRNSFRNTCkpOworCisgICAgICAgIG9idGFpbmVkUGFn
ZUNvbnRlbnRzID0gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBQYWdlQ29udGVudHNB
c1N0cmluZ0NhbGxiYWNrKEV3a19QYWdlX0NvbnRlbnRzX1R5cGUgdHlwZSwgY29uc3QgY2hhciog
ZGF0YSwgdm9pZCopCisgICAgeworICAgICAgICAvLyBDaGVjayB0aGUgdHlwZS4KKyAgICAgICAg
QVNTRVJUX0VRKEVXS19QQUdFX0NPTlRFTlRTX1RZUEVfU1RSSU5HLCB0eXBlKTsKKworICAgICAg
ICAvLyBUaGUgdmFyaWFibGUgZGF0YSBzaG91bGQgYmUgIlNpbXBsZSBIVE1MIi4KKyAgICAgICAg
QVNTRVJUX1NUUkVRKCJTaW1wbGUgSFRNTCIsIGRhdGEpOworCisgICAgICAgIG9idGFpbmVkUGFn
ZUNvbnRlbnRzID0gdHJ1ZTsKKyAgICB9Cit9OworCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tf
dmlld190eXBlX2NoZWNrKQogewogICAgIEFTU0VSVF9GQUxTRShld2tfdmlld19jb250ZXh0X2dl
dCgwKSk7CiAKQEAgLTM5LDEzICsyNDUsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdr
X3ZpZXdfdHlwZV9jaGVjaykKICAgICBBU1NFUlRfRkFMU0UoZXdrX3ZpZXdfdXJsX3NldChyZWN0
YW5nbGUsIDApKTsKIH0KIAotc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWRGb3JSZWRpcmVjdGlv
bih2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKikKLXsKLSAgICBpbnQqIGNvdW50
TG9hZEZpbmlzaGVkID0gc3RhdGljX2Nhc3Q8aW50Kj4odXNlckRhdGEpOwotICAgICgqY291bnRM
b2FkRmluaXNoZWQpLS07Ci19Ci0KLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld191
cmxfZ2V0KQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfdXJsX2dldCkKIHsKICAgICBB
U1NFUlRfVFJVRShsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQYWdlVXJsKCkp
KTsKICAgICBFWFBFQ1RfU1RSRVEoZW52aXJvbm1lbnQtPmRlZmF1bHRUZXN0UGFnZVVybCgpLCBl
d2tfdmlld191cmxfZ2V0KHdlYlZpZXcoKSkpOwpAQCAtNTksNyArMjU5LDcgQEAgVEVTVF9GKEVX
SzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3VybF9nZXQpCiAgICAgRVhQRUNUX1NUUkVRKGVudmly
b25tZW50LT5kZWZhdWx0VGVzdFBhZ2VVcmwoKSwgZXdrX3ZpZXdfdXJsX2dldCh3ZWJWaWV3KCkp
KTsKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2RldmljZV9waXhlbF9y
YXRpbykKK1RFU1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpbykK
IHsKICAgICBBU1NFUlRfVFJVRShsb2FkVXJsU3luYyhlbnZpcm9ubWVudC0+ZGVmYXVsdFRlc3RQ
YWdlVXJsKCkpKTsKIApAQCAtNzMsNyArMjczLDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2Us
IGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpbykKICAgICBBU1NFUlRfRkxPQVRfRVEoMSwgZXdr
X3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCh3ZWJWaWV3KCkpKTsKIH0KIAotVEVTVF9GKEVX
SzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQpCitURVNUX0YoRVdLMlZp
ZXdUZXN0LCBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKQogewogICAgIGV3a192aWV3X2h0bWxf
c3RyaW5nX2xvYWQod2ViVmlldygpLCAiPGh0bWw+PGhlYWQ+PHRpdGxlPkZvbzwvdGl0bGU+PC9o
ZWFkPjxib2R5PkJhcjwvYm9keT48L2h0bWw+IiwgMCwgMCk7CiAgICAgQVNTRVJUX1RSVUUod2Fp
dFVudGlsVGl0bGVDaGFuZ2VkVG8oIkZvbyIpKTsKQEAgLTgzLDI1ICsyODMsNyBAQCBURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZCkKICAgICBBU1NFUlRf
U1RSRVEoIkJhciIsIGV3a192aWV3X3RpdGxlX2dldCh3ZWJWaWV3KCkpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2VydmVyQ2FsbGJhY2tOYXZpZ2F0aW9uKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1l
c3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50
Q29udGV4dCosIGdwb2ludGVyKQotewotICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9N
RVRIT0RfR0VUKSB7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNP
VVBfU1RBVFVTX05PVF9JTVBMRU1FTlRFRCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBTT1VQX1NUQVRVU19PSyk7Ci0KLSAg
ICBFaW5hX1N0cmJ1ZiogYm9keSA9IGVpbmFfc3RyYnVmX25ldygpOwotICAgIGVpbmFfc3RyYnVm
X2FwcGVuZF9wcmludGYoYm9keSwgIjxodG1sPjx0aXRsZT4lczwvdGl0bGU+PGJvZHk+JXM8L2Jv
ZHk+PC9odG1sPiIsIHBhdGggKyAxLCBwYXRoICsgMSk7Ci0gICAgY29uc3Qgc2l6ZV90IGJvZHlM
ZW5ndGggPSBlaW5hX3N0cmJ1Zl9sZW5ndGhfZ2V0KGJvZHkpOwotICAgIHNvdXBfbWVzc2FnZV9i
b2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9UQUtFLCBlaW5h
X3N0cmJ1Zl9zdHJpbmdfc3RlYWwoYm9keSksIGJvZHlMZW5ndGgpOwotICAgIGVpbmFfc3RyYnVm
X2ZyZWUoYm9keSk7Ci0KLSAgICBzb3VwX21lc3NhZ2VfYm9keV9jb21wbGV0ZShtZXNzYWdlLT5y
ZXNwb25zZV9ib2R5KTsKLX0KLQotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X25h
dmlnYXRpb24pCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19uYXZpZ2F0aW9uKQogewog
ICAgIE93blB0cjxFV0syVW5pdFRlc3RTZXJ2ZXI+IGh0dHBTZXJ2ZXIgPSBhZG9wdFB0cihuZXcg
RVdLMlVuaXRUZXN0U2VydmVyKTsKICAgICBodHRwU2VydmVyLT5ydW4oc2VydmVyQ2FsbGJhY2tO
YXZpZ2F0aW9uKTsKQEAgLTE1Myw3ICszMzUsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwg
ZXdrX3ZpZXdfbmF2aWdhdGlvbikKICAgICBBU1NFUlRfU1RSRVEoIlBhZ2UzIiwgZXdrX3ZpZXdf
dGl0bGVfZ2V0KHdlYlZpZXcoKSkpOwogfQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdr
X3ZpZXdfY3VzdG9tX2VuY29kaW5nKQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfY3Vz
dG9tX2VuY29kaW5nKQogewogICAgIEFTU0VSVF9GQUxTRShld2tfdmlld19jdXN0b21fZW5jb2Rp
bmdfZ2V0KHdlYlZpZXcoKSkpOwogICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2N1c3RvbV9lbmNv
ZGluZ19zZXQod2ViVmlldygpLCAiVVRGLTgiKSk7CkBAIC0xNjMsMzQgKzM0NSw3IEBAIFRFU1Rf
RihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19jdXN0b21fZW5jb2RpbmcpCiAgICAgQVNTRVJU
X0ZBTFNFKGV3a192aWV3X2N1c3RvbV9lbmNvZGluZ19nZXQod2ViVmlldygpKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIG9uRm9ybUFib3V0VG9CZVN1Ym1pdHRlZCh2b2lkKiB1c2VyRGF0YSwgRXZhc19P
YmplY3QqLCB2b2lkKiBldmVudEluZm8pCi17Ci0gICAgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1
ZXN0KiByZXF1ZXN0ID0gc3RhdGljX2Nhc3Q8RXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0Kj4o
ZXZlbnRJbmZvKTsKLSAgICBib29sKiBoYW5kbGVkID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KHVzZXJE
YXRhKTsKLQotICAgIEFTU0VSVF9UUlVFKHJlcXVlc3QpOwotCi0gICAgRWluYV9MaXN0KiBmaWVs
ZE5hbWVzID0gZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X2ZpZWxkX25hbWVzX2dldChyZXF1
ZXN0KTsKLSAgICBBU1NFUlRfVFJVRShmaWVsZE5hbWVzKTsKLSAgICBBU1NFUlRfRVEoMywgZWlu
YV9saXN0X2NvdW50KGZpZWxkTmFtZXMpKTsKLSAgICB2b2lkKiBkYXRhOwotICAgIEVJTkFfTElT
VF9GUkVFKGZpZWxkTmFtZXMsIGRhdGEpCi0gICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHN0
YXRpY19jYXN0PGNoYXIqPihkYXRhKSk7Ci0KLSAgICBjb25zdCBjaGFyKiB2YWx1ZTEgPSBld2tf
Zm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZmllbGRfdmFsdWVfZ2V0KHJlcXVlc3QsICJ0ZXh0MSIp
OwotICAgIEFTU0VSVF9TVFJFUSgidmFsdWUxIiwgdmFsdWUxKTsKLSAgICBlaW5hX3N0cmluZ3No
YXJlX2RlbCh2YWx1ZTEpOwotICAgIGNvbnN0IGNoYXIqIHZhbHVlMiA9IGV3a19mb3JtX3N1Ym1p
c3Npb25fcmVxdWVzdF9maWVsZF92YWx1ZV9nZXQocmVxdWVzdCwgInRleHQyIik7Ci0gICAgQVNT
RVJUX1NUUkVRKCJ2YWx1ZTIiLCB2YWx1ZTIpOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHZh
bHVlMik7Ci0gICAgY29uc3QgY2hhciogcGFzc3dvcmQgPSBld2tfZm9ybV9zdWJtaXNzaW9uX3Jl
cXVlc3RfZmllbGRfdmFsdWVfZ2V0KHJlcXVlc3QsICJwYXNzd29yZCIpOwotICAgIEFTU0VSVF9T
VFJFUSgic2VjcmV0IiwgcGFzc3dvcmQpOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHBhc3N3
b3JkKTsKLQotICAgICpoYW5kbGVkID0gdHJ1ZTsKLX0KLQotVEVTVF9GKEVXSzJVbml0VGVzdEJh
c2UsIGV3a192aWV3X2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0KQorVEVTVF9GKEVXSzJWaWV3VGVz
dCwgZXdrX3ZpZXdfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3QpCiB7CiAgICAgY29uc3QgY2hhciog
Zm9ybUhUTUwgPQogICAgICAgICAiPGh0bWw+PGhlYWQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFz
Y3JpcHQnPmZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdt
eWZvcm0nKS5zdWJtaXQoKTsgfTwvc2NyaXB0PjwvaGVhZD4iCkBAIC0yMTQsMTQgKzM2OSwxNCBA
QCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfZm9ybV9zdWJtaXNzaW9uX3JlcXVl
c3QpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKHdlYlZpZXcoKSwgImZvcm0s
c3VibWlzc2lvbixyZXF1ZXN0Iiwgb25Gb3JtQWJvdXRUb0JlU3VibWl0dGVkKTsKIH0KIAotVEVT
VF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdzX2dldCkKK1RFU1RfRihFV0sy
Vmlld1Rlc3QsIGV3a192aWV3X3NldHRpbmdzX2dldCkKIHsKICAgICBFd2tfU2V0dGluZ3MqIHNl
dHRpbmdzID0gZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KHdlYlZpZXcoKSk7CiAgICAgQVNTRVJUX1RS
VUUoc2V0dGluZ3MpOwogICAgIEFTU0VSVF9FUShzZXR0aW5ncywgZXdrX3ZpZXdfc2V0dGluZ3Nf
Z2V0KHdlYlZpZXcoKSkpOwogfQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdf
dGhlbWVfc2V0KQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfdGhlbWVfc2V0KQogewog
ICAgIGNvbnN0IGNoYXIqIGJ1dHRvbkhUTUwgPSAiPGh0bWw+PGJvZHk+PGlucHV0IHR5cGU9J2J1
dHRvbicgaWQ9J2J0bic+IgogICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC50aXRsZT1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYnRuJykuY2xpZW50V2lkdGg7PC9zY3JpcHQ+IgpAQCAtMjQzLDcg
KzM5OCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld190aGVtZV9zZXQpCiAg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsVGl0bGVDaGFuZ2VkVG8oIjI5OSIpKTsgLy8gYnV0dG9u
IG9mIGJpZyBidXR0b24gdGhlbWUgaGFzIDI5OXB4IGFzIHBhZGRpbmcgKDE1IHRvIC0yODUpCiB9
CiAKLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19tb3VzZV9ldmVudHNfZW5hYmxl
ZCkKK1RFU1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X21vdXNlX2V2ZW50c19lbmFibGVkKQog
ewogICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X21vdXNlX2V2ZW50c19lbmFibGVkX3NldCh3ZWJW
aWV3KCksIEVJTkFfVFJVRSkpOwogICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X21vdXNlX2V2ZW50
c19lbmFibGVkX2dldCh3ZWJWaWV3KCkpKTsKQEAgLTI1NSwxOSArNDEwLDcgQEAgVEVTVF9GKEVX
SzJVbml0VGVzdEJhc2UsIGV3a192aWV3X21vdXNlX2V2ZW50c19lbmFibGVkKQogICAgIEFTU0VS
VF9GQUxTRShld2tfdmlld19tb3VzZV9ldmVudHNfZW5hYmxlZF9nZXQod2ViVmlldygpKSk7CiB9
CiAKLXN0YXRpYyBFaW5hX0Jvb2wgZnVsbFNjcmVlbkNhbGxiYWNrKEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSwgRXdrX1NlY3VyaXR5X09yaWdpbiopCi17Ci0gICAgZnVsbFNjcmVlbkNh
bGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBFaW5h
X0Jvb2wgZnVsbFNjcmVlbkV4aXRDYWxsYmFjayhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEpCi17Ci0gICAgZnVsbFNjcmVlbkNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19mdWxsX3NjcmVl
bl9lbnRlcikKK1RFU1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X2Z1bGxfc2NyZWVuX2VudGVy
KQogewogICAgIGNvbnN0IGNoYXIgZnVsbHNjcmVlbkhUTUxbXSA9CiAgICAgICAgICI8IWRvY3R5
cGUgaHRtbD48aGVhZD48c2NyaXB0PmZ1bmN0aW9uIG1ha2VGdWxsU2NyZWVuKCl7IgpAQCAtMjg2
LDcgKzQyOSw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19mdWxsX3NjcmVl
bl9lbnRlcikKICAgICBBU1NFUlRfVFJVRShmdWxsU2NyZWVuQ2FsbGJhY2tDYWxsZWQpOwogfQog
Ci1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfZnVsbF9zY3JlZW5fZXhpdCkKK1RF
U1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X2Z1bGxfc2NyZWVuX2V4aXQpCiB7CiAgICAgY29u
c3QgY2hhciBmdWxsc2NyZWVuSFRNTFtdID0KICAgICAgICAgIjwhZG9jdHlwZSBodG1sPjxoZWFk
PjxzY3JpcHQ+ZnVuY3Rpb24gbWFrZUZ1bGxTY3JlZW5BbmRFeGl0KCl7IgpAQCAtMzA2LDE0ICs0
NDksMTQgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2Z1bGxfc2NyZWVuX2V4
aXQpCiAgICAgQVNTRVJUX1RSVUUoZnVsbFNjcmVlbkNhbGxiYWNrQ2FsbGVkKTsKIH0KIAotVEVT
VF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2NhbmNlbF9mdWxsX3NjcmVlbl9yZXF1ZXN0
KQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfY2FuY2VsX2Z1bGxfc2NyZWVuX3JlcXVl
c3QpCiB7CiAgICAgLy8gRnVsbFNjcmVlbm1hbmFnZXIgc2hvdWxkIHNraXAgY2FuY2VsIGZ1bGxz
Y3JlZW4gcmVxdWVzdCBpZiBmdWxsc2NyZWVuCiAgICAgLy8gbW9kZSB3YXMgbm90IHNldCB1c2lu
ZyBGdWxsU2NyZWVuIEFQSS4KICAgICBBU1NFUlRfRkFMU0UoZXdrX3ZpZXdfZnVsbHNjcmVlbl9l
eGl0KHdlYlZpZXcoKSkpOwogfQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdf
c2FtZV9wYWdlX25hdmlnYXRpb24pCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19zYW1l
X3BhZ2VfbmF2aWdhdGlvbikKIHsKICAgICAvLyBUZXN0cyB0aGF0IHNhbWUgcGFnZSBuYXZpZ2F0
aW9uIHVwZGF0ZXMgdGhlIHBhZ2UgVVJMLgogICAgIFN0cmluZyB0ZXN0VXJsID0gZW52aXJvbm1l
bnQtPnVybEZvclJlc291cmNlKCJzYW1lX3BhZ2VfbmF2aWdhdGlvbi5odG1sIikuZGF0YSgpOwpA
QCAtMzI0LDcgKzQ2Nyw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19zYW1l
X3BhZ2VfbmF2aWdhdGlvbikKICAgICBBU1NFUlRfVFJVRSh3YWl0VW50aWxVUkxDaGFuZ2VkVG8o
dGVzdFVybC51dGY4KCkuZGF0YSgpKSk7CiB9CiAKLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBl
d2tfdmlld190aXRsZV9jaGFuZ2VkKQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfdGl0
bGVfY2hhbmdlZCkKIHsKICAgICBjb25zdCBjaGFyKiB0aXRsZUNoYW5nZWRIVE1MID0KICAgICAg
ICAgIjwhZG9jdHlwZSBodG1sPjxoZWFkPjx0aXRsZT5UaXRsZSBiZWZvcmUgY2hhbmdlZDwvdGl0
bGU+PC9oZWFkPiIKQEAgLTM0OCwzMSArNDkxLDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2Us
IGV3a192aWV3X3RpdGxlX2NoYW5nZWQpCiAgICAgRVhQRUNUX1NUUkVRKCIiLCBld2tfdmlld190
aXRsZV9nZXQod2ViVmlldygpKSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgewotICAgIGNvbnN0IGNo
YXIqIGV4cGVjdGVkTWVzc2FnZTsKLSAgICBib29sIGNhbGxlZDsKLX0gYWxlcnRDYWxsYmFja0Rh
dGE7Ci0KLXN0YXRpYyBzdHJ1Y3QgewotICAgIGNvbnN0IGNoYXIqIGV4cGVjdGVkTWVzc2FnZTsK
LSAgICBib29sIHJlc3VsdDsKLSAgICBib29sIGNhbGxlZDsKLX0gY29uZmlybUNhbGxiYWNrRGF0
YTsKLQotc3RhdGljIHN0cnVjdCB7Ci0gICAgY29uc3QgY2hhciogZXhwZWN0ZWRNZXNzYWdlOwot
ICAgIGNvbnN0IGNoYXIqIGV4cGVjdGVkRGVmYXVsdFZhbHVlOwotICAgIGNvbnN0IGNoYXIqIHJl
c3VsdDsKLSAgICBib29sIGNhbGxlZDsKLX0gcHJvbXB0Q2FsbGJhY2tEYXRhOwotCi1zdGF0aWMg
dm9pZCBjaGVja0FsZXJ0KEV3a19WaWV3X1NtYXJ0X0RhdGEqLCBjb25zdCBjaGFyKiBtZXNzYWdl
KQotewotICAgIGFsZXJ0Q2FsbGJhY2tEYXRhLmNhbGxlZCA9IHRydWU7Ci0gICAgRVhQRUNUX1NU
UkVRKG1lc3NhZ2UsIGFsZXJ0Q2FsbGJhY2tEYXRhLmV4cGVjdGVkTWVzc2FnZSk7Ci19Ci0KLVRF
U1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlwdF9hbGVydCkKK1RF
U1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X3J1bl9qYXZhc2NyaXB0X2FsZXJ0KQogewogICAg
IGV3a1ZpZXdDbGFzcygpLT5ydW5famF2YXNjcmlwdF9hbGVydCA9IGNoZWNrQWxlcnQ7CiAKQEAg
LTQxMiwxNCArNTMxLDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3J1bl9q
YXZhc2NyaXB0X2FsZXJ0KQogICAgIEVYUEVDVF9GQUxTRShhbGVydENhbGxiYWNrRGF0YS5jYWxs
ZWQpOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIGNoZWNrQ29uZmlybShFd2tfVmlld19TbWFydF9E
YXRhKiwgY29uc3QgY2hhciogbWVzc2FnZSkKLXsKLSAgICBjb25maXJtQ2FsbGJhY2tEYXRhLmNh
bGxlZCA9IHRydWU7Ci0gICAgRVhQRUNUX1NUUkVRKG1lc3NhZ2UsIGNvbmZpcm1DYWxsYmFja0Rh
dGEuZXhwZWN0ZWRNZXNzYWdlKTsKLSAgICByZXR1cm4gY29uZmlybUNhbGxiYWNrRGF0YS5yZXN1
bHQ7Ci19Ci0KLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlw
dF9jb25maXJtKQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRf
Y29uZmlybSkKIHsKICAgICBld2tWaWV3Q2xhc3MoKS0+cnVuX2phdmFzY3JpcHRfY29uZmlybSA9
IGNoZWNrQ29uZmlybTsKIApAQCAtNDc2LDE5ICs1ODgsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0
QmFzZSwgZXdrX3ZpZXdfcnVuX2phdmFzY3JpcHRfY29uZmlybSkKICAgICBFWFBFQ1RfRkFMU0Uo
Y29uZmlybUNhbGxiYWNrRGF0YS5jYWxsZWQpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogY2hl
Y2tQcm9tcHQoRXdrX1ZpZXdfU21hcnRfRGF0YSosIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGNvbnN0
IGNoYXIqIGRlZmF1bHRWYWx1ZSkKLXsKLSAgICBwcm9tcHRDYWxsYmFja0RhdGEuY2FsbGVkID0g
dHJ1ZTsKLSAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZSwgcHJvbXB0Q2FsbGJhY2tEYXRhLmV4cGVj
dGVkTWVzc2FnZSk7Ci0gICAgRVhQRUNUX1NUUkVRKGRlZmF1bHRWYWx1ZSwgcHJvbXB0Q2FsbGJh
Y2tEYXRhLmV4cGVjdGVkRGVmYXVsdFZhbHVlKTsKLQotICAgIGlmICghcHJvbXB0Q2FsbGJhY2tE
YXRhLnJlc3VsdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZWluYV9zdHJpbmdz
aGFyZV9hZGQocHJvbXB0Q2FsbGJhY2tEYXRhLnJlc3VsdCk7Ci19Ci0KLVRFU1RfRihFV0syVW5p
dFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQpCitURVNUX0YoRVdLMlZp
ZXdUZXN0LCBld2tfdmlld19ydW5famF2YXNjcmlwdF9wcm9tcHQpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIgcHJvbXB0TWVzc2FnZVtdID0gIlByb21wdCBtZXNzYWdlIjsKICAgICBzdGF0aWMg
Y29uc3QgY2hhciBwcm9tcHRSZXN1bHRbXSA9ICJQcm9tcHQgcmVzdWx0IjsKQEAgLTU3NiwyMSAr
Njc2LDIxIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19ydW5famF2YXNjcmlw
dF9wcm9tcHQpCiAgICAgRVhQRUNUX0ZBTFNFKHByb21wdENhbGxiYWNrRGF0YS5jYWxsZWQpOwog
fQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfY29udGV4dF9nZXQpCitURVNU
X0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19jb250ZXh0X2dldCkKIHsKICAgICBFd2tfQ29udGV4
dCogY29udGV4dCA9IGV3a192aWV3X2NvbnRleHRfZ2V0KHdlYlZpZXcoKSk7CiAgICAgQVNTRVJU
X1RSVUUoY29udGV4dCk7CiAgICAgQVNTRVJUX0VRKGNvbnRleHQsIGV3a192aWV3X2NvbnRleHRf
Z2V0KHdlYlZpZXcoKSkpOwogfQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdf
cGFnZV9ncm91cF9nZXQpCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19wYWdlX2dyb3Vw
X2dldCkKIHsKICAgICBFd2tfUGFnZV9Hcm91cCogcGFnZUdyb3VwID0gZXdrX3ZpZXdfcGFnZV9n
cm91cF9nZXQod2ViVmlldygpKTsKICAgICBBU1NFUlRfVFJVRShwYWdlR3JvdXApOwogICAgIEFT
U0VSVF9FUShwYWdlR3JvdXAsIGV3a192aWV3X3BhZ2VfZ3JvdXBfZ2V0KHdlYlZpZXcoKSkpOwog
fQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudCkK
K1RFU1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3X2ZlZWRfdG91Y2hfZXZlbnQpCiB7CiAgICAg
RWluYV9MaXN0KiBwb2ludHMgPSAwOwogICAgIEV3a19Ub3VjaF9Qb2ludCBwb2ludDEgPSB7IDAs
IDAsIDAsIEVWQVNfVE9VQ0hfUE9JTlRfRE9XTiB9OwpAQCAtNjE2LDE1ICs3MTYsNyBAQCBURVNU
X0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfZmVlZF90b3VjaF9ldmVudCkKICAgICBlaW5h
X2xpc3RfZnJlZShwb2ludHMpOwogfQogCi1zdGF0aWMgdm9pZCBvblRleHRGb3VuZCh2b2lkKiB1
c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCi17Ci0gICAgaW50KiByZXN1
bHQgPSBzdGF0aWNfY2FzdDxpbnQqPih1c2VyRGF0YSk7Ci0gICAgdW5zaWduZWQqIG1hdGNoQ291
bnQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCo+KGV2ZW50SW5mbyk7Ci0KLSAgICAqcmVzdWx0ID0g
Km1hdGNoQ291bnQ7Ci19Ci0KLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld190ZXh0
X2ZpbmQpCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld190ZXh0X2ZpbmQpCiB7CiAgICAg
Y29uc3QgY2hhciB0ZXh0RmluZEhUTUxbXSA9CiAgICAgICAgICI8IURPQ1RZUEUgaHRtbD4iCkBA
IC02NTEsNyArNzQzLDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3RleHRf
ZmluZCkKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19kZWwod2ViVmlldygpLCAidGV4
dCxmb3VuZCIsIG9uVGV4dEZvdW5kKTsKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3
a192aWV3X3RleHRfbWF0Y2hlc19jb3VudCkKK1RFU1RfRihFV0syVmlld1Rlc3QsIGV3a192aWV3
X3RleHRfbWF0Y2hlc19jb3VudCkKIHsKICAgICBjb25zdCBjaGFyIHRleHRGaW5kSFRNTFtdID0K
ICAgICAgICAgIjwhRE9DVFlQRSBodG1sPiIKQEAgLTcwMyw3ICs3OTUsNyBAQCBURVNUX0YoRVdL
MlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfdGV4dF9tYXRjaGVzX2NvdW50KQogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbCh3ZWJWaWV3KCksICJ0ZXh0LGZvdW5kIiwgb25UZXh0Rm91
bmQpOwogfQogCi1URVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfdG91Y2hfZXZlbnRz
X2VuYWJsZWQpCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld190b3VjaF9ldmVudHNfZW5h
YmxlZCkKIHsKICAgICBBU1NFUlRfRkFMU0UoZXdrX3ZpZXdfdG91Y2hfZXZlbnRzX2VuYWJsZWRf
Z2V0KHdlYlZpZXcoKSkpOwogCkBAIC03NDUsMTIgKzgzNyw3IEBAIFRFU1RfRihFV0syVW5pdFRl
c3RCYXNlLCBld2tfdmlld190b3VjaF9ldmVudHNfZW5hYmxlZCkKICAgICBBU1NFUlRfRkFMU0Uo
ZXdrX3ZpZXdfdG91Y2hfZXZlbnRzX2VuYWJsZWRfZ2V0KHdlYlZpZXcoKSkpOwogfQogCi1FaW5h
X0Jvb2wgd2luZG93TW92ZVJlc2l6ZVRpbWVkT3V0KHZvaWQqIGRhdGEpCi17Ci0gICAgKnN0YXRp
Y19jYXN0PGJvb2wqPihkYXRhKSA9IHRydWU7Ci19Ci0KLVRFU1RfRihFV0syVW5pdFRlc3RCYXNl
LCB3aW5kb3dfbW92ZV9yZXNpemUpCitURVNUX0YoRVdLMlZpZXdUZXN0LCB3aW5kb3dfbW92ZV9y
ZXNpemUpCiB7CiAgICAgaW50IHgsIHksIHdpZHRoLCBoZWlnaHQ7CiAgICAgRWNvcmVfRXZhcyog
ZWUgPSBlY29yZV9ldmFzX2Vjb3JlX2V2YXNfZ2V0KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZp
ZXcoKSkpOwpAQCAtNzcwLDcgKzg1Nyw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCB3aW5k
b3dfbW92ZV9yZXNpemUpCiAgICAgRVhQRUNUX0VRKDEwMCwgaGVpZ2h0KTsKIH0KIAotVEVTVF9G
KEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2luc3BlY3RvcikKK1RFU1RfRihFV0syVmlld1Rl
c3QsIGV3a192aWV3X2luc3BlY3RvcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEFT
U0VSVF9UUlVFKGV3a192aWV3X2luc3BlY3Rvcl9zaG93KHdlYlZpZXcoKSkpOwpAQCAtNzgxLDcg
Kzg2OCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19pbnNwZWN0b3IpCiAj
ZW5kaWYKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIERJU0FCTEVEX2V3a192aWV3X3Nj
YWxlKQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgRElTQUJMRURfZXdrX3ZpZXdfc2NhbGUpCiB7CiAg
ICAgQVNTRVJUX1RSVUUobG9hZFVybFN5bmMoZW52aXJvbm1lbnQtPmRlZmF1bHRUZXN0UGFnZVVy
bCgpKSk7CiAKQEAgLTgwMiw3ICs4ODksNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgRElT
QUJMRURfZXdrX3ZpZXdfc2NhbGUpCiAgICAgQVNTRVJUX0ZMT0FUX0VRKDEsIGV3a192aWV3X3Nj
YWxlX2dldCh3ZWJWaWV3KCkpKTsKIH0KIAotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192
aWV3X3BhZ2luYXRpb24pCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19wYWdpbmF0aW9u
KQogewogICAgIEFTU0VSVF9UUlVFKGxvYWRVcmxTeW5jKGVudmlyb25tZW50LT5kZWZhdWx0VGVz
dFBhZ2VVcmwoKSkpOwogCkBAIC04MzEsNTAgKzkxOCw3IEBAIFRFU1RfRihFV0syVW5pdFRlc3RC
YXNlLCBld2tfdmlld19wYWdpbmF0aW9uKQogICAgIEFTU0VSVF9FUShFV0tfUEFHSU5BVElPTl9N
T0RFX1VOUEFHSU5BVEVELCBld2tfdmlld19wYWdpbmF0aW9uX21vZGVfZ2V0KHdlYlZpZXcoKSkp
OwogfQogCi1zdHJ1Y3QgVmlicmF0aW9uQ2JEYXRhIHsKLSAgICBib29sIGRpZFJlY2VpdmVWaWJy
YXRlOyAvLyBXaGV0aGVyIHRoZSB2aWJyYXRpb24gZXZlbnQgcmVjZWl2ZWQuCi0gICAgYm9vbCBk
aWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uOyAvLyBXaGV0aGVyIHRoZSBjYW5jZWwgdmlicmF0aW9u
IGV2ZW50IHJlY2VpdmVkLgotICAgIHVuc2lnbmVkIHZpYnJhdGVDYWxsZWRDb3VudDsgLy8gVmli
cmF0ZSBjYWxsYmFja3MgY291bnQuCi0gICAgdW5zaWduZWQgZXhwZWN0ZWRWaWJyYXRpb25UaW1l
OyAvLyBFeHBlY3RlZCB2aWJyYXRpb24gdGltZS4KLX07Ci0KLXN0YXRpYyB2b2lkIG9uVmlicmF0
ZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCi17Ci0gICAg
VmlicmF0aW9uQ2JEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8VmlicmF0aW9uQ2JEYXRhKj4odXNl
ckRhdGEpOwotICAgIHVuc2lnbmVkKiB2aWJyYXRpb25UaW1lID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQqPihldmVudEluZm8pOwotICAgIGlmICgqdmlicmF0aW9uVGltZSA9PSBkYXRhLT5leHBlY3Rl
ZFZpYnJhdGlvblRpbWUpCi0gICAgICAgIGRhdGEtPmRpZFJlY2VpdmVWaWJyYXRlID0gdHJ1ZTsK
LSAgICBkYXRhLT52aWJyYXRlQ2FsbGVkQ291bnQrKzsKLX0KLQotc3RhdGljIHZvaWQgb25DYW5j
ZWxWaWJyYXRpb24odm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0Kiwgdm9pZCopCi17Ci0gICAg
VmlicmF0aW9uQ2JEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8VmlicmF0aW9uQ2JEYXRhKj4odXNl
ckRhdGEpOwotICAgIGRhdGEtPmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24gPSB0cnVlOwotfQot
Ci1zdGF0aWMgdm9pZCBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyhFdmFzX09iamVjdCogd2ViVmll
dywgY29uc3QgY2hhciogdmlicmF0aW9uUGF0dGVybiwgYm9vbCB3YWl0Rm9yVmlicmF0aW9uRXZl
bnQsIFZpYnJhdGlvbkNiRGF0YSogZGF0YSkKLXsKLSAgICBjb25zdCBjaGFyKiBjb250ZW50ID0K
LSAgICAgICAgIjxodG1sPjxoZWFkPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5mdW5j
dGlvbiB2aWJyYXRlKCkgeyBuYXZpZ2F0b3IudmlicmF0ZSglcyk7IgotICAgICAgICAiIGRvY3Vt
ZW50LnRpdGxlID0gXCJMb2FkZWRcIjsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9J3Zp
YnJhdGUoKSc+PC9ib2R5PjwvaHRtbD4iOwotCi0gICAgZGF0YS0+ZGlkUmVjZWl2ZVZpYnJhdGUg
PSBmYWxzZTsKLSAgICBkYXRhLT5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uID0gZmFsc2U7Ci0g
ICAgZGF0YS0+dmlicmF0ZUNhbGxlZENvdW50ID0gMDsKLSAgICBFaW5hX1N0cmJ1ZiogYnVmZmVy
ID0gZWluYV9zdHJidWZfbmV3KCk7Ci0gICAgZWluYV9zdHJidWZfYXBwZW5kX3ByaW50ZihidWZm
ZXIsIGNvbnRlbnQsIHZpYnJhdGlvblBhdHRlcm4pOwotICAgIGV3a192aWV3X2h0bWxfc3RyaW5n
X2xvYWQod2ViVmlldywgZWluYV9zdHJidWZfc3RyaW5nX2dldChidWZmZXIpLCAwLCAwKTsKLSAg
ICBlaW5hX3N0cmJ1Zl9mcmVlKGJ1ZmZlcik7Ci0KLSAgICBpZiAoIXdhaXRGb3JWaWJyYXRpb25F
dmVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgd2hpbGUgKCFkYXRhLT5kaWRSZWNlaXZlVmli
cmF0ZSAmJiAhZGF0YS0+ZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbikKLSAgICAgICAgZWNvcmVf
bWFpbl9sb29wX2l0ZXJhdGUoKTsKLX0KLQotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19j
b250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldCkKK1RFU1RfRihFV0syVmlld1Rl
c3QsIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldCkKIHsKICAgICBW
aWJyYXRpb25DYkRhdGEgZGF0YSA9IHsgZmFsc2UsIGZhbHNlLCAwLCA1MDAwIH07CiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcoKSwgInZpYnJhdGUiLCBvblZpYnJh
dGUsICZkYXRhKTsKQEAgLTkxNCwyMyArOTU4LDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2Us
IGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldCkKICAgICBBU1NFUlRf
RkFMU0UoZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKIH0KIAotc3RhdGljIHZvaWQg
b25Db250ZW50c1NpemVDaGFuZ2VkUG9ydHJhaXQodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0
Kiwgdm9pZCogZXZlbnRJbmZvKQotewotICAgIGJvb2wqIHJlc3VsdCA9IHN0YXRpY19jYXN0PGJv
b2wqPih1c2VyRGF0YSk7Ci0gICAgRXdrX0NTU19TaXplKiBzaXplID0gc3RhdGljX2Nhc3Q8RXdr
X0NTU19TaXplKj4oZXZlbnRJbmZvKTsKLSAgICBpZiAoc2l6ZS0+dyA9PSAyMDAwICYmIHNpemUt
PmggPT0gMzAwMCkKLSAgICAgICAgKnJlc3VsdCA9IHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIG9u
Q29udGVudHNTaXplQ2hhbmdlZExhbmRzY2FwZSh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3Qq
LCB2b2lkKiBldmVudEluZm8pCi17Ci0gICAgYm9vbCogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Ym9v
bCo+KHVzZXJEYXRhKTsKLSAgICBFd2tfQ1NTX1NpemUqIHNpemUgPSBzdGF0aWNfY2FzdDxFd2tf
Q1NTX1NpemUqPihldmVudEluZm8pOwotICAgIGlmIChzaXplLT53ID09IDMwMDAgJiYgc2l6ZS0+
aCA9PSAyMDAwKQotICAgICAgICAqcmVzdWx0ID0gdHJ1ZTsKLX0KLQotVEVTVF9GKEVXSzJVbml0
VGVzdEJhc2UsIGV3a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZCkKK1RFU1RfRihFV0syVmll
d1Rlc3QsIGV3a192aWV3X2NvbnRlbnRzX3NpemVfY2hhbmdlZCkKIHsKICAgICBjb25zdCBjaGFy
IGNvbnRlbnRzU2l6ZUhUTUxQb3J0cmFpdFtdID0KICAgICAgICAgIjwhRE9DVFlQRSBodG1sPiIK
QEAgLTk2MywzNyArOTkxLDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X2Nv
bnRlbnRzX3NpemVfY2hhbmdlZCkKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19kZWwo
d2ViVmlldygpLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwgb25Db250ZW50c1NpemVDaGFuZ2Vk
UG9ydHJhaXQpOwogfQogCi1zdGF0aWMgYm9vbCBvYnRhaW5lZFBhZ2VDb250ZW50cyA9IGZhbHNl
OwotCi1zdGF0aWMgdm9pZCBQYWdlQ29udGVudHNBc01IVE1MQ2FsbGJhY2soRXdrX1BhZ2VfQ29u
dGVudHNfVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBkYXRhLCB2b2lkKikKLXsKLSAgICAvLyBDaGVj
ayB0aGUgdHlwZQotICAgIEFTU0VSVF9FUShFV0tfUEFHRV9DT05URU5UU19UWVBFX01IVE1MLCB0
eXBlKTsKLQotICAgIC8vIFRoZSB2YXJpYWJsZSBkYXRhIHNob3VsZCBoYXZlIGJlbG93IHRleHQg
YmxvY2suCi0gICAgY29uc3QgU3RyaW5nIGV4cGVjdGVkTUhUTUwgPSAiXHJcblxyXG48PTAwaD0w
MHQ9MDBtPTAwbD0wMD49MDA8PTAwaD0wMGU9MDBhPTAwZD0wMD49MDA8PTAwbT0wMGU9MDB0PTAw
YT0wMCA9MDBjPVxyXG4iCi0gICAgICAgICI9MDBoPTAwYT0wMHI9MDBzPTAwZT0wMHQ9MDA9M0Q9
MDBcIj0wMFU9MDBUPTAwRj0wMC09MDAxPTAwNj0wMEw9MDBFPTAwXCI9MDA+PVxyXG4iCi0gICAg
ICAgICI9MDA8PTAwLz0wMGg9MDBlPTAwYT0wMGQ9MDA+PTAwPD0wMGI9MDBvPTAwZD0wMHk9MDA+
PTAwPD0wMHA9MDA+PTAwUz0wMGk9MDA9XHJcbiIKLSAgICAgICAgIm09MDBwPTAwbD0wMGU9MDAg
PTAwSD0wMFQ9MDBNPTAwTD0wMDw9MDAvPTAwcD0wMD49MDA8PTAwLz0wMGI9MDBvPTAwZD0wMHk9
XHJcbiIKLSAgICAgICAgIj0wMD49MDA8PTAwLz0wMGg9MDB0PTAwbT0wMGw9MDA+PTAwXHJcbiI7
Ci0KLSAgICBBU1NFUlRfVFJVRShTdHJpbmcoZGF0YSkuY29udGFpbnMoZXhwZWN0ZWRNSFRNTCkp
OwotCi0gICAgb2J0YWluZWRQYWdlQ29udGVudHMgPSB0cnVlOwotfQotCi1zdGF0aWMgdm9pZCBQ
YWdlQ29udGVudHNBc1N0cmluZ0NhbGxiYWNrKEV3a19QYWdlX0NvbnRlbnRzX1R5cGUgdHlwZSwg
Y29uc3QgY2hhciogZGF0YSwgdm9pZCopCi17Ci0gICAgLy8gQ2hlY2sgdGhlIHR5cGUuCi0gICAg
QVNTRVJUX0VRKEVXS19QQUdFX0NPTlRFTlRTX1RZUEVfU1RSSU5HLCB0eXBlKTsKLQotICAgIC8v
IFRoZSB2YXJpYWJsZSBkYXRhIHNob3VsZCBiZSAiU2ltcGxlIEhUTUwiLgotICAgIEFTU0VSVF9T
VFJFUSgiU2ltcGxlIEhUTUwiLCBkYXRhKTsKLQotICAgIG9idGFpbmVkUGFnZUNvbnRlbnRzID0g
dHJ1ZTsKLX0KLQotVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3X3BhZ2VfY29udGVu
dHNfZ2V0KQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfcGFnZV9jb250ZW50c19nZXQp
CiB7CiAgICAgY29uc3QgY2hhciBjb250ZW50W10gPSAiPHA+U2ltcGxlIEhUTUw8L3A+IjsKICAg
ICBld2tfdmlld19odG1sX3N0cmluZ19sb2FkKHdlYlZpZXcoKSwgY29udGVudCwgMCwgMCk7CkBA
IC0xMDA5LDcgKzEwMDcsNyBAQCBURVNUX0YoRVdLMlVuaXRUZXN0QmFzZSwgZXdrX3ZpZXdfcGFn
ZV9jb250ZW50c19nZXQpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiB9CiAK
LVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmlld19zb3VyY2VfbW9kZSkKK1RFU1RfRihF
V0syVmlld1Rlc3QsIGV3a192aWV3X3NvdXJjZV9tb2RlKQogewogICAgIGNvbnN0IGNoYXIgaW5k
ZXhIVE1MW10gPSAiPGh0bWw+PGJvZHk+VGVzdCBXZWIgVmlldyBNb2RlPHNjcmlwdD5kb2N1bWVu
dC50aXRsZT13aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lclRleHQ7PC9zY3JpcHQ+PC9ib2R5Pjwv
aHRtbD4iOwogICAgIGNvbnN0IGNoYXIgY29udGVudHNbXSA9ICJUZXN0IFdlYiBWaWV3IE1vZGUi
OwpAQCAtMTAzMCw3ICsxMDI4LDcgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a192aWV3
X3NvdXJjZV9tb2RlKQogICAgIC8vICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDE5MDQuCiB9CiAKLVRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBld2tfdmll
d191c2VyX2FnZW50KQorVEVTVF9GKEVXSzJWaWV3VGVzdCwgZXdrX3ZpZXdfdXNlcl9hZ2VudCkK
IHsKICAgICBjb25zdCBjaGFyKiBkZWZhdWx0VXNlckFnZW50ID0gZWluYV9zdHJpbmdzaGFyZV9h
ZGQoZXdrX3ZpZXdfdXNlcl9hZ2VudF9nZXQod2ViVmlldygpKSk7CiAgICAgY29uc3QgY2hhciBj
dXN0b21Vc2VyQWdlbnRbXSA9ICJGb28iOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>