<?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>224211</bug_id>
          
          <creation_ts>2021-04-05 15:44:03 -0700</creation_ts>
          <short_desc>REGRESSION (r274610): Unable to drag images when image extraction is enabled</short_desc>
          <delta_ts>2021-04-06 13:39:17 -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>HTML Editing</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747138</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-05 15:44:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/76229563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747277</commentid>
    <comment_count>1</comment_count>
      <attachid>425240</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-05 21:51:37 -0700</bug_when>
    <thetext>Created attachment 425240
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747287</commentid>
    <comment_count>2</comment_count>
      <attachid>425243</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-04-05 23:17:24 -0700</bug_when>
    <thetext>Created attachment 425243
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747610</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-06 13:39:16 -0700</bug_when>
    <thetext>Committed r275546: &lt;https://commits.webkit.org/r275546&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425243.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425240</attachid>
            <date>2021-04-05 21:51:37 -0700</date>
            <delta_ts>2021-04-05 23:17:23 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-224211-20210405215136.patch</filename>
            <type>text/plain</type>
            <size>24939</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmNTU5MDIyNDljYTNhODNk
MmU3OTM1NDgwM2U2NGRhOTM0NzBkOGYuLjE4OGRiN2Y5ODdlYzY0N2Y0NjY3MWUwYmY2ZmJhNTll
ZTFmMWNjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDQtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3
NDYxMCk6IFVuYWJsZSB0byBkcmFnIGltYWdlcyB3aGVuIGltYWdlIGV4dHJhY3Rpb24gaXMgZW5h
YmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
MjExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjIyOTU2Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByMjc0NjEwIGludHJvZHVjZWQgYSBuZXcg
ZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplciBpbnRlbmRlZCB0byBwcmV2ZW50IHNldmVyYWwg
dGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBmcm9tCisgICAgICAgIHJlY29nbml6aW5nIGR1cmlu
ZyBwZW5kaW5nIGltYWdlIGV4dHJhY3Rpb24uIEhvd2V2ZXIsIHRoaXMgYWxzbyBjYXVzZXMgZHJh
Z2dpbmcgb24gaU9TIHRvIGZhaWwsIHNpbmNlIHRoZQorICAgICAgICBnZXN0dXJlIHVzZWQgdG8g
aW5pdGlhdGUgZHJhZ2dpbmcgaXMgZXhjbHVkZWQgYnkgdGhlIG5ldyBkZWZlcnJpbmcgZ2VzdHVy
ZSByZWNvZ25pemVyLiBUbyBmaXggdGhpcywgYWxsb3cgdGhlCisgICAgICAgIG5ldyBkZWZlcnJp
bmcgZ2VzdHVyZSB0byByZWNvZ25pemUgc2ltdWx0YW5lb3VzbHkgYWxvbmdzaWRlIGFsbCBnZXN0
dXJlcyB3aXRoIHRoZSBleGNlcHRpb24gb2Ygb25seSB0aGUgZ2VzdHVyZXMKKyAgICAgICAgaXQg
aXMgaW50ZW5kZWQgdG8gZGVmZXIgKGkuZS4gdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcykuCisK
KyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25n
LXByZXNzaW5nLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pc0FuaW1hdGluZ0RyYWdD
YW5jZWxdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAoLVtVSUdlc3R1cmVSZWNvZ25pemVyIF93a19pc1RhcEFuZEFIYWxmXSk6CisK
KyAgICAgICAgQWRkIGEgV2ViS2l0IGNhdGVnb3J5IG1ldGhvZCB0aGF0IHJldHVybnMgd2hldGhl
ciBvciBub3QgYSBnZXN0dXJlIHJlY29nbml6ZXIgaXMgYSB0YXAtYW5kLWEtaGFsZiBnZXN0dXJl
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVj
b2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisKKyAgICAgICAg
QWxsb3cgdGhlIGltYWdlIGV4dHJhY3Rpb24gZGVmZXJyaW5nIGdlc3R1cmUgdG8gcmVjb2duaXpl
IGFsb25nc2lkZSBhbGwgb3RoZXIgZ2VzdHVyZXMsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZgorICAg
ICAgICB0aGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBkZXRlcm1pbmVkIGJ5IGAtc2hvdWxk
RGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246YC4gVGhpcyBsaW1pdHMgdGhlIGltcGFj
dAorICAgICAgICBvZiB0aGlzIG5ldyBkZWZlcnJpbmcgZ2VzdHVyZSwgc3VjaCB0aGF0IGl0IG9u
bHkgYWZmZWN0cyB0aGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpdCBpcyBpbnRlbmRlZCB0
byBkZWZlci4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNob3VsZERlZmVyR2VzdHVyZUR1
ZVRvSW1hZ2VFeHRyYWN0aW9uOl0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGEgZ2VzdHVyZSByZWNvZ25pemVyIHNob3VsZCBiZSBk
ZWZlcnJlZCwgZHVlIHRvIHBlbmRpbmcgaW1hZ2UKKyAgICAgICAgZXh0cmFjdGlvbi4gV2UgcHVs
bCB0aGlzIGxvZ2ljIGJlaGluZCBhIGhlbHBlciBtZXRob2QgYmVjYXVzZSBpdCdzIG5vdyBjb25z
dWx0ZWQgZnJvbSB0d28gY2FsbCBzaXRlcy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246aXRlbTp3aWxs
QW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBp
c0FuaW1hdGluZ0RyYWdDYW5jZWxdKToKKworICAgICAgICBBZGQgYSB0ZXN0aW5nIGhvb2sgdG8g
cmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBkcmFnIGNhbmNlbCBhbmltYXRpb24gaXMgcnVubmlu
Zy4gU2VlIFRvb2xzL0NoYW5nZUxvZyBhbmQgdGhlCisgICAgICAgIG5ldyBsYXlvdXQgdGVzdCBm
b3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgKHRhcEFuZEFIYWxmUmVjb2duaXplckNsYXNzKTog
RGVsZXRlZC4KKwogMjAyMS0wNC0wNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG93IHRoZSBXZWJBdXRobiBVSSB0byBpbmZvcm0gdXNlcnMgYWJvdXQg
QmlvbWV0cnlMb2Nrb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXggYWVkOWU5
YjYzMzcwMDE2MGZiNDlkZjY0ZWM2Y2VlNTE4Y2NmMDY5Zi4uMjdlOTkxMGU1OTY2ZmEzYTY3MDc2
NDAxMmQ1OTcwMzM3OTc5NmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaApAQCAt
NDIsNiArNDIsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAq
X3Njcm9sbGluZ1RyZWVBc1RleHQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
TnVtYmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQ0dSZWN0IF9kcmFnQ2FyZXRSZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBnZXR0ZXI9X2lzQW5pbWF0aW5nRHJhZ0NhbmNlbCkgQk9PTCBfYW5pbWF0aW5nRHJhZ0Nh
bmNlbDsKIAogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQ7CiAtICh2b2lkKWtleWJv
YXJkQWNjZXNzb3J5QmFyUHJldmlvdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggN2NjMWQwYWQ4M2IwNWVl
MWVmNGE2ZDQwNjllYjA2YjY1MDA1YmZmYy4uODcyYjBiMTI1YmYwN2JkNWY2NjQ5NTQyODBlOTc3
NGViZTdmNjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMzEzLDYgKzMxMywxNSBAQCAtIChDR1JlY3Qp
X2RyYWdDYXJldFJlY3QKICNlbmRpZgogfQogCistIChCT09MKV9pc0FuaW1hdGluZ0RyYWdDYW5j
ZWwKK3sKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIHJldHVybiBbX2NvbnRlbnRWaWV3
IGlzQW5pbWF0aW5nRHJhZ0NhbmNlbF07CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgor
fQorCiAtICh2b2lkKV9zaW11bGF0ZUVsZW1lbnRBY3Rpb246KF9XS0VsZW1lbnRBY3Rpb25UeXBl
KWFjdGlvblR5cGUgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgogewogICAgIFtfY29udGVu
dFZpZXcgX3NpbXVsYXRlRWxlbWVudEFjdGlvbjphY3Rpb25UeXBlIGF0TG9jYXRpb246bG9jYXRp
b25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IDE2MTM1MzU5ZDJlNjlhMGM2MjQ3ZjMwMGVhODJmN2NlMzkz
OTc4YzUuLjJhZDlhYWZmZGQxNDg1ZmU5YWY5MTAyMjIzZDMzMGVlZDQ1MDg2ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTQzOCw2ICs0MzgsNyBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CiAgICAgV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUgX2Ry
YWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTsKICAgICBSZXRhaW5QdHI8VUlEcmFnSW50ZXJhY3Rpb24+
IF9kcmFnSW50ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJRHJvcEludGVyYWN0aW9uPiBfZHJv
cEludGVyYWN0aW9uOworICAgIEJPT0wgX2lzQW5pbWF0aW5nRHJhZ0NhbmNlbDsKICAgICBCT09M
IF9zaG91bGRSZXN0b3JlQ2FsbG91dEJhckFmdGVyRHJvcDsKICAgICBSZXRhaW5QdHI8VUlWaWV3
PiBfdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Q7CiAgICAgUmV0YWluUHRyPFVJVmlldz4gX3Vu
c2VsZWN0ZWRDb250ZW50U25hcHNob3Q7CkBAIC03MzUsNiArNzM2LDcgQEAgRk9SX0VBQ0hfUFJJ
VkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZP
Ul9XRUJfVklFVykKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmZv
cm1JbnB1dExhYmVsOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0RhdGVUaW1l
SW5wdXRDb250cm9sICpkYXRlVGltZUlucHV0Q29udHJvbDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgV0tGb3JtU2VsZWN0Q29udHJvbCAqc2VsZWN0Q29udHJvbDsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQW5pbWF0aW5nRHJhZ0NhbmNlbCkgQk9P
TCBhbmltYXRpbmdEcmFnQ2FuY2VsOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY0YmU3
ZjliNmRiN2Q3NTgwZDJhNzE4YmE5NWNiZjM3NTkyMGM5YmQuLjU1MTU5NDg5OTE2YjBlM2NhZDJi
YzAyYTEzMTc3MzViMTllYTA2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNjgxLDYgKzY4MSwxNiBA
QCAtICh2b2lkKV93a19jYW5jZWwKICAgICBbc2VsZiBzZXRFbmFibGVkOllFU107CiB9CiAKKy0g
KEJPT0wpX3drX2lzVGFwQW5kQUhhbGYKK3sKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9u
Y2VUb2tlbjsKKyAgICBzdGF0aWMgQ2xhc3MgdGFwQW5kQUhhbGZHZXN0dXJlUmVjb2duaXplckNs
YXNzOworICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKKyAgICAgICAgdGFwQW5kQUhh
bGZHZXN0dXJlUmVjb2duaXplckNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJVSVRhcEFuZEFI
YWxmUmVjb2duaXplciIpOworICAgIH0pOworICAgIHJldHVybiBbc2VsZiBpc0tpbmRPZkNsYXNz
OnRhcEFuZEFIYWxmR2VzdHVyZVJlY29nbml6ZXJDbGFzc107Cit9CisKIEBlbmQKIAogQGludGVy
ZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uUHJpdmF0ZSkKQEAgLTIyMjYsMTYgKzIy
MzYsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVy
ICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIHJldHVybiAoYSA9PSB4ICYmIGIg
PT0geSkgfHwgKGIgPT0geCAmJiBhID09IHkpOwogfQogCi1zdGF0aWMgQ2xhc3MgdGFwQW5kQUhh
bGZSZWNvZ25pemVyQ2xhc3MoKQotewotICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRv
a2VuOwotICAgIHN0YXRpYyBDbGFzcyB0aGVDbGFzczsKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
VG9rZW4sIF57Ci0gICAgICAgIHRoZUNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJVSVRhcEFu
ZEFIYWxmUmVjb2duaXplciIpOwotICAgIH0pOwotICAgIHJldHVybiB0aGVDbGFzczsKLX0KLQog
LSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyIHNob3VsZFJlY29nbml6ZVNpbXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25p
emVyOihVSUdlc3R1cmVSZWNvZ25pemVyKilvdGhlckdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAg
Zm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuZGVmZXJy
aW5nR2VzdHVyZXMpIHsKQEAgLTIyNDYsNiArMjI0NiwxNCBAQCAtIChCT09MKWdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVj
b2duaQogICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSAmJiBbb3RoZXJHZXN0dXJlUmVjb2duaXplciBpc0tp
bmRPZkNsYXNzOldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQogICAgICAgICBy
ZXR1cm4gWUVTOwogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisgICAgaWYgKGdlc3R1
cmVSZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
cikKKyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0
cmFjdGlvbjpvdGhlckdlc3R1cmVSZWNvZ25pemVyXTsKKworICAgIGlmIChvdGhlckdlc3R1cmVS
ZWNvZ25pemVyID09IF9pbWFnZUV4dHJhY3Rpb25EZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcikK
KyAgICAgICAgcmV0dXJuICFbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFj
dGlvbjpnZXN0dXJlUmVjb2duaXplcl07CisjZW5kaWYKKwogICAgIGlmIChpc1NhbWVQYWlyKGdl
c3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfaGlnaGxpZ2h0TG9uZ1By
ZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCksIF9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5n
ZXQoKSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKQEAgLTIyNzQsNyArMjI4Miw3IEBAIC0gKEJP
T0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2du
aXplciBzaG91bGRSZWNvZ25pCiAgICAgICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBsb3Vw
ZUdlc3R1cmUgfHwgb3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBsb3VwZUdlc3R1cmUpCiAgICAg
ICAgICAgICByZXR1cm4gWUVTOwogCi0gICAgICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNL
aW5kT2ZDbGFzczp0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpXSB8fCBbb3RoZXJHZXN0dXJl
UmVjb2duaXplciBpc0tpbmRPZkNsYXNzOnRhcEFuZEFIYWxmUmVjb2duaXplckNsYXNzKCldKQor
ICAgICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIuX3drX2lzVGFwQW5kQUhhbGYgfHwgb3RoZXJH
ZXN0dXJlUmVjb2duaXplci5fd2tfaXNUYXBBbmRBSGFsZikKICAgICAgICAgICAgIHJldHVybiBZ
RVM7CiAgICAgfQogCkBAIC03NTEzLDYgKzc1MjEsMTUgQEAgLSAoQk9PTClfc2hvdWxkVXNlTGVn
YWN5U2VsZWN0UG9wb3ZlckRpc21pc3NhbEJlaGF2aW9yCiAgICAgcmV0dXJuIFdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc0RhdGFBY3RpdmF0aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKKworLSAoQk9PTClzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFj
dGlvbjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmUKK3sKKyAgICByZXR1cm4gZ2VzdHVy
ZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1cmVdIHx8IGdlc3R1cmUu
X3drX2lzVGFwQW5kQUhhbGYgfHwgZ2VzdHVyZSA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dCBmb3JjZVByZXNzR2VzdHVyZV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKKwogI2lmIEhBVkUoUEFTVEVCT0FSRF9EQVRBX09XTkVSKQogCiBzdGF0aWMgV2ViQ29y
ZTo6RGF0YU93bmVyVHlwZSBjb3JlRGF0YU93bmVyVHlwZShfVUlEYXRhT3duZXIgcGxhdGZvcm1U
eXBlKQpAQCAtNzY1OSwxMiArNzY3Niw5IEBAIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0CiAgICAg
aWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIpCiAg
ICAgICAgIHJldHVybiBOTzsKIAotICAgIEJPT0wgaXNMb3VwZUdlc3R1cmUgPSBnZXN0dXJlUmVj
b2duaXplciA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBsb3VwZUdlc3R1cmVdOwotICAg
IEJPT0wgaXNUYXBBbmRBSGFsZkdlc3R1cmUgPSBbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZD
bGFzczp0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpXTsKLQogI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQogICAgIGlmIChkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VF
eHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCi0gICAgICAgIHJldHVybiBpc0xv
dXBlR2VzdHVyZSB8fCBpc1RhcEFuZEFIYWxmR2VzdHVyZSB8fCBnZXN0dXJlUmVjb2duaXplciA9
PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBmb3JjZVByZXNzR2VzdHVyZV07CisgICAgICAg
IHJldHVybiBbc2VsZiBzaG91bGREZWZlckdlc3R1cmVEdWVUb0ltYWdlRXh0cmFjdGlvbjpnZXN0
dXJlUmVjb2duaXplcl07CiAjZW5kaWYKIAogICAgIGF1dG8gbWF5RGVsYXlSZXNldE9mQ29udGFp
bmluZ1N1YmdyYXBoID0gWyZdKFVJR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUpIC0+IEJPT0wg
ewpAQCAtNzY3OCwxMCArNzY5MiwxMCBAQCAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyOihXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdAogICAgICAg
ICAgICAgcmV0dXJuIFlFUzsKICNlbmRpZgogCi0gICAgICAgIGlmIChpc1RhcEFuZEFIYWxmR2Vz
dHVyZSkKKyAgICAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyLl93a19pc1RhcEFuZEFIYWxmKQog
ICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAotICAgICAgICBpZiAoaXNMb3VwZUdlc3R1cmUpCisg
ICAgICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBbX3RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dCBsb3VwZUdlc3R1cmVdKQogICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAogICAgICAgICBpZiAo
W2dlc3R1cmUgaXNLaW5kT2ZDbGFzczpVSVRhcEdlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkgewpA
QCAtODY4NSwxMyArODY5OSwxNSBAQCAtIChCT09MKV9kcmFnSW50ZXJhY3Rpb246KFVJRHJhZ0lu
dGVyYWN0aW9uICopaW50ZXJhY3Rpb24gaXRlbTooVUlEcmFnSXRlbSAqKWl0ZQogCiAtICh2b2lk
KWRyYWdJbnRlcmFjdGlvbjooVUlEcmFnSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBpdGVtOihV
SURyYWdJdGVtICopaXRlbSB3aWxsQW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvcjooaWQgPFVJRHJh
Z0FuaW1hdGluZz4pYW5pbWF0b3IKIHsKKyAgICBfaXNBbmltYXRpbmdEcmFnQ2FuY2VsID0gWUVT
OwogICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBpbnRlcmFjdGlvbiB3aWxsQW5p
bWF0ZUNhbmNlbFdpdGhBbmltYXRvciIpOwogICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOltw
cm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBwYWdlID0gX3BhZ2VdIChVSVZpZXdBbmlt
YXRpbmdQb3NpdGlvbiBmaW5hbFBvc2l0aW9uKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKERyYWdB
bmREcm9wLCAiRHJhZyBpbnRlcmFjdGlvbiB3aWxsQW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvciAo
YW5pbWF0aW9uIGNvbXBsZXRpb24gYmxvY2sgZmlyZWQpIik7CiAgICAgICAgIHBhZ2UtPmRyYWdD
YW5jZWxsZWQoKTsKICAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbiA9IHByb3RlY3RlZFNlbGYt
Pl9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUudGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSkg
ewotICAgICAgICAgICAgcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29t
cGxldGlvbl0gKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgICAgICAgICAgcGFn
ZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29tcGxldGlvbiwgcHJvdGVjdGVk
U2VsZl0gKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICAgICAgICAgIGNv
bXBsZXRpb24oKTsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5faXNBbmltYXRpbmdE
cmFnQ2FuY2VsID0gTk87CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH1dOwpAQCAt
OTU0Myw2ICs5NTU5LDE1IEBAIC0gKFdLRm9ybVNlbGVjdENvbnRyb2wgKilzZWxlY3RDb250cm9s
CiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAoQk9PTClpc0FuaW1hdGluZ0RyYWdDYW5jZWwKK3sK
KyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIHJldHVybiBfaXNBbmltYXRpbmdEcmFnQ2Fu
Y2VsOworI2Vsc2UKKyAgICByZXR1cm4gTk87CisjZW5kaWYKK30KKwogLSAodm9pZClfc2ltdWxh
dGVUZXh0RW50ZXJlZDooTlNTdHJpbmcgKil0ZXh0CiB7CiAjaWYgSEFWRShQRVBQRVJfVUlfQ09S
RSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
NTE3YmRkMDY0MmEyMDc1MmU2ZGQ4ODg0Y2I4MjdkN2E4ODc2M2Y2Li4xMzM2MDIwMDNhZDBiZjI0
MDBjMDg0Y2MzNDEzMzc4YTRkZmQxZmMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDQtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3
NDYxMCk6IFVuYWJsZSB0byBkcmFnIGltYWdlcyB3aGVuIGltYWdlIGV4dHJhY3Rpb24gaXMgZW5h
YmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
MjExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjIyOTU2Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc29tZSBuZXcg
dGVzdGluZyBpbmZyYXN0cnVjdHVyZTsgc2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlw
dENvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OmlzQW5pbWF0aW5nRHJhZ0NhbmNlbCBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgbmV3IHRl
c3RpbmcgaG9vayB0byByZXR1cm4gd2hldGhlciBvciBub3QgdGhlIHdlYiB2aWV3J3MgZHJhZyBp
bnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYW5pbWF0aW5nIGEgZHJhZworICAgICAgICBjYW5jZWwg
KGkuZS4sIHRoZSBkcmFnIHByZXZpZXcgaXMgYW5pbWF0aW5nIGJhY2sgdG8gaXRzIG9yaWdpbmFs
IGZyYW1lKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVmYXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6a2V5VHlwZU1hcHBpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRyYWdJbnRlcmFjdGlvblBv
bGljeSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgdGVzdCBvcHRpb24gdGhhdCBhbGxvd3MgdGVz
dHMgdG8gb3ZlcnJpZGUgdGhlIGRyYWcgaW50ZXJhY3Rpb24gcG9saWN5IHRvICJhbHdheXMtYWxs
b3ciLAorICAgICAgICAiYWx3YXlzLWRpc2FsbG93IiwgYW5kIHRoZSBkZWZhdWx0IHZhbHVlLiBU
aGlzIG9wdGlvbiBhbGxvd3MgdXMgdG8gZm9yY2UgZHJhZyBhbmQgZHJvcCB0byBiZSBlbmFibGVk
IHdoZW4KKyAgICAgICAgdGVzdGluZyBvbiBpUGhvbmUgc2ltdWxhdG9yLgorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6
OmRyYWdJbnRlcmFjdGlvblBvbGljeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVySU9TOjppc0FuaW1hdGluZ0RyYWdDYW5jZWwgY29uc3QpOgorCiAyMDIx
LTA0LTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjY3NzYzKSBOZXR3b3JrUHJvY2VzcyBuZXZlciB0ZXJtaW5hdGVz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCA4MWVlMmFj
OTA1NTE4ZTU2N2JiNWNkMDhkNTVhYTQ4MWM5OWEwYTJjLi5kYTU3MmJiMWEzMWM4NTY0MGU5MTY3
MzNiZWUyMzJmNWRjZGQxYWMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwKQEAgLTkwLDYgKzkwLDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7
CiAgICAgdW5kZWZpbmVkIHJhd0tleURvd24oRE9NU3RyaW5nIGtleSk7CiAgICAgdW5kZWZpbmVk
IHJhd0tleVVwKERPTVN0cmluZyBrZXkpOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gaXNBbmltYXRpbmdEcmFnQ2FuY2VsOworCiAgICAgLy8gZXZlbnRzSlNPTiBkZXNjcmliZXMg
YSBzZXJpZXMgb2YgdXNlciBldmVudHMgaW4gSlNPTiBmb3JtLiBGb3IgdGhlIGtleXMsIHNlZSBI
SURFdmVudEdlbmVyYXRvci5tbS4KICAgICAvLyBGb3IgZXhhbXBsZSwgdGhpcyBKU09OIGRlc2Ny
aWJlcyBhIHRvdWNoIGRvd24gZm9sbG93ZWQgYnkgYSB0b3VjaCB1cCAoaS5lLiBhIHNpbmdsZSB0
YXApLgogICAgIC8vICB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA5NjFjZDk5MGY0Y2Ux
YjNiNjEyYzIyOGNlMjExNjVkOTFkZDcyNjEuLjUxMzhhZGI4YmU1YzE4NmRmMjUyZmY0ZjA4NzMy
N2ZhNjY4M2RjN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xNzYsNiArMTc2LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9v
bCBpc0FuaW1hdGluZ0RyYWdDYW5jZWwoKSBjb25zdAorICAgIHsKKyAgICAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHZpcnR1YWwgdm9p
ZCByYXdLZXlEb3duKEpTU3RyaW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0
dWFsIHZvaWQgcmF3S2V5VXAoSlNTdHJpbmdSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDE2MDEzODg4OWY0ZTMyNWNj
ODM2NDgwNTY1ODE4YmFjNGRhOWEwMWIuLjVkNjc1OWQ1YjJiZTc3ODBkNTk2NzJlODE3NDE0ZWEy
ZDk5ODMyZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMTMs
NiArMTEzLDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQog
ICAgICAgICAgICAgeyAiYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0sCiAgICAg
ICAgICAgICB7ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgeyB9IH0sCiAgICAgICAgICAgICB7ICJj
b250ZW50TW9kZSIsIHsgfSB9LAorICAgICAgICAgICAgeyAiZHJhZ0ludGVyYWN0aW9uUG9saWN5
IiwgeyB9IH0sCiAgICAgICAgICAgICB7ICJqc2NPcHRpb25zIiwgeyB9IH0sCiAgICAgICAgICAg
ICB7ICJzdGFuZGFsb25lV2ViQXBwbGljYXRpb25VUkwiLCB7IH0gfSwKICAgICAgICAgfTsKQEAg
LTE2MSw2ICsxNjIsNyBAQCBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRl
c3RIZWFkZXJLZXlUeXBlPiYgVGVzdE9wdGlvbnM6OmtleVR5cGVNYQogICAgICAgICB7ICJhcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIiLCBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1
bm5lciB9LAogICAgICAgICB7ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgVGVzdEhlYWRlcktleVR5
cGU6OlN0cmluZ1JlbGF0aXZlUGF0aFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAiY29udGVudE1v
ZGUiLCBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lciB9LAorICAgICAgICB7ICJk
cmFnSW50ZXJhY3Rpb25Qb2xpY3kiLCBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5l
ciB9LAogICAgICAgICB7ICJqc2NPcHRpb25zIiwgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1Rl
c3RSdW5uZXIgfSwKICAgICAgICAgeyAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMIiwgVGVz
dEhlYWRlcktleVR5cGU6OlN0cmluZ1VSTFRlc3RSdW5uZXIgfSwKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oCmluZGV4IDM4NmM5MTAyMDRmMDcyOWJiZTQ0ZjdkMTRlMGM4MTFlOGEx
MjJmYjAuLmZhMmMyOWRjMjk5NmNiYzM5ZjA4OTU3N2VhYmM1OGMyYjViOWM3NjkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAg
IHN0ZDo6c3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
ciIpOyB9CiAgICAgc3RkOjpzdHJpbmcgYXBwbGljYXRpb25NYW5pZmVzdCgpIGNvbnN0IHsgcmV0
dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsg
fQogICAgIHN0ZDo6c3RyaW5nIGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVGVz
dFJ1bm5lckZlYXR1cmVWYWx1ZSgiY29udGVudE1vZGUiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGRy
YWdJbnRlcmFjdGlvblBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0
dXJlVmFsdWUoImRyYWdJbnRlcmFjdGlvblBvbGljeSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNj
T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImpz
Y09wdGlvbnMiKTsgfQogICAgIHN0ZDo6c3RyaW5nIHN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVS
TCgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInN0YW5kYWxv
bmVXZWJBcHBsaWNhdGlvblVSTCIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92
ZXJyaWRlTGFuZ3VhZ2VzKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZl
YXR1cmVWYWx1ZSgibGFuZ3VhZ2UiKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9UZXN0Q29udHJvbGxlcklPUy5tbQppbmRleCA0Y2YxZjQ5ZWNmY2Q1OTg0ZmJmNjhhMDdmNWIy
YjlhMDYyY2QxZjllLi43ZTBjN2ZmMjNkZjAxNzU2MWIzZDdlZjFjYWNhODI1ZjRkNzM0NThiIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQpA
QCAtMTU0LDYgKzE1NCwxNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJl
ZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogI2VuZGlmCiB9CiAKK3N0YXRpYyBfV0tEcmFn
SW50ZXJhY3Rpb25Qb2xpY3kgZHJhZ0ludGVyYWN0aW9uUG9saWN5KGNvbnN0IFRlc3RPcHRpb25z
JiBvcHRpb25zKQoreworICAgIGF1dG8gcG9saWN5ID0gb3B0aW9ucy5kcmFnSW50ZXJhY3Rpb25Q
b2xpY3koKTsKKyAgICBpZiAocG9saWN5ID09ICJhbHdheXMtZW5hYmxlIikKKyAgICAgICAgcmV0
dXJuIF9XS0RyYWdJbnRlcmFjdGlvblBvbGljeUFsd2F5c0VuYWJsZTsKKyAgICBpZiAocG9saWN5
ID09ICJhbHdheXMtZGlzYWJsZSIpCisgICAgICAgIHJldHVybiBfV0tEcmFnSW50ZXJhY3Rpb25Q
b2xpY3lBbHdheXNEaXNhYmxlOworICAgIHJldHVybiBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3lE
ZWZhdWx0OworfQorCiBib29sIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgY29jb2FS
ZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKG9wdGlvbnMpOwpAQCAtMjEyLDYgKzIyMiw3IEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVl
cyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0CiAgICAgICAgIFt3ZWJWaWV3IF9jbGVhckludGVyZmFj
ZU9yaWVudGF0aW9uT3ZlcnJpZGVdOwogICAgICAgICBbd2ViVmlldyByZXNldEN1c3RvbU1lbnVB
Y3Rpb25dOwogICAgICAgICBbd2ViVmlldyBzZXRBbGxvd2VkTWVudUFjdGlvbnM6bmlsXTsKKyAg
ICAgICAgd2ViVmlldy5fZHJhZ0ludGVyYWN0aW9uUG9saWN5ID0gZHJhZ0ludGVyYWN0aW9uUG9s
aWN5KG9wdGlvbnMpOwogCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHdlYlZp
ZXcuc2Nyb2xsVmlldzsKICAgICAgICAgW3Njcm9sbFZpZXcgX3JlbW92ZUFsbEFuaW1hdGlvbnM6
WUVTXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9s
bGVySU9TLmgKaW5kZXggNmQxMzYzZWM3NDJiOTIyODY4NDAxN2M5NTcyYWQwMjkxMWU3NWIzOC4u
OGUyOWY0NzVlMGNlMDk2OWVmODQyZDk5YTgwZjI2Y2IzZTJiZThiOCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTEzNCw2
ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0S2V5Ym9hcmRJbnB1dE1vZGVJZGVudGlm
aWVyKEpTU3RyaW5nUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUNhcHNMb2NrKEpTVmFs
dWVSZWYpIG92ZXJyaWRlOwogICAgIGJvb2wga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVk
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0FuaW1hdGluZ0RyYWdDYW5jZWwoKSBjb25z
dCBvdmVycmlkZTsKICAgICBKU09iamVjdFJlZiBhdHRhY2htZW50SW5mbyhKU1N0cmluZ1JlZikg
b3ZlcnJpZGU7CiAgICAgVUlWaWV3ICpwbGF0Zm9ybUNvbnRlbnRWaWV3KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgSlNPYmplY3RSZWYgY2FsZW5kYXJUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0K
aW5kZXggMjVhZDI2YzU0NTI5MTNjYjQyMTAxZWU1OGIwNjQ1ZmJkOThkYjlhMi4uNmQzNWIyMmNi
ZTkzYTYxNzJhZGU2MjhmYzNiYjlmNzU3MjNhMGI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMTE3MCw2ICsxMTcw
LDExIEBAIGJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9TOjprZXlib2FyZElzQXV0b21hdGljYWxs
eVNoaWZ0ZWQoKSBjb25zdAogICAgIHJldHVybiBVSUtleWJvYXJkSW1wbC5hY3RpdmVJbnN0YW5j
ZS5pc0F1dG9TaGlmdGVkOwogfQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNBbmlt
YXRpbmdEcmFnQ2FuY2VsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2ViVmlldygpLl9hbmltYXRp
bmdEcmFnQ2FuY2VsOworfQorCiBKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmF0
dGFjaG1lbnRJbmZvKEpTU3RyaW5nUmVmIGpzQXR0YWNobWVudElkZW50aWZpZXIpCiB7CiAgICAg
YXV0byBhdHRhY2htZW50SWRlbnRpZmllciA9IHRvV1RGU3RyaW5nKGpzQXR0YWNobWVudElkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDVjYjkxNzUxNGRiOTg2NWE3MGE1NzVjNjcwMmQ2MzMyNDkxYjQwY2Iu
LjZjOGRkZTJhMTEwOTJhMWY2MzExNDNkNWM0MGQ0NzM5ZmI3ZWZlMGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMS0wNC0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjc0NjEwKTogVW5hYmxlIHRvIGRyYWcgaW1hZ2Vz
IHdoZW4gaW1hZ2UgZXh0cmFjdGlvbiBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc2MjI5NTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0aGF0IGluaXRpYXRlcyBkcmFnZ2luZyBvbiBhbiBp
bWFnZSB1c2luZyBhIHN5bnRoZXNpemVkIGV2ZW50IHN0cmVhbSwgYW5kIHZlcmlmaWVzIHRoYXQK
KyAgICAgICAgImRyYWdzdGFydCIgYW5kICJkcmFnZW5kIiBldmVudHMgYXJlIGRpc3BhdGNoZWQg
b24gdGhlIGltYWdlLgorCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1p
bWFnZS1ieS1sb25nLXByZXNzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25nLXByZXNzaW5nLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cu
VUlIZWxwZXIuaXNBbmltYXRpbmdEcmFnQ2FuY2VsKToKKworICAgICAgICBBZGQgYSBgVUlIZWxw
ZXJgIG1ldGhvZCB0aGF0IHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGRyYWdnaW5nIGFuaW1h
dGlvbiBpcyBiZWluZyBjYW5jZWxsZWQuIFRoZSBuZXcgdGVzdCB1c2VzCisgICAgICAgIHRoaXMg
aG9vayB0byB3YWl0IGZvciB0aGUgZHJhZyBjYW5jZWwgYW5pbWF0aW9uIHRvIGVuZCBiZWZvcmUg
cHJvY2VlZGluZyB0byB0aGUgbmV4dCB0ZXN0LgorCiAyMDIxLTA0LTA1ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IEFTU0VSVElP
TiBGQUlMRUQ6IHNldHRpbmdzKCkudGV4dEF1dG9zaXppbmdFbmFibGVkKCkgJiYgc2V0dGluZ3Mo
KS50ZXh0QXV0b3NpemluZ1VzZXNJZGVtcG90ZW50TW9kZSgpIG9uIHZhcmlvdXMgdGVzdHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9kcmFnc3RhcnQtb24taW1hZ2Ut
YnktbG9uZy1wcmVzc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
b3MvZHJhZ3N0YXJ0LW9uLWltYWdlLWJ5LWxvbmctcHJlc3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcyMzA0ODEzOTIxNzY3NGYzZWMxZmJkYzFhZDFjNTJiMzUyZDM0NDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvZHJhZ3N0YXJ0LW9uLWltYWdl
LWJ5LWxvbmctcHJlc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworVGhpcyB0
ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIuIFRvIG1hbnVhbGx5IHRlc3QsIGxvYWQgdGhl
IHBhZ2UgaW4gYSBjb25maWd1cmF0aW9uIHdoZXJlIGRyYWcgYW5kIGRyb3AgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0OyBzdGFydCBhIGRyYWcgb24gdGhlIGltYWdlIGFib3ZlIGJ5IGxvbmctcHJlc3Np
bmcgaXQsIGFuZCB0aGVuIGRyYWcgdGhlIGltYWdlIG9mZiB0byB0aGUgc2lkZSBvZiB0aGUgc2Ny
ZWVuIGFuZCBsZXQgZ28uICdkcmFnc3RhcnQnIGFuZCAnZHJhZ2VuZCcgZXZlbnRzIHNob3VsZCBi
ZSBkaXNwYXRjaGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdGFy
dGVkIGRyYWcKK1BBU1MgRW5kZWQgZHJhZworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy9kcmFnc3RhcnQtb24taW1hZ2UtYnktbG9uZy1wcmVzc2luZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25nLXByZXNzaW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTgyMTYxZGJhZmQ3NTM5YzhlY2QyZThkNThiNDZhY2JkMGYwNWZjNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9kcmFnc3RhcnQt
b24taW1hZ2UtYnktbG9uZy1wcmVzc2luZy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQ
RSBIVE1MPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZHJhZ0ludGVyYWN0aW9uUG9saWN5PWFs
d2F5cy1lbmFibGUgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgcmVx
dWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4gVG8gbWFudWFsbHkgdGVzdCwgbG9hZCB0aGUgcGFnZSBp
biBhIGNvbmZpZ3VyYXRpb24gd2hlcmUgZHJhZyBhbmQgZHJvcCBpcyBlbmFibGVkIGJ5IGRlZmF1
bHQ7IHN0YXJ0IGEgZHJhZyBvbiB0aGUgaW1hZ2UgYWJvdmUgYnkgbG9uZy1wcmVzc2luZyBpdCwg
YW5kIHRoZW4gZHJhZyB0aGUgaW1hZ2Ugb2ZmIHRvIHRoZSBzaWRlIG9mIHRoZSBzY3JlZW4gYW5k
IGxldCBnby4gJ2RyYWdzdGFydCcgYW5kICdkcmFnZW5kJyBldmVudHMgc2hvdWxkIGJlIGRpc3Bh
dGNoZWQuIik7CisKKyAgICBsZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWci
KTsKKyAgICBpbWFnZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCAoKSA9PiB7CisgICAg
ICAgIHRlc3RQYXNzZWQoIlN0YXJ0ZWQgZHJhZyIpOworICAgIH0pOworCisgICAgaW1hZ2UuYWRk
RXZlbnRMaXN0ZW5lcigiZHJhZ2VuZCIsICgpID0+IHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRW5k
ZWQgZHJhZyIpOworICAgIH0pOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbGV0IGNsaWVudFJlY3QgPSBpbWFnZS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgICBhd2FpdCBVSUhlbHBlci5zZW5kRXZlbnRTdHJlYW0obmV3IFVJSGVscGVy
LkV2ZW50U3RyZWFtQnVpbGRlcigpCisgICAgICAgIC5iZWdpbihjbGllbnRSZWN0LmxlZnQgKyAo
Y2xpZW50UmVjdC53aWR0aCAvIDIpLCBjbGllbnRSZWN0LnRvcCArIChjbGllbnRSZWN0LmhlaWdo
dCAvIDIpKQorICAgICAgICAud2FpdCgxLjUpCisgICAgICAgIC5tb3ZlKDMwMCwgMzAwLCAxKQor
ICAgICAgICAud2FpdCgwLjUpCisgICAgICAgIC5lbmQoKQorICAgICAgICAudGFrZVJlc3VsdCgp
KTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGlmICghYXdhaXQgVUlIZWxwZXIuaXNB
bmltYXRpbmdEcmFnQ2FuY2VsKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW1n
IHNyYz0iLi4vcmVzb3VyY2VzL2FiZS5wbmciPgorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorICAgIDxwIGlkPSJjb25zb2xlIj48L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggZTZmYWYw
MTJkZmZmN2VhZGYyMDAzNzI5ZTZjYTEwMzE2MDc5N2NkOC4uZTkwMDljZWVhYjUxNTQwNTgzYWMz
ZjI1MzZmNDUyZGM3ZjA5N2MxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0z
NzAsNiArMzcwLDEzIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIGlzQW5pbWF0aW5nRHJhZ0NhbmNlbCgpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuaXNBbmltYXRpbmdEcmFnQ2FuY2Vs
YCwgcmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCiAgICAgc3RhdGljIGVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpCiAgICAgewogICAg
ICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425243</attachid>
            <date>2021-04-05 23:17:24 -0700</date>
            <delta_ts>2021-04-06 13:39:16 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-224211-20210405231723.patch</filename>
            <type>text/plain</type>
            <size>24978</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFmNTU5MDIyNDljYTNhODNk
MmU3OTM1NDgwM2U2NGRhOTM0NzBkOGYuLjE4OGRiN2Y5ODdlYzY0N2Y0NjY3MWUwYmY2ZmJhNTll
ZTFmMWNjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDQtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3
NDYxMCk6IFVuYWJsZSB0byBkcmFnIGltYWdlcyB3aGVuIGltYWdlIGV4dHJhY3Rpb24gaXMgZW5h
YmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
MjExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjIyOTU2Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByMjc0NjEwIGludHJvZHVjZWQgYSBuZXcg
ZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplciBpbnRlbmRlZCB0byBwcmV2ZW50IHNldmVyYWwg
dGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBmcm9tCisgICAgICAgIHJlY29nbml6aW5nIGR1cmlu
ZyBwZW5kaW5nIGltYWdlIGV4dHJhY3Rpb24uIEhvd2V2ZXIsIHRoaXMgYWxzbyBjYXVzZXMgZHJh
Z2dpbmcgb24gaU9TIHRvIGZhaWwsIHNpbmNlIHRoZQorICAgICAgICBnZXN0dXJlIHVzZWQgdG8g
aW5pdGlhdGUgZHJhZ2dpbmcgaXMgZXhjbHVkZWQgYnkgdGhlIG5ldyBkZWZlcnJpbmcgZ2VzdHVy
ZSByZWNvZ25pemVyLiBUbyBmaXggdGhpcywgYWxsb3cgdGhlCisgICAgICAgIG5ldyBkZWZlcnJp
bmcgZ2VzdHVyZSB0byByZWNvZ25pemUgc2ltdWx0YW5lb3VzbHkgYWxvbmdzaWRlIGFsbCBnZXN0
dXJlcyB3aXRoIHRoZSBleGNlcHRpb24gb2Ygb25seSB0aGUgZ2VzdHVyZXMKKyAgICAgICAgaXQg
aXMgaW50ZW5kZWQgdG8gZGVmZXIgKGkuZS4gdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcykuCisK
KyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25n
LXByZXNzaW5nLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1By
aXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pc0FuaW1hdGluZ0RyYWdD
YW5jZWxdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAoLVtVSUdlc3R1cmVSZWNvZ25pemVyIF93a19pc1RhcEFuZEFIYWxmXSk6CisK
KyAgICAgICAgQWRkIGEgV2ViS2l0IGNhdGVnb3J5IG1ldGhvZCB0aGF0IHJldHVybnMgd2hldGhl
ciBvciBub3QgYSBnZXN0dXJlIHJlY29nbml6ZXIgaXMgYSB0YXAtYW5kLWEtaGFsZiBnZXN0dXJl
LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkUmVj
b2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisKKyAgICAgICAg
QWxsb3cgdGhlIGltYWdlIGV4dHJhY3Rpb24gZGVmZXJyaW5nIGdlc3R1cmUgdG8gcmVjb2duaXpl
IGFsb25nc2lkZSBhbGwgb3RoZXIgZ2VzdHVyZXMsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZgorICAg
ICAgICB0aGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBkZXRlcm1pbmVkIGJ5IGAtc2hvdWxk
RGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246YC4gVGhpcyBsaW1pdHMgdGhlIGltcGFj
dAorICAgICAgICBvZiB0aGlzIG5ldyBkZWZlcnJpbmcgZ2VzdHVyZSwgc3VjaCB0aGF0IGl0IG9u
bHkgYWZmZWN0cyB0aGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBpdCBpcyBpbnRlbmRlZCB0
byBkZWZlci4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNob3VsZERlZmVyR2VzdHVyZUR1
ZVRvSW1hZ2VFeHRyYWN0aW9uOl0pOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8g
ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IGEgZ2VzdHVyZSByZWNvZ25pemVyIHNob3VsZCBiZSBk
ZWZlcnJlZCwgZHVlIHRvIHBlbmRpbmcgaW1hZ2UKKyAgICAgICAgZXh0cmFjdGlvbi4gV2UgcHVs
bCB0aGlzIGxvZ2ljIGJlaGluZCBhIGhlbHBlciBtZXRob2QgYmVjYXVzZSBpdCdzIG5vdyBjb25z
dWx0ZWQgZnJvbSB0d28gY2FsbCBzaXRlcy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOnNob3VsZERlZmVyT3RoZXJHZXN0dXJlUmVjb2duaXpl
cjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkcmFnSW50ZXJhY3Rpb246aXRlbTp3aWxs
QW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBp
c0FuaW1hdGluZ0RyYWdDYW5jZWxdKToKKworICAgICAgICBBZGQgYSB0ZXN0aW5nIGhvb2sgdG8g
cmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBkcmFnIGNhbmNlbCBhbmltYXRpb24gaXMgcnVubmlu
Zy4gU2VlIFRvb2xzL0NoYW5nZUxvZyBhbmQgdGhlCisgICAgICAgIG5ldyBsYXlvdXQgdGVzdCBm
b3IgbW9yZSBkZXRhaWwuCisKKyAgICAgICAgKHRhcEFuZEFIYWxmUmVjb2duaXplckNsYXNzKTog
RGVsZXRlZC4KKwogMjAyMS0wNC0wNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG93IHRoZSBXZWJBdXRobiBVSSB0byBpbmZvcm0gdXNlcnMgYWJvdXQg
QmlvbWV0cnlMb2Nrb3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXggYWVkOWU5
YjYzMzcwMDE2MGZiNDlkZjY0ZWM2Y2VlNTE4Y2NmMDY5Zi4uMjdlOTkxMGU1OTY2ZmEzYTY3MDc2
NDAxMmQ1OTcwMzM3OTc5NmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaApAQCAt
NDIsNiArNDIsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAq
X3Njcm9sbGluZ1RyZWVBc1RleHQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
TnVtYmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQ0dSZWN0IF9kcmFnQ2FyZXRSZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBnZXR0ZXI9X2lzQW5pbWF0aW5nRHJhZ0NhbmNlbCkgQk9PTCBfYW5pbWF0aW5nRHJhZ0Nh
bmNlbDsKIAogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQ7CiAtICh2b2lkKWtleWJv
YXJkQWNjZXNzb3J5QmFyUHJldmlvdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXggN2NjMWQwYWQ4M2IwNWVl
MWVmNGE2ZDQwNjllYjA2YjY1MDA1YmZmYy4uODcyYjBiMTI1YmYwN2JkNWY2NjQ5NTQyODBlOTc3
NGViZTdmNjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMzEzLDYgKzMxMywxNSBAQCAtIChDR1JlY3Qp
X2RyYWdDYXJldFJlY3QKICNlbmRpZgogfQogCistIChCT09MKV9pc0FuaW1hdGluZ0RyYWdDYW5j
ZWwKK3sKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIHJldHVybiBbX2NvbnRlbnRWaWV3
IGlzQW5pbWF0aW5nRHJhZ0NhbmNlbF07CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgor
fQorCiAtICh2b2lkKV9zaW11bGF0ZUVsZW1lbnRBY3Rpb246KF9XS0VsZW1lbnRBY3Rpb25UeXBl
KWFjdGlvblR5cGUgYXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgogewogICAgIFtfY29udGVu
dFZpZXcgX3NpbXVsYXRlRWxlbWVudEFjdGlvbjphY3Rpb25UeXBlIGF0TG9jYXRpb246bG9jYXRp
b25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IDE2MTM1MzU5ZDJlNjlhMGM2MjQ3ZjMwMGVhODJmN2NlMzkz
OTc4YzUuLmY2MzQyMjVmMGQ2Y2VjMWRiZjNiOTNmOTcxZGNmMDUwMGE4YTY5MzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTQzOCw2ICs0MzgsNyBAQCBlbnVtIGNsYXNzIFByb2NlZWRXaXRoSW1hZ2VFeHRy
YWN0aW9uIDogYm9vbCB7CiAgICAgV2ViS2l0OjpEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUgX2Ry
YWdEcm9wSW50ZXJhY3Rpb25TdGF0ZTsKICAgICBSZXRhaW5QdHI8VUlEcmFnSW50ZXJhY3Rpb24+
IF9kcmFnSW50ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJRHJvcEludGVyYWN0aW9uPiBfZHJv
cEludGVyYWN0aW9uOworICAgIEJPT0wgX2lzQW5pbWF0aW5nRHJhZ0NhbmNlbDsKICAgICBCT09M
IF9zaG91bGRSZXN0b3JlQ2FsbG91dEJhckFmdGVyRHJvcDsKICAgICBSZXRhaW5QdHI8VUlWaWV3
PiBfdmlzaWJsZUNvbnRlbnRWaWV3U25hcHNob3Q7CiAgICAgUmV0YWluUHRyPFVJVmlldz4gX3Vu
c2VsZWN0ZWRDb250ZW50U25hcHNob3Q7CkBAIC03MzUsNiArNzM2LDkgQEAgRk9SX0VBQ0hfUFJJ
VkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZP
Ul9XRUJfVklFVykKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmZv
cm1JbnB1dExhYmVsOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0RhdGVUaW1l
SW5wdXRDb250cm9sICpkYXRlVGltZUlucHV0Q29udHJvbDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgV0tGb3JtU2VsZWN0Q29udHJvbCAqc2VsZWN0Q29udHJvbDsKKyNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9
aXNBbmltYXRpbmdEcmFnQ2FuY2VsKSBCT09MIGFuaW1hdGluZ0RyYWdDYW5jZWw7CisjZW5kaWYK
IAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA2NGJlN2Y5YjZkYjdkNzU4MGQyYTcxOGJhOTVj
YmYzNzU5MjBjOWJkLi4xNjcwYmI2YzI0NmZkMDI3OWE0ZjU0N2NkOGE2OTc3NzgxODE3OGM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KQEAgLTY4MSw2ICs2ODEsMTYgQEAgLSAodm9pZClfd2tfY2FuY2VsCiAg
ICAgW3NlbGYgc2V0RW5hYmxlZDpZRVNdOwogfQogCistIChCT09MKV93a19pc1RhcEFuZEFIYWxm
Cit7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgc3RhdGljIENs
YXNzIHRhcEFuZEFIYWxmR2VzdHVyZVJlY29nbml6ZXJDbGFzczsKKyAgICBkaXNwYXRjaF9vbmNl
KCZvbmNlVG9rZW4sIF57CisgICAgICAgIHRhcEFuZEFIYWxmR2VzdHVyZVJlY29nbml6ZXJDbGFz
cyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiVUlUYXBBbmRBSGFsZlJlY29nbml6ZXIiKTsKKyAgICB9
KTsKKyAgICByZXR1cm4gW3NlbGYgaXNLaW5kT2ZDbGFzczp0YXBBbmRBSGFsZkdlc3R1cmVSZWNv
Z25pemVyQ2xhc3NdOworfQorCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tJ
bnRlcmFjdGlvblByaXZhdGUpCkBAIC0yMjI2LDE2ICsyMjM2LDYgQEAgc3RhdGljIGlubGluZSBi
b29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXpl
ciAqYiwgVUkKICAgICByZXR1cm4gKGEgPT0geCAmJiBiID09IHkpIHx8IChiID09IHggJiYgYSA9
PSB5KTsKIH0KIAotc3RhdGljIENsYXNzIHRhcEFuZEFIYWxmUmVjb2duaXplckNsYXNzKCkKLXsK
LSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBzdGF0aWMgQ2xhc3Mg
dGhlQ2xhc3M7Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICB0aGVD
bGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiVUlUYXBBbmRBSGFsZlJlY29nbml6ZXIiKTsKLSAg
ICB9KTsKLSAgICByZXR1cm4gdGhlQ2xhc3M7Ci19Ci0KIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6
ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25p
emVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXpl
ciopb3RoZXJHZXN0dXJlUmVjb2duaXplcgogewogICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLmRlZmVycmluZ0dlc3R1cmVzKSB7CkBAIC0yMjQ2
LDYgKzIyNDYsMTQgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2du
aXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY29nbmkKICAgICBpZiAoW2dlc3R1cmVS
ZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5jbGFz
c10gJiYgW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKICAgICAgICAgcmV0dXJuIFlFUzsKIAorI2lmIEVOQUJM
RShJTUFHRV9FWFRSQUNUSU9OKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VF
eHRyYWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiAhW3Nl
bGYgc2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246b3RoZXJHZXN0dXJlUmVj
b2duaXplcl07CisKKyAgICBpZiAob3RoZXJHZXN0dXJlUmVjb2duaXplciA9PSBfaW1hZ2VFeHRy
YWN0aW9uRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiAhW3NlbGYg
c2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29nbml6ZXJd
OworI2VuZGlmCisKICAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwgb3RoZXJH
ZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdl
dCgpLCBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpKQogICAgICAgICByZXR1cm4g
WUVTOwogCkBAIC0yMjc0LDcgKzIyODIsNyBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihV
SUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjb2duaQogICAg
ICAgICBpZiAoZ2VzdHVyZVJlY29nbml6ZXIgPT0gbG91cGVHZXN0dXJlIHx8IG90aGVyR2VzdHVy
ZVJlY29nbml6ZXIgPT0gbG91cGVHZXN0dXJlKQogICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAot
ICAgICAgICBpZiAoW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6dGFwQW5kQUhhbGZS
ZWNvZ25pemVyQ2xhc3MoKV0gfHwgW290aGVyR2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFz
czp0YXBBbmRBSGFsZlJlY29nbml6ZXJDbGFzcygpXSkKKyAgICAgICAgaWYgKGdlc3R1cmVSZWNv
Z25pemVyLl93a19pc1RhcEFuZEFIYWxmIHx8IG90aGVyR2VzdHVyZVJlY29nbml6ZXIuX3drX2lz
VGFwQW5kQUhhbGYpCiAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KIApAQCAtNzUxMyw2
ICs3NTIxLDE1IEBAIC0gKEJPT0wpX3Nob3VsZFVzZUxlZ2FjeVNlbGVjdFBvcG92ZXJEaXNtaXNz
YWxCZWhhdmlvcgogICAgIHJldHVybiBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNEYXRhQWN0
aXZhdGlvbigpOwogfQogCisjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKKy0gKEJPT0wp
c2hvdWxkRGVmZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246KFVJR2VzdHVyZVJlY29nbml6
ZXIgKilnZXN0dXJlCit7CisgICAgcmV0dXJuIGdlc3R1cmUgPT0gW190ZXh0SW50ZXJhY3Rpb25B
c3Npc3RhbnQgbG91cGVHZXN0dXJlXSB8fCBnZXN0dXJlLl93a19pc1RhcEFuZEFIYWxmIHx8IGdl
c3R1cmUgPT0gW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgZm9yY2VQcmVzc0dlc3R1cmVdOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCisKICNpZiBIQVZFKFBBU1RF
Qk9BUkRfREFUQV9PV05FUikKIAogc3RhdGljIFdlYkNvcmU6OkRhdGFPd25lclR5cGUgY29yZURh
dGFPd25lclR5cGUoX1VJRGF0YU93bmVyIHBsYXRmb3JtVHlwZSkKQEAgLTc2NTksMTIgKzc2NzYs
OSBAQCAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdAogICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9
PSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyKQogICAgICAgICByZXR1cm4gTk87CiAKLSAg
ICBCT09MIGlzTG91cGVHZXN0dXJlID0gZ2VzdHVyZVJlY29nbml6ZXIgPT0gW190ZXh0SW50ZXJh
Y3Rpb25Bc3Npc3RhbnQgbG91cGVHZXN0dXJlXTsKLSAgICBCT09MIGlzVGFwQW5kQUhhbGZHZXN0
dXJlID0gW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6dGFwQW5kQUhhbGZSZWNvZ25p
emVyQ2xhc3MoKV07Ci0KICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKICAgICBpZiAoZGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX2ltYWdlRXh0cmFjdGlvbkRlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyKQotICAgICAgICByZXR1cm4gaXNMb3VwZUdlc3R1cmUgfHwgaXNUYXBBbmRB
SGFsZkdlc3R1cmUgfHwgZ2VzdHVyZVJlY29nbml6ZXIgPT0gW190ZXh0SW50ZXJhY3Rpb25Bc3Np
c3RhbnQgZm9yY2VQcmVzc0dlc3R1cmVdOworICAgICAgICByZXR1cm4gW3NlbGYgc2hvdWxkRGVm
ZXJHZXN0dXJlRHVlVG9JbWFnZUV4dHJhY3Rpb246Z2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlm
CiAKICAgICBhdXRvIG1heURlbGF5UmVzZXRPZkNvbnRhaW5pbmdTdWJncmFwaCA9IFsmXShVSUdl
c3R1cmVSZWNvZ25pemVyICpnZXN0dXJlKSAtPiBCT09MIHsKQEAgLTc2NzgsMTAgKzc2OTIsMTAg
QEAgLSAoQk9PTClkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjooV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplciAqKWRlZmVycmluZ0dlc3QKICAgICAgICAgICAgIHJldHVybiBZRVM7CiAjZW5k
aWYKIAotICAgICAgICBpZiAoaXNUYXBBbmRBSGFsZkdlc3R1cmUpCisgICAgICAgIGlmIChnZXN0
dXJlUmVjb2duaXplci5fd2tfaXNUYXBBbmRBSGFsZikKICAgICAgICAgICAgIHJldHVybiBZRVM7
CiAKLSAgICAgICAgaWYgKGlzTG91cGVHZXN0dXJlKQorICAgICAgICBpZiAoZ2VzdHVyZVJlY29n
bml6ZXIgPT0gW190ZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgbG91cGVHZXN0dXJlXSkKICAgICAg
ICAgICAgIHJldHVybiBZRVM7CiAKICAgICAgICAgaWYgKFtnZXN0dXJlIGlzS2luZE9mQ2xhc3M6
VUlUYXBHZXN0dXJlUmVjb2duaXplci5jbGFzc10pIHsKQEAgLTg2ODUsMTMgKzg2OTksMTUgQEAg
LSAoQk9PTClfZHJhZ0ludGVyYWN0aW9uOihVSURyYWdJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9u
IGl0ZW06KFVJRHJhZ0l0ZW0gKilpdGUKIAogLSAodm9pZClkcmFnSW50ZXJhY3Rpb246KFVJRHJh
Z0ludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gaXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0gd2lsbEFu
aW1hdGVDYW5jZWxXaXRoQW5pbWF0b3I6KGlkIDxVSURyYWdBbmltYXRpbmc+KWFuaW1hdG9yCiB7
CisgICAgX2lzQW5pbWF0aW5nRHJhZ0NhbmNlbCA9IFlFUzsKICAgICBSRUxFQVNFX0xPRyhEcmFn
QW5kRHJvcCwgIkRyYWcgaW50ZXJhY3Rpb24gd2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0b3Ii
KTsKICAgICBbYW5pbWF0b3IgYWRkQ29tcGxldGlvbjpbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0
cihzZWxmKSwgcGFnZSA9IF9wYWdlXSAoVUlWaWV3QW5pbWF0aW5nUG9zaXRpb24gZmluYWxQb3Np
dGlvbikgewogICAgICAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJvcCwgIkRyYWcgaW50ZXJhY3Rp
b24gd2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0b3IgKGFuaW1hdGlvbiBjb21wbGV0aW9uIGJs
b2NrIGZpcmVkKSIpOwogICAgICAgICBwYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgIGlm
IChhdXRvIGNvbXBsZXRpb24gPSBwcm90ZWN0ZWRTZWxmLT5fZHJhZ0Ryb3BJbnRlcmFjdGlvblN0
YXRlLnRha2VEcmFnQ2FuY2VsU2V0RG93bkJsb2NrKCkpIHsKLSAgICAgICAgICAgIHBhZ2UtPmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbXBsZXRpb25dIChXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3IpIHsKKyAgICAgICAgICAgIHBhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50
YXRpb25VcGRhdGUoW2NvbXBsZXRpb24sIHByb3RlY3RlZFNlbGZdIChXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IpIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uKCk7CisgICAgICAgICAg
ICAgICAgcHJvdGVjdGVkU2VsZi0+X2lzQW5pbWF0aW5nRHJhZ0NhbmNlbCA9IE5POwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9XTsKQEAgLTk1NDMsNiArOTU1OSwxNSBAQCAtIChX
S0Zvcm1TZWxlY3RDb250cm9sICopc2VsZWN0Q29udHJvbAogICAgIHJldHVybiBuaWw7CiB9CiAK
KyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCistIChCT09MKWlzQW5pbWF0aW5nRHJhZ0NhbmNl
bAoreworICAgIHJldHVybiBfaXNBbmltYXRpbmdEcmFnQ2FuY2VsOworfQorCisjZW5kaWYgLy8g
RU5BQkxFKERSQUdfU1VQUE9SVCkKKwogLSAodm9pZClfc2ltdWxhdGVUZXh0RW50ZXJlZDooTlNT
dHJpbmcgKil0ZXh0CiB7CiAjaWYgSEFWRShQRVBQRVJfVUlfQ09SRSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NTE3YmRkMDY0MmEyMDc1MmU2
ZGQ4ODg0Y2I4MjdkN2E4ODc2M2Y2Li4xMzM2MDIwMDNhZDBiZjI0MDBjMDg0Y2MzNDEzMzc4YTRk
ZmQxZmMwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzcgQEAKKzIwMjEtMDQtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3NDYxMCk6IFVuYWJsZSB0byBk
cmFnIGltYWdlcyB3aGVuIGltYWdlIGV4dHJhY3Rpb24gaXMgZW5hYmxlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjExCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83NjIyOTU2Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc29tZSBuZXcgdGVzdGluZyBpbmZyYXN0cnVj
dHVyZTsgc2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgor
ICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzQW5pbWF0aW5nRHJh
Z0NhbmNlbCBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3RpbmcgaG9vayB0byByZXR1
cm4gd2hldGhlciBvciBub3QgdGhlIHdlYiB2aWV3J3MgZHJhZyBpbnRlcmFjdGlvbiBpcyBjdXJy
ZW50bHkgYW5pbWF0aW5nIGEgZHJhZworICAgICAgICBjYW5jZWwgKGkuZS4sIHRoZSBkcmFnIHBy
ZXZpZXcgaXMgYW5pbWF0aW5nIGJhY2sgdG8gaXRzIG9yaWdpbmFsIGZyYW1lKS4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
T3B0aW9uczo6ZGVmYXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6a2V5VHlwZU1h
cHBpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRyYWdJbnRlcmFjdGlvblBvbGljeSBjb25zdCk6CisKKyAg
ICAgICAgQWRkIGEgdGVzdCBvcHRpb24gdGhhdCBhbGxvd3MgdGVzdHMgdG8gb3ZlcnJpZGUgdGhl
IGRyYWcgaW50ZXJhY3Rpb24gcG9saWN5IHRvICJhbHdheXMtYWxsb3ciLAorICAgICAgICAiYWx3
YXlzLWRpc2FsbG93IiwgYW5kIHRoZSBkZWZhdWx0IHZhbHVlLiBUaGlzIG9wdGlvbiBhbGxvd3Mg
dXMgdG8gZm9yY2UgZHJhZyBhbmQgZHJvcCB0byBiZSBlbmFibGVkIHdoZW4KKyAgICAgICAgdGVz
dGluZyBvbiBpUGhvbmUgc2ltdWxhdG9yLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OmRyYWdJbnRlcmFjdGlvblBv
bGljeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVU
b0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9T
Ojppc0FuaW1hdGluZ0RyYWdDYW5jZWwgY29uc3QpOgorCiAyMDIxLTA0LTA1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjY3NzYzKSBOZXR3b3JrUHJvY2VzcyBuZXZlciB0ZXJtaW5hdGVzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCA4MWVlMmFjOTA1NTE4ZTU2N2JiNWNkMDhk
NTVhYTQ4MWM5OWEwYTJjLi5kYTU3MmJiMWEzMWM4NTY0MGU5MTY3MzNiZWUyMzJmNWRjZGQxYWMz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTkwLDYg
KzkwLDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgdW5kZWZpbmVkIHJh
d0tleURvd24oRE9NU3RyaW5nIGtleSk7CiAgICAgdW5kZWZpbmVkIHJhd0tleVVwKERPTVN0cmlu
ZyBrZXkpOwogCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNBbmltYXRpbmdEcmFn
Q2FuY2VsOworCiAgICAgLy8gZXZlbnRzSlNPTiBkZXNjcmliZXMgYSBzZXJpZXMgb2YgdXNlciBl
dmVudHMgaW4gSlNPTiBmb3JtLiBGb3IgdGhlIGtleXMsIHNlZSBISURFdmVudEdlbmVyYXRvci5t
bS4KICAgICAvLyBGb3IgZXhhbXBsZSwgdGhpcyBKU09OIGRlc2NyaWJlcyBhIHRvdWNoIGRvd24g
Zm9sbG93ZWQgYnkgYSB0b3VjaCB1cCAoaS5lLiBhIHNpbmdsZSB0YXApLgogICAgIC8vICB7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA5NjFjZDk5MGY0Y2UxYjNiNjEyYzIyOGNlMjExNjVk
OTFkZDcyNjEuLjUxMzhhZGI4YmU1YzE4NmRmMjUyZmY0ZjA4NzMyN2ZhNjY4M2RjN2QgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oCkBAIC0xNzYsNiArMTc2LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGluZ0RyYWdD
YW5jZWwoKSBjb25zdAorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHZpcnR1YWwgdm9pZCByYXdLZXlEb3duKEpTU3Ry
aW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmF3S2V5VXAo
SlNTdHJpbmdSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuY3BwCmluZGV4IDE2MDEzODg4OWY0ZTMyNWNjODM2NDgwNTY1ODE4YmFjNGRh
OWEwMWIuLjVkNjc1OWQ1YjJiZTc3ODBkNTk2NzJlODE3NDE0ZWEyZDk5ODMyZWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAgY29uc3Qg
VGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogICAgICAgICAgICAgeyAiYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyIiwgeyB9IH0sCiAgICAgICAgICAgICB7ICJhcHBsaWNh
dGlvbk1hbmlmZXN0IiwgeyB9IH0sCiAgICAgICAgICAgICB7ICJjb250ZW50TW9kZSIsIHsgfSB9
LAorICAgICAgICAgICAgeyAiZHJhZ0ludGVyYWN0aW9uUG9saWN5IiwgeyB9IH0sCiAgICAgICAg
ICAgICB7ICJqc2NPcHRpb25zIiwgeyB9IH0sCiAgICAgICAgICAgICB7ICJzdGFuZGFsb25lV2Vi
QXBwbGljYXRpb25VUkwiLCB7IH0gfSwKICAgICAgICAgfTsKQEAgLTE2MSw2ICsxNjIsNyBAQCBj
b25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJLZXlUeXBlPiYg
VGVzdE9wdGlvbnM6OmtleVR5cGVNYQogICAgICAgICB7ICJhcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIiLCBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lciB9LAogICAgICAgICB7
ICJhcHBsaWNhdGlvbk1hbmlmZXN0IiwgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1JlbGF0aXZl
UGF0aFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAiY29udGVudE1vZGUiLCBUZXN0SGVhZGVyS2V5
VHlwZTo6U3RyaW5nVGVzdFJ1bm5lciB9LAorICAgICAgICB7ICJkcmFnSW50ZXJhY3Rpb25Qb2xp
Y3kiLCBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJq
c2NPcHRpb25zIiwgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1Rlc3RSdW5uZXIgfSwKICAgICAg
ICAgeyAic3RhbmRhbG9uZVdlYkFwcGxpY2F0aW9uVVJMIiwgVGVzdEhlYWRlcktleVR5cGU6OlN0
cmluZ1VSTFRlc3RSdW5uZXIgfSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCmlu
ZGV4IDM4NmM5MTAyMDRmMDcyOWJiZTQ0ZjdkMTRlMGM4MTFlOGExMjJmYjAuLmZhMmMyOWRjMjk5
NmNiYzM5ZjA4OTU3N2VhYmM1OGMyYjViOWM3NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RP
cHRpb25zLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHN0ZDo6c3RyaW5nIGFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJG
ZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIpOyB9CiAgICAgc3RkOjpz
dHJpbmcgYXBwbGljYXRpb25NYW5pZmVzdCgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5u
ZXJGZWF0dXJlVmFsdWUoImFwcGxpY2F0aW9uTWFuaWZlc3QiKTsgfQogICAgIHN0ZDo6c3RyaW5n
IGNvbnRlbnRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVWYWx1
ZSgiY29udGVudE1vZGUiKTsgfQorICAgIHN0ZDo6c3RyaW5nIGRyYWdJbnRlcmFjdGlvblBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImRyYWdJbnRl
cmFjdGlvblBvbGljeSIpOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNvbnN0IHsg
cmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImpzY09wdGlvbnMiKTsgfQogICAg
IHN0ZDo6c3RyaW5nIHN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVSTCgpIGNvbnN0IHsgcmV0dXJu
IHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInN0YW5kYWxvbmVXZWJBcHBsaWNhdGlvblVS
TCIpOyB9CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzKCkg
Y29uc3QgeyByZXR1cm4gc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgibGFuZ3Vh
Z2UiKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRy
b2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklP
Uy5tbQppbmRleCA0Y2YxZjQ5ZWNmY2Q1OTg0ZmJmNjhhMDdmNWIyYjlhMDYyY2QxZjllLi43ZTBj
N2ZmMjNkZjAxNzU2MWIzZDdlZjFjYWNhODI1ZjRkNzM0NThiIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQpAQCAtMTU0LDYgKzE1NCwxNiBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogI2VuZGlmCiB9CiAKK3N0YXRpYyBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3kg
ZHJhZ0ludGVyYWN0aW9uUG9saWN5KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQoreworICAg
IGF1dG8gcG9saWN5ID0gb3B0aW9ucy5kcmFnSW50ZXJhY3Rpb25Qb2xpY3koKTsKKyAgICBpZiAo
cG9saWN5ID09ICJhbHdheXMtZW5hYmxlIikKKyAgICAgICAgcmV0dXJuIF9XS0RyYWdJbnRlcmFj
dGlvblBvbGljeUFsd2F5c0VuYWJsZTsKKyAgICBpZiAocG9saWN5ID09ICJhbHdheXMtZGlzYWJs
ZSIpCisgICAgICAgIHJldHVybiBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3lBbHdheXNEaXNhYmxl
OworICAgIHJldHVybiBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3lEZWZhdWx0OworfQorCiBib29s
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgY29jb2FSZXNldFN0YXRlVG9Db25zaXN0
ZW50VmFsdWVzKG9wdGlvbnMpOwpAQCAtMjEyLDYgKzIyMiw3IEBAIGJvb2wgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9u
cyYgb3B0CiAgICAgICAgIFt3ZWJWaWV3IF9jbGVhckludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJp
ZGVdOwogICAgICAgICBbd2ViVmlldyByZXNldEN1c3RvbU1lbnVBY3Rpb25dOwogICAgICAgICBb
d2ViVmlldyBzZXRBbGxvd2VkTWVudUFjdGlvbnM6bmlsXTsKKyAgICAgICAgd2ViVmlldy5fZHJh
Z0ludGVyYWN0aW9uUG9saWN5ID0gZHJhZ0ludGVyYWN0aW9uUG9saWN5KG9wdGlvbnMpOwogCiAg
ICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IHdlYlZpZXcuc2Nyb2xsVmlldzsKICAg
ICAgICAgW3Njcm9sbFZpZXcgX3JlbW92ZUFsbEFuaW1hdGlvbnM6WUVTXTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKaW5kZXggNmQx
MzYzZWM3NDJiOTIyODY4NDAxN2M5NTcyYWQwMjkxMWU3NWIzOC4uOGUyOWY0NzVlMGNlMDk2OWVm
ODQyZDk5YTgwZjI2Y2IzZTJiZThiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKQEAgLTEzNCw2ICsxMzQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0S2V5Ym9hcmRJbnB1dE1vZGVJZGVudGlmaWVyKEpTU3RyaW5nUmVmKSBv
dmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUNhcHNMb2NrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwog
ICAgIGJvb2wga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgYm9vbCBpc0FuaW1hdGluZ0RyYWdDYW5jZWwoKSBjb25zdCBvdmVycmlkZTsKICAgICBK
U09iamVjdFJlZiBhdHRhY2htZW50SW5mbyhKU1N0cmluZ1JlZikgb3ZlcnJpZGU7CiAgICAgVUlW
aWV3ICpwbGF0Zm9ybUNvbnRlbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSlNPYmplY3RS
ZWYgY2FsZW5kYXJUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggMjVhZDI2YzU0NTI5
MTNjYjQyMTAxZWU1OGIwNjQ1ZmJkOThkYjlhMi4uNmQzNWIyMmNiZTkzYTYxNzJhZGU2MjhmYzNi
YjlmNzU3MjNhMGI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtMTE3MCw2ICsxMTcwLDExIEBAIGJvb2wgVUlTY3Jp
cHRDb250cm9sbGVySU9TOjprZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQoKSBjb25zdAog
ICAgIHJldHVybiBVSUtleWJvYXJkSW1wbC5hY3RpdmVJbnN0YW5jZS5pc0F1dG9TaGlmdGVkOwog
fQogCitib29sIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNBbmltYXRpbmdEcmFnQ2FuY2VsKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gd2ViVmlldygpLl9hbmltYXRpbmdEcmFnQ2FuY2VsOworfQor
CiBKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmF0dGFjaG1lbnRJbmZvKEpTU3Ry
aW5nUmVmIGpzQXR0YWNobWVudElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBhdHRhY2htZW50SWRl
bnRpZmllciA9IHRvV1RGU3RyaW5nKGpzQXR0YWNobWVudElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVj
YjkxNzUxNGRiOTg2NWE3MGE1NzVjNjcwMmQ2MzMyNDkxYjQwY2IuLjZjOGRkZTJhMTEwOTJhMWY2
MzExNDNkNWM0MGQ0NzM5ZmI3ZWZlMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wNC0w
NSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdS
RVNTSU9OIChyMjc0NjEwKTogVW5hYmxlIHRvIGRyYWcgaW1hZ2VzIHdoZW4gaW1hZ2UgZXh0cmFj
dGlvbiBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2MjI5NTYzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlv
dXQgdGVzdCB0aGF0IGluaXRpYXRlcyBkcmFnZ2luZyBvbiBhbiBpbWFnZSB1c2luZyBhIHN5bnRo
ZXNpemVkIGV2ZW50IHN0cmVhbSwgYW5kIHZlcmlmaWVzIHRoYXQKKyAgICAgICAgImRyYWdzdGFy
dCIgYW5kICJkcmFnZW5kIiBldmVudHMgYXJlIGRpc3BhdGNoZWQgb24gdGhlIGltYWdlLgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvaW9zL2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25nLXByZXNz
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL2RyYWdz
dGFydC1vbi1pbWFnZS1ieS1sb25nLXByZXNzaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJl
c291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuaXNBbmltYXRp
bmdEcmFnQ2FuY2VsKToKKworICAgICAgICBBZGQgYSBgVUlIZWxwZXJgIG1ldGhvZCB0aGF0IHJl
dHVybnMgd2hldGhlciBvciBub3QgdGhlIGRyYWdnaW5nIGFuaW1hdGlvbiBpcyBiZWluZyBjYW5j
ZWxsZWQuIFRoZSBuZXcgdGVzdCB1c2VzCisgICAgICAgIHRoaXMgaG9vayB0byB3YWl0IGZvciB0
aGUgZHJhZyBjYW5jZWwgYW5pbWF0aW9uIHRvIGVuZCBiZWZvcmUgcHJvY2VlZGluZyB0byB0aGUg
bmV4dCB0ZXN0LgorCiAyMDIxLTA0LTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IEFTU0VSVElPTiBGQUlMRUQ6IHNldHRpbmdz
KCkudGV4dEF1dG9zaXppbmdFbmFibGVkKCkgJiYgc2V0dGluZ3MoKS50ZXh0QXV0b3NpemluZ1Vz
ZXNJZGVtcG90ZW50TW9kZSgpIG9uIHZhcmlvdXMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2lvcy9kcmFnc3RhcnQtb24taW1hZ2UtYnktbG9uZy1wcmVzc2luZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvZHJhZ3N0YXJ0LW9uLWlt
YWdlLWJ5LWxvbmctcHJlc3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMzA0ODEzOTIx
NzY3NGYzZWMxZmJkYzFhZDFjNTJiMzUyZDM0NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9pb3MvZHJhZ3N0YXJ0LW9uLWltYWdlLWJ5LWxvbmctcHJlc3Npbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktp
dFRlc3RSdW5uZXIuIFRvIG1hbnVhbGx5IHRlc3QsIGxvYWQgdGhlIHBhZ2UgaW4gYSBjb25maWd1
cmF0aW9uIHdoZXJlIGRyYWcgYW5kIGRyb3AgaXMgZW5hYmxlZCBieSBkZWZhdWx0OyBzdGFydCBh
IGRyYWcgb24gdGhlIGltYWdlIGFib3ZlIGJ5IGxvbmctcHJlc3NpbmcgaXQsIGFuZCB0aGVuIGRy
YWcgdGhlIGltYWdlIG9mZiB0byB0aGUgc2lkZSBvZiB0aGUgc2NyZWVuIGFuZCBsZXQgZ28uICdk
cmFnc3RhcnQnIGFuZCAnZHJhZ2VuZCcgZXZlbnRzIHNob3VsZCBiZSBkaXNwYXRjaGVkLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdGFydGVkIGRyYWcKK1BBU1MgRW5k
ZWQgZHJhZworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9kcmFnc3RhcnQtb24t
aW1hZ2UtYnktbG9uZy1wcmVzc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L2RyYWdzdGFydC1vbi1pbWFnZS1ieS1sb25nLXByZXNzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgy
MTYxZGJhZmQ3NTM5YzhlY2QyZThkNThiNDZhY2JkMGYwNWZjNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9kcmFnc3RhcnQtb24taW1hZ2UtYnktbG9uZy1w
cmVzc2luZy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBIVE1MPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZHJhZ0ludGVyYWN0aW9uUG9saWN5PWFsd2F5cy1lbmFibGUgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8aGVhZD4KKzxz
dHlsZT4KK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMg
KCkgPT4geworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1
bm5lci4gVG8gbWFudWFsbHkgdGVzdCwgbG9hZCB0aGUgcGFnZSBpbiBhIGNvbmZpZ3VyYXRpb24g
d2hlcmUgZHJhZyBhbmQgZHJvcCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQ7IHN0YXJ0IGEgZHJhZyBv
biB0aGUgaW1hZ2UgYWJvdmUgYnkgbG9uZy1wcmVzc2luZyBpdCwgYW5kIHRoZW4gZHJhZyB0aGUg
aW1hZ2Ugb2ZmIHRvIHRoZSBzaWRlIG9mIHRoZSBzY3JlZW4gYW5kIGxldCBnby4gJ2RyYWdzdGFy
dCcgYW5kICdkcmFnZW5kJyBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQuIik7CisKKyAgICBs
ZXQgaW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKTsKKyAgICBpbWFnZS5hZGRF
dmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLCAoKSA9PiB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN0
YXJ0ZWQgZHJhZyIpOworICAgIH0pOworCisgICAgaW1hZ2UuYWRkRXZlbnRMaXN0ZW5lcigiZHJh
Z2VuZCIsICgpID0+IHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRW5kZWQgZHJhZyIpOworICAgIH0p
OworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bGV0IGNsaWVudFJlY3QgPSBpbWFnZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBhd2Fp
dCBVSUhlbHBlci5zZW5kRXZlbnRTdHJlYW0obmV3IFVJSGVscGVyLkV2ZW50U3RyZWFtQnVpbGRl
cigpCisgICAgICAgIC5iZWdpbihjbGllbnRSZWN0LmxlZnQgKyAoY2xpZW50UmVjdC53aWR0aCAv
IDIpLCBjbGllbnRSZWN0LnRvcCArIChjbGllbnRSZWN0LmhlaWdodCAvIDIpKQorICAgICAgICAu
d2FpdCgxLjUpCisgICAgICAgIC5tb3ZlKDMwMCwgMzAwLCAxKQorICAgICAgICAud2FpdCgwLjUp
CisgICAgICAgIC5lbmQoKQorICAgICAgICAudGFrZVJlc3VsdCgpKTsKKworICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgIGlmICghYXdhaXQgVUlIZWxwZXIuaXNBbmltYXRpbmdEcmFnQ2FuY2Vs
KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30p
OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW1nIHNyYz0iLi4vcmVzb3VyY2Vz
L2FiZS5wbmciPgorICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorICAgIDxwIGlkPSJjb25z
b2xlIj48L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRl
c3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggZTZmYWYwMTJkZmZmN2VhZGYyMDAzNzI5
ZTZjYTEwMzE2MDc5N2NkOC4uZTkwMDljZWVhYjUxNTQwNTgzYWMzZjI1MzZmNDUyZGM3ZjA5N2Mx
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0zNzAsNiArMzcwLDEzIEBAIHdp
bmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCisg
ICAgc3RhdGljIGlzQW5pbWF0aW5nRHJhZ0NhbmNlbCgpCisgICAgeworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KGB1aUNvbnRyb2xsZXIuaXNBbmltYXRpbmdEcmFnQ2FuY2VsYCwgcmVzdWx0ID0+IHJlc29s
dmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgc3RhdGlj
IGVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuaXNX
ZWJLaXQyKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>