<?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>214705</bug_id>
          
          <creation_ts>2020-07-23 15:13:56 -0700</creation_ts>
          <short_desc>Tapping QuickType suggestions for a misspelled word does nothing in Mail compose</short_desc>
          <delta_ts>2020-07-23 22:32:01 -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>darin</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>1674400</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 15:13:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/58320785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674419</commentid>
    <comment_count>1</comment_count>
      <attachid>405085</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 15:37:58 -0700</bug_when>
    <thetext>Created attachment 405085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674426</commentid>
    <comment_count>2</comment_count>
      <attachid>405086</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 15:45:26 -0700</bug_when>
    <thetext>Created attachment 405086
Fix non-internal iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674432</commentid>
    <comment_count>3</comment_count>
      <attachid>405086</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-23 15:52:57 -0700</bug_when>
    <thetext>Comment on attachment 405086
Fix non-internal iOS build

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

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1770
&gt; +        completionHandler();

Does this want some kind of call-at-exit thing? (I feel like we have one, but not sure what it&apos;s called)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674436</commentid>
    <comment_count>4</comment_count>
      <attachid>405086</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-23 16:00:04 -0700</bug_when>
    <thetext>Comment on attachment 405086
Fix non-internal iOS build

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1770
&gt;&gt; +        completionHandler();
&gt; 
&gt; Does this want some kind of call-at-exit thing? (I feel like we have one, but not sure what it&apos;s called)

makeScopeExit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674438</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 16:00:53 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 405086 [details]
&gt; Fix non-internal iOS build
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=405086&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1770
&gt; &gt;&gt; +        completionHandler();
&gt; &gt; 
&gt; &gt; Does this want some kind of call-at-exit thing? (I feel like we have one, but not sure what it&apos;s called)
&gt; 
&gt; makeScopeExit

👍🏻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674458</commentid>
    <comment_count>6</comment_count>
      <attachid>405095</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 16:33:54 -0700</bug_when>
    <thetext>Created attachment 405095
Minor tweaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674503</commentid>
    <comment_count>7</comment_count>
      <attachid>405107</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 18:01:47 -0700</bug_when>
    <thetext>Created attachment 405107
Fix API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674528</commentid>
    <comment_count>8</comment_count>
      <attachid>405122</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-23 20:20:58 -0700</bug_when>
    <thetext>Created attachment 405122
Fix API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674550</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-23 22:32:00 -0700</bug_when>
    <thetext>Committed r264812: &lt;https://trac.webkit.org/changeset/264812&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405122.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405085</attachid>
            <date>2020-07-23 15:37:58 -0700</date>
            <delta_ts>2020-07-23 15:45:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214705-20200723153757.patch</filename>
            <type>text/plain</type>
            <size>15500</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0MmJjZGIzOWMzN2Y5ZGQy
NmU0YmNkNjdiOGUzMGZlN2IwNDIwZTUuLmU0YmQyYWY2YmZkMjA3YzhkYjMzOWJjMjYwMGI1MzZj
ODQ0OTI5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDctMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGFwcGluZyBRdWlja1R5
cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMgbm90aGluZyBpbiBNYWls
IGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0Mi1iYXNlZCBlZGl0
aW5nIGNvbnRleHRzIG9uIGlPUyAoc3VjaCBhcyBNYWlsIGNvbXBvc2UpLCB0YXBwaW5nIG9uIGEg
bWlzc3BlbGxlZCB3b3JkIHdpbGwgcmVzdWx0IGluCisgICAgICAgIFF1aWNrVHlwZSBzdWdnZXN0
aW9ucyBpbiB0aGUgaW5wdXQgYWNjZXNzb3J5IHJvdyBlaXRoZXIgc2hvd2luZyB1cCBibGFuayAo
aS5lLiB3aXRoIG5vIHN1Z2dlc3Rpb25zKSwgb3Igd2lsbAorICAgICAgICBzaG93IHN1Z2dlc3Rp
b25zIHRoYXQgYXJlIGNvbnRleHR1YWwgdG8gdGhlIHRleHQgc2VsZWN0aW9uIHByaW9yIHRvIHNl
bGVjdGluZyB0aGUgbWlzc3BlbGxlZCB3b3JkLiBTdWJzZXF1ZW50bHksCisgICAgICAgIGF0dGVt
cHRpbmcgdG8gY2hvb3NlIG9mIHRoZXNlIHN1Z2dlc3Rpb25zIHJlc3VsdHMgaW4gbm8gdGV4dCBi
ZWluZyBpbnNlcnRlZC4gVGhpcyBoYXBwZW5zIGZvciBhIGNvdXBsZSBvZgorICAgICAgICByZWFz
b25zOgorCisgICAgICAgIDEuICBVSUtpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtcmVxdWVzdCB0
aGUgYXV0b2NvcnJlY3Rpb24gY29udGV4dCBhZnRlciB0YXBwaW5nIG9uIGEgbWlzc3BlbGxlZCB3
b3JkLiBVSUtpdAorICAgICAgICAgICAganVzdCB1c2VzIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB0byBleHRlbmQgdGhlIHNlbGVjdGlvbiBvdmVyIHRoZSBtaXNzcGVsbGVkIHdvcmQsIHdo
aWNoIGRvZXNuJ3QKKyAgICAgICAgICAgIGN1cnJlbnRseSBmaXJlIGFueSBvZiB0aGUgc2VsZWN0
aW9uIGNoYW5nZSBjYWxsYmFja3Mgb24gVUlJbnB1dERlbGVnYXRlLiBBcyBhIHJlc3VsdCwgVUlL
aXQgd2lsbCBpbnN0ZWFkCisgICAgICAgICAgICBiZWxpZXZlIHRoYXQgdGhlIHNlbGVjdGlvbiBp
cyBjb2xsYXBzZWQgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgbWlzc3BlbGxlZCB3b3JkLgor
CisgICAgICAgIDIuICBVcG9uIGF0dGVtcHRpbmcgdG8gY29tcHV0ZSB0ZXh0IHN1Z2dlc3Rpb25z
IGZvciBRdWlja1R5cGUsIGAtW1VJS2V5Ym9hcmRJbXBsIHJlcGxhY2VtZW50c0Zyb21TZWxlY3Rl
ZFRleHRdYAorICAgICAgICAgICAgdXNlcyBgLXRleHRJblJhbmdlOmAgdG8gZ3JhYiB0aGUgY3Vy
cmVudGx5IHNlbGVjdGVkIHRleHQsIHdoaWNoIChpbiBXS0NvbnRlbnRWaWV3KSBpcyBjdXJyZW50
bHkgaGFyZC1jb2RlZAorICAgICAgICAgICAgdG8gYWx3YXlzIHJldHVybiBgbmlsYC4KKworICAg
ICAgICBXZSBhZGRyZXNzICgxKSBieSBib29rZW5kaW5nIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB3aXRoIGNhbGxzIHRvIGAtYmVnaW5TZWxlY3Rpb25DaGFuZ2VgIGFuZAorICAgICAgICBg
LWVuZFNlbGVjdGlvbkNoYW5nZWAsIGFuZCBhZGRyZXNzICgyKSBieSB0ZWFjaGluZyBgLXRleHRJ
blJhbmdlOmAgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uLCBvbmx5IGluCisg
ICAgICAgIHRoZSBjYXNlIHdoZXJlIHRoZSBnaXZlbiBgVUlUZXh0UmFuZ2VgIGlzIGVxdWFsIHRv
IHRoZSBjdXJyZW50IHJhbmdlZCBzZWxlY3Rpb24uCisKKyAgICAgICAgVGVzdDogU2VsZWN0aW9u
VGVzdHMuU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxlY3RpbmdXb3JkRm9yUmVwbGFjZW1lbnQKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpleHRlbmRTZWxlY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJblJh
bmdlOl0pOgorCisgICAgICAgIFNwZWNpYWwtY2FzZSB0aGUgc2NlbmFyaW8gd2hlcmUgdGhlIGlu
cHV0IHRleHQgcmFuZ2UgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBgc2VsZi5zZWxlY3RlZFRleHRS
YW5nZWAgYnkKKyAgICAgICAgcmV0dXJuaW5nIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB0
aGF0IGlzIGNhY2hlZCBvbiBFZGl0b3JTdGF0ZS4gSW4gYWxsIG90aGVyIGNhc2VzLCBjb250aW51
ZSB0byByZXR1cm4KKyAgICAgICAgYG5pbGAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBz
ZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRdKToKKworICAgICAgICBVc2UgdGhlIGNvbXBsZXRpb24g
Y2FsbGJhY2sgYWRkZWQgYmVsb3cgdG8gYm9va2VuZCB0aGlzIG1ldGhvZCB3aXRoIGAtKGJlZ2lu
fGVuZClTZWxlY3Rpb25DaGFuZ2VgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXh0ZW5kU2VsZWN0
aW9uKToKKworICAgICAgICBBZGQgYW4gb3B0aW9uYWwgY29tcGxldGlvbiBjYWxsYmFjayB0byBg
ZXh0ZW5kU2VsZWN0aW9uYC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24pOgorCiAyMDIwLTA3LTIyICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwOiBbSVBDIGhh
cmRlbmluZ10gV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmRlY29kZSgpIGFuZCBlbmNvZGUoKSBz
aG91bGQgdXNlIGVudW0gT2JqQ1R5cGUgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCAzMGIyNjk3YjBiZjdhY2VmZDQ4NGFhMjY2ODVjN2NjNTUzYzViZTdmLi40
MDg2OGZlMTE2OGY1YjFjODViZTkzZTIyNGRlMjc5ZjRmNGFjNmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzY1LDcgKzc2NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBHZXN0dXJlVHlw
ZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRF
bGVtZW50LCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0
dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgT3B0aW9uU2V0PFNlbGVjdGlvbkZsYWdz
PiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uV2l0
aFRvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIFNlbGVjdGlvblRvdWNoLCBib29sIGJh
c2VJc1N0YXJ0LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgU2VsZWN0
aW9uVG91Y2gsIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4sIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmKTsKICAgICB2b2lkIHNlbGVjdFdpdGhUd29Ub3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50IGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHRvLCBHZXN0dXJlVHlwZSwgR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSwgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IEdlc3R1cmVUeXBlLCBHZXN0dXJlUmVjb2duaXplclN0YXRlLCBPcHRpb25TZXQ8U2VsZWN0aW9u
RmxhZ3M+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBleHRlbmRTZWxlY3Rp
b24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIGV4dGVuZFNlbGVjdGlvbihX
ZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IHsg
fSk7CiAgICAgdm9pZCBzZWxlY3RXb3JkQmFja3dhcmQoKTsKICAgICB2b2lkIG1vdmVTZWxlY3Rp
b25CeU9mZnNldChpbnQzMl90IG9mZnNldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dp
dGhGb2N1c2VkRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDdhNmM3OTU4YzdhMjIxZGViZjhlZjcyODg2NTdjOWNkMDk2MjQ3NDAuLjczMDk3
MjlmM2EwODI3MTgyZWQwYzNhYWViZGZlMzgzNTc1N2ZlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAt
NDUzMCw2ICs0NTMwLDEzIEBAIC0gKHZvaWQpaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1
Z2dlc3Rpb24gKil0ZXh0U3VnZ2VzdGlvbgogCiAtIChOU1N0cmluZyAqKXRleHRJblJhbmdlOihV
SVRleHRSYW5nZSAqKXJhbmdlCiB7CisgICAgaWYgKCFfcGFnZSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIGF1dG8mIGVkaXRvclN0YXRlID0gX3BhZ2UtPmVkaXRvclN0YXRlKCk7CisgICAg
aWYgKFtzZWxmLnNlbGVjdGVkVGV4dFJhbmdlIGlzRXF1YWw6cmFuZ2VdICYmICFlZGl0b3JTdGF0
ZS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSAmJiBlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc1Jhbmdl
KQorICAgICAgICByZXR1cm4gZWRpdG9yU3RhdGUucG9zdExheW91dERhdGEoKS53b3JkQXRTZWxl
Y3Rpb247CisKICAgICByZXR1cm4gbmlsOwogfQogCkBAIC02NjAwLDcgKzY2MDcsMTEgQEAgLSAo
dm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogCiAtICh2b2lkKXNlbGVjdFdvcmRGb3JSZXBsYWNlbWVu
dAogewotICAgIF9wYWdlLT5leHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5
OjpXb3JkR3JhbnVsYXJpdHkpOworICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdlXTsKKyAg
ICBfcGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdy
YW51bGFyaXR5LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0g
eworICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBlbmRTZWxlY3Rpb25DaGFuZ2VdOworICAgIH0pOwogfQogCiAjaWYg
RU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzI3NGUxY2U0MjE0OTlmYjY4
YjE3ZDBjZTNlMGNkNjI5Nzc5ZjUyYi4uNzI0Yjg1Mzc5NGNmMzdmMjQ1M2QyNTA1MWZjMjg3NDkz
YTMzOTIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC03NTIsOSArNzUyLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjphcHBsaWNhdGlv
bkRpZEJlY29tZUFjdGl2ZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQordm9pZCBXZWJQYWdlUHJveHk6OmV4dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxh
cml0eSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgp
IG11dGFibGUgeworICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2Vs
ZWN0V29yZEJhY2t3YXJkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBhMTU0NzZjMjQ2OWU0ODdjZGIxOTlhMDg4YThkNWJhMDYxNDg1OGViLi4yNmQy
NDMzYjYxNTE1OGVmNzY4YzE2NjYyMDlmZWFjZjk2ZmRlN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02OTUsNyArNjk1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0
dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZv
Y3VzZWRFbGVtZW50LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhU
b3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgU2VsZWN0aW9uVG91Y2gsIGJvb2wgYmFz
ZUlzU3RhcnQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgc2VsZWN0V2l0aFR3b1RvdWNoZXMoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB0bywg
R2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIENhbGxiYWNrSUQpOwotICAgIHZv
aWQgZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBl
eHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VsZWN0V29yZEJhY2t3YXJkKCk7CiAgICAgdm9pZCBt
b3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgYm9vbCBpc0lu
dGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggNzJmMDM4NjE2NDgzODZmYmM4NDE1MDg1YzE1M2NmZWU3NTI2NzZjNi4u
YTU5NWU3ZDkyMTJiM2VkYzgyOTM4OWZjZGZmZjkyNDUyYTU4ZDgwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02
OCw3ICs2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNl
bGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2Vi
S2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1
c2VkRWxlbWVudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgVXBkYXRlU2Vs
ZWN0aW9uV2l0aFRvdWNoZXMoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBX
ZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoZXMsIGJvb2wgYmFzZUlzU3RhcnQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFNlbGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6
OkludFBvaW50IGZyb20sIFdlYkNvcmU6OkludFBvaW50IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQotICAgIEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQorICAgIEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KSAtPiAoKSBBc3luYwogICAgIFNlbGVjdFdv
cmRCYWNrd2FyZCgpCiAgICAgTW92ZVNlbGVjdGlvbkJ5T2Zmc2V0KGludDMyX3Qgb2Zmc2V0KSAt
PiAoKSBBc3luYwogICAgIFNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6
OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpIEFz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDE3ZmQxYTcxMzY5ZDBkMzFhYmFhMmI1ODIxOWE1M2RiYWViN2ZkOGIuLjQz
NjViODMwNWUxYjMzMTYyZDZhOWI3ZDMxMDIwMmIyZmViYjNkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNzYyLDE3
ICsxNzYyLDIxIEBAIHZvaWQgV2ViUGFnZTo6c2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGZyb20sIGNvbnN0IFdlYkNvcmU6CiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpHZXN0dXJlQ2FsbGJhY2soZnJvbSwgZ2VzdHVyZVR5cGUsIGdlc3R1cmVT
dGF0ZSwgeyB9LCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZXh0ZW5kU2VsZWN0
aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgV2ViUGFnZTo6
ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZyYW1l
JiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CiAgICAgLy8gRm9yIHRoZSBtb21lbnQgd2UgaGFuZGxlIG9ubHkgVGV4dEdyYW51bGFyaXR5OjpX
b3JkR3JhbnVsYXJpdHkuCi0gICAgaWYgKGdyYW51bGFyaXR5ICE9IFRleHRHcmFudWxhcml0eTo6
V29yZEdyYW51bGFyaXR5IHx8ICFmcmFtZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpCisgICAgaWYg
KGdyYW51bGFyaXR5ICE9IFRleHRHcmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5IHx8ICFmcmFt
ZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbiA9
IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCk7CiAgICAgYXV0byB3b3JkUmFu
Z2UgPSB3b3JkUmFuZ2VGcm9tUG9zaXRpb24ocG9zaXRpb24pOwotICAgIGlmICghd29yZFJhbmdl
KQorICAgIGlmICghd29yZFJhbmdlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBJbnRQb2ludCBlbmRMb2NhdGlvbkZvclN5bnRo
ZXRpY01vdXNlRXZlbnRzOwogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNb3VzZUV2ZW50cyA9IHNo
b3VsZERpc3BhdGNoU3ludGhldGljTW91c2VFdmVudHNXaGVuTW9kaWZ5aW5nU2VsZWN0aW9uKCk7
CkBAIC0xNzg3LDYgKzE3OTEsOCBAQCB2b2lkIFdlYlBhZ2U6OmV4dGVuZFNlbGVjdGlvbihXZWJD
b3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiAKICAgICBpZiAoc2hvdWxkRGlzcGF0
Y2hNb3VzZUV2ZW50cykKICAgICAgICAgZGlzcGF0Y2hTeW50aGV0aWNNb3VzZUV2ZW50c0ZvclNl
bGVjdGlvbkdlc3R1cmUoU2VsZWN0aW9uVG91Y2g6OkVuZGVkLCBlbmRMb2NhdGlvbkZvclN5bnRo
ZXRpY01vdXNlRXZlbnRzKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6cGxhdGZvcm1EaWRTZWxlY3RBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRjZjEwODIyZTIwYTdmMTY1ZDg5NmQzN2Y0YmFi
ZDczNGQ5ODdhOGYuLmYzYmRhMzY1MmFlYWU1YmQ2Mjc3MWU1MTI2YzczZGFhMTkyOWQyNzAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAyMC0wNy0yMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBUYXBwaW5nIFF1aWNrVHlwZSBzdWdnZXN0aW9ucyBmb3IgYSBtaXNzcGVs
bGVkIHdvcmQgZG9lcyBub3RoaW5nIGluIE1haWwgY29tcG9zZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NzA1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81ODMyMDc4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5tbToKKwor
ICAgICAgICBBZGQgYSB1bml0IHRlc3QgdG8gZXhlcmNpc2UgdGhlIGNoYW5nZXMgaW4gYmVoYXZp
b3Igd2hlbiBjYWxsaW5nIFVJVGV4dElucHV0IEFQSS4KKworICAgICAgICAoLVtTZWxlY3Rpb25D
aGFuZ2VMaXN0ZW5lciBzZXRTZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjpd
KToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uV2lsbENoYW5n
ZUhhbmRsZXJdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9u
RGlkQ2hhbmdlSGFuZGxlcl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciBz
ZWxlY3Rpb25XaWxsQ2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5l
ciBzZWxlY3Rpb25EaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3Rl
bmVyIHRleHRXaWxsQ2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5l
ciB0ZXh0RGlkQ2hhbmdlOl0pOgorCiAyMDIwLTA3LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFydGljbGUgaGVhZGxpbmVzIGFyZSBzcGxpdCBh
Y3Jvc3MgbXVsdGlwbGUgbGluZXMgYWZ0ZXIgdHJhbnNsYXRpbmcgdGFnZXNzY2hhdS5kZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3JkLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3JkLm1tCmluZGV4
IDNhMGIxOTg5M2FmNzI3YzAwMjkyMDM2OTRjNjEzODUzNWU5NDBkNTcuLjE4NTRiNmI4MWQ5OTYy
NmE4ODI1NzA1ZTNmMmE2M2E3ODk4YzQ2ZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IlRlc3RJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0
ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIEBpbnRlcmZhY2UgV0tD
b250ZW50VmlldyAoUHJpdmF0ZSkKIC0gKHZvaWQpc2VsZWN0V29yZEZvclJlcGxhY2VtZW50OwpA
QCAtNTgsNCArNTksODMgQEAgVEVTVChTZWxlY3Rpb25UZXN0cywgQnlXb3JkQXRFbmRPZkRvY3Vt
ZW50KQogICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSJdLCAiVGhyZWUiKTsKIH0KIAorQGlu
dGVyZmFjZSBTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA6IE5TT2JqZWN0IDxVSVRleHRJbnB1dERl
bGVnYXRlPgorQHByb3BlcnR5IChub25hdG9taWMpIGRpc3BhdGNoX2Jsb2NrX3Qgc2VsZWN0aW9u
V2lsbENoYW5nZUhhbmRsZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykgZGlzcGF0Y2hfYmxvY2tf
dCBzZWxlY3Rpb25EaWRDaGFuZ2VIYW5kbGVyOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gU2Vs
ZWN0aW9uQ2hhbmdlTGlzdGVuZXIgeworICAgIEJsb2NrUHRyPHZvaWQoKT4gX3NlbGVjdGlvbldp
bGxDaGFuZ2VIYW5kbGVyOworICAgIEJsb2NrUHRyPHZvaWQoKT4gX3NlbGVjdGlvbkRpZENoYW5n
ZUhhbmRsZXI7Cit9CisKKy0gKHZvaWQpc2V0U2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXI6KGRp
c3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgoreworICAgIF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKTsKK30KKworLSAodm9pZClzZXRTZWxlY3Rpb25EaWRD
aGFuZ2VIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBfc2VsZWN0aW9u
RGlkQ2hhbmdlSGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKTsKK30KKworLSAoZGlzcGF0
Y2hfYmxvY2tfdClzZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcgoreworICAgIHJldHVybiBfc2Vs
ZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIuZ2V0KCk7Cit9CisKKy0gKGRpc3BhdGNoX2Jsb2NrX3Qp
c2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcgoreworICAgIHJldHVybiBfc2VsZWN0aW9uRGlkQ2hh
bmdlSGFuZGxlci5nZXQoKTsKK30KKworLSAodm9pZClzZWxlY3Rpb25XaWxsQ2hhbmdlOihpZCA8
VUlUZXh0SW5wdXQ+KXRleHRJbnB1dAoreworICAgIGlmIChfc2VsZWN0aW9uV2lsbENoYW5nZUhh
bmRsZXIpCisgICAgICAgIF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcigpOworfQorCistICh2
b2lkKXNlbGVjdGlvbkRpZENoYW5nZTooaWQgPFVJVGV4dElucHV0Pil0ZXh0SW5wdXQKK3sKKyAg
ICBpZiAoX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIpCisgICAgICAgIF9zZWxlY3Rpb25EaWRD
aGFuZ2VIYW5kbGVyKCk7Cit9CisKKy0gKHZvaWQpdGV4dFdpbGxDaGFuZ2U6KGlkIDxVSVRleHRJ
bnB1dD4pdGV4dElucHV0Cit7Cit9CisKKy0gKHZvaWQpdGV4dERpZENoYW5nZTooaWQgPFVJVGV4
dElucHV0Pil0ZXh0SW5wdXQKK3sKK30KKworQGVuZAorCitURVNUKFNlbGVjdGlvblRlc3RzLCBT
ZWxlY3RlZFRleHRBZnRlclNlbGVjdGluZ1dvcmRGb3JSZXBsYWNlbWVudCkKK3sKKyAgICBhdXRv
IGxpc3RlbmVyID0gYWRvcHROUyhbW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRdKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBj
b250ZW50ZWRpdGFibGU+PHA+SGVsbG88L3A+PC9ib2R5PjxzY3JpcHQ+ZG9jdW1lbnQuYm9keS5m
b2N1cygpPC9zY3JpcHQ+Il07CisKKyAgICBhdXRvIGNvbnRlbnRWaWV3ID0gW3dlYlZpZXcgdGV4
dElucHV0Q29udGVudFZpZXddOworICAgIFtjb250ZW50VmlldyBzZXRJbnB1dERlbGVnYXRlOmxp
c3RlbmVyLmdldCgpXTsKKworICAgIF9fYmxvY2sgYm9vbCBzZWxlY3Rpb25XaWxsQ2hhbmdlID0g
ZmFsc2U7CisgICAgW2xpc3RlbmVyIHNldFNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOl57Cisg
ICAgICAgIHNlbGVjdGlvbldpbGxDaGFuZ2UgPSB0cnVlOworICAgIH1dOworCisgICAgX19ibG9j
ayBib29sIHNlbGVjdGlvbkRpZENoYW5nZSA9IGZhbHNlOworICAgIFtsaXN0ZW5lciBzZXRTZWxl
Y3Rpb25EaWRDaGFuZ2VIYW5kbGVyOl57CisgICAgICAgIHNlbGVjdGlvbkRpZENoYW5nZSA9IHRy
dWU7CisgICAgfV07CisKKyAgICBbY29udGVudFZpZXcgc2VsZWN0V29yZEZvclJlcGxhY2VtZW50
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlbGVjdGlvbldpbGxDaGFuZ2UpOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2VsZWN0aW9uRGlkQ2hhbmdlKTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoIkhlbGxvIiwgW2NvbnRlbnRWaWV3IHRleHRJblJhbmdlOmNvbnRlbnRWaWV3LnNlbGVj
dGVkVGV4dFJhbmdlXSk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405086</attachid>
            <date>2020-07-23 15:45:26 -0700</date>
            <delta_ts>2020-07-23 16:33:53 -0700</delta_ts>
            <desc>Fix non-internal iOS build</desc>
            <filename>bug-214705-20200723154525.patch</filename>
            <type>text/plain</type>
            <size>17068</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0MmJjZGIzOWMzN2Y5ZGQy
NmU0YmNkNjdiOGUzMGZlN2IwNDIwZTUuLmU0YmQyYWY2YmZkMjA3YzhkYjMzOWJjMjYwMGI1MzZj
ODQ0OTI5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDctMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGFwcGluZyBRdWlja1R5
cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMgbm90aGluZyBpbiBNYWls
IGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0Mi1iYXNlZCBlZGl0
aW5nIGNvbnRleHRzIG9uIGlPUyAoc3VjaCBhcyBNYWlsIGNvbXBvc2UpLCB0YXBwaW5nIG9uIGEg
bWlzc3BlbGxlZCB3b3JkIHdpbGwgcmVzdWx0IGluCisgICAgICAgIFF1aWNrVHlwZSBzdWdnZXN0
aW9ucyBpbiB0aGUgaW5wdXQgYWNjZXNzb3J5IHJvdyBlaXRoZXIgc2hvd2luZyB1cCBibGFuayAo
aS5lLiB3aXRoIG5vIHN1Z2dlc3Rpb25zKSwgb3Igd2lsbAorICAgICAgICBzaG93IHN1Z2dlc3Rp
b25zIHRoYXQgYXJlIGNvbnRleHR1YWwgdG8gdGhlIHRleHQgc2VsZWN0aW9uIHByaW9yIHRvIHNl
bGVjdGluZyB0aGUgbWlzc3BlbGxlZCB3b3JkLiBTdWJzZXF1ZW50bHksCisgICAgICAgIGF0dGVt
cHRpbmcgdG8gY2hvb3NlIG9mIHRoZXNlIHN1Z2dlc3Rpb25zIHJlc3VsdHMgaW4gbm8gdGV4dCBi
ZWluZyBpbnNlcnRlZC4gVGhpcyBoYXBwZW5zIGZvciBhIGNvdXBsZSBvZgorICAgICAgICByZWFz
b25zOgorCisgICAgICAgIDEuICBVSUtpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtcmVxdWVzdCB0
aGUgYXV0b2NvcnJlY3Rpb24gY29udGV4dCBhZnRlciB0YXBwaW5nIG9uIGEgbWlzc3BlbGxlZCB3
b3JkLiBVSUtpdAorICAgICAgICAgICAganVzdCB1c2VzIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB0byBleHRlbmQgdGhlIHNlbGVjdGlvbiBvdmVyIHRoZSBtaXNzcGVsbGVkIHdvcmQsIHdo
aWNoIGRvZXNuJ3QKKyAgICAgICAgICAgIGN1cnJlbnRseSBmaXJlIGFueSBvZiB0aGUgc2VsZWN0
aW9uIGNoYW5nZSBjYWxsYmFja3Mgb24gVUlJbnB1dERlbGVnYXRlLiBBcyBhIHJlc3VsdCwgVUlL
aXQgd2lsbCBpbnN0ZWFkCisgICAgICAgICAgICBiZWxpZXZlIHRoYXQgdGhlIHNlbGVjdGlvbiBp
cyBjb2xsYXBzZWQgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgbWlzc3BlbGxlZCB3b3JkLgor
CisgICAgICAgIDIuICBVcG9uIGF0dGVtcHRpbmcgdG8gY29tcHV0ZSB0ZXh0IHN1Z2dlc3Rpb25z
IGZvciBRdWlja1R5cGUsIGAtW1VJS2V5Ym9hcmRJbXBsIHJlcGxhY2VtZW50c0Zyb21TZWxlY3Rl
ZFRleHRdYAorICAgICAgICAgICAgdXNlcyBgLXRleHRJblJhbmdlOmAgdG8gZ3JhYiB0aGUgY3Vy
cmVudGx5IHNlbGVjdGVkIHRleHQsIHdoaWNoIChpbiBXS0NvbnRlbnRWaWV3KSBpcyBjdXJyZW50
bHkgaGFyZC1jb2RlZAorICAgICAgICAgICAgdG8gYWx3YXlzIHJldHVybiBgbmlsYC4KKworICAg
ICAgICBXZSBhZGRyZXNzICgxKSBieSBib29rZW5kaW5nIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB3aXRoIGNhbGxzIHRvIGAtYmVnaW5TZWxlY3Rpb25DaGFuZ2VgIGFuZAorICAgICAgICBg
LWVuZFNlbGVjdGlvbkNoYW5nZWAsIGFuZCBhZGRyZXNzICgyKSBieSB0ZWFjaGluZyBgLXRleHRJ
blJhbmdlOmAgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uLCBvbmx5IGluCisg
ICAgICAgIHRoZSBjYXNlIHdoZXJlIHRoZSBnaXZlbiBgVUlUZXh0UmFuZ2VgIGlzIGVxdWFsIHRv
IHRoZSBjdXJyZW50IHJhbmdlZCBzZWxlY3Rpb24uCisKKyAgICAgICAgVGVzdDogU2VsZWN0aW9u
VGVzdHMuU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxlY3RpbmdXb3JkRm9yUmVwbGFjZW1lbnQKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpleHRlbmRTZWxlY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJblJh
bmdlOl0pOgorCisgICAgICAgIFNwZWNpYWwtY2FzZSB0aGUgc2NlbmFyaW8gd2hlcmUgdGhlIGlu
cHV0IHRleHQgcmFuZ2UgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBgc2VsZi5zZWxlY3RlZFRleHRS
YW5nZWAgYnkKKyAgICAgICAgcmV0dXJuaW5nIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB0
aGF0IGlzIGNhY2hlZCBvbiBFZGl0b3JTdGF0ZS4gSW4gYWxsIG90aGVyIGNhc2VzLCBjb250aW51
ZSB0byByZXR1cm4KKyAgICAgICAgYG5pbGAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBz
ZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRdKToKKworICAgICAgICBVc2UgdGhlIGNvbXBsZXRpb24g
Y2FsbGJhY2sgYWRkZWQgYmVsb3cgdG8gYm9va2VuZCB0aGlzIG1ldGhvZCB3aXRoIGAtKGJlZ2lu
fGVuZClTZWxlY3Rpb25DaGFuZ2VgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXh0ZW5kU2VsZWN0
aW9uKToKKworICAgICAgICBBZGQgYW4gb3B0aW9uYWwgY29tcGxldGlvbiBjYWxsYmFjayB0byBg
ZXh0ZW5kU2VsZWN0aW9uYC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24pOgorCiAyMDIwLTA3LTIyICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwOiBbSVBDIGhh
cmRlbmluZ10gV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmRlY29kZSgpIGFuZCBlbmNvZGUoKSBz
aG91bGQgdXNlIGVudW0gT2JqQ1R5cGUgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCAzMGIyNjk3YjBiZjdhY2VmZDQ4NGFhMjY2ODVjN2NjNTUzYzViZTdmLi40
MDg2OGZlMTE2OGY1YjFjODViZTkzZTIyNGRlMjc5ZjRmNGFjNmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzY1LDcgKzc2NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBHZXN0dXJlVHlw
ZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRF
bGVtZW50LCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0
dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgT3B0aW9uU2V0PFNlbGVjdGlvbkZsYWdz
PiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uV2l0
aFRvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIFNlbGVjdGlvblRvdWNoLCBib29sIGJh
c2VJc1N0YXJ0LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgU2VsZWN0
aW9uVG91Y2gsIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4sIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmKTsKICAgICB2b2lkIHNlbGVjdFdpdGhUd29Ub3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50IGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHRvLCBHZXN0dXJlVHlwZSwgR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSwgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IEdlc3R1cmVUeXBlLCBHZXN0dXJlUmVjb2duaXplclN0YXRlLCBPcHRpb25TZXQ8U2VsZWN0aW9u
RmxhZ3M+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBleHRlbmRTZWxlY3Rp
b24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIGV4dGVuZFNlbGVjdGlvbihX
ZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IHsg
fSk7CiAgICAgdm9pZCBzZWxlY3RXb3JkQmFja3dhcmQoKTsKICAgICB2b2lkIG1vdmVTZWxlY3Rp
b25CeU9mZnNldChpbnQzMl90IG9mZnNldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dp
dGhGb2N1c2VkRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDdhNmM3OTU4YzdhMjIxZGViZjhlZjcyODg2NTdjOWNkMDk2MjQ3NDAuLjczMDk3
MjlmM2EwODI3MTgyZWQwYzNhYWViZGZlMzgzNTc1N2ZlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAt
NDUzMCw2ICs0NTMwLDEzIEBAIC0gKHZvaWQpaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1
Z2dlc3Rpb24gKil0ZXh0U3VnZ2VzdGlvbgogCiAtIChOU1N0cmluZyAqKXRleHRJblJhbmdlOihV
SVRleHRSYW5nZSAqKXJhbmdlCiB7CisgICAgaWYgKCFfcGFnZSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKworICAgIGF1dG8mIGVkaXRvclN0YXRlID0gX3BhZ2UtPmVkaXRvclN0YXRlKCk7CisgICAg
aWYgKFtzZWxmLnNlbGVjdGVkVGV4dFJhbmdlIGlzRXF1YWw6cmFuZ2VdICYmICFlZGl0b3JTdGF0
ZS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSAmJiBlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc1Jhbmdl
KQorICAgICAgICByZXR1cm4gZWRpdG9yU3RhdGUucG9zdExheW91dERhdGEoKS53b3JkQXRTZWxl
Y3Rpb247CisKICAgICByZXR1cm4gbmlsOwogfQogCkBAIC02NjAwLDcgKzY2MDcsMTEgQEAgLSAo
dm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogCiAtICh2b2lkKXNlbGVjdFdvcmRGb3JSZXBsYWNlbWVu
dAogewotICAgIF9wYWdlLT5leHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5
OjpXb3JkR3JhbnVsYXJpdHkpOworICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdlXTsKKyAg
ICBfcGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdy
YW51bGFyaXR5LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0g
eworICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBlbmRTZWxlY3Rpb25DaGFuZ2VdOworICAgIH0pOwogfQogCiAjaWYg
RU5BQkxFKFBMQVRGT1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzI3NGUxY2U0MjE0OTlmYjY4
YjE3ZDBjZTNlMGNkNjI5Nzc5ZjUyYi4uNzI0Yjg1Mzc5NGNmMzdmMjQ1M2QyNTA1MWZjMjg3NDkz
YTMzOTIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC03NTIsOSArNzUyLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjphcHBsaWNhdGlv
bkRpZEJlY29tZUFjdGl2ZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQordm9pZCBXZWJQYWdlUHJveHk6OmV4dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxh
cml0eSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgp
IG11dGFibGUgeworICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2Vs
ZWN0V29yZEJhY2t3YXJkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBhMTU0NzZjMjQ2OWU0ODdjZGIxOTlhMDg4YThkNWJhMDYxNDg1OGViLi4yNmQy
NDMzYjYxNTE1OGVmNzY4YzE2NjYyMDlmZWFjZjk2ZmRlN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02OTUsNyArNjk1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0
dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZv
Y3VzZWRFbGVtZW50LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhU
b3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgU2VsZWN0aW9uVG91Y2gsIGJvb2wgYmFz
ZUlzU3RhcnQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgc2VsZWN0V2l0aFR3b1RvdWNoZXMoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB0bywg
R2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIENhbGxiYWNrSUQpOwotICAgIHZv
aWQgZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBl
eHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VsZWN0V29yZEJhY2t3YXJkKCk7CiAgICAgdm9pZCBt
b3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgYm9vbCBpc0lu
dGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggNzJmMDM4NjE2NDgzODZmYmM4NDE1MDg1YzE1M2NmZWU3NTI2NzZjNi4u
YTU5NWU3ZDkyMTJiM2VkYzgyOTM4OWZjZGZmZjkyNDUyYTU4ZDgwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02
OCw3ICs2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNl
bGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2Vi
S2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1
c2VkRWxlbWVudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgVXBkYXRlU2Vs
ZWN0aW9uV2l0aFRvdWNoZXMoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBX
ZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoZXMsIGJvb2wgYmFzZUlzU3RhcnQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFNlbGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6
OkludFBvaW50IGZyb20sIFdlYkNvcmU6OkludFBvaW50IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQotICAgIEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5KQorICAgIEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KSAtPiAoKSBBc3luYwogICAgIFNlbGVjdFdv
cmRCYWNrd2FyZCgpCiAgICAgTW92ZVNlbGVjdGlvbkJ5T2Zmc2V0KGludDMyX3Qgb2Zmc2V0KSAt
PiAoKSBBc3luYwogICAgIFNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6
OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpIEFz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDE3ZmQxYTcxMzY5ZDBkMzFhYmFhMmI1ODIxOWE1M2RiYWViN2ZkOGIuLjQz
NjViODMwNWUxYjMzMTYyZDZhOWI3ZDMxMDIwMmIyZmViYjNkMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNzYyLDE3
ICsxNzYyLDIxIEBAIHZvaWQgV2ViUGFnZTo6c2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGZyb20sIGNvbnN0IFdlYkNvcmU6CiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpHZXN0dXJlQ2FsbGJhY2soZnJvbSwgZ2VzdHVyZVR5cGUsIGdlc3R1cmVT
dGF0ZSwgeyB9LCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZXh0ZW5kU2VsZWN0
aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3ZvaWQgV2ViUGFnZTo6
ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEZyYW1l
JiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CiAgICAgLy8gRm9yIHRoZSBtb21lbnQgd2UgaGFuZGxlIG9ubHkgVGV4dEdyYW51bGFyaXR5OjpX
b3JkR3JhbnVsYXJpdHkuCi0gICAgaWYgKGdyYW51bGFyaXR5ICE9IFRleHRHcmFudWxhcml0eTo6
V29yZEdyYW51bGFyaXR5IHx8ICFmcmFtZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpCisgICAgaWYg
KGdyYW51bGFyaXR5ICE9IFRleHRHcmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5IHx8ICFmcmFt
ZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbiA9
IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCk7CiAgICAgYXV0byB3b3JkUmFu
Z2UgPSB3b3JkUmFuZ2VGcm9tUG9zaXRpb24ocG9zaXRpb24pOwotICAgIGlmICghd29yZFJhbmdl
KQorICAgIGlmICghd29yZFJhbmdlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBJbnRQb2ludCBlbmRMb2NhdGlvbkZvclN5bnRo
ZXRpY01vdXNlRXZlbnRzOwogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hNb3VzZUV2ZW50cyA9IHNo
b3VsZERpc3BhdGNoU3ludGhldGljTW91c2VFdmVudHNXaGVuTW9kaWZ5aW5nU2VsZWN0aW9uKCk7
CkBAIC0xNzg3LDYgKzE3OTEsOCBAQCB2b2lkIFdlYlBhZ2U6OmV4dGVuZFNlbGVjdGlvbihXZWJD
b3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiAKICAgICBpZiAoc2hvdWxkRGlzcGF0
Y2hNb3VzZUV2ZW50cykKICAgICAgICAgZGlzcGF0Y2hTeW50aGV0aWNNb3VzZUV2ZW50c0ZvclNl
bGVjdGlvbkdlc3R1cmUoU2VsZWN0aW9uVG91Y2g6OkVuZGVkLCBlbmRMb2NhdGlvbkZvclN5bnRo
ZXRpY01vdXNlRXZlbnRzKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6cGxhdGZvcm1EaWRTZWxlY3RBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRjZjEwODIyZTIwYTdmMTY1ZDg5NmQzN2Y0YmFi
ZDczNGQ5ODdhOGYuLjE5NTEzYWJkZThmMDMyNjU2NGZjMDZkZDBmZThhODUxMGZiYmE2N2IgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAyMC0wNy0yMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBUYXBwaW5nIFF1aWNrVHlwZSBzdWdnZXN0aW9ucyBmb3IgYSBtaXNzcGVs
bGVkIHdvcmQgZG9lcyBub3RoaW5nIGluIE1haWwgY29tcG9zZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NzA1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81ODMyMDc4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5tbToKKwor
ICAgICAgICBBZGQgYSB1bml0IHRlc3QgdG8gZXhlcmNpc2UgdGhlIGNoYW5nZXMgaW4gYmVoYXZp
b3Igd2hlbiBjYWxsaW5nIFVJVGV4dElucHV0IEFQSS4KKworICAgICAgICAoLVtTZWxlY3Rpb25D
aGFuZ2VMaXN0ZW5lciBzZXRTZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjpd
KToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uV2lsbENoYW5n
ZUhhbmRsZXJdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9u
RGlkQ2hhbmdlSGFuZGxlcl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciBz
ZWxlY3Rpb25XaWxsQ2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5l
ciBzZWxlY3Rpb25EaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3Rl
bmVyIHRleHRXaWxsQ2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5l
ciB0ZXh0RGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJ
Lmg6CisKIDIwMjAtMDctMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgQXJ0aWNsZSBoZWFkbGluZXMgYXJlIHNwbGl0IGFjcm9zcyBtdWx0aXBsZSBs
aW5lcyBhZnRlciB0cmFuc2xhdGluZyB0YWdlc3NjaGF1LmRlCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0KaW5kZXggM2EwYjE5ODkzYWY3Mjdj
MDAyOTIwMzY5NGM2MTM4NTM1ZTk0MGQ1Ny4uZjAzNDcyNDVlZmYwMDljOGI4MTE3NmMwM2YxNjcx
YTE0YTlkYWZiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2Vs
ZWN0aW9uQnlXb3JkLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NlbGVj
dGlvbkJ5V29yZC5tbQpAQCAtMzEsMTAgKzMxLDcgQEAKICNpbXBvcnQgIlRlc3RJbnB1dERlbGVn
YXRlLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgot
Ci1AaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFByaXZhdGUpCi0tICh2b2lkKXNlbGVjdFdvcmRG
b3JSZXBsYWNlbWVudDsKLUBlbmQKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogCiBURVNUKFNl
bGVjdGlvblRlc3RzLCBCeVdvcmRBdEVuZE9mRG9jdW1lbnQpCiB7CkBAIC00Nyw3ICs0NCw3IEBA
IFRFU1QoU2VsZWN0aW9uVGVzdHMsIEJ5V29yZEF0RW5kT2ZEb2N1bWVudCkKICAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9u
KCkuaXNDb2xsYXBzZWQiXS5ib29sVmFsdWUpOwogCiAgICAgLy8gVGhpcyBtZXRob2QgdHJpZ2dl
cnMgdGhlIHdvcmRSYW5nZUZyb21Qb3NpdGlvbigpIGNvZGUgdG8gYmUgdGVzdGVkLgotICAgIFtb
d2ViVmlldyB3a0NvbnRlbnRWaWV3XSBzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRdOworICAgIFtb
d2ViVmlldyB0ZXh0SW5wdXRDb250ZW50Vmlld10gc2VsZWN0V29yZEZvclJlcGxhY2VtZW50XTsK
IAogICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZ2V0U2VsZWN0aW9uKCkuaXNDb2xsYXBzZWQiXS5ib29sVmFsdWUpOwogICAgIEVYUEVDVF9X
S19TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0
aW9uKCkuYW5jaG9yTm9kZS5ub2RlVmFsdWUiXSwgIlBhcmFncmFwaCBUaHJlZSIpOwpAQCAtNTgs
NCArNTUsODMgQEAgVEVTVChTZWxlY3Rpb25UZXN0cywgQnlXb3JkQXRFbmRPZkRvY3VtZW50KQog
ICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSJdLCAiVGhyZWUiKTsKIH0KIAorQGludGVyZmFj
ZSBTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA6IE5TT2JqZWN0IDxVSVRleHRJbnB1dERlbGVnYXRl
PgorQHByb3BlcnR5IChub25hdG9taWMpIGRpc3BhdGNoX2Jsb2NrX3Qgc2VsZWN0aW9uV2lsbENo
YW5nZUhhbmRsZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykgZGlzcGF0Y2hfYmxvY2tfdCBzZWxl
Y3Rpb25EaWRDaGFuZ2VIYW5kbGVyOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gU2VsZWN0aW9u
Q2hhbmdlTGlzdGVuZXIgeworICAgIEJsb2NrUHRyPHZvaWQoKT4gX3NlbGVjdGlvbldpbGxDaGFu
Z2VIYW5kbGVyOworICAgIEJsb2NrUHRyPHZvaWQoKT4gX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRs
ZXI7Cit9CisKKy0gKHZvaWQpc2V0U2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXI6KGRpc3BhdGNo
X2Jsb2NrX3QpaGFuZGxlcgoreworICAgIF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlciA9IG1h
a2VCbG9ja1B0cihoYW5kbGVyKTsKK30KKworLSAodm9pZClzZXRTZWxlY3Rpb25EaWRDaGFuZ2VI
YW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBfc2VsZWN0aW9uRGlkQ2hh
bmdlSGFuZGxlciA9IG1ha2VCbG9ja1B0cihoYW5kbGVyKTsKK30KKworLSAoZGlzcGF0Y2hfYmxv
Y2tfdClzZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcgoreworICAgIHJldHVybiBfc2VsZWN0aW9u
V2lsbENoYW5nZUhhbmRsZXIuZ2V0KCk7Cit9CisKKy0gKGRpc3BhdGNoX2Jsb2NrX3Qpc2VsZWN0
aW9uRGlkQ2hhbmdlSGFuZGxlcgoreworICAgIHJldHVybiBfc2VsZWN0aW9uRGlkQ2hhbmdlSGFu
ZGxlci5nZXQoKTsKK30KKworLSAodm9pZClzZWxlY3Rpb25XaWxsQ2hhbmdlOihpZCA8VUlUZXh0
SW5wdXQ+KXRleHRJbnB1dAoreworICAgIGlmIChfc2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIp
CisgICAgICAgIF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcigpOworfQorCistICh2b2lkKXNl
bGVjdGlvbkRpZENoYW5nZTooaWQgPFVJVGV4dElucHV0Pil0ZXh0SW5wdXQKK3sKKyAgICBpZiAo
X3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIpCisgICAgICAgIF9zZWxlY3Rpb25EaWRDaGFuZ2VI
YW5kbGVyKCk7Cit9CisKKy0gKHZvaWQpdGV4dFdpbGxDaGFuZ2U6KGlkIDxVSVRleHRJbnB1dD4p
dGV4dElucHV0Cit7Cit9CisKKy0gKHZvaWQpdGV4dERpZENoYW5nZTooaWQgPFVJVGV4dElucHV0
Pil0ZXh0SW5wdXQKK3sKK30KKworQGVuZAorCitURVNUKFNlbGVjdGlvblRlc3RzLCBTZWxlY3Rl
ZFRleHRBZnRlclNlbGVjdGluZ1dvcmRGb3JSZXBsYWNlbWVudCkKK3sKKyAgICBhdXRvIGxpc3Rl
bmVyID0gYWRvcHROUyhbW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBjb250ZW50
ZWRpdGFibGU+PHA+SGVsbG88L3A+PC9ib2R5PjxzY3JpcHQ+ZG9jdW1lbnQuYm9keS5mb2N1cygp
PC9zY3JpcHQ+Il07CisKKyAgICBhdXRvIGNvbnRlbnRWaWV3ID0gW3dlYlZpZXcgdGV4dElucHV0
Q29udGVudFZpZXddOworICAgIFtjb250ZW50VmlldyBzZXRJbnB1dERlbGVnYXRlOmxpc3RlbmVy
LmdldCgpXTsKKworICAgIF9fYmxvY2sgYm9vbCBzZWxlY3Rpb25XaWxsQ2hhbmdlID0gZmFsc2U7
CisgICAgW2xpc3RlbmVyIHNldFNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOl57CisgICAgICAg
IHNlbGVjdGlvbldpbGxDaGFuZ2UgPSB0cnVlOworICAgIH1dOworCisgICAgX19ibG9jayBib29s
IHNlbGVjdGlvbkRpZENoYW5nZSA9IGZhbHNlOworICAgIFtsaXN0ZW5lciBzZXRTZWxlY3Rpb25E
aWRDaGFuZ2VIYW5kbGVyOl57CisgICAgICAgIHNlbGVjdGlvbkRpZENoYW5nZSA9IHRydWU7Cisg
ICAgfV07CisKKyAgICBbY29udGVudFZpZXcgc2VsZWN0V29yZEZvclJlcGxhY2VtZW50XTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnNlbGVjdGlvbldpbGxDaGFuZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmc2VsZWN0aW9uRGlkQ2hhbmdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
IkhlbGxvIiwgW2NvbnRlbnRWaWV3IHRleHRJblJhbmdlOmNvbnRlbnRWaWV3LnNlbGVjdGVkVGV4
dFJhbmdlXSk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggZDYzZDdkN2RlNzgyNDdlZTk1NjU5YTRjNDQzNDg2ZmZm
ZjMwODk4OC4uMjQzMzdjN2MwMzk3NjJmNGIwMjMxNTc3MTY1MGI4YTIxMmYwN2FhYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC0xODAsNiArMTgwLDcgQEAgdHlwZWRlZiBOU19P
UFRJT05TKE5TSW50ZWdlciwgVUlXS0RvY3VtZW50UmVxdWVzdEZsYWdzKSB7CiAtICh2b2lkKXNl
bGVjdFRleHRXaXRoR3JhbnVsYXJpdHk6KFVJVGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5IGF0
UG9pbnQ6KENHUG9pbnQpcG9pbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyOwogLSAodm9pZCl1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnQ6
KENHUG9pbnQpcG9pbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgc2VsZWN0aW9u
RW5kSXNNb3ZpbmcpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZCl1cGRhdGVTZWxlY3Rpb25X
aXRoRXh0ZW50UG9pbnQ6KENHUG9pbnQpcG9pbnQgd2l0aEJvdW5kYXJ5OihVSVRleHRHcmFudWxh
cml0eSlncmFudWxhcml0eSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBzZWxlY3Rp
b25FbmRJc01vdmluZykpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKXNlbGVjdFdvcmRGb3JS
ZXBsYWNlbWVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNl
bGVjdGVkVGV4dDsKIAogQG9wdGlvbmFsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405095</attachid>
            <date>2020-07-23 16:33:54 -0700</date>
            <delta_ts>2020-07-23 18:01:45 -0700</delta_ts>
            <desc>Minor tweaks</desc>
            <filename>bug-214705-20200723163354.patch</filename>
            <type>text/plain</type>
            <size>19790</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0MmJjZGIzOWMzN2Y5ZGQy
NmU0YmNkNjdiOGUzMGZlN2IwNDIwZTUuLmRlZTVmZmJhZDFjOGZkZTRiYTIwMjg4ZGZiODgyYzZk
NTNjODU4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjAtMDctMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGFwcGluZyBRdWlja1R5
cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMgbm90aGluZyBpbiBNYWls
IGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gV2ViS2l0Mi1iYXNlZCBlZGl0
aW5nIGNvbnRleHRzIG9uIGlPUyAoc3VjaCBhcyBNYWlsIGNvbXBvc2UpLCB0YXBwaW5nIG9uIGEg
bWlzc3BlbGxlZCB3b3JkIHdpbGwgcmVzdWx0IGluCisgICAgICAgIFF1aWNrVHlwZSBzdWdnZXN0
aW9ucyBpbiB0aGUgaW5wdXQgYWNjZXNzb3J5IHJvdyBlaXRoZXIgc2hvd2luZyB1cCBibGFuayAo
aS5lLiB3aXRoIG5vIHN1Z2dlc3Rpb25zKSwgb3Igd2lsbAorICAgICAgICBzaG93IHN1Z2dlc3Rp
b25zIHRoYXQgYXJlIGNvbnRleHR1YWwgdG8gdGhlIHRleHQgc2VsZWN0aW9uIHByaW9yIHRvIHNl
bGVjdGluZyB0aGUgbWlzc3BlbGxlZCB3b3JkLiBTdWJzZXF1ZW50bHksCisgICAgICAgIGF0dGVt
cHRpbmcgdG8gY2hvb3NlIG9mIHRoZXNlIHN1Z2dlc3Rpb25zIHJlc3VsdHMgaW4gbm8gdGV4dCBi
ZWluZyBpbnNlcnRlZC4gVGhpcyBoYXBwZW5zIGZvciBhIGNvdXBsZSBvZgorICAgICAgICByZWFz
b25zOgorCisgICAgICAgIDEuICBVSUtpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtcmVxdWVzdCB0
aGUgYXV0b2NvcnJlY3Rpb24gY29udGV4dCBhZnRlciB0YXBwaW5nIG9uIGEgbWlzc3BlbGxlZCB3
b3JkLiBVSUtpdAorICAgICAgICAgICAganVzdCB1c2VzIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB0byBleHRlbmQgdGhlIHNlbGVjdGlvbiBvdmVyIHRoZSBtaXNzcGVsbGVkIHdvcmQsIHdo
aWNoIGRvZXNuJ3QKKyAgICAgICAgICAgIGN1cnJlbnRseSBmaXJlIGFueSBvZiB0aGUgc2VsZWN0
aW9uIGNoYW5nZSBjYWxsYmFja3Mgb24gVUlJbnB1dERlbGVnYXRlLiBBcyBhIHJlc3VsdCwgVUlL
aXQgd2lsbCBpbnN0ZWFkCisgICAgICAgICAgICBiZWxpZXZlIHRoYXQgdGhlIHNlbGVjdGlvbiBp
cyBjb2xsYXBzZWQgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgbWlzc3BlbGxlZCB3b3JkLgor
CisgICAgICAgIDIuICBVcG9uIGF0dGVtcHRpbmcgdG8gY29tcHV0ZSB0ZXh0IHN1Z2dlc3Rpb25z
IGZvciBRdWlja1R5cGUsIGAtW1VJS2V5Ym9hcmRJbXBsIHJlcGxhY2VtZW50c0Zyb21TZWxlY3Rl
ZFRleHRdYAorICAgICAgICAgICAgdXNlcyBgLXRleHRJblJhbmdlOmAgdG8gZ3JhYiB0aGUgY3Vy
cmVudGx5IHNlbGVjdGVkIHRleHQsIHdoaWNoIChpbiBXS0NvbnRlbnRWaWV3KSBpcyBjdXJyZW50
bHkgaGFyZC1jb2RlZAorICAgICAgICAgICAgdG8gYWx3YXlzIHJldHVybiBgbmlsYC4KKworICAg
ICAgICBXZSBhZGRyZXNzICgxKSBieSBib29rZW5kaW5nIGAtc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50YCB3aXRoIGNhbGxzIHRvIGAtYmVnaW5TZWxlY3Rpb25DaGFuZ2VgIGFuZAorICAgICAgICBg
LWVuZFNlbGVjdGlvbkNoYW5nZWAsIGFuZCBhZGRyZXNzICgyKSBieSB0ZWFjaGluZyBgLXRleHRJ
blJhbmdlOmAgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uLCBvbmx5IGluCisg
ICAgICAgIHRoZSBjYXNlIHdoZXJlIHRoZSBnaXZlbiBgVUlUZXh0UmFuZ2VgIGlzIGVxdWFsIHRv
IHRoZSBjdXJyZW50IHJhbmdlZCBzZWxlY3Rpb24uCisKKyAgICAgICAgVGVzdDogU2VsZWN0aW9u
VGVzdHMuU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxlY3RpbmdXb3JkRm9yUmVwbGFjZW1lbnQKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpleHRlbmRTZWxlY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVy
YWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGV4dEluUmFuZ2U6XSk6CisKKyAg
ICAgICAgU3BlY2lhbC1jYXNlIHRoZSBzY2VuYXJpbyB3aGVyZSB0aGUgaW5wdXQgdGV4dCByYW5n
ZSBpcyBleGFjdGx5IHRoZSBzYW1lIGFzIGBzZWxmLnNlbGVjdGVkVGV4dFJhbmdlYCBieQorICAg
ICAgICByZXR1cm5pbmcgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0IHRoYXQgaXMgY2FjaGVk
IG9uIEVkaXRvclN0YXRlLiBJbiBhbGwgb3RoZXIgY2FzZXMsIGNvbnRpbnVlIHRvIHJldHVybgor
ICAgICAgICBgbmlsYC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdGVkVGV4dFJh
bmdlXSk6CisKKyAgICAgICAgQ2FjaGUgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgdGV4dCByYW5nZSBv
biBXS0NvbnRlbnRWaWV3LCBzdWNoIHRoYXQgcmVwZWF0ZWQgY2FsbHMgdG8gc2VsZWN0ZWRUZXh0
UmFuZ2Ugd2hlbiB0aGUKKyAgICAgICAgc2VsZWN0aW9uIGhhcyBub3QgY2hhbmdlZCBkb2VzIG5v
dCByZXF1aXJlIGEgbmV3IFdLVGV4dFJhbmdlIHRvIGJlIGNvbnN0cnVjdGVkIGV2ZXJ5IHRpbWUu
CisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2VsZWN0aW9uQ2hhbmdlZF0pOgorCisgICAg
ICAgIEludmFsaWRhdGUgdGhlIGNhY2hlZCBzZWxlY3RlZCB0ZXh0IHJhbmdlIHdoZW5ldmVyIHRo
ZSBzZWxlY3Rpb24gaGFzIGNoYW5nZWQuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZWxl
Y3RXb3JkRm9yUmVwbGFjZW1lbnRdKToKKworICAgICAgICBVc2UgdGhlIGNvbXBsZXRpb24gY2Fs
bGJhY2sgYWRkZWQgYmVsb3cgdG8gYm9va2VuZCB0aGlzIG1ldGhvZCB3aXRoIGAtKGJlZ2lufGVu
ZClTZWxlY3Rpb25DaGFuZ2VgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXh0ZW5kU2VsZWN0aW9u
KToKKworICAgICAgICBBZGQgYW4gb3B0aW9uYWwgY29tcGxldGlvbiBjYWxsYmFjayB0byBgZXh0
ZW5kU2VsZWN0aW9uYC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24pOgorCiAyMDIwLTA3LTIyICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwOiBbSVBDIGhhcmRl
bmluZ10gV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmRlY29kZSgpIGFuZCBlbmNvZGUoKSBzaG91
bGQgdXNlIGVudW0gT2JqQ1R5cGUgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAzMGIyNjk3YjBiZjdhY2VmZDQ4NGFhMjY2ODVjN2NjNTUzYzViZTdmLi40MDg2
OGZlMTE2OGY1YjFjODViZTkzZTIyNGRlMjc5ZjRmNGFjNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzY1LDcgKzc2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBHZXN0dXJlVHlwZSwg
R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVt
ZW50LCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0dXJl
VHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgT3B0aW9uU2V0PFNlbGVjdGlvbkZsYWdzPiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uV2l0aFRv
dWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIFNlbGVjdGlvblRvdWNoLCBib29sIGJhc2VJ
c1N0YXJ0LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgU2VsZWN0aW9u
VG91Y2gsIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4sIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KTsKICAgICB2b2lkIHNlbGVjdFdpdGhUd29Ub3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
IGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHRvLCBHZXN0dXJlVHlwZSwgR2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZSwgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEdl
c3R1cmVUeXBlLCBHZXN0dXJlUmVjb2duaXplclN0YXRlLCBPcHRpb25TZXQ8U2VsZWN0aW9uRmxh
Z3M+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7Ci0gICAgdm9pZCBleHRlbmRTZWxlY3Rpb24o
V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIGV4dGVuZFNlbGVjdGlvbihXZWJD
b3JlOjpUZXh0R3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IHsgfSk7
CiAgICAgdm9pZCBzZWxlY3RXb3JkQmFja3dhcmQoKTsKICAgICB2b2lkIG1vdmVTZWxlY3Rpb25C
eU9mZnNldChpbnQzMl90IG9mZnNldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhG
b2N1c2VkRWxlbWVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCBkOGJiZDk4YjFlZDc0YWVmNThhMWMwMjFhYmU4YjUwOGY0ODlkMmZkLi45MmEwNTI3MmI1
NTc5NDQyOGFjYjAxMGVjOTU2ZmM5MjBmM2U5MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0xMDgsNiAr
MTA4LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogQGNsYXNzIFdLSGlnaGxpZ2h0TG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXI7CiBAY2xhc3MgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyOwogQGNs
YXNzIFdLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyOworQGNsYXNzIFdLVGV4
dFJhbmdlOwogQGNsYXNzIF9XS1RleHRJbnB1dENvbnRleHQ7CiAKIEBjbGFzcyBVSVRhcmdldGVk
UHJldmlldzsKQEAgLTMyMiw2ICszMjMsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEg
ewogICAgIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFz
dEludGVyYWN0aW9uU3RhcnQ7CiAKICAgICBXZWJLaXQ6OldLU2VsZWN0aW9uRHJhd2luZ0luZm8g
X2xhc3RTZWxlY3Rpb25EcmF3aW5nSW5mbzsKKyAgICBSZXRhaW5QdHI8V0tUZXh0UmFuZ2U+IF9j
YWNoZWRTZWxlY3RlZFRleHRSYW5nZTsKIAogICAgIE9wdGlvbmFsPFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3Q+IF9sYXN0T3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9u
UmVxdWVzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggN2E2Yzc5NThjN2EyMjFkZWJmOGVmNzI4ODY1
N2M5Y2QwOTYyNDc0MC4uOGFhZjY5ZjFjZWE3NTIxOTQ5YzVjMGZlZWYyMThjMWJlOGFkZTc4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCkBAIC0xMDYzLDYgKzEwNjMsOCBAQCAtICh2b2lkKWNsZWFuVXBJbnRl
cmFjdGlvbgogICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwogICAgIFtz
ZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5n
S2V5RXZlbnRIYW5kbGVyXTsKKworICAgIF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZSA9IG5pbDsK
IH0KIAogLSAodm9pZClfY2FuY2VsUGVuZGluZ0tleUV2ZW50SGFuZGxlcgpAQCAtNDUzMCw2ICs0
NTMyLDEzIEBAIC0gKHZvaWQpaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1Z2dlc3Rpb24g
Kil0ZXh0U3VnZ2VzdGlvbgogCiAtIChOU1N0cmluZyAqKXRleHRJblJhbmdlOihVSVRleHRSYW5n
ZSAqKXJhbmdlCiB7CisgICAgaWYgKCFfcGFnZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAg
IGF1dG8mIGVkaXRvclN0YXRlID0gX3BhZ2UtPmVkaXRvclN0YXRlKCk7CisgICAgaWYgKHNlbGYu
c2VsZWN0ZWRUZXh0UmFuZ2UgPT0gcmFuZ2UgJiYgIWVkaXRvclN0YXRlLmlzTWlzc2luZ1Bvc3RM
YXlvdXREYXRhICYmIGVkaXRvclN0YXRlLnNlbGVjdGlvbklzUmFuZ2UpCisgICAgICAgIHJldHVy
biBlZGl0b3JTdGF0ZS5wb3N0TGF5b3V0RGF0YSgpLndvcmRBdFNlbGVjdGlvbjsKKwogICAgIHJl
dHVybiBuaWw7CiB9CiAKQEAgLTQ1ODgsMTEgKzQ1OTcsMTUgQEAgLSAoVUlUZXh0UmFuZ2UgKilz
ZWxlY3RlZFRleHRSYW5nZQogICAgIGlmICghaXNDb250ZW50RWRpdGFibGUgJiYgIWlzUmFuZ2Up
CiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBpZiAoX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdl
KQorICAgICAgICByZXR1cm4gX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlLmdldCgpOworCiAgICAg
YXV0byBjYXJldFN0YXJ0UmVjdCA9IFtzZWxmIF9zY2FsZWRDYXJldFJlY3RGb3JTZWxlY3Rpb25T
dGFydDpfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0RGF0YSgpLmNhcmV0UmVjdEF0U3Rh
cnRdOwogICAgIGF1dG8gY2FyZXRFbmRSZWN0ID0gW3NlbGYgX3NjYWxlZENhcmV0UmVjdEZvclNl
bGVjdGlvbkVuZDpfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0RGF0YSgpLmNhcmV0UmVj
dEF0RW5kXTsKICAgICBhdXRvIHNlbGVjdGlvblJlY3RzID0gd2tUZXh0U2VsZWN0aW9uUmVjdHMo
X3BhZ2UtPmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5zZWxlY3Rpb25SZWN0cyk7CiAg
ICAgYXV0byBzZWxlY3RlZFRleHRMZW5ndGggPSBlZGl0b3JTdGF0ZS5wb3N0TGF5b3V0RGF0YSgp
LnNlbGVjdGVkVGV4dExlbmd0aDsKLSAgICByZXR1cm4gW1dLVGV4dFJhbmdlIHRleHRSYW5nZVdp
dGhTdGF0ZTohaGFzU2VsZWN0aW9uIGlzUmFuZ2U6aXNSYW5nZSBpc0VkaXRhYmxlOmlzQ29udGVu
dEVkaXRhYmxlIHN0YXJ0UmVjdDpjYXJldFN0YXJ0UmVjdCBlbmRSZWN0OmNhcmV0RW5kUmVjdCBz
ZWxlY3Rpb25SZWN0czpzZWxlY3Rpb25SZWN0cyBzZWxlY3RlZFRleHRMZW5ndGg6c2VsZWN0ZWRU
ZXh0TGVuZ3RoXTsKKyAgICBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFuZ2UgPSBbV0tUZXh0UmFuZ2Ug
dGV4dFJhbmdlV2l0aFN0YXRlOiFoYXNTZWxlY3Rpb24gaXNSYW5nZTppc1JhbmdlIGlzRWRpdGFi
bGU6aXNDb250ZW50RWRpdGFibGUgc3RhcnRSZWN0OmNhcmV0U3RhcnRSZWN0IGVuZFJlY3Q6Y2Fy
ZXRFbmRSZWN0IHNlbGVjdGlvblJlY3RzOnNlbGVjdGlvblJlY3RzIHNlbGVjdGVkVGV4dExlbmd0
aDpzZWxlY3RlZFRleHRMZW5ndGhdOworICAgIHJldHVybiBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFu
Z2UuZ2V0KCk7CiB9CiAKIC0gKENHUmVjdCljYXJldFJlY3RGb3JQb3NpdGlvbjooVUlUZXh0UG9z
aXRpb24gKilwb3NpdGlvbgpAQCAtNjU3NSw2ICs2NTg4LDcgQEAgLSAodm9pZClfc2VsZWN0aW9u
Q2hhbmdlZAogewogICAgIFtzZWxmIF91cGRhdGVTZWxlY3Rpb25Bc3Npc3RhbnRTdXBwcmVzc2lv
blN0YXRlXTsKIAorICAgIF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZSA9IG5pbDsKICAgICBfc2Vs
ZWN0aW9uTmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgLy8gSWYgd2UgYXJlIGNoYW5naW5nIHRoZSBz
ZWxlY3Rpb24gd2l0aCBhIGdlc3R1cmUgdGhlcmUgaXMgbm8gbmVlZAogICAgIC8vIHRvIHdhaXQg
dG8gcGFpbnQgdGhlIHNlbGVjdGlvbi4KQEAgLTY2MDAsNyArNjYxNCwxMSBAQCAtICh2b2lkKV9z
ZWxlY3Rpb25DaGFuZ2VkCiAKIC0gKHZvaWQpc2VsZWN0V29yZEZvclJlcGxhY2VtZW50CiB7Ci0g
ICAgX3BhZ2UtPmV4dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHk6OldvcmRH
cmFudWxhcml0eSk7CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdl
LT5leHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJp
dHksIFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CisgICAg
ICAgIGlmIChhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKSkKKyAgICAgICAgICAgIFtz
dHJvbmdTZWxmIGVuZFNlbGVjdGlvbkNoYW5nZV07CisgICAgfSk7CiB9CiAKICNpZiBFTkFCTEUo
UExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAzMjc0ZTFjZTQyMTQ5OWZiNjhiMTdkMGNl
M2UwY2Q2Mjk3NzlmNTJiLi43MjRiODUzNzk0Y2YzN2YyNDUzZDI1MDUxZmMyODc0OTNhMzM5MjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
QEAgLTc1Miw5ICs3NTIsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFwcGxpY2F0aW9uRGlkQmVj
b21lQWN0aXZlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlKCksIG1fd2ViUGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmV4dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXh0
ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSwgbV93ZWJQYWdlSUQpOworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RXh0ZW5kU2VsZWN0aW9uKGdyYW51bGFyaXR5KSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZWxlY3RXb3Jk
QmFja3dhcmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IGExNTQ3NmMyNDY5ZTQ4N2NkYjE5OWEwODhhOGQ1YmEwNjE0ODU4ZWIuLjI2ZDI0MzNiNjE1
MTU4ZWY3NjhjMTY2NjIwOWZlYWNmOTZmZGU3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY5NSw3ICs2OTUsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZWxlY3RXaXRoR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEdlc3R1cmVUeXBl
LCBHZXN0dXJlUmVjb2duaXplclN0YXRlLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVs
ZW1lbnQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBTZWxlY3Rpb25Ub3VjaCwgYm9vbCBiYXNlSXNTdGFy
dCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBzZWxlY3RXaXRoVHdvVG91Y2hlcyhjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZnJvbSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHRvLCBHZXN0dXJl
VHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBleHRl
bmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIGV4dGVuZFNl
bGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZWxlY3RXb3JkQmFja3dhcmQoKTsKICAgICB2b2lkIG1vdmVTZWxl
Y3Rpb25CeU9mZnNldChpbnQzMl90IG9mZnNldCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3Rp
bmdXaXRoRm9jdXNlZEVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCA3MmYwMzg2MTY0ODM4NmZiYzg0MTUwODVjMTUzY2ZlZTc1MjY3NmM2Li5hNTk1ZTdk
OTIxMmIzZWRjODI5Mzg5ZmNkZmZmOTI0NTJhNThkODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTY4LDcgKzY4
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2VsZWN0V2l0
aEdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6Okdl
c3R1cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlUmVjb2du
aXplclN0YXRlIGdlc3R1cmVTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVt
ZW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBVcGRhdGVTZWxlY3Rpb25X
aXRoVG91Y2hlcyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgZW51bTp1aW50OF90IFdlYktpdDo6
U2VsZWN0aW9uVG91Y2ggdG91Y2hlcywgYm9vbCBiYXNlSXNTdGFydCwgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgU2VsZWN0V2l0aFR3b1RvdWNoZXMoV2ViQ29yZTo6SW50UG9p
bnQgZnJvbSwgV2ViQ29yZTo6SW50UG9pbnQgdG8sIGVudW06dWludDhfdCBXZWJLaXQ6Okdlc3R1
cmVUeXBlIGdlc3R1cmVUeXBlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlUmVjb2duaXpl
clN0YXRlIGdlc3R1cmVTdGF0ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAg
RXh0ZW5kU2VsZWN0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHkpCisgICAgRXh0ZW5kU2VsZWN0aW9uKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpIC0+ICgpIEFzeW5jCiAgICAgU2VsZWN0V29yZEJhY2t3
YXJkKCkKICAgICBNb3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQpIC0+ICgpIEFz
eW5jCiAgICAgU2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCkgLT4gKCkgQXN5bmMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggMTdmZDFhNzEzNjlkMGQzMWFiYWEyYjU4MjE5YTUzZGJhZWI3ZmQ4Yi4uNmIzNTVkMWE2
ZDE5NzNhYmJiOTg3NGQwYjQ3YWI4ZTQyODQxMjM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEzMyw2ICsxMzMsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KKyNpbXBvcnQgPHd0Zi9T
Y29wZS5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW1wb3J0IDx3dGYvU29mdExp
bmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KQEAgLTE3NjIsOCAr
MTc2MywxMCBAQCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdpdGhUd29Ub3VjaGVzKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBmcm9tLCBjb25zdCBXZWJDb3JlOgogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6R2VzdHVyZUNhbGxiYWNrKGZyb20sIGdlc3R1cmVUeXBlLCBnZXN0dXJlU3Rh
dGUsIHsgfSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmV4dGVuZFNlbGVjdGlv
bihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCit2b2lkIFdlYlBhZ2U6OmV4
dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBhdXRvIGNh
bGxDb21wbGV0aW9uSGFuZGxlck9uRXhpdCA9IG1ha2VTY29wZUV4aXQoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworCiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAvLyBGb3IgdGhlIG1vbWVudCB3ZSBoYW5k
bGUgb25seSBUZXh0R3JhbnVsYXJpdHk6OldvcmRHcmFudWxhcml0eS4KICAgICBpZiAoZ3JhbnVs
YXJpdHkgIT0gVGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkgfHwgIWZyYW1lLnNlbGVj
dGlvbigpLmlzQ2FyZXQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBkY2YxMDgyMmUyMGE3ZjE2NWQ4OTZkMzdmNGJhYmQ3MzRkOTg3YThmLi4x
OTUxM2FiZGU4ZjAzMjY1NjRmYzA2ZGQwZmU4YTg1MTBmYmJhNjdiIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAt
MDctMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
VGFwcGluZyBRdWlja1R5cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMg
bm90aGluZyBpbiBNYWlsIGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW06CisKKyAgICAgICAgQWRkIGEg
dW5pdCB0ZXN0IHRvIGV4ZXJjaXNlIHRoZSBjaGFuZ2VzIGluIGJlaGF2aW9yIHdoZW4gY2FsbGlu
ZyBVSVRleHRJbnB1dCBBUEkuCisKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIg
c2V0U2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXI6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNo
YW5nZUxpc3RlbmVyIHNldFNlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXI6XSk6CisgICAgICAgICgt
W1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyXSk6Cisg
ICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHNlbGVjdGlvbkRpZENoYW5nZUhhbmRs
ZXJdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uV2lsbENo
YW5nZTpdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uRGlk
Q2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciB0ZXh0V2lsbENo
YW5nZTpdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgdGV4dERpZENoYW5n
ZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOgorCiAyMDIwLTA3
LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFy
dGljbGUgaGVhZGxpbmVzIGFyZSBzcGxpdCBhY3Jvc3MgbXVsdGlwbGUgbGluZXMgYWZ0ZXIgdHJh
bnNsYXRpbmcgdGFnZXNzY2hhdS5kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3JkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvU2VsZWN0aW9uQnlXb3JkLm1tCmluZGV4IDNhMGIxOTg5M2FmNzI3YzAwMjkyMDM2OTRjNjEz
ODUzNWU5NDBkNTcuLmYwMzQ3MjQ1ZWZmMDA5YzhiODExNzZjMDNmMTY3MWExNGE5ZGFmYjMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0K
QEAgLTMxLDEwICszMSw3IEBACiAjaW1wb3J0ICJUZXN0SW5wdXREZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLQotQGludGVyZmFjZSBX
S0NvbnRlbnRWaWV3IChQcml2YXRlKQotLSAodm9pZClzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7
Ci1AZW5kCisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAogVEVTVChTZWxlY3Rpb25UZXN0cywg
QnlXb3JkQXRFbmRPZkRvY3VtZW50KQogewpAQCAtNDcsNyArNDQsNyBAQCBURVNUKFNlbGVjdGlv
blRlc3RzLCBCeVdvcmRBdEVuZE9mRG9jdW1lbnQpCiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2Vk
Il0uYm9vbFZhbHVlKTsKIAogICAgIC8vIFRoaXMgbWV0aG9kIHRyaWdnZXJzIHRoZSB3b3JkUmFu
Z2VGcm9tUG9zaXRpb24oKSBjb2RlIHRvIGJlIHRlc3RlZC4KLSAgICBbW3dlYlZpZXcgd2tDb250
ZW50Vmlld10gc2VsZWN0V29yZEZvclJlcGxhY2VtZW50XTsKKyAgICBbW3dlYlZpZXcgdGV4dElu
cHV0Q29udGVudFZpZXddIHNlbGVjdFdvcmRGb3JSZXBsYWNlbWVudF07CiAKICAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLmlzQ29sbGFwc2VkIl0uYm9vbFZhbHVlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmFuY2hvck5v
ZGUubm9kZVZhbHVlIl0sICJQYXJhZ3JhcGggVGhyZWUiKTsKQEAgLTU4LDQgKzU1LDgzIEBAIFRF
U1QoU2VsZWN0aW9uVGVzdHMsIEJ5V29yZEF0RW5kT2ZEb2N1bWVudCkKICAgICBFWFBFQ1RfV0tf
U1RSRVEoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkiXSwgIlRocmVlIik7CiB9CiAKK0BpbnRlcmZhY2UgU2VsZWN0aW9uQ2hh
bmdlTGlzdGVuZXIgOiBOU09iamVjdCA8VUlUZXh0SW5wdXREZWxlZ2F0ZT4KK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBkaXNwYXRjaF9ibG9ja190IHNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOwor
QHByb3BlcnR5IChub25hdG9taWMpIGRpc3BhdGNoX2Jsb2NrX3Qgc2VsZWN0aW9uRGlkQ2hhbmdl
SGFuZGxlcjsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVy
IHsKKyAgICBCbG9ja1B0cjx2b2lkKCk+IF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjsKKyAg
ICBCbG9ja1B0cjx2b2lkKCk+IF9zZWxlY3Rpb25EaWRDaGFuZ2VIYW5kbGVyOworfQorCistICh2
b2lkKXNldFNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRs
ZXIKK3sKKyAgICBfc2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFu
ZGxlcik7Cit9CisKKy0gKHZvaWQpc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjooZGlzcGF0
Y2hfYmxvY2tfdCloYW5kbGVyCit7CisgICAgX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIgPSBt
YWtlQmxvY2tQdHIoaGFuZGxlcik7Cit9CisKKy0gKGRpc3BhdGNoX2Jsb2NrX3Qpc2VsZWN0aW9u
V2lsbENoYW5nZUhhbmRsZXIKK3sKKyAgICByZXR1cm4gX3NlbGVjdGlvbldpbGxDaGFuZ2VIYW5k
bGVyLmdldCgpOworfQorCistIChkaXNwYXRjaF9ibG9ja190KXNlbGVjdGlvbkRpZENoYW5nZUhh
bmRsZXIKK3sKKyAgICByZXR1cm4gX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIuZ2V0KCk7Cit9
CisKKy0gKHZvaWQpc2VsZWN0aW9uV2lsbENoYW5nZTooaWQgPFVJVGV4dElucHV0Pil0ZXh0SW5w
dXQKK3sKKyAgICBpZiAoX3NlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyKQorICAgICAgICBfc2Vs
ZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIoKTsKK30KKworLSAodm9pZClzZWxlY3Rpb25EaWRDaGFu
Z2U6KGlkIDxVSVRleHRJbnB1dD4pdGV4dElucHV0Cit7CisgICAgaWYgKF9zZWxlY3Rpb25EaWRD
aGFuZ2VIYW5kbGVyKQorICAgICAgICBfc2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcigpOworfQor
CistICh2b2lkKXRleHRXaWxsQ2hhbmdlOihpZCA8VUlUZXh0SW5wdXQ+KXRleHRJbnB1dAorewor
fQorCistICh2b2lkKXRleHREaWRDaGFuZ2U6KGlkIDxVSVRleHRJbnB1dD4pdGV4dElucHV0Cit7
Cit9CisKK0BlbmQKKworVEVTVChTZWxlY3Rpb25UZXN0cywgU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxl
Y3RpbmdXb3JkRm9yUmVwbGFjZW1lbnQpCit7CisgICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMo
W1tTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgY29udGVudGVkaXRhYmxlPjxwPkhl
bGxvPC9wPjwvYm9keT48c2NyaXB0PmRvY3VtZW50LmJvZHkuZm9jdXMoKTwvc2NyaXB0PiJdOwor
CisgICAgYXV0byBjb250ZW50VmlldyA9IFt3ZWJWaWV3IHRleHRJbnB1dENvbnRlbnRWaWV3XTsK
KyAgICBbY29udGVudFZpZXcgc2V0SW5wdXREZWxlZ2F0ZTpsaXN0ZW5lci5nZXQoKV07CisKKyAg
ICBfX2Jsb2NrIGJvb2wgc2VsZWN0aW9uV2lsbENoYW5nZSA9IGZhbHNlOworICAgIFtsaXN0ZW5l
ciBzZXRTZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjpeeworICAgICAgICBzZWxlY3Rpb25XaWxs
Q2hhbmdlID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIF9fYmxvY2sgYm9vbCBzZWxlY3Rpb25EaWRD
aGFuZ2UgPSBmYWxzZTsKKyAgICBbbGlzdGVuZXIgc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxl
cjpeeworICAgICAgICBzZWxlY3Rpb25EaWRDaGFuZ2UgPSB0cnVlOworICAgIH1dOworCisgICAg
W2NvbnRlbnRWaWV3IHNlbGVjdFdvcmRGb3JSZXBsYWNlbWVudF07CisgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZzZWxlY3Rpb25XaWxsQ2hhbmdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnNlbGVjdGlvbkRpZENoYW5nZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyIsIFtjb250
ZW50VmlldyB0ZXh0SW5SYW5nZTpjb250ZW50Vmlldy5zZWxlY3RlZFRleHRSYW5nZV0pOworfQor
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQ
SS5oCmluZGV4IGQ2M2Q3ZDdkZTc4MjQ3ZWU5NTY1OWE0YzQ0MzQ4NmZmZmYzMDg5ODguLjI0MzM3
YzdjMDM5NzYyZjRiMDIzMTU3NzE2NTBiOGEyMTJmMDdhYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3Mv
VUlLaXRTUEkuaApAQCAtMTgwLDYgKzE4MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU0ludGVn
ZXIsIFVJV0tEb2N1bWVudFJlcXVlc3RGbGFncykgewogLSAodm9pZClzZWxlY3RUZXh0V2l0aEdy
YW51bGFyaXR5OihVSVRleHRHcmFudWxhcml0eSlncmFudWxhcml0eSBhdFBvaW50OihDR1BvaW50
KXBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cjsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5nKSlj
b21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50
OihDR1BvaW50KXBvaW50IHdpdGhCb3VuZGFyeTooVUlUZXh0R3JhbnVsYXJpdHkpZ3JhbnVsYXJp
dHkgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgc2VsZWN0aW9uRW5kSXNNb3Zpbmcp
KWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpzZWxlY3RlZFRleHQ7CiAK
IEBvcHRpb25hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405107</attachid>
            <date>2020-07-23 18:01:47 -0700</date>
            <delta_ts>2020-07-23 20:20:57 -0700</delta_ts>
            <desc>Fix API test</desc>
            <filename>bug-214705-20200723180146.patch</filename>
            <type>text/plain</type>
            <size>20114</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0MmJjZGIzOWMzN2Y5ZGQy
NmU0YmNkNjdiOGUzMGZlN2IwNDIwZTUuLjhjNjk5NDAxYTIyM2E3MGY1MzlhODkxYTczZDg5MDY4
MjU2MDE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjAtMDctMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGFwcGluZyBRdWlja1R5
cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMgbm90aGluZyBpbiBNYWls
IGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBJbiBXZWJLaXQyLWJhc2VkIGVkaXRpbmcg
Y29udGV4dHMgb24gaU9TIChzdWNoIGFzIE1haWwgY29tcG9zZSksIHRhcHBpbmcgb24gYSBtaXNz
cGVsbGVkIHdvcmQgd2lsbCByZXN1bHQgaW4KKyAgICAgICAgUXVpY2tUeXBlIHN1Z2dlc3Rpb25z
IGluIHRoZSBpbnB1dCBhY2Nlc3Nvcnkgcm93IGVpdGhlciBzaG93aW5nIHVwIGJsYW5rIChpLmUu
IHdpdGggbm8gc3VnZ2VzdGlvbnMpLCBvciB3aWxsCisgICAgICAgIHNob3cgc3VnZ2VzdGlvbnMg
dGhhdCBhcmUgY29udGV4dHVhbCB0byB0aGUgdGV4dCBzZWxlY3Rpb24gcHJpb3IgdG8gc2VsZWN0
aW5nIHRoZSBtaXNzcGVsbGVkIHdvcmQuIFN1YnNlcXVlbnRseSwKKyAgICAgICAgYXR0ZW1wdGlu
ZyB0byBjaG9vc2Ugb2YgdGhlc2Ugc3VnZ2VzdGlvbnMgcmVzdWx0cyBpbiBubyB0ZXh0IGJlaW5n
IGluc2VydGVkLiBUaGlzIGhhcHBlbnMgZm9yIGEgY291cGxlIG9mCisgICAgICAgIHJlYXNvbnM6
CisKKyAgICAgICAgMS4gIFVJS2l0IGRvZXNuJ3QgYXR0ZW1wdCB0byByZS1yZXF1ZXN0IHRoZSBh
dXRvY29ycmVjdGlvbiBjb250ZXh0IGFmdGVyIHRhcHBpbmcgb24gYSBtaXNzcGVsbGVkIHdvcmQu
IFVJS2l0CisgICAgICAgICAgICBqdXN0IHVzZXMgYC1zZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRg
IHRvIGV4dGVuZCB0aGUgc2VsZWN0aW9uIG92ZXIgdGhlIG1pc3NwZWxsZWQgd29yZCwgd2hpY2gg
ZG9lc24ndAorICAgICAgICAgICAgY3VycmVudGx5IGZpcmUgYW55IG9mIHRoZSBzZWxlY3Rpb24g
Y2hhbmdlIGNhbGxiYWNrcyBvbiBVSUlucHV0RGVsZWdhdGUuIEFzIGEgcmVzdWx0LCBVSUtpdCB3
aWxsIGluc3RlYWQKKyAgICAgICAgICAgIGJlbGlldmUgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIGNv
bGxhcHNlZCB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBtaXNzcGVsbGVkIHdvcmQuCisKKyAg
ICAgICAgMi4gIFVwb24gYXR0ZW1wdGluZyB0byBjb21wdXRlIHRleHQgc3VnZ2VzdGlvbnMgZm9y
IFF1aWNrVHlwZSwgYC1bVUlLZXlib2FyZEltcGwgcmVwbGFjZW1lbnRzRnJvbVNlbGVjdGVkVGV4
dF1gCisgICAgICAgICAgICB1c2VzIGAtdGV4dEluUmFuZ2U6YCB0byBncmFiIHRoZSBjdXJyZW50
bHkgc2VsZWN0ZWQgdGV4dCwgd2hpY2ggKGluIFdLQ29udGVudFZpZXcpIGlzIGN1cnJlbnRseSBo
YXJkLWNvZGVkCisgICAgICAgICAgICB0byBhbHdheXMgcmV0dXJuIGBuaWxgLgorCisgICAgICAg
IFdlIGFkZHJlc3MgKDEpIGJ5IGJvb2tlbmRpbmcgYC1zZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRg
IHdpdGggY2FsbHMgdG8gYC1iZWdpblNlbGVjdGlvbkNoYW5nZWAgYW5kCisgICAgICAgIGAtZW5k
U2VsZWN0aW9uQ2hhbmdlYCwgYW5kIGFkZHJlc3MgKDIpIGJ5IHRlYWNoaW5nIGAtdGV4dEluUmFu
Z2U6YCB0byByZXR1cm4gdGhlIGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24sIG9ubHkgaW4KKyAgICAg
ICAgdGhlIGNhc2Ugd2hlcmUgdGhlIGdpdmVuIGBVSVRleHRSYW5nZWAgaXMgZXF1YWwgdG8gdGhl
IGN1cnJlbnQgcmFuZ2VkIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBTZWxlY3Rpb25UZXN0
cy5TZWxlY3RlZFRleHRBZnRlclNlbGVjdGluZ1dvcmRGb3JSZXBsYWNlbWVudAorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmV4dGVuZFNlbGVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9m
T2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHRleHRJ
blJhbmdlOl0pOgorCisgICAgICAgIFNwZWNpYWwtY2FzZSB0aGUgc2NlbmFyaW8gd2hlcmUgdGhl
IGlucHV0IHRleHQgcmFuZ2UgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBgc2VsZi5zZWxlY3RlZFRl
eHRSYW5nZWAgYnkKKyAgICAgICAgcmV0dXJuaW5nIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4
dCB0aGF0IGlzIGNhY2hlZCBvbiBFZGl0b3JTdGF0ZS4gSW4gYWxsIG90aGVyIGNhc2VzLCBjb250
aW51ZSB0byByZXR1cm4KKyAgICAgICAgYG5pbGAuCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBzZWxlY3RlZFRleHRSYW5nZV0pOgorCisgICAgICAgIENhY2hlIHRoZSBjdXJyZW50IHNlbGVj
dGVkIHRleHQgcmFuZ2Ugb24gV0tDb250ZW50Vmlldywgc3VjaCB0aGF0IHJlcGVhdGVkIGNhbGxz
IHRvIHNlbGVjdGVkVGV4dFJhbmdlIHdoZW4gdGhlCisgICAgICAgIHNlbGVjdGlvbiBoYXMgbm90
IGNoYW5nZWQgZG9lcyBub3QgcmVxdWlyZSBhIG5ldyBXS1RleHRSYW5nZSB0byBiZSBjb25zdHJ1
Y3RlZCBldmVyeSB0aW1lLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NlbGVjdGlvbkNo
YW5nZWRdKToKKworICAgICAgICBJbnZhbGlkYXRlIHRoZSBjYWNoZWQgc2VsZWN0ZWQgdGV4dCBy
YW5nZSB3aGVuZXZlciB0aGUgc2VsZWN0aW9uIGhhcyBjaGFuZ2VkLgorCisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgc2VsZWN0V29yZEZvclJlcGxhY2VtZW50XSk6CisKKyAgICAgICAgVXNlIHRo
ZSBjb21wbGV0aW9uIGNhbGxiYWNrIGFkZGVkIGJlbG93IHRvIGJvb2tlbmQgdGhpcyBtZXRob2Qg
d2l0aCBgLShiZWdpbnxlbmQpU2VsZWN0aW9uQ2hhbmdlYC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmV4dGVuZFNlbGVjdGlvbik6CisKKyAgICAgICAgQWRkIGFuIG9wdGlvbmFsIGNvbXBsZXRpb24g
Y2FsbGJhY2sgdG8gYGV4dGVuZFNlbGVjdGlvbmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZXh0ZW5kU2VsZWN0aW9uKToKKwogMjAyMC0w
Ny0yMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxv
dy11cDogW0lQQyBoYXJkZW5pbmddIFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjpkZWNvZGUoKSBh
bmQgZW5jb2RlKCkgc2hvdWxkIHVzZSBlbnVtIE9iakNUeXBlIHR5cGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzBiMjY5N2IwYmY3YWNlZmQ0ODRhYTI2Njg1Yzdj
YzU1M2M1YmU3Zi4uNDA4NjhmZTExNjhmNWIxYzg1YmU5M2UyMjRkZTI3OWY0ZjRhYzZhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTc2NSw3ICs3NjUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZWxlY3RXaXRoR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCwgR2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGlu
Z1dpdGhGb2N1c2VkRWxlbWVudCwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiwgR2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIE9wdGlvblNldDxT
ZWxlY3Rpb25GbGFncz4sIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHVwZGF0
ZVNlbGVjdGlvbldpdGhUb3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBTZWxlY3Rpb25U
b3VjaCwgYm9vbCBiYXNlSXNTdGFydCwgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYsIFNlbGVjdGlvblRvdWNoLCBPcHRpb25TZXQ8U2VsZWN0aW9uRmxhZ3M+LCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCBzZWxlY3RXaXRoVHdvVG91Y2hlcyhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCBmcm9tLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCB0bywgR2VzdHVy
ZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIEZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCBHZXN0dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgT3B0aW9u
U2V0PFNlbGVjdGlvbkZsYWdzPiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQg
ZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBleHRl
bmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgPSB7IH0pOwogICAgIHZvaWQgc2VsZWN0V29yZEJhY2t3YXJkKCk7CiAgICAgdm9p
ZCBtb3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZzZXQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29sIGlz
SW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKaW5kZXggZDhiYmQ5OGIxZWQ3NGFlZjU4YTFjMDIxYWJlOGI1MDhmNDg5
ZDJmZC4uOTJhMDUyNzJiNTU3OTQ0MjhhY2IwMTBlYzk1NmZjOTIwZjNlOTBhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaApAQCAtMTA4LDYgKzEwOCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIEBjbGFzcyBXS0hp
Z2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwogQGNsYXNzIFdLTW91c2VHZXN0dXJl
UmVjb2duaXplcjsKIEBjbGFzcyBXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVjb2duaXpl
cjsKK0BjbGFzcyBXS1RleHRSYW5nZTsKIEBjbGFzcyBfV0tUZXh0SW5wdXRDb250ZXh0OwogCiBA
Y2xhc3MgVUlUYXJnZXRlZFByZXZpZXc7CkBAIC0zMjIsNiArMzIzLDcgQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgX2xheWVyVHJlZVRy
YW5zYWN0aW9uSWRBdExhc3RJbnRlcmFjdGlvblN0YXJ0OwogCiAgICAgV2ViS2l0OjpXS1NlbGVj
dGlvbkRyYXdpbmdJbmZvIF9sYXN0U2VsZWN0aW9uRHJhd2luZ0luZm87CisgICAgUmV0YWluUHRy
PFdLVGV4dFJhbmdlPiBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFuZ2U7CiAKICAgICBPcHRpb25hbDxX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0PiBfbGFzdE91dHN0YW5kaW5nUG9z
aXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDdhNmM3OTU4Yzdh
MjIxZGViZjhlZjcyODg2NTdjOWNkMDk2MjQ3NDAuLmJiMTc3NDMzZjNjMTVmOWIzZDA4MGExYmE5
M2M0OGRmNDU4ZmUxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTA2Myw2ICsxMDYzLDggQEAgLSAo
dm9pZCljbGVhblVwSW50ZXJhY3Rpb24KICAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlv
bkZsYWdzXTsKICAgICBbc2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJD
b3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKICAgICBbc2Vs
ZiBfY2FuY2VsUGVuZGluZ0tleUV2ZW50SGFuZGxlcl07CisKKyAgICBfY2FjaGVkU2VsZWN0ZWRU
ZXh0UmFuZ2UgPSBuaWw7CiB9CiAKIC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRs
ZXIKQEAgLTEyMDYsNiArMTIwOCw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDoo
TlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOCiAKICAgICBb
c2VsZiBfdXBkYXRlVGFwSGlnaGxpZ2h0XTsKIAorICAgIF9jYWNoZWRTZWxlY3RlZFRleHRSYW5n
ZSA9IG5pbDsKICAgICBfc2VsZWN0aW9uTmVlZHNVcGRhdGUgPSBZRVM7CiAgICAgW3NlbGYgX3Vw
ZGF0ZUNoYW5nZWRTZWxlY3Rpb246WUVTXTsKIH0KQEAgLTQ1MzAsNiArNDUzMywxMyBAQCAtICh2
b2lkKWluc2VydFRleHRTdWdnZXN0aW9uOihVSVRleHRTdWdnZXN0aW9uICopdGV4dFN1Z2dlc3Rp
b24KIAogLSAoTlNTdHJpbmcgKil0ZXh0SW5SYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZQogewor
ICAgIGlmICghX3BhZ2UpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRvJiBlZGl0b3JT
dGF0ZSA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpOworICAgIGlmIChzZWxmLnNlbGVjdGVkVGV4dFJh
bmdlID09IHJhbmdlICYmICFlZGl0b3JTdGF0ZS5pc01pc3NpbmdQb3N0TGF5b3V0RGF0YSAmJiBl
ZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc1JhbmdlKQorICAgICAgICByZXR1cm4gZWRpdG9yU3RhdGUu
cG9zdExheW91dERhdGEoKS53b3JkQXRTZWxlY3Rpb247CisKICAgICByZXR1cm4gbmlsOwogfQog
CkBAIC00NTg4LDExICs0NTk4LDE1IEBAIC0gKFVJVGV4dFJhbmdlICopc2VsZWN0ZWRUZXh0UmFu
Z2UKICAgICBpZiAoIWlzQ29udGVudEVkaXRhYmxlICYmICFpc1JhbmdlKQogICAgICAgICByZXR1
cm4gbmlsOwogCisgICAgaWYgKF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZSkKKyAgICAgICAgcmV0
dXJuIF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZS5nZXQoKTsKKwogICAgIGF1dG8gY2FyZXRTdGFy
dFJlY3QgPSBbc2VsZiBfc2NhbGVkQ2FyZXRSZWN0Rm9yU2VsZWN0aW9uU3RhcnQ6X3BhZ2UtPmVk
aXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5jYXJldFJlY3RBdFN0YXJ0XTsKICAgICBhdXRv
IGNhcmV0RW5kUmVjdCA9IFtzZWxmIF9zY2FsZWRDYXJldFJlY3RGb3JTZWxlY3Rpb25FbmQ6X3Bh
Z2UtPmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5jYXJldFJlY3RBdEVuZF07CiAgICAg
YXV0byBzZWxlY3Rpb25SZWN0cyA9IHdrVGV4dFNlbGVjdGlvblJlY3RzKF9wYWdlLT5lZGl0b3JT
dGF0ZSgpLnBvc3RMYXlvdXREYXRhKCkuc2VsZWN0aW9uUmVjdHMpOwogICAgIGF1dG8gc2VsZWN0
ZWRUZXh0TGVuZ3RoID0gZWRpdG9yU3RhdGUucG9zdExheW91dERhdGEoKS5zZWxlY3RlZFRleHRM
ZW5ndGg7Ci0gICAgcmV0dXJuIFtXS1RleHRSYW5nZSB0ZXh0UmFuZ2VXaXRoU3RhdGU6IWhhc1Nl
bGVjdGlvbiBpc1JhbmdlOmlzUmFuZ2UgaXNFZGl0YWJsZTppc0NvbnRlbnRFZGl0YWJsZSBzdGFy
dFJlY3Q6Y2FyZXRTdGFydFJlY3QgZW5kUmVjdDpjYXJldEVuZFJlY3Qgc2VsZWN0aW9uUmVjdHM6
c2VsZWN0aW9uUmVjdHMgc2VsZWN0ZWRUZXh0TGVuZ3RoOnNlbGVjdGVkVGV4dExlbmd0aF07Cisg
ICAgX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlID0gW1dLVGV4dFJhbmdlIHRleHRSYW5nZVdpdGhT
dGF0ZTohaGFzU2VsZWN0aW9uIGlzUmFuZ2U6aXNSYW5nZSBpc0VkaXRhYmxlOmlzQ29udGVudEVk
aXRhYmxlIHN0YXJ0UmVjdDpjYXJldFN0YXJ0UmVjdCBlbmRSZWN0OmNhcmV0RW5kUmVjdCBzZWxl
Y3Rpb25SZWN0czpzZWxlY3Rpb25SZWN0cyBzZWxlY3RlZFRleHRMZW5ndGg6c2VsZWN0ZWRUZXh0
TGVuZ3RoXTsKKyAgICByZXR1cm4gX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlLmdldCgpOwogfQog
CiAtIChDR1JlY3QpY2FyZXRSZWN0Rm9yUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopcG9zaXRp
b24KQEAgLTY1NzUsNiArNjU4OSw3IEBAIC0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQKIHsKICAg
ICBbc2VsZiBfdXBkYXRlU2VsZWN0aW9uQXNzaXN0YW50U3VwcHJlc3Npb25TdGF0ZV07CiAKKyAg
ICBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFuZ2UgPSBuaWw7CiAgICAgX3NlbGVjdGlvbk5lZWRzVXBk
YXRlID0gWUVTOwogICAgIC8vIElmIHdlIGFyZSBjaGFuZ2luZyB0aGUgc2VsZWN0aW9uIHdpdGgg
YSBnZXN0dXJlIHRoZXJlIGlzIG5vIG5lZWQKICAgICAvLyB0byB3YWl0IHRvIHBhaW50IHRoZSBz
ZWxlY3Rpb24uCkBAIC02NjAwLDcgKzY2MTUsMTEgQEAgLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdl
ZAogCiAtICh2b2lkKXNlbGVjdFdvcmRGb3JSZXBsYWNlbWVudAogewotICAgIF9wYWdlLT5leHRl
bmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkpOwor
ICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdlXTsKKyAgICBfcGFnZS0+ZXh0ZW5kU2VsZWN0
aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5LCBbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0geworICAgICAgICBpZiAoYXV0byBz
dHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAgICAgICBbc3Ryb25nU2VsZiBlbmRT
ZWxlY3Rpb25DaGFuZ2VdOworICAgIH0pOwogfQogCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0RSSVZF
Tl9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KaW5kZXggMzI3NGUxY2U0MjE0OTlmYjY4YjE3ZDBjZTNlMGNkNjI5Nzc5ZjUy
Yi4uNzI0Yjg1Mzc5NGNmMzdmMjQ1M2QyNTA1MWZjMjg3NDkzYTMzOTIxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC03NTIsOSArNzUy
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBcHBsaWNhdGlvbkRpZEJlY29t
ZUFjdGl2ZSgpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleHRlbmRT
ZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBXZWJQ
YWdlUHJveHk6OmV4dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkV4dGVuZFNlbGVjdGlvbihn
cmFudWxhcml0eSksIG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSksIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBp
ZiAoY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgIH0pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VsZWN0V29yZEJhY2t3YXJkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhMTU0NzZjMjQ2
OWU0ODdjZGIxOTlhMDg4YThkNWJhMDYxNDg1OGViLi4yNmQyNDMzYjYxNTE1OGVmNzY4YzE2NjYy
MDlmZWFjZjk2ZmRlN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC02OTUsNyArNjk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0V2l0aEdl
c3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0dXJlVHlwZSwgR2VzdHVyZVJlY29n
bml6ZXJTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDYWxsYmFj
a0lEKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgU2VsZWN0aW9uVG91Y2gsIGJvb2wgYmFzZUlzU3RhcnQsIENhbGxiYWNrSUQp
OwogICAgIHZvaWQgc2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGZyb20sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB0bywgR2VzdHVyZVR5cGUsIEdlc3R1cmVS
ZWNvZ25pemVyU3RhdGUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZXh0ZW5kU2VsZWN0aW9uKFdl
YkNvcmU6OlRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBleHRlbmRTZWxlY3Rpb24oV2ViQ29y
ZTo6VGV4dEdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2VsZWN0V29yZEJhY2t3YXJkKCk7CiAgICAgdm9pZCBtb3ZlU2VsZWN0aW9uQnlPZmZzZXQo
aW50MzJfdCBvZmZzZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBz
ZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRF
bGVtZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzJmMDM4
NjE2NDgzODZmYmM4NDE1MDg1YzE1M2NmZWU3NTI2NzZjNi4uYTU5NWU3ZDkyMTJiM2VkYzgyOTM4
OWZjZGZmZjkyNDUyYTU4ZDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02OCw3ICs2OCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbGVjdFdpdGhHZXN0dXJlKFdlYkNv
cmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0
dXJlVHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0
dXJlU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgVXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNo
IHRvdWNoZXMsIGJvb2wgYmFzZUlzU3RhcnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIFNlbGVjdFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6OkludFBvaW50IGZyb20sIFdlYkNv
cmU6OkludFBvaW50IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJl
VHlwZSwgZW51bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJl
U3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEV4dGVuZFNlbGVjdGlv
bihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQorICAg
IEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KSAtPiAoKSBBc3luYwogICAgIFNlbGVjdFdvcmRCYWNrd2FyZCgpCiAgICAgTW92
ZVNlbGVjdGlvbkJ5T2Zmc2V0KGludDMyX3Qgb2Zmc2V0KSAtPiAoKSBBc3luYwogICAgIFNlbGVj
dFRleHRXaXRoR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50
ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDE3ZmQxYTcx
MzY5ZDBkMzFhYmFhMmI1ODIxOWE1M2RiYWViN2ZkOGIuLjZiMzU1ZDFhNmQxOTczYWJiYjk4NzRk
MGI0N2FiOGU0Mjg0MTIzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMzMsNiArMTMzLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3
dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBv
cnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CkBAIC0xNzYyLDggKzE3NjMsMTAgQEAgdm9p
ZCBXZWJQYWdlOjpzZWxlY3RXaXRoVHdvVG91Y2hlcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
ZnJvbSwgY29uc3QgV2ViQ29yZToKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okdl
c3R1cmVDYWxsYmFjayhmcm9tLCBnZXN0dXJlVHlwZSwgZ2VzdHVyZVN0YXRlLCB7IH0sIGNhbGxi
YWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24o
V2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgYXV0byBjYWxsQ29tcGxldGlvbkhh
bmRsZXJPbkV4aXQgPSBtYWtlU2NvcGVFeGl0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KwogICAgIEZyYW1lJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCk7CiAgICAgLy8gRm9yIHRoZSBtb21lbnQgd2UgaGFuZGxlIG9ubHkgVGV4dEdy
YW51bGFyaXR5OjpXb3JkR3JhbnVsYXJpdHkuCiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFRleHRH
cmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5IHx8ICFmcmFtZS5zZWxlY3Rpb24oKS5pc0NhcmV0
KCkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZGNmMTA4MjJlMjBhN2YxNjVkODk2ZDM3ZjRiYWJkNzM0ZDk4N2E4Zi4uNjQzMWNjMmQxYzI4N2E4
MjkwNzY4OWFhMjVjOGUyODkyZDg4ZWFkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA3LTIzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRhcHBpbmcgUXVpY2tU
eXBlIHN1Z2dlc3Rpb25zIGZvciBhIG1pc3NwZWxsZWQgd29yZCBkb2VzIG5vdGhpbmcgaW4gTWFp
bCBjb21wb3NlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQ3MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MzIwNzg1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9TZWxlY3Rpb25CeVdvcmQubW06CisKKyAgICAgICAgQWRkIGEgdW5pdCB0ZXN0IHRvIGV4ZXJj
aXNlIHRoZSBjaGFuZ2VzIGluIGJlaGF2aW9yIHdoZW4gY2FsbGluZyBVSVRleHRJbnB1dCBBUEku
CisKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2V0U2VsZWN0aW9uV2lsbENo
YW5nZUhhbmRsZXI6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHNldFNl
bGVjdGlvbkRpZENoYW5nZUhhbmRsZXI6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxp
c3RlbmVyIHNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyXSk6CisgICAgICAgICgtW1NlbGVjdGlv
bkNoYW5nZUxpc3RlbmVyIHNlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXJdKToKKyAgICAgICAgKC1b
U2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uV2lsbENoYW5nZTpdKToKKyAgICAgICAg
KC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uRGlkQ2hhbmdlOl0pOgorICAgICAg
ICAoLVtTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciB0ZXh0V2lsbENoYW5nZTpdKToKKyAgICAgICAg
KC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgdGV4dERpZENoYW5nZTpdKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOgorCiAyMDIwLTA3LTIyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFydGljbGUgaGVhZGxpbmVzIGFy
ZSBzcGxpdCBhY3Jvc3MgbXVsdGlwbGUgbGluZXMgYWZ0ZXIgdHJhbnNsYXRpbmcgdGFnZXNzY2hh
dS5kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9u
QnlXb3JkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3Jk
Lm1tCmluZGV4IDNhMGIxOTg5M2FmNzI3YzAwMjkyMDM2OTRjNjEzODUzNWU5NDBkNTcuLmYwMzQ3
MjQ1ZWZmMDA5YzhiODExNzZjMDNmMTY3MWExNGE5ZGFmYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0KQEAgLTMxLDEwICszMSw3IEBA
CiAjaW1wb3J0ICJUZXN0SW5wdXREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLQotQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChQcml2
YXRlKQotLSAodm9pZClzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7Ci1AZW5kCisjaW1wb3J0IDx3
dGYvQmxvY2tQdHIuaD4KIAogVEVTVChTZWxlY3Rpb25UZXN0cywgQnlXb3JkQXRFbmRPZkRvY3Vt
ZW50KQogewpAQCAtNDcsNyArNDQsNyBAQCBURVNUKFNlbGVjdGlvblRlc3RzLCBCeVdvcmRBdEVu
ZE9mRG9jdW1lbnQpCiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkIl0uYm9vbFZhbHVlKTsKIAog
ICAgIC8vIFRoaXMgbWV0aG9kIHRyaWdnZXJzIHRoZSB3b3JkUmFuZ2VGcm9tUG9zaXRpb24oKSBj
b2RlIHRvIGJlIHRlc3RlZC4KLSAgICBbW3dlYlZpZXcgd2tDb250ZW50Vmlld10gc2VsZWN0V29y
ZEZvclJlcGxhY2VtZW50XTsKKyAgICBbW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddIHNl
bGVjdFdvcmRGb3JSZXBsYWNlbWVudF07CiAKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkIl0u
Ym9vbFZhbHVlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUubm9kZVZhbHVlIl0sICJQ
YXJhZ3JhcGggVGhyZWUiKTsKQEAgLTU4LDQgKzU1LDgzIEBAIFRFU1QoU2VsZWN0aW9uVGVzdHMs
IEJ5V29yZEF0RW5kT2ZEb2N1bWVudCkKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiXSwg
IlRocmVlIik7CiB9CiAKK0BpbnRlcmZhY2UgU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgOiBOU09i
amVjdCA8VUlUZXh0SW5wdXREZWxlZ2F0ZT4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBkaXNwYXRj
aF9ibG9ja190IHNlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOworQHByb3BlcnR5IChub25hdG9t
aWMpIGRpc3BhdGNoX2Jsb2NrX3Qgc2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHsKKyAgICBCbG9ja1B0cjx2
b2lkKCk+IF9zZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjsKKyAgICBCbG9ja1B0cjx2b2lkKCk+
IF9zZWxlY3Rpb25EaWRDaGFuZ2VIYW5kbGVyOworfQorCistICh2b2lkKXNldFNlbGVjdGlvbldp
bGxDaGFuZ2VIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBfc2VsZWN0
aW9uV2lsbENoYW5nZUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlcik7Cit9CisKKy0gKHZv
aWQpc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVy
Cit7CisgICAgX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxl
cik7Cit9CisKKy0gKGRpc3BhdGNoX2Jsb2NrX3Qpc2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIK
K3sKKyAgICByZXR1cm4gX3NlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyLmdldCgpOworfQorCist
IChkaXNwYXRjaF9ibG9ja190KXNlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIKK3sKKyAgICByZXR1
cm4gX3NlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2VsZWN0
aW9uV2lsbENoYW5nZTooaWQgPFVJVGV4dElucHV0Pil0ZXh0SW5wdXQKK3sKKyAgICBpZiAoX3Nl
bGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyKQorICAgICAgICBfc2VsZWN0aW9uV2lsbENoYW5nZUhh
bmRsZXIoKTsKK30KKworLSAodm9pZClzZWxlY3Rpb25EaWRDaGFuZ2U6KGlkIDxVSVRleHRJbnB1
dD4pdGV4dElucHV0Cit7CisgICAgaWYgKF9zZWxlY3Rpb25EaWRDaGFuZ2VIYW5kbGVyKQorICAg
ICAgICBfc2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcigpOworfQorCistICh2b2lkKXRleHRXaWxs
Q2hhbmdlOihpZCA8VUlUZXh0SW5wdXQ+KXRleHRJbnB1dAoreworfQorCistICh2b2lkKXRleHRE
aWRDaGFuZ2U6KGlkIDxVSVRleHRJbnB1dD4pdGV4dElucHV0Cit7Cit9CisKK0BlbmQKKworVEVT
VChTZWxlY3Rpb25UZXN0cywgU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxlY3RpbmdXb3JkRm9yUmVwbGFj
ZW1lbnQpCit7CisgICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tTZWxlY3Rpb25DaGFuZ2VM
aXN0ZW5lciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPGJvZHkgY29udGVudGVkaXRhYmxlPjxwPkhlbGxvPC9wPjwvYm9keT48c2Ny
aXB0PmRvY3VtZW50LmJvZHkuZm9jdXMoKTwvc2NyaXB0PiJdOworCisgICAgYXV0byBjb250ZW50
VmlldyA9IFt3ZWJWaWV3IHRleHRJbnB1dENvbnRlbnRWaWV3XTsKKyAgICBbY29udGVudFZpZXcg
c2V0SW5wdXREZWxlZ2F0ZTpsaXN0ZW5lci5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgc2Vs
ZWN0aW9uV2lsbENoYW5nZSA9IGZhbHNlOworICAgIFtsaXN0ZW5lciBzZXRTZWxlY3Rpb25XaWxs
Q2hhbmdlSGFuZGxlcjpeeworICAgICAgICBzZWxlY3Rpb25XaWxsQ2hhbmdlID0gdHJ1ZTsKKyAg
ICB9XTsKKworICAgIF9fYmxvY2sgYm9vbCBzZWxlY3Rpb25EaWRDaGFuZ2UgPSBmYWxzZTsKKyAg
ICBbbGlzdGVuZXIgc2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjpeeworICAgICAgICBzZWxl
Y3Rpb25EaWRDaGFuZ2UgPSB0cnVlOworICAgIH1dOworCisgICAgW2NvbnRlbnRWaWV3IHNlbGVj
dFdvcmRGb3JSZXBsYWNlbWVudF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWxlY3Rpb25XaWxs
Q2hhbmdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlbGVjdGlvbkRpZENoYW5n
ZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyIsIFtjb250ZW50VmlldyB0ZXh0SW5SYW5n
ZTpjb250ZW50Vmlldy5zZWxlY3RlZFRleHRSYW5nZV0pOworfQorCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0
U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmluZGV4IGQ2M2Q3ZDdk
ZTc4MjQ3ZWU5NTY1OWE0YzQ0MzQ4NmZmZmYzMDg5ODguLjI0MzM3YzdjMDM5NzYyZjRiMDIzMTU3
NzE2NTBiOGEyMTJmMDdhYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJ
S2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaApAQCAtMTgw
LDYgKzE4MCw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU0ludGVnZXIsIFVJV0tEb2N1bWVudFJl
cXVlc3RGbGFncykgewogLSAodm9pZClzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5OihVSVRleHRH
cmFudWxhcml0eSlncmFudWxhcml0eSBhdFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBkYXRl
U2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcjsK
IC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IHdp
dGhCb3VuZGFyeTooVUlUZXh0R3JhbnVsYXJpdHkpZ3JhbnVsYXJpdHkgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgc2VsZWN0aW9uRW5kSXNNb3ZpbmcpKWNvbXBsZXRpb25IYW5kbGVy
OworLSAodm9pZClzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpzZWxlY3RlZFRleHQ7CiAKIEBvcHRpb25hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405122</attachid>
            <date>2020-07-23 20:20:58 -0700</date>
            <delta_ts>2020-07-23 22:32:00 -0700</delta_ts>
            <desc>Fix API test</desc>
            <filename>bug-214705-20200723202058.patch</filename>
            <type>text/plain</type>
            <size>20387</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM0MmJjZGIzOWMzN2Y5ZGQy
NmU0YmNkNjdiOGUzMGZlN2IwNDIwZTUuLmM1OTBkNmRkNDBmZDczNWYzYTZmNTA2ZDViOTU1ODhj
NzIzMDNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjAtMDctMjMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgVGFwcGluZyBRdWlja1R5
cGUgc3VnZ2VzdGlvbnMgZm9yIGEgbWlzc3BlbGxlZCB3b3JkIGRvZXMgbm90aGluZyBpbiBNYWls
IGNvbXBvc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDcwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMjA3ODU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBJbiBXZWJLaXQyLWJhc2VkIGVkaXRpbmcg
Y29udGV4dHMgb24gaU9TIChzdWNoIGFzIE1haWwgY29tcG9zZSksIHRhcHBpbmcgb24gYSBtaXNz
cGVsbGVkIHdvcmQgd2lsbCByZXN1bHQgaW4KKyAgICAgICAgUXVpY2tUeXBlIHN1Z2dlc3Rpb25z
IGluIHRoZSBpbnB1dCBhY2Nlc3Nvcnkgcm93IGVpdGhlciBzaG93aW5nIHVwIGJsYW5rIChpLmUu
IHdpdGggbm8gc3VnZ2VzdGlvbnMpLCBvciB3aWxsCisgICAgICAgIHNob3cgc3VnZ2VzdGlvbnMg
dGhhdCBhcmUgY29udGV4dHVhbCB0byB0aGUgdGV4dCBzZWxlY3Rpb24gcHJpb3IgdG8gc2VsZWN0
aW5nIHRoZSBtaXNzcGVsbGVkIHdvcmQuIFN1YnNlcXVlbnRseSwKKyAgICAgICAgYXR0ZW1wdGlu
ZyB0byBjaG9vc2Ugb2YgdGhlc2Ugc3VnZ2VzdGlvbnMgcmVzdWx0cyBpbiBubyB0ZXh0IGJlaW5n
IGluc2VydGVkLiBUaGlzIGhhcHBlbnMgZm9yIGEgY291cGxlIG9mCisgICAgICAgIHJlYXNvbnM6
CisKKyAgICAgICAgMS4gIFVJS2l0IGRvZXNuJ3QgYXR0ZW1wdCB0byByZS1yZXF1ZXN0IHRoZSBh
dXRvY29ycmVjdGlvbiBjb250ZXh0IGFmdGVyIHRhcHBpbmcgb24gYSBtaXNzcGVsbGVkIHdvcmQu
IFVJS2l0CisgICAgICAgICAgICBqdXN0IHVzZXMgYC1zZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRg
IHRvIGV4dGVuZCB0aGUgc2VsZWN0aW9uIG92ZXIgdGhlIG1pc3NwZWxsZWQgd29yZCwgd2hpY2gg
ZG9lc24ndAorICAgICAgICAgICAgY3VycmVudGx5IGZpcmUgYW55IG9mIHRoZSBzZWxlY3Rpb24g
Y2hhbmdlIGNhbGxiYWNrcyBvbiBVSUlucHV0RGVsZWdhdGUuIEFzIGEgcmVzdWx0LCBVSUtpdCB3
aWxsIGluc3RlYWQKKyAgICAgICAgICAgIGJlbGlldmUgdGhhdCB0aGUgc2VsZWN0aW9uIGlzIGNv
bGxhcHNlZCB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBtaXNzcGVsbGVkIHdvcmQuCisKKyAg
ICAgICAgMi4gIFVwb24gYXR0ZW1wdGluZyB0byBjb21wdXRlIHRleHQgc3VnZ2VzdGlvbnMgZm9y
IFF1aWNrVHlwZSwgYC1bVUlLZXlib2FyZEltcGwgcmVwbGFjZW1lbnRzRnJvbVNlbGVjdGVkVGV4
dF1gCisgICAgICAgICAgICB1c2VzIGAtdGV4dEluUmFuZ2U6YCB0byBncmFiIHRoZSBjdXJyZW50
bHkgc2VsZWN0ZWQgdGV4dCwgd2hpY2ggKGluIFdLQ29udGVudFZpZXcpIGlzIGN1cnJlbnRseSBo
YXJkLWNvZGVkCisgICAgICAgICAgICB0byBhbHdheXMgcmV0dXJuIGBuaWxgLgorCisgICAgICAg
IFdlIGFkZHJlc3MgKDEpIGJ5IGJvb2tlbmRpbmcgYC1zZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnRg
IHdpdGggY2FsbHMgdG8gYC1iZWdpblNlbGVjdGlvbkNoYW5nZWAgYW5kCisgICAgICAgIGAtZW5k
U2VsZWN0aW9uQ2hhbmdlYCwgYW5kIGFkZHJlc3MgKDIpIGJ5IHRlYWNoaW5nIGAtdGV4dEluUmFu
Z2U6YCB0byByZXR1cm4gdGhlIGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24sIG9ubHkgaW4KKyAgICAg
ICAgdGhlIGNhc2Ugd2hlcmUgdGhlIGdpdmVuIGBVSVRleHRSYW5nZWAgaXMgZXF1YWwgdG8gdGhl
IGN1cnJlbnQgcmFuZ2VkIHNlbGVjdGlvbi4KKworICAgICAgICBUZXN0OiBTZWxlY3Rpb25UZXN0
cy5TZWxlY3RlZFRleHRBZnRlclNlbGVjdGluZ1dvcmRGb3JSZXBsYWNlbWVudAorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmV4dGVuZFNlbGVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0ZXh0SW5SYW5nZTpdKToKKworICAgICAg
ICBTcGVjaWFsLWNhc2UgdGhlIHNjZW5hcmlvIHdoZXJlIHRoZSBpbnB1dCB0ZXh0IHJhbmdlIGlz
IGV4YWN0bHkgdGhlIHNhbWUgYXMgYHNlbGYuc2VsZWN0ZWRUZXh0UmFuZ2VgIGJ5CisgICAgICAg
IHJldHVybmluZyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgdGhhdCBpcyBjYWNoZWQgb24g
RWRpdG9yU3RhdGUuIEluIGFsbCBvdGhlciBjYXNlcywgY29udGludWUgdG8gcmV0dXJuCisgICAg
ICAgIGBuaWxgLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0ZWRUZXh0UmFuZ2Vd
KToKKworICAgICAgICBDYWNoZSB0aGUgY3VycmVudCBzZWxlY3RlZCB0ZXh0IHJhbmdlIG9uIFdL
Q29udGVudFZpZXcsIHN1Y2ggdGhhdCByZXBlYXRlZCBjYWxscyB0byBzZWxlY3RlZFRleHRSYW5n
ZSB3aGVuIHRoZQorICAgICAgICBzZWxlY3Rpb24gaGFzIG5vdCBjaGFuZ2VkIGRvZXMgbm90IHJl
cXVpcmUgYSBuZXcgV0tUZXh0UmFuZ2UgdG8gYmUgY29uc3RydWN0ZWQgZXZlcnkgdGltZS4KKwor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zZWxlY3Rpb25DaGFuZ2VkXSk6CisKKyAgICAgICAg
SW52YWxpZGF0ZSB0aGUgY2FjaGVkIHNlbGVjdGVkIHRleHQgcmFuZ2Ugd2hlbmV2ZXIgdGhlIHNl
bGVjdGlvbiBoYXMgY2hhbmdlZC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdFdv
cmRGb3JSZXBsYWNlbWVudF0pOgorCisgICAgICAgIFVzZSB0aGUgY29tcGxldGlvbiBjYWxsYmFj
ayBhZGRlZCBiZWxvdyB0byBib29rZW5kIHRoaXMgbWV0aG9kIHdpdGggYC0oYmVnaW58ZW5kKVNl
bGVjdGlvbkNoYW5nZWAuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfdXBkYXRlQ2hhbmdl
ZFNlbGVjdGlvbjpdKToKKworICAgICAgICBJbnZhbGlkYXRlIHRoZSBjYWNoZWQgc2VsZWN0ZWQg
dGV4dCByYW5nZSB3aGVuZXZlciB3ZSdyZSBhYm91dCB0byB0ZWxsIFVJS2l0IHRvIHJlcGFpbnQg
dGhlIHNlbGVjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmV4dGVuZFNlbGVjdGlvbik6CisK
KyAgICAgICAgQWRkIGFuIG9wdGlvbmFsIGNvbXBsZXRpb24gY2FsbGJhY2sgdG8gYGV4dGVuZFNl
bGVjdGlvbmAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZXh0ZW5kU2VsZWN0aW9uKToKKwogMjAyMC0wNy0yMiAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvdy11cDogW0lQQyBoYXJkZW5pbmdd
IFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjpkZWNvZGUoKSBhbmQgZW5jb2RlKCkgc2hvdWxkIHVz
ZSBlbnVtIE9iakNUeXBlIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMzBiMjY5N2IwYmY3YWNlZmQ0ODRhYTI2Njg1YzdjYzU1M2M1YmU3Zi4uNDA4NjhmZTEx
NjhmNWIxYzg1YmU5M2UyMjRkZTI3OWY0ZjRhYzZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTc2NSw3ICs3NjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZWxl
Y3RXaXRoR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCwgR2VzdHVyZVR5cGUsIEdlc3R1
cmVSZWNvZ25pemVyU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwg
V1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgR2VzdHVyZVR5cGUs
IEdlc3R1cmVSZWNvZ25pemVyU3RhdGUsIE9wdGlvblNldDxTZWxlY3Rpb25GbGFncz4sIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVz
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBTZWxlY3Rpb25Ub3VjaCwgYm9vbCBiYXNlSXNTdGFy
dCwgRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFNlbGVjdGlvblRvdWNo
LCBPcHRpb25TZXQ8U2VsZWN0aW9uRmxhZ3M+LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAg
ICAgdm9pZCBzZWxlY3RXaXRoVHdvVG91Y2hlcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBmcm9t
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCB0bywgR2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25p
emVyU3RhdGUsIEZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0dXJl
VHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwgT3B0aW9uU2V0PFNlbGVjdGlvbkZsYWdzPiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQgZXh0ZW5kU2VsZWN0aW9uKFdlYkNv
cmU6OlRleHRHcmFudWxhcml0eSk7CisgICAgdm9pZCBleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6
VGV4dEdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSB7IH0pOwogICAg
IHZvaWQgc2VsZWN0V29yZEJhY2t3YXJkKCk7CiAgICAgdm9pZCBtb3ZlU2VsZWN0aW9uQnlPZmZz
ZXQoaW50MzJfdCBvZmZzZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNl
ZEVsZW1lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
ZDhiYmQ5OGIxZWQ3NGFlZjU4YTFjMDIxYWJlOGI1MDhmNDg5ZDJmZC4uOTJhMDUyNzJiNTU3OTQ0
MjhhY2IwMTBlYzk1NmZjOTIwZjNlOTBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTA4LDYgKzEwOCw3
IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIEBjbGFzcyBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1
cmVSZWNvZ25pemVyOwogQGNsYXNzIFdLTW91c2VHZXN0dXJlUmVjb2duaXplcjsKIEBjbGFzcyBX
S0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVjb2duaXplcjsKK0BjbGFzcyBXS1RleHRSYW5n
ZTsKIEBjbGFzcyBfV0tUZXh0SW5wdXRDb250ZXh0OwogCiBAY2xhc3MgVUlUYXJnZXRlZFByZXZp
ZXc7CkBAIC0zMjIsNiArMzIzLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAg
ICBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RJbnRl
cmFjdGlvblN0YXJ0OwogCiAgICAgV2ViS2l0OjpXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIF9sYXN0
U2VsZWN0aW9uRHJhd2luZ0luZm87CisgICAgUmV0YWluUHRyPFdLVGV4dFJhbmdlPiBfY2FjaGVk
U2VsZWN0ZWRUZXh0UmFuZ2U7CiAKICAgICBPcHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0PiBfbGFzdE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVl
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDdhNmM3OTU4YzdhMjIxZGViZjhlZjcyODg2NTdjOWNk
MDk2MjQ3NDAuLmIwNDFjMjkyOTFlMmEzYzI4Njc2MzY5YjUwMGNmYzFjNzI5NjVkNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtMTA2Myw2ICsxMDYzLDggQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rp
b24KICAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKICAgICBbc2VsZiBf
aGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jl
c3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKICAgICBbc2VsZiBfY2FuY2VsUGVuZGluZ0tleUV2
ZW50SGFuZGxlcl07CisKKyAgICBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFuZ2UgPSBuaWw7CiB9CiAK
IC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXIKQEAgLTQ1MzAsNiArNDUzMiwx
MyBAQCAtICh2b2lkKWluc2VydFRleHRTdWdnZXN0aW9uOihVSVRleHRTdWdnZXN0aW9uICopdGV4
dFN1Z2dlc3Rpb24KIAogLSAoTlNTdHJpbmcgKil0ZXh0SW5SYW5nZTooVUlUZXh0UmFuZ2UgKily
YW5nZQogeworICAgIGlmICghX3BhZ2UpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBhdXRv
JiBlZGl0b3JTdGF0ZSA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpOworICAgIGlmIChzZWxmLnNlbGVj
dGVkVGV4dFJhbmdlID09IHJhbmdlICYmICFlZGl0b3JTdGF0ZS5pc01pc3NpbmdQb3N0TGF5b3V0
RGF0YSAmJiBlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc1JhbmdlKQorICAgICAgICByZXR1cm4gZWRp
dG9yU3RhdGUucG9zdExheW91dERhdGEoKS53b3JkQXRTZWxlY3Rpb247CisKICAgICByZXR1cm4g
bmlsOwogfQogCkBAIC00NTg4LDExICs0NTk3LDE1IEBAIC0gKFVJVGV4dFJhbmdlICopc2VsZWN0
ZWRUZXh0UmFuZ2UKICAgICBpZiAoIWlzQ29udGVudEVkaXRhYmxlICYmICFpc1JhbmdlKQogICAg
ICAgICByZXR1cm4gbmlsOwogCisgICAgaWYgKF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZSkKKyAg
ICAgICAgcmV0dXJuIF9jYWNoZWRTZWxlY3RlZFRleHRSYW5nZS5nZXQoKTsKKwogICAgIGF1dG8g
Y2FyZXRTdGFydFJlY3QgPSBbc2VsZiBfc2NhbGVkQ2FyZXRSZWN0Rm9yU2VsZWN0aW9uU3RhcnQ6
X3BhZ2UtPmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5jYXJldFJlY3RBdFN0YXJ0XTsK
ICAgICBhdXRvIGNhcmV0RW5kUmVjdCA9IFtzZWxmIF9zY2FsZWRDYXJldFJlY3RGb3JTZWxlY3Rp
b25FbmQ6X3BhZ2UtPmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5jYXJldFJlY3RBdEVu
ZF07CiAgICAgYXV0byBzZWxlY3Rpb25SZWN0cyA9IHdrVGV4dFNlbGVjdGlvblJlY3RzKF9wYWdl
LT5lZGl0b3JTdGF0ZSgpLnBvc3RMYXlvdXREYXRhKCkuc2VsZWN0aW9uUmVjdHMpOwogICAgIGF1
dG8gc2VsZWN0ZWRUZXh0TGVuZ3RoID0gZWRpdG9yU3RhdGUucG9zdExheW91dERhdGEoKS5zZWxl
Y3RlZFRleHRMZW5ndGg7Ci0gICAgcmV0dXJuIFtXS1RleHRSYW5nZSB0ZXh0UmFuZ2VXaXRoU3Rh
dGU6IWhhc1NlbGVjdGlvbiBpc1JhbmdlOmlzUmFuZ2UgaXNFZGl0YWJsZTppc0NvbnRlbnRFZGl0
YWJsZSBzdGFydFJlY3Q6Y2FyZXRTdGFydFJlY3QgZW5kUmVjdDpjYXJldEVuZFJlY3Qgc2VsZWN0
aW9uUmVjdHM6c2VsZWN0aW9uUmVjdHMgc2VsZWN0ZWRUZXh0TGVuZ3RoOnNlbGVjdGVkVGV4dExl
bmd0aF07CisgICAgX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlID0gW1dLVGV4dFJhbmdlIHRleHRS
YW5nZVdpdGhTdGF0ZTohaGFzU2VsZWN0aW9uIGlzUmFuZ2U6aXNSYW5nZSBpc0VkaXRhYmxlOmlz
Q29udGVudEVkaXRhYmxlIHN0YXJ0UmVjdDpjYXJldFN0YXJ0UmVjdCBlbmRSZWN0OmNhcmV0RW5k
UmVjdCBzZWxlY3Rpb25SZWN0czpzZWxlY3Rpb25SZWN0cyBzZWxlY3RlZFRleHRMZW5ndGg6c2Vs
ZWN0ZWRUZXh0TGVuZ3RoXTsKKyAgICByZXR1cm4gX2NhY2hlZFNlbGVjdGVkVGV4dFJhbmdlLmdl
dCgpOwogfQogCiAtIChDR1JlY3QpY2FyZXRSZWN0Rm9yUG9zaXRpb246KFVJVGV4dFBvc2l0aW9u
ICopcG9zaXRpb24KQEAgLTY1NzUsNiArNjU4OCw3IEBAIC0gKHZvaWQpX3NlbGVjdGlvbkNoYW5n
ZWQKIHsKICAgICBbc2VsZiBfdXBkYXRlU2VsZWN0aW9uQXNzaXN0YW50U3VwcHJlc3Npb25TdGF0
ZV07CiAKKyAgICBfY2FjaGVkU2VsZWN0ZWRUZXh0UmFuZ2UgPSBuaWw7CiAgICAgX3NlbGVjdGlv
bk5lZWRzVXBkYXRlID0gWUVTOwogICAgIC8vIElmIHdlIGFyZSBjaGFuZ2luZyB0aGUgc2VsZWN0
aW9uIHdpdGggYSBnZXN0dXJlIHRoZXJlIGlzIG5vIG5lZWQKICAgICAvLyB0byB3YWl0IHRvIHBh
aW50IHRoZSBzZWxlY3Rpb24uCkBAIC02NjAwLDcgKzY2MTQsMTEgQEAgLSAodm9pZClfc2VsZWN0
aW9uQ2hhbmdlZAogCiAtICh2b2lkKXNlbGVjdFdvcmRGb3JSZXBsYWNlbWVudAogewotICAgIF9w
YWdlLT5leHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5OjpXb3JkR3JhbnVs
YXJpdHkpOworICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdlXTsKKyAgICBfcGFnZS0+ZXh0
ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRHcmFudWxhcml0eTo6V29yZEdyYW51bGFyaXR5LCBb
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0geworICAgICAgICBp
ZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCisgICAgICAgICAgICBbc3Ryb25n
U2VsZiBlbmRTZWxlY3Rpb25DaGFuZ2VdOworICAgIH0pOwogfQogCiAjaWYgRU5BQkxFKFBMQVRG
T1JNX0RSSVZFTl9URVhUX0NIRUNLSU5HKQpAQCAtNjYzMSw2ICs2NjQ5LDcgQEAgLSAodm9pZClf
dXBkYXRlQ2hhbmdlZFNlbGVjdGlvbjooQk9PTClmb3JjZQogICAgIGlmIChmb3JjZSB8fCBzZWxl
Y3Rpb25EcmF3aW5nSW5mbyAhPSBfbGFzdFNlbGVjdGlvbkRyYXdpbmdJbmZvKSB7CiAgICAgICAg
IExPR19XSVRIX1NUUkVBTShTZWxlY3Rpb24sIHN0cmVhbSA8PCAiX3VwZGF0ZUNoYW5nZWRTZWxl
Y3Rpb24gIiA8PCBzZWxlY3Rpb25EcmF3aW5nSW5mbyk7CiAKKyAgICAgICAgX2NhY2hlZFNlbGVj
dGVkVGV4dFJhbmdlID0gbmlsOwogICAgICAgICBfbGFzdFNlbGVjdGlvbkRyYXdpbmdJbmZvID0g
c2VsZWN0aW9uRHJhd2luZ0luZm87CiAKICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmln
dXJlIG91dCB3aGF0IHRvIGRvIGlmIHRoZSBzZWxlY3Rpb24gaXMgY2hhbmdlZCBieSBKYXZhc2Ny
aXB0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggMzI3NGUxY2U0MjE0OTlmYjY4YjE3ZDBjZTNlMGNkNjI5Nzc5ZjUyYi4uNzI0Yjg1Mzc5
NGNmMzdmMjQ1M2QyNTA1MWZjMjg3NDkzYTMzOTIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC03NTIsOSArNzUyLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpLCBt
X3dlYlBhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleHRlbmRTZWxlY3Rpb24oV2Vi
Q29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQordm9pZCBXZWJQYWdlUHJveHk6OmV4
dGVuZFNlbGVjdGlvbihXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSks
IG1fd2ViUGFnZUlEKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OkV4dGVuZFNlbGVjdGlvbihncmFudWxhcml0eSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoY29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VsZWN0V29yZEJhY2t3YXJkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhMTU0NzZjMjQ2OWU0ODdjZGIxOTlh
MDg4YThkNWJhMDYxNDg1OGViLi4yNmQyNDMzYjYxNTE1OGVmNzY4YzE2NjYyMDlmZWFjZjk2ZmRl
N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02
OTUsNyArNjk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0V2l0aEdlc3R1cmUoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBHZXN0dXJlVHlwZSwgR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSwg
Ym9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDYWxsYmFja0lEKTsKICAgICB2
b2lkIHVwZGF0ZVNlbGVjdGlvbldpdGhUb3VjaGVzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
U2VsZWN0aW9uVG91Y2gsIGJvb2wgYmFzZUlzU3RhcnQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQg
c2VsZWN0V2l0aFR3b1RvdWNoZXMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGZyb20sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiB0bywgR2VzdHVyZVR5cGUsIEdlc3R1cmVSZWNvZ25pemVyU3Rh
dGUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZXh0ZW5kU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRH
cmFudWxhcml0eSk7CisgICAgdm9pZCBleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51
bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VsZWN0V29y
ZEJhY2t3YXJkKCk7CiAgICAgdm9pZCBtb3ZlU2VsZWN0aW9uQnlPZmZzZXQoaW50MzJfdCBvZmZz
ZXQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZWxlY3RUZXh0V2l0
aEdyYW51bGFyaXR5QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OlRl
eHRHcmFudWxhcml0eSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzJmMDM4NjE2NDgzODZmYmM4
NDE1MDg1YzE1M2NmZWU3NTI2NzZjNi4uYTU5NWU3ZDkyMTJiM2VkYzgyOTM4OWZjZGZmZjkyNDUy
YTU4ZDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC02OCw3ICs2OCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNlbGVjdFdpdGhHZXN0dXJlKFdlYkNvcmU6OkludFBvaW50
IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51
bTp1aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIGJv
b2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAgICAgVXBkYXRlU2VsZWN0aW9uV2l0aFRvdWNoZXMoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6OlNlbGVjdGlvblRvdWNoIHRvdWNoZXMsIGJv
b2wgYmFzZUlzU3RhcnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFNlbGVj
dFdpdGhUd29Ub3VjaGVzKFdlYkNvcmU6OkludFBvaW50IGZyb20sIFdlYkNvcmU6OkludFBvaW50
IHRvLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSwgZW51bTp1
aW50OF90IFdlYktpdDo6R2VzdHVyZVJlY29nbml6ZXJTdGF0ZSBnZXN0dXJlU3RhdGUsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEV4dGVuZFNlbGVjdGlvbihlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQorICAgIEV4dGVuZFNlbGVj
dGlvbihlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KSAt
PiAoKSBBc3luYwogICAgIFNlbGVjdFdvcmRCYWNrd2FyZCgpCiAgICAgTW92ZVNlbGVjdGlvbkJ5
T2Zmc2V0KGludDMyX3Qgb2Zmc2V0KSAtPiAoKSBBc3luYwogICAgIFNlbGVjdFRleHRXaXRoR3Jh
bnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGlzSW50ZXJhY3RpbmdXaXRo
Rm9jdXNlZEVsZW1lbnQpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDE3ZmQxYTcxMzY5ZDBkMzFhYmFh
MmI1ODIxOWE1M2RiYWViN2ZkOGIuLjZiMzU1ZDFhNmQxOTczYWJiYjk4NzRkMGI0N2FiOGU0Mjg0
MTIzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0xMzMsNiArMTMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZl
bnQuaD4KICNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9TZXRG
b3JTY29wZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvY29j
b2EvRW50aXRsZW1lbnRzLmg+CkBAIC0xNzYyLDggKzE3NjMsMTAgQEAgdm9pZCBXZWJQYWdlOjpz
ZWxlY3RXaXRoVHdvVG91Y2hlcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZnJvbSwgY29uc3Qg
V2ViQ29yZToKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okdlc3R1cmVDYWxsYmFj
ayhmcm9tLCBnZXN0dXJlVHlwZSwgZ2VzdHVyZVN0YXRlLCB7IH0sIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQordm9pZCBXZWJQYWdlOjpleHRlbmRTZWxlY3Rpb24oV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CisgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXJPbkV4aXQg
PSBtYWtlU2NvcGVFeGl0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKwogICAgIEZyYW1l
JiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CiAgICAgLy8gRm9yIHRoZSBtb21lbnQgd2UgaGFuZGxlIG9ubHkgVGV4dEdyYW51bGFyaXR5OjpX
b3JkR3JhbnVsYXJpdHkuCiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFRleHRHcmFudWxhcml0eTo6
V29yZEdyYW51bGFyaXR5IHx8ICFmcmFtZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGNmMTA4MjJlMjBh
N2YxNjVkODk2ZDM3ZjRiYWJkNzM0ZDk4N2E4Zi4uNjQzMWNjMmQxYzI4N2E4MjkwNzY4OWFhMjVj
OGUyODkyZDg4ZWFkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA3LTIzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFRhcHBpbmcgUXVpY2tUeXBlIHN1Z2dlc3Rp
b25zIGZvciBhIG1pc3NwZWxsZWQgd29yZCBkb2VzIG5vdGhpbmcgaW4gTWFpbCBjb21wb3NlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3MDUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MzIwNzg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZWxlY3Rpb25C
eVdvcmQubW06CisKKyAgICAgICAgQWRkIGEgdW5pdCB0ZXN0IHRvIGV4ZXJjaXNlIHRoZSBjaGFu
Z2VzIGluIGJlaGF2aW9yIHdoZW4gY2FsbGluZyBVSVRleHRJbnB1dCBBUEkuCisKKyAgICAgICAg
KC1bU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgc2V0U2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXI6
XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHNldFNlbGVjdGlvbkRpZENo
YW5nZUhhbmRsZXI6XSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHNlbGVj
dGlvbldpbGxDaGFuZ2VIYW5kbGVyXSk6CisgICAgICAgICgtW1NlbGVjdGlvbkNoYW5nZUxpc3Rl
bmVyIHNlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXJdKToKKyAgICAgICAgKC1bU2VsZWN0aW9uQ2hh
bmdlTGlzdGVuZXIgc2VsZWN0aW9uV2lsbENoYW5nZTpdKToKKyAgICAgICAgKC1bU2VsZWN0aW9u
Q2hhbmdlTGlzdGVuZXIgc2VsZWN0aW9uRGlkQ2hhbmdlOl0pOgorICAgICAgICAoLVtTZWxlY3Rp
b25DaGFuZ2VMaXN0ZW5lciB0ZXh0V2lsbENoYW5nZTpdKToKKyAgICAgICAgKC1bU2VsZWN0aW9u
Q2hhbmdlTGlzdGVuZXIgdGV4dERpZENoYW5nZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L2lvcy9VSUtpdFNQSS5oOgorCiAyMDIwLTA3LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFydGljbGUgaGVhZGxpbmVzIGFyZSBzcGxpdCBhY3Jv
c3MgbXVsdGlwbGUgbGluZXMgYWZ0ZXIgdHJhbnNsYXRpbmcgdGFnZXNzY2hhdS5kZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3JkLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2VsZWN0aW9uQnlXb3JkLm1tCmluZGV4IDNh
MGIxOTg5M2FmNzI3YzAwMjkyMDM2OTRjNjEzODUzNWU5NDBkNTcuLmYwMzQ3MjQ1ZWZmMDA5Yzhi
ODExNzZjMDNmMTY3MWExNGE5ZGFmYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1NlbGVjdGlvbkJ5V29yZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9TZWxlY3Rpb25CeVdvcmQubW0KQEAgLTMxLDEwICszMSw3IEBACiAjaW1wb3J0ICJU
ZXN0SW5wdXREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAi
VUlLaXRTUEkuaCIKLQotQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChQcml2YXRlKQotLSAodm9p
ZClzZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7Ci1AZW5kCisjaW1wb3J0IDx3dGYvQmxvY2tQdHIu
aD4KIAogVEVTVChTZWxlY3Rpb25UZXN0cywgQnlXb3JkQXRFbmRPZkRvY3VtZW50KQogewpAQCAt
NDcsNyArNDQsNyBAQCBURVNUKFNlbGVjdGlvblRlc3RzLCBCeVdvcmRBdEVuZE9mRG9jdW1lbnQp
CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkIl0uYm9vbFZhbHVlKTsKIAogICAgIC8vIFRoaXMg
bWV0aG9kIHRyaWdnZXJzIHRoZSB3b3JkUmFuZ2VGcm9tUG9zaXRpb24oKSBjb2RlIHRvIGJlIHRl
c3RlZC4KLSAgICBbW3dlYlZpZXcgd2tDb250ZW50Vmlld10gc2VsZWN0V29yZEZvclJlcGxhY2Vt
ZW50XTsKKyAgICBbW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddIHNlbGVjdFdvcmRGb3JS
ZXBsYWNlbWVudF07CiAKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmlzQ29sbGFwc2VkIl0uYm9vbFZhbHVlKTsK
ICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUubm9kZVZhbHVlIl0sICJQYXJhZ3JhcGggVGhy
ZWUiKTsKQEAgLTU4LDQgKzU1LDgzIEBAIFRFU1QoU2VsZWN0aW9uVGVzdHMsIEJ5V29yZEF0RW5k
T2ZEb2N1bWVudCkKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiXSwgIlRocmVlIik7CiB9
CiAKK0BpbnRlcmZhY2UgU2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIgOiBOU09iamVjdCA8VUlUZXh0
SW5wdXREZWxlZ2F0ZT4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBkaXNwYXRjaF9ibG9ja190IHNl
bGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyOworQHByb3BlcnR5IChub25hdG9taWMpIGRpc3BhdGNo
X2Jsb2NrX3Qgc2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyIHsKKyAgICBCbG9ja1B0cjx2b2lkKCk+IF9zZWxl
Y3Rpb25XaWxsQ2hhbmdlSGFuZGxlcjsKKyAgICBCbG9ja1B0cjx2b2lkKCk+IF9zZWxlY3Rpb25E
aWRDaGFuZ2VIYW5kbGVyOworfQorCistICh2b2lkKXNldFNlbGVjdGlvbldpbGxDaGFuZ2VIYW5k
bGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBfc2VsZWN0aW9uV2lsbENoYW5n
ZUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlcik7Cit9CisKKy0gKHZvaWQpc2V0U2VsZWN0
aW9uRGlkQ2hhbmdlSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVyCit7CisgICAgX3Nl
bGVjdGlvbkRpZENoYW5nZUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlcik7Cit9CisKKy0g
KGRpc3BhdGNoX2Jsb2NrX3Qpc2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIKK3sKKyAgICByZXR1
cm4gX3NlbGVjdGlvbldpbGxDaGFuZ2VIYW5kbGVyLmdldCgpOworfQorCistIChkaXNwYXRjaF9i
bG9ja190KXNlbGVjdGlvbkRpZENoYW5nZUhhbmRsZXIKK3sKKyAgICByZXR1cm4gX3NlbGVjdGlv
bkRpZENoYW5nZUhhbmRsZXIuZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2VsZWN0aW9uV2lsbENoYW5n
ZTooaWQgPFVJVGV4dElucHV0Pil0ZXh0SW5wdXQKK3sKKyAgICBpZiAoX3NlbGVjdGlvbldpbGxD
aGFuZ2VIYW5kbGVyKQorICAgICAgICBfc2VsZWN0aW9uV2lsbENoYW5nZUhhbmRsZXIoKTsKK30K
KworLSAodm9pZClzZWxlY3Rpb25EaWRDaGFuZ2U6KGlkIDxVSVRleHRJbnB1dD4pdGV4dElucHV0
Cit7CisgICAgaWYgKF9zZWxlY3Rpb25EaWRDaGFuZ2VIYW5kbGVyKQorICAgICAgICBfc2VsZWN0
aW9uRGlkQ2hhbmdlSGFuZGxlcigpOworfQorCistICh2b2lkKXRleHRXaWxsQ2hhbmdlOihpZCA8
VUlUZXh0SW5wdXQ+KXRleHRJbnB1dAoreworfQorCistICh2b2lkKXRleHREaWRDaGFuZ2U6KGlk
IDxVSVRleHRJbnB1dD4pdGV4dElucHV0Cit7Cit9CisKK0BlbmQKKworVEVTVChTZWxlY3Rpb25U
ZXN0cywgU2VsZWN0ZWRUZXh0QWZ0ZXJTZWxlY3RpbmdXb3JkRm9yUmVwbGFjZW1lbnQpCit7Cisg
ICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGJvZHkgY29udGVudGVkaXRhYmxlPjxwPkhlbGxvPC9wPjwvYm9keT48c2NyaXB0PmRvY3VtZW50
LmJvZHkuZm9jdXMoKTwvc2NyaXB0PiJdOworCisgICAgYXV0byBjb250ZW50VmlldyA9IFt3ZWJW
aWV3IHRleHRJbnB1dENvbnRlbnRWaWV3XTsKKyAgICBbY29udGVudFZpZXcgc2V0SW5wdXREZWxl
Z2F0ZTpsaXN0ZW5lci5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgc2VsZWN0aW9uV2lsbENo
YW5nZSA9IGZhbHNlOworICAgIFtsaXN0ZW5lciBzZXRTZWxlY3Rpb25XaWxsQ2hhbmdlSGFuZGxl
cjpeeworICAgICAgICBzZWxlY3Rpb25XaWxsQ2hhbmdlID0gdHJ1ZTsKKyAgICB9XTsKKworICAg
IF9fYmxvY2sgYm9vbCBzZWxlY3Rpb25EaWRDaGFuZ2UgPSBmYWxzZTsKKyAgICBbbGlzdGVuZXIg
c2V0U2VsZWN0aW9uRGlkQ2hhbmdlSGFuZGxlcjpeeworICAgICAgICBzZWxlY3Rpb25EaWRDaGFu
Z2UgPSB0cnVlOworICAgIH1dOworCisgICAgW2NvbnRlbnRWaWV3IHNlbGVjdFdvcmRGb3JSZXBs
YWNlbWVudF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWxlY3Rpb25XaWxsQ2hhbmdlKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlbGVjdGlvbkRpZENoYW5nZSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJIZWxsbyIsIFtjb250ZW50VmlldyB0ZXh0SW5SYW5nZTpjb250ZW50Vmll
dy5zZWxlY3RlZFRleHRSYW5nZV0pOworfQorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmluZGV4IGQ2M2Q3ZDdkZTc4MjQ3ZWU5NTY1
OWE0YzQ0MzQ4NmZmZmYzMDg5ODguLjI0MzM3YzdjMDM5NzYyZjRiMDIzMTU3NzE2NTBiOGEyMTJm
MDdhYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaApAQCAtMTgwLDYgKzE4MCw3IEBA
IHR5cGVkZWYgTlNfT1BUSU9OUyhOU0ludGVnZXIsIFVJV0tEb2N1bWVudFJlcXVlc3RGbGFncykg
ewogLSAodm9pZClzZWxlY3RUZXh0V2l0aEdyYW51bGFyaXR5OihVSVRleHRHcmFudWxhcml0eSln
cmFudWxhcml0eSBhdFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0
aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShC
T09MIHNlbGVjdGlvbkVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBk
YXRlU2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IHdpdGhCb3VuZGFyeToo
VUlUZXh0R3JhbnVsYXJpdHkpZ3JhbnVsYXJpdHkgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KEJPT0wgc2VsZWN0aW9uRW5kSXNNb3ZpbmcpKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClz
ZWxlY3RXb3JkRm9yUmVwbGFjZW1lbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TU3RyaW5nICpzZWxlY3RlZFRleHQ7CiAKIEBvcHRpb25hbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>