<?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>138230</bug_id>
          
          <creation_ts>2014-10-30 14:20:44 -0700</creation_ts>
          <short_desc>Clean up virtual functions in css/</short_desc>
          <delta_ts>2014-10-30 16:08:20 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045115</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 14:20:44 -0700</bug_when>
    <thetext>Clean up virtual functions in css/ by:
- Making virtual functions final when possible
- Making classes final when possible
- Using &apos;override&apos; when appropriate
- Explicitly marking functions / destructors as virtual when they are
  inherently virtual
- Making isXXX() virtual functions private on XXX classes to avoid
  unnecessary type checks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045119</commentid>
    <comment_count>1</comment_count>
      <attachid>240696</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 14:22:46 -0700</bug_when>
    <thetext>Created attachment 240696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045147</commentid>
    <comment_count>2</comment_count>
      <attachid>240696</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-30 15:20:28 -0700</bug_when>
    <thetext>Comment on attachment 240696
Patch

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

&gt; Source/WebCore/css/CSSRuleList.h:62
&gt; +    virtual CSSStyleSheet* styleSheet() const override { return 0; }

0 -&gt; nullptr

&gt; Source/WebCore/css/CSSRuleList.h:69
&gt; +    virtual CSSRule* item(unsigned index) const override { return index &lt; m_rules.size() ? m_rules[index].get() : 0; }

ditto

I wonder why it is valid to ask for a rule index &gt; length...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045148</commentid>
    <comment_count>3</comment_count>
      <attachid>240696</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 15:23:39 -0700</bug_when>
    <thetext>Comment on attachment 240696
Patch

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

&gt;&gt; Source/WebCore/css/CSSRuleList.h:69
&gt;&gt; +    virtual CSSRule* item(unsigned index) const override { return index &lt; m_rules.size() ? m_rules[index].get() : 0; }
&gt; 
&gt; ditto
&gt; 
&gt; I wonder why it is valid to ask for a rule index &gt; length...

The spec says so: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSRuleList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045149</commentid>
    <comment_count>4</comment_count>
      <attachid>240707</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 15:24:22 -0700</bug_when>
    <thetext>Created attachment 240707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045167</commentid>
    <comment_count>5</comment_count>
      <attachid>240707</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-30 16:08:16 -0700</bug_when>
    <thetext>Comment on attachment 240707
Patch

Clearing flags on attachment: 240707

Committed r175391: &lt;http://trac.webkit.org/changeset/175391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045168</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-30 16:08:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240696</attachid>
            <date>2014-10-30 14:22:46 -0700</date>
            <delta_ts>2014-10-30 15:24:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138230-20141030142254.patch</filename>
            <type>text/plain</type>
            <size>27090</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk1OGJkZmFkMjM2YjNh
NzNhMzNmZDZjMmJhMjBhZTJjMDkzYjkzZS4uM2UxYjNjYjE0OTFlNmVkZjdjYjUyMjQxOGNmNjYw
Mzc4NGJiYmVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTEwLTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBm
dW5jdGlvbnMgaW4gY3NzLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM4MjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBmdW5jdGlvbnMgaW4gY3NzLyBieToKKyAgICAgICAg
LSBNYWtpbmcgdmlydHVhbCBmdW5jdGlvbnMgZmluYWwgd2hlbiBwb3NzaWJsZQorICAgICAgICAt
IE1ha2luZyBjbGFzc2VzIGZpbmFsIHdoZW4gcG9zc2libGUKKyAgICAgICAgLSBVc2luZyAnb3Zl
cnJpZGUnIHdoZW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLSBFeHBsaWNpdGx5IG1hcmtpbmcgZnVu
Y3Rpb25zIC8gZGVzdHJ1Y3RvcnMgYXMgdmlydHVhbCB3aGVuIHRoZXkgYXJlCisgICAgICAgICAg
aW5oZXJlbnRseSB2aXJ0dWFsCisgICAgICAgIC0gTWFraW5nIGlzWFhYKCkgdmlydHVhbCBmdW5j
dGlvbnMgcHJpdmF0ZSBvbiBYWFggY2xhc3NlcyB0byBhdm9pZAorICAgICAgICAgIHVubmVjZXNz
YXJ5IHR5cGUgY2hlY2tzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvQ1NTQmFzaWNT
aGFwZXMuaDoKKyAgICAgICAgKiBjc3MvQ1NTQ2hhcnNldFJ1bGUuaDoKKyAgICAgICAgKiBjc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL0NTU0Nyb3NzZmFk
ZVZhbHVlLmg6CisgICAgICAgICogY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaDoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VS
dWxlLmg6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAgICAgICogY3Nz
L0NTU0ltcG9ydFJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmg6CisgICAgICAg
ICogY3NzL0NTU1BhZ2VSdWxlLmg6CisgICAgICAgICogY3NzL0NTU1J1bGVMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdGF0aWNDU1NSdWxlTGlzdDo6cmVmKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0YXRpY0NTU1J1bGVMaXN0OjpzdHlsZVNoZWV0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN0YXRpY0NTU1J1bGVMaXN0OjpsZW5ndGgpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxpc3Q6Oml0ZW0pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGl2ZUNTU1J1bGVMaXN0OjpyZWYpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGl2ZUNTU1J1bGVMaXN0OjpkZXJlZik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpM
aXZlQ1NTUnVsZUxpc3Q6Omxlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaXZl
Q1NTUnVsZUxpc3Q6Oml0ZW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGl2ZUNTU1J1
bGVMaXN0OjpzdHlsZVNoZWV0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVSdWxl
Lmg6CisgICAgICAgICogY3NzL0NTU1N1cHBvcnRzUnVsZS5oOgorICAgICAgICAqIGNzcy9DU1NV
bmtub3duUnVsZS5oOgorICAgICAgICAqIGNzcy9Gb250TG9hZGVyLmg6CisgICAgICAgICogY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpwYXJlbnRFbGVtZW50KToKKyAgICAgICAgKiBj
c3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg6CisgICAgICAgICogY3NzL1dlYktpdENTU1ZpZXdw
b3J0UnVsZS5oOgorCiAyMDE0LTEwLTMwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgdG8gdHJhY2sgcGFnZSBs
b2Fkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzdkYmFkYWM4YWU1NTFhOWRlMDFlN2FkZDBk
NjFmZWIxYmY3MzNkYy4uZDkxYzI3NjAzOGMwMjMwMzFhMDkxNjRlNmMzZDI5NWRiZWIxNzcyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNjEsNiArMTA2MSw4IEBAIF9fWk43V2ViQ29yZTI2
c3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXNFdgogX19aTjdXZWJDb3JlMjdBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUJhc2U3Y29tcGFyZUVSS05TXzIzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VFUzNf
CiBfX1pON1dlYkNvcmUyN0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZTdudWxsaWZ5RXYKIF9f
Wk43V2ViQ29yZTI3QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlQzJFdgorX19aTjdXZWJDb3Jl
MjdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24zcmVmRXYKK19fWk43V2ViQ29yZTI3Q1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uNWRlcmVmRXYKIF9fWk43V2ViQ29yZTI3Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uQzFFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUViUktOUzFfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTI3RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrMTRzZXRPcmll
bnRhdGlvbkVOM1dURjEwUGFzc1JlZlB0cklOU18yMURldmljZU9yaWVudGF0aW9uRGF0YUVFRQog
X19aTjdXZWJDb3JlMjdEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2tDMUV2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NCYXNpY1NoYXBlcy5oCmluZGV4IGYwMTVkZGZmZmI5YWFmOGU1Yzc3YTNkMzAwOWE3ZTQw
NTNhNWVlNzEuLjBjZWIyZjUxYzhkMTNiYWQ5MjhkYTYzZjE4MDUyOGM3MzFkOTY5MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCkBAIC02Myw3ICs2Myw3IEBAIHByb3RlY3RlZDoK
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcmVmZXJlbmNlQm94OwogfTsKIAotY2xh
c3MgQ1NTQmFzaWNTaGFwZUluc2V0IDogcHVibGljIENTU0Jhc2ljU2hhcGUgeworY2xhc3MgQ1NT
QmFzaWNTaGFwZUluc2V0IGZpbmFsIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldD4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENTU0Jhc2ljU2hhcGVJbnNldCk7IH0KIApAQCAtMTEwLDEzICsxMTAs
MTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Qm90dG9tUmlnaHRSYWRpdXMoUGFzc1JlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzKSB7IG1fYm90dG9tUmlnaHRSYWRpdXMgPSByYWRpdXM7
IH0KICAgICB2b2lkIHNldEJvdHRvbUxlZnRSYWRpdXMoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gcmFkaXVzKSB7IG1fYm90dG9tTGVmdFJhZGl1cyA9IHJhZGl1czsgfQogCi0gICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNpY1NoYXBlSW5z
ZXRUeXBlOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ1NTQmFzaWNTaGFwZSYpIGNvbnN0IG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIENTU0Jhc2ljU2hhcGVJbnNldCgpIHsgfQogCisgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNpY1NoYXBlSW5z
ZXRUeXBlOyB9CisKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fdG9wOwogICAgIFJl
ZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yaWdodDsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IG1fYm90dG9tOwpAQCAtMTI4LDExICsxMjksMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm90dG9tTGVmdFJhZGl1czsKIH07CiAKLWNsYXNzIENT
U0Jhc2ljU2hhcGVDaXJjbGUgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CitjbGFzcyBDU1NCYXNp
Y1NoYXBlQ2lyY2xlIGZpbmFsIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGVDaXJjbGU+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDU1NCYXNpY1NoYXBlQ2lyY2xlKTsgfQogCi0gICAgdmlydHVhbCBUeXBl
IHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNpY1NoYXBlQ2lyY2xlVHlwZTsg
fQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBvdmVycmlkZTsKIApA
QCAtMTQ3LDEyICsxNDcsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU1NCYXNpY1NoYXBl
Q2lyY2xlKCkgeyB9CiAKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIENTU0Jhc2ljU2hhcGVDaXJjbGVUeXBlOyB9CisKICAgICBSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IG1fY2VudGVyWDsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fY2Vu
dGVyWTsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcmFkaXVzOwogfTsKIAotY2xh
c3MgQ1NTQmFzaWNTaGFwZUVsbGlwc2UgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CitjbGFzcyBD
U1NCYXNpY1NoYXBlRWxsaXBzZSBmaW5hbCA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NCYXNpY1NoYXBlRWxsaXBzZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0Jhc2ljU2hhcGVFbGxpcHNlKTsgfQogCkBAIC0xNjYs
MjAgKzE2OCwyMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSYWRpdXNYKFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQogICAgIHZv
aWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNZKSB7IG1f
cmFkaXVzWSA9IHJhZGl1c1k7IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gQ1NTQmFzaWNTaGFwZUVsbGlwc2VUeXBlOyB9CiAgICAgdmlydHVhbCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMo
Y29uc3QgQ1NTQmFzaWNTaGFwZSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENT
U0Jhc2ljU2hhcGVFbGxpcHNlKCkgeyB9CiAKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIENTU0Jhc2ljU2hhcGVFbGxpcHNlVHlwZTsgfQorCiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2NlbnRlclg7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBtX2NlbnRlclk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3JhZGl1
c1g7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX3JhZGl1c1k7CiB9OwogCi1jbGFz
cyBDU1NCYXNpY1NoYXBlUG9seWdvbiA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKK2NsYXNzIENT
U0Jhc2ljU2hhcGVQb2x5Z29uIGZpbmFsIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGVQb2x5Z29uPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNTaGFwZVBvbHlnb24pOyB9CiAKQEAgLTE5Niw3
ICsxOTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaW5kUnVsZShXaW5kUnVsZSB3KSB7IG1f
d2luZFJ1bGUgPSB3OyB9CiAgICAgV2luZFJ1bGUgd2luZFJ1bGUoKSBjb25zdCB7IHJldHVybiBt
X3dpbmRSdWxlOyB9CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIENTU0Jhc2ljU2hhcGVQb2x5Z29uVHlwZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNz
c1RleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENT
U0Jhc2ljU2hhcGUmKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMjA2LDYgKzIwOCw4IEBAIHByaXZh
dGU6CiAgICAgewogICAgIH0KIAorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQ1NTQmFzaWNTaGFwZVBvbHlnb25UeXBlOyB9CisKICAgICBWZWN0b3I8UmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPj4gbV92YWx1ZXM7CiAgICAgV2luZFJ1bGUgbV93aW5kUnVs
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5oCmluZGV4IGEyYzVkOTkyZWIzN2Qy
N2RmMGIxZjA1NTdjZjkwM2Y2NjAxNDA0MmYuLmRlMWFjM2NlMmEyYjBlYmIxYzQ5NDk3ZWNmODI5
ZTAxYWY3MTNlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5oCkBAIC0zNSw3ICsz
NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNTU0NoYXJzZXRSdWxlKCkgeyB9CiAKLSAg
ICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENI
QVJTRVRfUlVMRTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpIG92ZXJyaWRlIHsg
fQogCkBAIC00Myw2ICs0Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuY29kaW5nKGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcsIEV4Y2VwdGlvbkNvZGUmKSB7IG1fZW5jb2RpbmcgPSBlbmNvZGlu
ZzsgfQogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ0hBUlNFVF9SVUxFOyB9CisKICAgICBDU1NDaGFyc2V0UnVsZShD
U1NTdHlsZVNoZWV0KiBwYXJlbnQsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcpOwogCiAgICAgU3Ry
aW5nIG1fZW5jb2Rpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmgKaW5kZXggMzRhZjJhNTBmZDg2MTAxYWQ3ZmNjNDIzZDAwZDc4MDdjMDhl
MjdjMC4uYWU2OTZiNGEyZmFjMTQwZGIxNDUzMDhiODFhNDZlZWI0Y2MwYWU1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaApAQCAtODMs
NyArODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbGxvd1Zpc2l0ZWRTdHlsZTsKIH07CiAK
LWNsYXNzIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbiA6IHB1YmxpYyBDU1NTdHlsZURlY2xh
cmF0aW9uIHsKK2NsYXNzIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbiBmaW5hbCA6IHB1Ymxp
YyBDU1NTdHlsZURlY2xhcmF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUs
IGJvb2wgYWxsb3dWaXNpdGVkU3R5bGUgPSBmYWxzZSwgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVt
ZW50TmFtZSA9IFN0cmluZygpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDcm9zc2ZhZGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZh
bHVlLmgKaW5kZXggMzMwNTQwYjhhMzQ1OTJjMzhlMGY1OWU5YjM0MjgwYzU1MDUzNzE1ZC4uNTA2
N2ViYzlkMTZkMGJjZDBhNzdmNTc5N2YwNjg0M2JlMGJkNmZiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgfQogCi0gICAgY2xhc3MgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IDogcHVibGlj
IENhY2hlZEltYWdlQ2xpZW50IHsKKyAgICBjbGFzcyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVy
UHJveHkgZmluYWwgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgewogICAgIHB1YmxpYzoKICAg
ICAgICAgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5KENTU0Nyb3NzZmFkZVZhbHVlKiBv
d25lclZhbHVlKQogICAgICAgICAgICAgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkKQEAgLTg5
LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgfkNyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSgpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgaW1h
Z2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJl
Y3QqID0gbnVsbHB0cikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgc2V0UmVhZHkoYm9vbCByZWFk
eSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KICAgICBwcml2YXRlOgogICAgICAgICBDU1NDcm9zc2Zh
ZGVWYWx1ZSogbV9vd25lclZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZpbHRlckltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZh
bHVlLmgKaW5kZXggM2MwNjhkNThjY2EwM2FlMmI1OGJmYzRkOGIzYjY4MGQ1YzZjYTc2Yi4uYmQw
NTI0YThiZGMzZTQ1ZDIzYjlhNDdmYmIxOTQ0M2Q4ZWFmYTVkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAg
ewogICAgIH0KIAotICAgIGNsYXNzIEZpbHRlclN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1Ymxp
YyBDYWNoZWRJbWFnZUNsaWVudCB7CisgICAgY2xhc3MgRmlsdGVyU3ViaW1hZ2VPYnNlcnZlclBy
b3h5IGZpbmFsIDogcHVibGljIENhY2hlZEltYWdlQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIEZpbHRlclN1YmltYWdlT2JzZXJ2ZXJQcm94eShDU1NGaWx0ZXJJbWFnZVZhbHVlKiBvd25l
clZhbHVlKQogICAgICAgICAgICAgOiBtX293bmVyVmFsdWUob3duZXJWYWx1ZSkKQEAgLTk3LDcg
Kzk3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgfkZpbHRlclN1
YmltYWdlT2JzZXJ2ZXJQcm94eSgpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFu
Z2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0g
bnVsbHB0cikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBt
X3JlYWR5ID0gcmVhZHk7IH0KICAgICBwcml2YXRlOgogICAgICAgICBDU1NGaWx0ZXJJbWFnZVZh
bHVlKiBtX293bmVyVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VMb2FkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVu
dC5oCmluZGV4IGMwZjI5YzAxZjcwNmNiNDljNWVlYzQ1ODRkYTYxM2U3ZTgwNjIwMTguLjZmNjk4
MTFjOTk1NTE5OTgyOTQ0Mjk1NWVmMjE2NGI3ZTg5NmJiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZUxvYWRFdmVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHN0cnVjdCBDU1NGb250
RmFjZUxvYWRFdmVudEluaXQgOiBwdWJsaWMgRXZlbnRJbml0IHsKICAgICBSZWZQdHI8RE9NRXJy
b3I+IGVycm9yOwogfTsKIAotY2xhc3MgQ1NTRm9udEZhY2VMb2FkRXZlbnQgOiBwdWJsaWMgRXZl
bnQgeworY2xhc3MgQ1NTRm9udEZhY2VMb2FkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0ZvbnRGYWNlTG9hZEV2ZW50PiBjcmVh
dGUoKQogICAgIHsKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIENTU0ZvbnRGYWNlUnVs
ZSogZm9udGZhY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRmYWNlLmdldCgpOyB9CiAgICAgRE9N
RXJyb3IqIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvci5nZXQoKTsgfQogCi0gICAgdmly
dHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0OworICAgIHZpcnR1YWwg
RXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBDU1NGb250RmFjZUxvYWRFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
UnVsZS5oCmluZGV4IDlmZmE0MDRlOWZjMjUzYzZlYTlhMDNjMjFkMDk0ODI1OGZjN2YxNGQuLmI1
NWFiNGY5YjZiMzFlNTFiOGE4MmJmYWEwZGJkNGMxMGRlZGY0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VSdWxlLmgKQEAgLTM2LDcgKzM2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB+Q1NTRm9udEZhY2VSdWxlKCk7CiAKLSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZPTlRfRkFDRV9SVUxFOyB9CiAgICAgdmlydHVhbCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWF0dGFj
aChTdHlsZVJ1bGVCYXNlJikgb3ZlcnJpZGU7CiAKQEAgLTQ1LDYgKzQ0LDggQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBDU1NGb250RmFjZVJ1bGUoU3R5bGVSdWxlRm9udEZhY2UmLCBDU1NTdHls
ZVNoZWV0KiBwYXJlbnQpOwogCisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBGT05UX0ZBQ0VfUlVMRTsgfQorCiAgICAgUmVmPFN0eWxlUnVs
ZUZvbnRGYWNlPiBtX2ZvbnRGYWNlUnVsZTsKICAgICBSZWZQdHI8U3R5bGVSdWxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmgKaW5kZXggNWFkMzhjMTVhYzQ1NDNlY2Q3M2E4MGM4ODE0YmVm
OTY1YWMzOTRiZi4uNGUzZDQxZTYxM2E5ZGM1YTQyZDEwZDRlNGFiZjQ4NWI2MmIzYmU4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xh
c3MgU1ZHRm9udEVsZW1lbnQ7CiBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQ7CiAjZW5kaWYKIAot
Y2xhc3MgQ1NTRm9udEZhY2VTb3VyY2UgOiBwdWJsaWMgQ2FjaGVkRm9udENsaWVudCB7CitjbGFz
cyBDU1NGb250RmFjZVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRGb250Q2xpZW50IHsKIHB1
YmxpYzoKLSAgICBDU1NGb250RmFjZVNvdXJjZShjb25zdCBTdHJpbmcmLCBDYWNoZWRGb250KiA9
IDApOworICAgIENTU0ZvbnRGYWNlU291cmNlKGNvbnN0IFN0cmluZyYsIENhY2hlZEZvbnQqID0g
bnVsbHB0cik7CiAgICAgdmlydHVhbCB+Q1NTRm9udEZhY2VTb3VyY2UoKTsKIAogICAgIGJvb2wg
aXNMb2FkZWQoKSBjb25zdDsKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRGb250RmFjZShDU1NGb250RmFjZSogZmFjZSkgeyBtX2ZhY2UgPSBmYWNlOyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZm9udExvYWRlZChDYWNoZWRGb250Kik7CisgICAgdmlydHVhbCB2b2lkIGZv
bnRMb2FkZWQoQ2FjaGVkRm9udCopIG92ZXJyaWRlOwogCiAgICAgUGFzc1JlZlB0cjxTaW1wbGVG
b250RGF0YT4gZ2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgQ1NTRm9udFNlbGVjdG9yKik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1wb3J0UnVsZS5oCmluZGV4IDdkMGRlMjcwYTczN2YzZGU4MTVjOWU1NGIzNTYx
YTI3ZjU5NzFlNDUuLjU5YTJlOWMwZmM2Mzg1MTg4NTFlZjRiOWU1YmJiYmRlMzJhMGEwMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaApAQCAtMzcsNyArMzcsNiBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdmlydHVhbCB+Q1NTSW1wb3J0UnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxl
OjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBJTVBPUlRfUlVMRTsgfQogICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpIG92ZXJyaWRlOwogCkBAIC00OCw2ICs0Nyw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTSW1wb3J0UnVsZShTdHlsZVJ1bGVJbXBvcnQmLCBD
U1NTdHlsZVNoZWV0Kik7CiAKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIElNUE9SVF9SVUxFOyB9CisKICAgICBSZWY8U3R5bGVSdWxlSW1w
b3J0PiBtX2ltcG9ydFJ1bGU7CiAgICAgbXV0YWJsZSBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlh
Q1NTT01XcmFwcGVyOwogICAgIG11dGFibGUgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG1fc3R5bGVT
aGVldENTU09NV3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaAppbmRleCA4NjcyMTUz
NmU2MmQyYzgyYTM3NGQ4M2I2Mzc0ZGFjZGYwNzEyYTJmLi45ZDA5NDNmYTI4YTAyYzAzNDJkNjJj
MmFkYTI0NjNkNDkwMmZiODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVk
aWFSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCkBAIC0zNiw3
ICszNiw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNTU01lZGlhUnVsZSgpOwogCi0gICAg
dmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNRURJ
QV9SVUxFOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAg
LTQ1LDYgKzQ0LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDU1NNZWRpYVJ1bGUoU3R5bGVS
dWxlTWVkaWEmLCBDU1NTdHlsZVNoZWV0Kik7CiAKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUg
dHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1FRElBX1JVTEU7IH0KKwogICAgIE1lZGlh
UXVlcnlTZXQqIG1lZGlhUXVlcmllcygpIGNvbnN0OwogICAgIAogICAgIG11dGFibGUgUmVmUHRy
PE1lZGlhTGlzdD4gbV9tZWRpYUNTU09NV3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYWdlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmgK
aW5kZXggNWRmOWFhZjlmMTU5YWQ2YmVhMmUwY2EwMTYyY2E3ZTIxMDliNWUxYy4uNGFiYTZkYWI4
ZDc1ODkwNDM3YzMwYTBmMDliMTk2NmEzYTFhZGZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhZ2VSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxl
LmgKQEAgLTM3LDcgKzM3LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q1NTUGFnZVJ1bGUo
KTsKIAotICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gUEFHRV9SVUxFOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikgb3ZlcnJp
ZGU7CiAKQEAgLTQ4LDcgKzQ3LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIENTU1BhZ2VS
dWxlKFN0eWxlUnVsZVBhZ2UmLCBDU1NTdHlsZVNoZWV0Kik7Ci0gICAgCisKKyAgICB2aXJ0dWFs
IENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBBR0VfUlVMRTsg
fQorCiAgICAgUmVmPFN0eWxlUnVsZVBhZ2U+IG1fcGFnZVJ1bGU7CiAgICAgbXV0YWJsZSBSZWZQ
dHI8U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVy
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmgKaW5kZXggMTM5ZjljNzhhMTM2ODQxMTU3NDJk
MjY2ZDAxNjQyNzIyZGRhZGFiOS4uMzhiOGE4NzY5OTcwMDFlZTY4YWJkNThmNGU0MTliZTAzZDNl
ZjEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmgKQEAgLTUwLDIzICs1MCwyMyBAQCBwcm90
ZWN0ZWQ6CiAgICAgQ1NTUnVsZUxpc3QoKTsKIH07CiAKLWNsYXNzIFN0YXRpY0NTU1J1bGVMaXN0
IDogcHVibGljIENTU1J1bGVMaXN0IHsKK2NsYXNzIFN0YXRpY0NTU1J1bGVMaXN0IGZpbmFsIDog
cHVibGljIENTU1J1bGVMaXN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdGF0
aWNDU1NSdWxlTGlzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0YXRpY0NTU1J1
bGVMaXN0KCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyArK21fcmVmQ291bnQ7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJp
ZGUgeyArK21fcmVmQ291bnQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsK
IAogICAgIFZlY3RvcjxSZWZQdHI8Q1NTUnVsZT4+JiBydWxlcygpIHsgcmV0dXJuIG1fcnVsZXM7
IH0KICAgICAKLSAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQoKSBjb25zdCB7
IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiBwcml2YXRlOiAgICAKICAgICBTdGF0aWNDU1NS
dWxlTGlzdCgpOwogICAgIH5TdGF0aWNDU1NSdWxlTGlzdCgpOwogCi0gICAgdmlydHVhbCB1bnNp
Z25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3J1bGVzLnNpemUoKTsgfQotICAgIHZpcnR1
YWwgQ1NTUnVsZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gaW5kZXggPCBt
X3J1bGVzLnNpemUoKSA/IG1fcnVsZXNbaW5kZXhdLmdldCgpIDogMDsgfQorICAgIHZpcnR1YWwg
dW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydWxlcy5zaXplKCk7
IH0KKyAgICB2aXJ0dWFsIENTU1J1bGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGluZGV4IDwgbV9ydWxlcy5zaXplKCkgPyBtX3J1bGVzW2luZGV4XS5nZXQo
KSA6IDA7IH0KIAogICAgIFZlY3RvcjxSZWZQdHI8Q1NTUnVsZT4+IG1fcnVsZXM7CiAgICAgdW5z
aWduZWQgbV9yZWZDb3VudDsKQEAgLTc0LDE3ICs3NCwxNyBAQCBwcml2YXRlOgogCiAvLyBUaGUg
cnVsZSBvd25zIHRoZSBsaXZlIGxpc3QuCiB0ZW1wbGF0ZSA8Y2xhc3MgUnVsZT4KLWNsYXNzIExp
dmVDU1NSdWxlTGlzdCA6IHB1YmxpYyBDU1NSdWxlTGlzdCB7CitjbGFzcyBMaXZlQ1NTUnVsZUxp
c3QgZmluYWwgOiBwdWJsaWMgQ1NTUnVsZUxpc3QgewogcHVibGljOgogICAgIExpdmVDU1NSdWxl
TGlzdChSdWxlKiBydWxlKSA6IG1fcnVsZShydWxlKSB7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgcmVmKCkgeyBtX3J1bGUtPnJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBt
X3J1bGUtPmRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBtX3J1
bGUtPnJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBtX3J1bGUt
PmRlcmVmKCk7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fcnVsZS0+bGVuZ3RoKCk7IH0KLSAgICB2aXJ0dWFsIENTU1J1bGUqIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0ICB7IHJldHVybiBtX3J1bGUtPml0ZW0oaW5kZXgpOyB9
Ci0gICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4g
bV9ydWxlLT5wYXJlbnRTdHlsZVNoZWV0KCk7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0
aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVsZS0+bGVuZ3RoKCk7IH0KKyAgICB2aXJ0
dWFsIENTU1J1bGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fcnVsZS0+aXRlbShpbmRleCk7IH0KKyAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1bGUtPnBhcmVudFN0eWxlU2hlZXQo
KTsgfQogICAgIAogICAgIFJ1bGUqIG1fcnVsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmgKaW5kZXggYjhmMjRjZWVmOGJiM2U4NjVkMDEwNDVmMWE2ZWY4NjQzYWMzNzg1NS4uYjQ3ZWQx
NzNmMzlhNDU3ODUyZjQyZmRlZTBmZWI3MDYwYjdlZmRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVJ1bGUuaApAQCAtMzYsNyArMzYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5DU1NTdHls
ZVJ1bGUoKTsKIAotICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gU1RZTEVfUlVMRTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpIG92ZXJyaWRl
OwogCkBAIC01MSw2ICs1MCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTU3R5bGVSdWxl
KFN0eWxlUnVsZSYsIENTU1N0eWxlU2hlZXQqKTsKIAorICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlw
ZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU1RZTEVfUlVMRTsgfQorCiAgICAgU3Ry
aW5nIGdlbmVyYXRlU2VsZWN0b3JUZXh0KCkgY29uc3Q7CiAKICAgICBSZWY8U3R5bGVSdWxlPiBt
X3N0eWxlUnVsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuaAppbmRleCAyZjg1NjMw
NTE1YWRlMzFlNzliNDZkYTZhYTkzNGYxMDlhYjM4M2U4Li42NDgwMTE5Y2RkOGQ4MDU1YzYyYjA3
MGU0Mzg1NTYxOWYwM2QyMTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3Vw
cG9ydHNSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5oCkBA
IC00NSwxMyArNDUsMTQgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q1NTU3VwcG9ydHNSdWxl
KCkgeyB9CiAKLSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFNVUFBPUlRTX1JVTEU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgY29uZGl0aW9uVGV4dCgpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIENTU1N1cHBvcnRzUnVsZShTdHlsZVJ1bGVTdXBwb3J0cyYsIENTU1N0eWxl
U2hlZXQqKTsKKworICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gU1VQUE9SVFNfUlVMRTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaAppbmRleCA5OTU3OTRhMGFmODczM2UwNzc1
MTc5ZTdkZWFiMjFhYzA0MzgyZDViLi5iOGI2ZWY5ODc5M2EwYjY3MzdmNzNiMDE1YzNjYjI0ODYx
Zjg2MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaApAQCAtMjgsMTIgKzI4LDE4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTVW5rbm93blJ1bGUgZmluYWwgOiBw
dWJsaWMgQ1NTUnVsZSB7CiBwdWJsaWM6Ci0gICAgQ1NTVW5rbm93blJ1bGUoKSA6IENTU1J1bGUo
MCkgeyB9CisgICAgQ1NTVW5rbm93blJ1bGUoKQorICAgICAgICA6IENTU1J1bGUobnVsbHB0cikK
KyAgICB7CisgICAgfQorCiAgICAgdmlydHVhbCB+Q1NTVW5rbm93blJ1bGUoKSB7IH0KIAotICAg
IHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVU5L
Tk9XTl9SVUxFOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVs
ZUJhc2UmKSBvdmVycmlkZSB7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5
cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFVOS05PV05fUlVMRTsgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5kZXggOGQ2MWIy
NDM0NGUwOWRiOTMxMTJlMDk0M2NmNDBjN2E4NzE2NjZmMS4uMDE5ZmQwM2NkNzIxZTVhOTY3OTQ4
NDk4MTc5YTYwOGNlNWRjMjg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC00OCw3ICs0
OCw3IEBAIGNsYXNzIEZvbnQ7CiBjbGFzcyBMb2FkRm9udENhbGxiYWNrOwogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgRm9udExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEZvbnRMb2FkZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQg
eworY2xhc3MgRm9udExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEZvbnRMb2FkZXI+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvbnRMb2FkZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgewpAQCAtNzAsOCArNzAsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGxvYWRpbmco
KSBjb25zdCB7IHJldHVybiBtX251bUxvYWRpbmdGcm9tQ1NTID4gMCB8fCBtX251bUxvYWRpbmdG
cm9tSlMgPiAwOyB9CiAKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxGb250TG9hZGVyPjo6cmVmOwog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj46OmRlcmVmOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IDBkNTgz
YTU4MTM4ODIzNDM0YjBjN2M2OGJhZjU1OGQwOWQwMWViNTkuLmI4NjMwNGRhYzkzNDU0NmUzOTMx
YTYyZGU5ZDk2MDRiYzY1OGEzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9w
ZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIENTU1N0eWxlRGVjbGFyYXRpb24g
ewogcHVibGljOgogICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbihNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCkgOiBtX3Byb3BlcnR5U2V0KHByb3BlcnR5U2V0KSB7
IH0KICAgICAKLSAgICB2aXJ0dWFsIFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBhcmVu
dEVsZW1lbnQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgU3R5bGVTaGVldENvbnRl
bnRzKiBjb250ZXh0U3R5bGVTaGVldCgpIGNvbnN0OwogICAgIApAQCAtNTIsMjMgKzUyLDIzIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAwOyB9OwotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFN0cmluZyBnZXRQ
cm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVNob3J0aGFuZChj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlz
UHJvcGVydHlJbXBsaWNpdChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHByaW9yaXR5LCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBTdHJpbmcgcmVtb3ZlUHJvcGVydHkoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENz
c1RleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKENTU1By
b3BlcnR5SUQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbChDU1NQcm9wZXJ0eUlEKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJv
cGVydHlJbnRlcm5hbChDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGlt
cG9ydGFudCwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQ1NTUnVsZSog
cGFyZW50UnVsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
U3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0
UHJvcGVydHlWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGUgZmluYWw7
CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVy
dHlTaG9ydGhhbmQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0
eU5hbWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5n
JiBwcmlvcml0eSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
U3RyaW5nIHJlbW92ZVByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBzZXRDc3NUZXh0KGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlE
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlSW50
ZXJuYWwoQ1NTUHJvcGVydHlJRCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHNl
dFByb3BlcnR5SW50ZXJuYWwoQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9v
bCBpbXBvcnRhbnQsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKICAgICAKLSAgICB2
aXJ0dWFsIFBhc3NSZWY8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gY29weVByb3BlcnRpZXMoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWY8TXV0YWJsZVN0eWxlUHJvcGVydGll
cz4gY29weVByb3BlcnRpZXMoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKIAogICAgIENTU1ZhbHVl
KiBjbG9uZUFuZENhY2hlRm9yQ1NTT00oQ1NTVmFsdWUqKTsKICAgICAKQEAgLTgxLDcgKzgxLDcg
QEAgcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoTWFwPENTU1ZhbHVlKiwgUmVm
UHRyPENTU1ZhbHVlPj4+IG1fY3Nzb21DU1NWYWx1ZUNsb25lczsKIH07CiAKLWNsYXNzIFN0eWxl
UnVsZUNTU1N0eWxlRGVjbGFyYXRpb24gOiBwdWJsaWMgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uCitjbGFzcyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uIGZpbmFsIDogcHVibGlj
IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbgogewogcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZShNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJiBwcm9wZXJ0eVNldCwgQ1NTUnVsZSYgcGFyZW50UnVsZSkKQEAgLTExMSw3
ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIENTU1J1bGUqIG1fcGFyZW50UnVsZTsKIH07CiAKLWNs
YXNzIElubGluZUNTU1N0eWxlRGVjbGFyYXRpb24gOiBwdWJsaWMgUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uCitjbGFzcyBJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uIGZpbmFsIDogcHVi
bGljIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbgogewogcHVibGljOgogICAgIElubGlu
ZUNTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGllcyogcHJvcGVydHlTZXQs
IFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmgKaW5kZXggZDM2ZWJhZjRhMzk5MDUwZTczNmQ1OGU1OTBmYmJiNDNh
Y2IxMzg4Yy4uOWIwZWM0NDU1NTQyNzlmZWE3ZDEzZWEwY2IxZDczOTEwNDRiYTEyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaApAQCAtNjksNyArNjksNiBA
QCBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgZmluYWwgOiBwdWJsaWMgQ1NTUnVsZSB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKCk7CiAKLSAgICB2aXJ0
dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJVF9L
RVlGUkFNRV9SVUxFOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fa2V5ZnJhbWUtPmNzc1RleHQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBy
ZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikgb3ZlcnJpZGU7CiAKQEAgLTgxLDYgKzgwLDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUoU3R5bGVLZXlmcmFtZSYs
IFdlYktpdENTU0tleWZyYW1lc1J1bGUqIHBhcmVudCk7CiAKKyAgICB2aXJ0dWFsIENTU1J1bGU6
OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJVF9LRVlGUkFNRV9SVUxF
OyB9CisKICAgICBSZWY8U3R5bGVLZXlmcmFtZT4gbV9rZXlmcmFtZTsKICAgICBtdXRhYmxlIFJl
ZlB0cjxTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uPiBtX3Byb3BlcnRpZXNDU1NPTVdyYXBw
ZXI7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgKaW5k
ZXggZWI3NTQ4OTI3ZjkyYTk2YTY2MWIxOTg1OTFiMDE1YTlhOTJjMzFhNy4uNWJmNDM0NzNhOTdm
ODliNjUyMjE5MjY0YTU2YTRhN2VkMGJlZDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NWaWV3cG9ydFJ1bGUuaApAQCAtNDcsOSArNDcsOCBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdENTU1ZpZXdwb3J0UnVsZSh2aWV3cG9ydFJ1
bGUsIHNoZWV0KSk7CiAgICAgfQotICAgIH5XZWJLaXRDU1NWaWV3cG9ydFJ1bGUoKTsKKyAgICB2
aXJ0dWFsIH5XZWJLaXRDU1NWaWV3cG9ydFJ1bGUoKTsKIAotICAgIHZpcnR1YWwgQ1NTUnVsZTo6
VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV0VCS0lUX1ZJRVdQT1JUX1JVTEU7
IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKSBvdmVycmlkZTsKIApAQCAtNTgsNiAr
NTcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYktpdENTU1ZpZXdwb3J0UnVsZShTdHls
ZVJ1bGVWaWV3cG9ydCYsIENTU1N0eWxlU2hlZXQqKTsKIAorICAgIHZpcnR1YWwgQ1NTUnVsZTo6
VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV0VCS0lUX1ZJRVdQT1JUX1JVTEU7
IH0KKwogICAgIFJlZjxTdHlsZVJ1bGVWaWV3cG9ydD4gbV92aWV3cG9ydFJ1bGU7CiAgICAgbXV0
YWJsZSBSZWZQdHI8U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NT
T01XcmFwcGVyOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240707</attachid>
            <date>2014-10-30 15:24:22 -0700</date>
            <delta_ts>2014-10-30 16:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138230-20141030152430.patch</filename>
            <type>text/plain</type>
            <size>27136</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI4NGE5ODFlNTEwNzJl
ZWMwODg3MGM5YTM0Y2E1NzRhYTc3NDg1Mi4uNGNmMWFhNTY5YWQ1NzYxYmE4MDEzM2E4Zjk2YjBi
NjdjY2Q1ODFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE0LTEwLTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgdmlydHVhbCBm
dW5jdGlvbnMgaW4gY3NzLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM4MjMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4K
KworICAgICAgICBDbGVhbiB1cCB2aXJ0dWFsIGZ1bmN0aW9ucyBpbiBjc3MvIGJ5OgorICAgICAg
ICAtIE1ha2luZyB2aXJ0dWFsIGZ1bmN0aW9ucyBmaW5hbCB3aGVuIHBvc3NpYmxlCisgICAgICAg
IC0gTWFraW5nIGNsYXNzZXMgZmluYWwgd2hlbiBwb3NzaWJsZQorICAgICAgICAtIFVzaW5nICdv
dmVycmlkZScgd2hlbiBhcHByb3ByaWF0ZQorICAgICAgICAtIEV4cGxpY2l0bHkgbWFya2luZyBm
dW5jdGlvbnMgLyBkZXN0cnVjdG9ycyBhcyB2aXJ0dWFsIHdoZW4gdGhleSBhcmUKKyAgICAgICAg
ICBpbmhlcmVudGx5IHZpcnR1YWwKKyAgICAgICAgLSBNYWtpbmcgaXNYWFgoKSB2aXJ0dWFsIGZ1
bmN0aW9ucyBwcml2YXRlIG9uIFhYWCBjbGFzc2VzIHRvIGF2b2lkCisgICAgICAgICAgdW5uZWNl
c3NhcnkgdHlwZSBjaGVja3MKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGNzcy9DU1NCYXNp
Y1NoYXBlcy5oOgorICAgICAgICAqIGNzcy9DU1NDaGFyc2V0UnVsZS5oOgorICAgICAgICAqIGNz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NTQ3Jvc3Nm
YWRlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oOgorICAgICAg
ICAqIGNzcy9DU1NGb250RmFjZUxvYWRFdmVudC5oOgorICAgICAgICAqIGNzcy9DU1NGb250RmFj
ZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuaDoKKyAgICAgICAgKiBj
c3MvQ1NTSW1wb3J0UnVsZS5oOgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTUGFnZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTUnVsZUxpc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0YXRpY0NTU1J1bGVMaXN0OjpyZWYpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxpc3Q6OnN0eWxlU2hlZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxpc3Q6Omxlbmd0aCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTdGF0aWNDU1NSdWxlTGlzdDo6aXRlbSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMaXZlQ1NTUnVsZUxpc3Q6OnJlZik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMaXZlQ1NTUnVsZUxpc3Q6OmRlcmVmKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxpdmVDU1NSdWxlTGlzdDo6bGVuZ3RoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxp
dmVDU1NSdWxlTGlzdDo6aXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaXZlQ1NT
UnVsZUxpc3Q6OnN0eWxlU2hlZXQpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1
bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3VwcG9ydHNSdWxlLmg6CisgICAgICAgICogY3NzL0NT
U1Vua25vd25SdWxlLmg6CisgICAgICAgICogY3NzL0ZvbnRMb2FkZXIuaDoKKyAgICAgICAgKiBj
c3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OnBhcmVudEVsZW1lbnQpOgorICAgICAgICAq
IGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmg6CisKIDIwMTQtMTAtMzAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgcmVmZXJlbmNlcyBpbiBjYWxjdWxhdGVNaW5pbXVt
UGFnZUhlaWdodCgpIGZvciBub24tb3B0aW9uYWwgYXJndW1lbnRzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDM3ZGJhZGFjOGFlNTUxYTlkZTAxZTdhZGQwZDYxZmViMWJmNzMzZGMuLmQ5MWMyNzYw
MzhjMDIzMDMxYTA5MTY0ZTZjM2QyOTVkYmViMTc3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xMDYxLDYgKzEwNjEsOCBAQCBfX1pON1dlYkNvcmUyNnN0b3BPYnNlcnZpbmdDb29raWVDaGFu
Z2VzRXYKIF9fWk43V2ViQ29yZTI3QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlN2NvbXBhcmVF
UktOU18yM0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRVMzXwogX19aTjdXZWJDb3JlMjdBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZUJhc2U3bnVsbGlmeUV2CiBfX1pON1dlYkNvcmUyN0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZUMyRXYKK19fWk43V2ViQ29yZTI3Q1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uM3JlZkV2CitfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjVk
ZXJlZkV2CiBfX1pON1dlYkNvcmUyN0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbkMxRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzROb2RlRUVFYlJLTlMxXzZTdHJpbmdFCiBfX1pON1dlYkNvcmUyN0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jazE0c2V0T3JpZW50YXRpb25FTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfMjFEZXZpY2VPcmllbnRhdGlvbkRhdGFFRUUKIF9fWk43V2ViQ29yZTI3RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrQzFFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Jhc2ljU2hhcGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuaAppbmRl
eCBmMDE1ZGRmZmZiOWFhZjhlNWM3N2EzZDMwMDlhN2U0MDUzYTVlZTcxLi4wY2ViMmY1MWM4ZDEz
YmFkOTI4ZGE2M2YxODA1MjhjNzMxZDk2OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQmFzaWNTaGFwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFw
ZXMuaApAQCAtNjMsNyArNjMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2
ZVZhbHVlPiBtX3JlZmVyZW5jZUJveDsKIH07CiAKLWNsYXNzIENTU0Jhc2ljU2hhcGVJbnNldCA6
IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKK2NsYXNzIENTU0Jhc2ljU2hhcGVJbnNldCBmaW5hbCA6
IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NCYXNpY1NoYXBlSW5zZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NCYXNp
Y1NoYXBlSW5zZXQpOyB9CiAKQEAgLTExMCwxMyArMTEwLDE0IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEJvdHRvbVJpZ2h0UmFkaXVzKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1
cykgeyBtX2JvdHRvbVJpZ2h0UmFkaXVzID0gcmFkaXVzOyB9CiAgICAgdm9pZCBzZXRCb3R0b21M
ZWZ0UmFkaXVzKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1cykgeyBtX2JvdHRv
bUxlZnRSYWRpdXMgPSByYWRpdXM7IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ1NTQmFzaWNTaGFwZUluc2V0VHlwZTsgfQogICAgIHZpcnR1YWwg
U3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBD
U1NCYXNpY1NoYXBlSW5zZXQoKSB7IH0KIAorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ1NTQmFzaWNTaGFwZUluc2V0VHlwZTsgfQorCiAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBtX3RvcDsKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IG1fcmlnaHQ7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2JvdHRvbTsKQEAgLTEy
OCwxMSArMTI5LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBt
X2JvdHRvbUxlZnRSYWRpdXM7CiB9OwogCi1jbGFzcyBDU1NCYXNpY1NoYXBlQ2lyY2xlIDogcHVi
bGljIENTU0Jhc2ljU2hhcGUgeworY2xhc3MgQ1NTQmFzaWNTaGFwZUNpcmNsZSBmaW5hbCA6IHB1
YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NC
YXNpY1NoYXBlQ2lyY2xlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQmFzaWNT
aGFwZUNpcmNsZSk7IH0KIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ1NTQmFzaWNTaGFwZUNpcmNsZVR5cGU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBj
c3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBD
U1NCYXNpY1NoYXBlJikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTE0NywxMiArMTQ3LDE0IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTQmFzaWNTaGFwZUNpcmNsZSgpIHsgfQogCisgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNpY1NoYXBlQ2ly
Y2xlVHlwZTsgfQorCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2NlbnRlclg7CiAg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtX2NlbnRlclk7CiAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBtX3JhZGl1czsKIH07CiAKLWNsYXNzIENTU0Jhc2ljU2hhcGVFbGxpcHNl
IDogcHVibGljIENTU0Jhc2ljU2hhcGUgeworY2xhc3MgQ1NTQmFzaWNTaGFwZUVsbGlwc2UgZmlu
YWwgOiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTQmFzaWNTaGFwZUVsbGlwc2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
U1NCYXNpY1NoYXBlRWxsaXBzZSk7IH0KIApAQCAtMTY2LDIwICsxNjgsMjEgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UmFkaXVzWChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNY
KSB7IG1fcmFkaXVzWCA9IHJhZGl1c1g7IH0KICAgICB2b2lkIHNldFJhZGl1c1koUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzWSkgeyBtX3JhZGl1c1kgPSByYWRpdXNZOyB9CiAK
LSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU0Jhc2lj
U2hhcGVFbGxpcHNlVHlwZTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBj
b25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDU1NCYXNpY1NoYXBlRWxsaXBzZSgpIHsg
fQogCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NC
YXNpY1NoYXBlRWxsaXBzZVR5cGU7IH0KKwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
bV9jZW50ZXJYOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9jZW50ZXJZOwogICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9yYWRpdXNYOwogICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbV9yYWRpdXNZOwogfTsKIAotY2xhc3MgQ1NTQmFzaWNTaGFwZVBvbHlnb24g
OiBwdWJsaWMgQ1NTQmFzaWNTaGFwZSB7CitjbGFzcyBDU1NCYXNpY1NoYXBlUG9seWdvbiBmaW5h
bCA6IHB1YmxpYyBDU1NCYXNpY1NoYXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NCYXNpY1NoYXBlUG9seWdvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0Jhc2ljU2hhcGVQb2x5Z29uKTsgfQogCkBAIC0xOTYsNyArMTk5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0V2luZFJ1bGUoV2luZFJ1bGUgdykgeyBtX3dpbmRSdWxlID0gdzsgfQogICAgIFdp
bmRSdWxlIHdpbmRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aW5kUnVsZTsgfQogCi0gICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNpY1NoYXBlUG9s
eWdvblR5cGU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJikgY29uc3Qgb3Zl
cnJpZGU7CiAKQEAgLTIwNiw2ICsyMDgsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU0Jhc2ljU2hh
cGVQb2x5Z29uVHlwZTsgfQorCiAgICAgVmVjdG9yPFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4+
IG1fdmFsdWVzOwogICAgIFdpbmRSdWxlIG1fd2luZFJ1bGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q2hhcnNldFJ1bGUuaAppbmRleCBhMmM1ZDk5MmViMzdkMjdkZjBiMWYwNTU3Y2Y5MDNmNjYwMTQw
NDJmLi5kZTFhYzNjZTJhMmIwZWJiMWM0OTQ5N2VjZjgyOWUwMWFmNzEzZTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaApAQCAtMzUsNyArMzUsNiBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5DU1NDaGFyc2V0UnVsZSgpIHsgfQogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBl
IHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDSEFSU0VUX1JVTEU7IH0KICAgICB2aXJ0
dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJl
YXR0YWNoKFN0eWxlUnVsZUJhc2UmKSBvdmVycmlkZSB7IH0KIApAQCAtNDMsNiArNDIsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBFeGNl
cHRpb25Db2RlJikgeyBtX2VuY29kaW5nID0gZW5jb2Rpbmc7IH0KIAogcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENIQVJT
RVRfUlVMRTsgfQorCiAgICAgQ1NTQ2hhcnNldFJ1bGUoQ1NTU3R5bGVTaGVldCogcGFyZW50LCBj
b25zdCBTdHJpbmcmIGVuY29kaW5nKTsKIAogICAgIFN0cmluZyBtX2VuY29kaW5nOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IDM0
YWYyYTUwZmQ4NjEwMWFkN2ZjYzQyM2QwMGQ3ODA3YzA4ZTI3YzAuLmFlNjk2YjRhMmZhYzE0MGRi
MTQ1MzA4YjgxYTQ2ZWViNGNjMGFlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fYWxsb3dWaXNpdGVkU3R5bGU7CiB9OwogCi1jbGFzcyBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24gOiBwdWJsaWMgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7CitjbGFzcyBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24gZmluYWwgOiBwdWJsaWMgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBib29sIGFsbG93VmlzaXRlZFN0eWxl
ID0gZmFsc2UsIGNvbnN0IFN0cmluZyYgcHNldWRvRWxlbWVudE5hbWUgPSBTdHJpbmcoKSkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCmluZGV4IDMzMDU0MGI4YTM0
NTkyYzM4ZTBmNTllOWIzNDI4MGM1NTA1MzcxNWQuLjUwNjdlYmM5ZDE2ZDBiY2QwYTc3ZjU3OTdm
MDY4NDNiZTBiZDZmYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCkBA
IC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIGNsYXNzIENyb3Nz
ZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSA6IHB1YmxpYyBDYWNoZWRJbWFnZUNsaWVudCB7Cisg
ICAgY2xhc3MgQ3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IGZpbmFsIDogcHVibGljIENh
Y2hlZEltYWdlQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIENyb3NzZmFkZVN1YmltYWdl
T2JzZXJ2ZXJQcm94eShDU1NDcm9zc2ZhZGVWYWx1ZSogb3duZXJWYWx1ZSkKICAgICAgICAgICAg
IDogbV9vd25lclZhbHVlKG93bmVyVmFsdWUpCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIH5Dcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJv
eHkoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSos
IGNvbnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbWFn
ZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIG92ZXJyaWRl
OwogICAgICAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9
CiAgICAgcHJpdmF0ZToKICAgICAgICAgQ1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oCmluZGV4IDNjMDY4ZDU4Y2Nh
MDNhZTJiNThiZmM0ZDhiM2I2ODBkNWM2Y2E3NmIuLmJkMDUyNGE4YmRjM2U0NWQyM2I5YTQ3ZmJi
MTk0NDNkOGVhZmE1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJ
bWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
aApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBjbGFzcyBG
aWx0ZXJTdWJpbWFnZU9ic2VydmVyUHJveHkgOiBwdWJsaWMgQ2FjaGVkSW1hZ2VDbGllbnQgewor
ICAgIGNsYXNzIEZpbHRlclN1YmltYWdlT2JzZXJ2ZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRJbWFnZUNsaWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBGaWx0ZXJTdWJpbWFnZU9ic2Vy
dmVyUHJveHkoQ1NTRmlsdGVySW1hZ2VWYWx1ZSogb3duZXJWYWx1ZSkKICAgICAgICAgICAgIDog
bV9vd25lclZhbHVlKG93bmVyVmFsdWUpCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIH5GaWx0ZXJTdWJpbWFnZU9ic2VydmVyUHJveHkoKSB7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0
IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5n
ZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KiA9IG51bGxwdHIpIG92ZXJyaWRlOwogICAg
ICAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CiAgICAg
cHJpdmF0ZToKICAgICAgICAgQ1NTRmlsdGVySW1hZ2VWYWx1ZSogbV9vd25lclZhbHVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQuaAppbmRleCBjMGYyOWMwMWY3MDZj
YjQ5YzVlZWM0NTg0ZGE2MTNlN2U4MDYyMDE4Li42ZjY5ODExYzk5NTUxOTk4Mjk0NDI5NTVlZjIx
NjRiN2U4OTZiYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VM
b2FkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VMb2FkRXZlbnQu
aApAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgQ1NTRm9udEZhY2VMb2FkRXZlbnRJbml0IDogcHVi
bGljIEV2ZW50SW5pdCB7CiAgICAgUmVmUHRyPERPTUVycm9yPiBlcnJvcjsKIH07CiAKLWNsYXNz
IENTU0ZvbnRGYWNlTG9hZEV2ZW50IDogcHVibGljIEV2ZW50IHsKK2NsYXNzIENTU0ZvbnRGYWNl
TG9hZEV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDU1NGb250RmFjZUxvYWRFdmVudD4gY3JlYXRlKCkKICAgICB7CkBAIC03NSw3ICs3
NSw3IEBAIHB1YmxpYzoKICAgICBDU1NGb250RmFjZVJ1bGUqIGZvbnRmYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb250ZmFjZS5nZXQoKTsgfQogICAgIERPTUVycm9yKiBlcnJvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXJyb3IuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZl
bnRJbnRlcmZhY2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ1NTRm9udEZhY2VMb2Fk
RXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaAppbmRleCA5ZmZhNDA0ZTlm
YzI1M2M2ZWE5YTAzYzIxZDA5NDgyNThmYzdmMTRkLi5iNTVhYjRmOWI2YjMxZTUxYjhhODJiZmFh
MGRiZDRjMTBkZWRmNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5oCkBAIC0z
Niw3ICszNiw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNTU0ZvbnRGYWNlUnVsZSgpOwog
Ci0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBGT05UX0ZBQ0VfUlVMRTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpIG92ZXJy
aWRlOwogCkBAIC00NSw2ICs0NCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ1NTRm9udEZh
Y2VSdWxlKFN0eWxlUnVsZUZvbnRGYWNlJiwgQ1NTU3R5bGVTaGVldCogcGFyZW50KTsKIAorICAg
IHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRk9O
VF9GQUNFX1JVTEU7IH0KKwogICAgIFJlZjxTdHlsZVJ1bGVGb250RmFjZT4gbV9mb250RmFjZVJ1
bGU7CiAgICAgUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24+IG1fcHJvcGVydGll
c0NTU09NV3JhcHBlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmlu
ZGV4IDVhZDM4YzE1YWM0NTQzZWNkNzNhODBjODgxNGJlZjk2NWFjMzk0YmYuLjRlM2Q0MWU2MTNh
OWRjNWE0MmQxMGQ0ZTRhYmY0ODViNjJiM2JlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNvdXJjZS5oCkBAIC00NCw5ICs0NCw5IEBAIGNsYXNzIFNWR0ZvbnRFbGVtZW50OwogY2xh
c3MgU1ZHRm9udEZhY2VFbGVtZW50OwogI2VuZGlmCiAKLWNsYXNzIENTU0ZvbnRGYWNlU291cmNl
IDogcHVibGljIENhY2hlZEZvbnRDbGllbnQgeworY2xhc3MgQ1NTRm9udEZhY2VTb3VyY2UgZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkRm9udENsaWVudCB7CiBwdWJsaWM6Ci0gICAgQ1NTRm9udEZhY2VT
b3VyY2UoY29uc3QgU3RyaW5nJiwgQ2FjaGVkRm9udCogPSAwKTsKKyAgICBDU1NGb250RmFjZVNv
dXJjZShjb25zdCBTdHJpbmcmLCBDYWNoZWRGb250KiA9IG51bGxwdHIpOwogICAgIHZpcnR1YWwg
fkNTU0ZvbnRGYWNlU291cmNlKCk7CiAKICAgICBib29sIGlzTG9hZGVkKCkgY29uc3Q7CkBAIC01
Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Rm9udEZhY2UoQ1NTRm9udEZhY2Uq
IGZhY2UpIHsgbV9mYWNlID0gZmFjZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGZvbnRMb2FkZWQo
Q2FjaGVkRm9udCopOworICAgIHZpcnR1YWwgdm9pZCBmb250TG9hZGVkKENhY2hlZEZvbnQqKSBv
dmVycmlkZTsKIAogICAgIFBhc3NSZWZQdHI8U2ltcGxlRm9udERhdGE+IGdldEZvbnREYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJ
dGFsaWMsIENTU0ZvbnRTZWxlY3RvciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaApp
bmRleCA3ZDBkZTI3MGE3MzdmM2RlODE1YzllNTRiMzU2MWEyN2Y1OTcxZTQ1Li41OWEyZTljMGZj
NjM4NTE4ODUxZWY0YjllNWJiYmJkZTMyYTBhMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1wb3J0UnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmgKQEAgLTM3LDcgKzM3LDYgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgfkNTU0lt
cG9ydFJ1bGUoKTsKIAotICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gSU1QT1JUX1JVTEU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJh
c2UmKSBvdmVycmlkZTsKIApAQCAtNDgsNiArNDcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IENTU0ltcG9ydFJ1bGUoU3R5bGVSdWxlSW1wb3J0JiwgQ1NTU3R5bGVTaGVldCopOwogCisgICAg
dmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBJTVBP
UlRfUlVMRTsgfQorCiAgICAgUmVmPFN0eWxlUnVsZUltcG9ydD4gbV9pbXBvcnRSdWxlOwogICAg
IG11dGFibGUgUmVmUHRyPE1lZGlhTGlzdD4gbV9tZWRpYUNTU09NV3JhcHBlcjsKICAgICBtdXRh
YmxlIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTWVkaWFSdWxlLmgKaW5kZXggODY3MjE1MzZlNjJkMmM4MmEzNzRkODNiNjM3NGRh
Y2RmMDcxMmEyZi4uOWQwOTQzZmEyOGEwMmMwMzQyZDYyYzJhZGEyNDYzZDQ5MDJmYjgxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaApAQCAtMzYsNyArMzYsNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIH5DU1NNZWRpYVJ1bGUoKTsKIAotICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTUVESUFfUlVMRTsgfQogICAgIHZpcnR1YWwg
dm9pZCByZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBTdHJp
bmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC00NSw2ICs0NCw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgQ1NTTWVkaWFSdWxlKFN0eWxlUnVsZU1lZGlhJiwgQ1NTU3R5bGVTaGVl
dCopOwogCisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBNRURJQV9SVUxFOyB9CisKICAgICBNZWRpYVF1ZXJ5U2V0KiBtZWRpYVF1ZXJpZXMo
KSBjb25zdDsKICAgICAKICAgICBtdXRhYmxlIFJlZlB0cjxNZWRpYUxpc3Q+IG1fbWVkaWFDU1NP
TVdyYXBwZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCmluZGV4IDVkZjlhYWY5ZjE1OWFkNmJl
YTJlMGNhMDE2MmNhN2UyMTA5YjVlMWMuLjRhYmE2ZGFiOGQ3NTg5MDQzN2MzMGEwZjA5YjE5NjZh
M2ExYWRmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCkBAIC0zNyw3ICszNyw2IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgfkNTU1BhZ2VSdWxlKCk7CiAKLSAgICB2aXJ0dWFsIENTU1J1
bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBBR0VfUlVMRTsgfQogICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSYpIG92ZXJyaWRlOwogCkBAIC00OCw3ICs0Nyw5IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDU1NQYWdlUnVsZShTdHlsZVJ1bGVQYWdlJiwgQ1NT
U3R5bGVTaGVldCopOwotICAgIAorCisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBQQUdFX1JVTEU7IH0KKwogICAgIFJlZjxTdHlsZVJ1bGVQ
YWdlPiBtX3BhZ2VSdWxlOwogICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVj
bGFyYXRpb24+IG1fcHJvcGVydGllc0NTU09NV3JhcHBlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxl
TGlzdC5oCmluZGV4IDEzOWY5Yzc4YTEzNjg0MTE1NzQyZDI2NmQwMTY0MjcyMmRkYWRhYjkuLjI3
MTQ0Y2Y5ZmUxYjRhYjE5NDcwZGMyOTg0YzJiYWJkNjkzOWRhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5oCkBAIC01MCwyMyArNTAsMjMgQEAgcHJvdGVjdGVkOgogICAgIENTU1J1bGVMaXN0
KCk7CiB9OwogCi1jbGFzcyBTdGF0aWNDU1NSdWxlTGlzdCA6IHB1YmxpYyBDU1NSdWxlTGlzdCB7
CitjbGFzcyBTdGF0aWNDU1NSdWxlTGlzdCBmaW5hbCA6IHB1YmxpYyBDU1NSdWxlTGlzdCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RhdGljQ1NTUnVsZUxpc3Q+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGF0aWNDU1NSdWxlTGlzdCgpKTsgfQogCi0gICAgdmly
dHVhbCB2b2lkIHJlZigpIHsgKyttX3JlZkNvdW50OyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVm
KCk7CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlIHsgKyttX3JlZkNvdW50OyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7CiAKICAgICBWZWN0b3I8UmVmUHRyPENT
U1J1bGU+PiYgcnVsZXMoKSB7IHJldHVybiBtX3J1bGVzOyB9CiAgICAgCi0gICAgdmlydHVhbCBD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1
YWwgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KIAogcHJpdmF0ZTogICAgCiAgICAgU3RhdGljQ1NTUnVsZUxpc3QoKTsKICAgICB+
U3RhdGljQ1NTUnVsZUxpc3QoKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9ydWxlcy5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIENTU1J1bGUqIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbV9ydWxlcy5zaXplKCkgPyBt
X3J1bGVzW2luZGV4XS5nZXQoKSA6IDA7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVsZXMuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBD
U1NSdWxlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpbmRl
eCA8IG1fcnVsZXMuc2l6ZSgpID8gbV9ydWxlc1tpbmRleF0uZ2V0KCkgOiBudWxscHRyOyB9CiAK
ICAgICBWZWN0b3I8UmVmUHRyPENTU1J1bGU+PiBtX3J1bGVzOwogICAgIHVuc2lnbmVkIG1fcmVm
Q291bnQ7CkBAIC03NCwxNyArNzQsMTcgQEAgcHJpdmF0ZToKIAogLy8gVGhlIHJ1bGUgb3ducyB0
aGUgbGl2ZSBsaXN0LgogdGVtcGxhdGUgPGNsYXNzIFJ1bGU+Ci1jbGFzcyBMaXZlQ1NTUnVsZUxp
c3QgOiBwdWJsaWMgQ1NTUnVsZUxpc3QgeworY2xhc3MgTGl2ZUNTU1J1bGVMaXN0IGZpbmFsIDog
cHVibGljIENTU1J1bGVMaXN0IHsKIHB1YmxpYzoKICAgICBMaXZlQ1NTUnVsZUxpc3QoUnVsZSog
cnVsZSkgOiBtX3J1bGUocnVsZSkgeyB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHJlZigpIHsg
bV9ydWxlLT5yZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIHsgbV9ydWxlLT5kZXJl
ZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlIHsgbV9ydWxlLT5yZWYoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgbV9ydWxlLT5kZXJlZigpOyB9
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVy
biBtX3J1bGUtPmxlbmd0aCgpOyB9Ci0gICAgdmlydHVhbCBDU1NSdWxlKiBpdGVtKHVuc2lnbmVk
IGluZGV4KSBjb25zdCAgeyByZXR1cm4gbV9ydWxlLT5pdGVtKGluZGV4KTsgfQotICAgIHZpcnR1
YWwgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVsZS0+cGFy
ZW50U3R5bGVTaGVldCgpOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3J1bGUtPmxlbmd0aCgpOyB9CisgICAgdmlydHVhbCBDU1NSdWxl
KiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3J1bGUtPml0
ZW0oaW5kZXgpOyB9CisgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ydWxlLT5wYXJlbnRTdHlsZVNoZWV0KCk7IH0KICAgICAK
ICAgICBSdWxlKiBtX3J1bGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oCmluZGV4IGI4
ZjI0Y2VlZjhiYjNlODY1ZDAxMDQ1ZjFhNmVmODY0M2FjMzc4NTUuLmI0N2VkMTczZjM5YTQ1Nzg1
MmY0MmZkZWUwZmViNzA2MGI3ZWZkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKQEAg
LTM2LDcgKzM2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q1NTU3R5bGVSdWxlKCk7CiAK
LSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIFNUWUxFX1JV
TEU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmKSBvdmVycmlkZTsKIApAQCAtNTEs
NiArNTAsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENTU1N0eWxlUnVsZShTdHlsZVJ1bGUm
LCBDU1NTdHlsZVNoZWV0Kik7CiAKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNUWUxFX1JVTEU7IH0KKwogICAgIFN0cmluZyBnZW5lcmF0
ZVNlbGVjdG9yVGV4dCgpIGNvbnN0OwogCiAgICAgUmVmPFN0eWxlUnVsZT4gbV9zdHlsZVJ1bGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmgKaW5kZXggMmY4NTYzMDUxNWFkZTMxZTc5
YjQ2ZGE2YWE5MzRmMTA5YWIzODNlOC4uNjQ4MDExOWNkZDhkODA1NWM2MmIwNzBlNDM4NTU2MTlm
MDNkMjEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuaApAQCAtNDUsMTMgKzQ1
LDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNTU1N1cHBvcnRzUnVsZSgpIHsgfQogCi0g
ICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBT
VVBQT1JUU19SVUxFOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgU3RyaW5nIGNvbmRpdGlvblRleHQoKSBjb25zdDsKIAogcHJpdmF0ZToKICAg
ICBDU1NTdXBwb3J0c1J1bGUoU3R5bGVSdWxlU3VwcG9ydHMmLCBDU1NTdHlsZVNoZWV0Kik7CisK
KyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IFNVUFBPUlRTX1JVTEU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Vua25vd25SdWxlLmgKaW5kZXggOTk1Nzk0YTBhZjg3MzNlMDc3NTE3OWU3ZGVhYjIx
YWMwNDM4MmQ1Yi4uYjhiNmVmOTg3OTNhMGI2NzM3ZjczYjAxNWMzY2IyNDg2MWY4NjJmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmgKQEAgLTI4LDEyICsyOCwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1Vua25vd25SdWxlIGZpbmFsIDogcHVibGljIENTU1J1
bGUgewogcHVibGljOgotICAgIENTU1Vua25vd25SdWxlKCkgOiBDU1NSdWxlKDApIHsgfQorICAg
IENTU1Vua25vd25SdWxlKCkKKyAgICAgICAgOiBDU1NSdWxlKG51bGxwdHIpCisgICAgeworICAg
IH0KKwogICAgIHZpcnR1YWwgfkNTU1Vua25vd25SdWxlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIENT
U1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFVOS05PV05fUlVMRTsg
fQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBT
dHJpbmcoKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikgb3Zl
cnJpZGUgeyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBVTktOT1dOX1JVTEU7IH0KIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCmluZGV4IDhkNjFiMjQzNDRlMDlkYjkz
MTEyZTA5NDNjZjQwYzdhODcxNjY2ZjEuLjAxOWZkMDNjZDcyMWU1YTk2Nzk0ODQ5ODE3OWE2MDhj
ZTVkYzI4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFz
cyBGb250OwogY2xhc3MgTG9hZEZvbnRDYWxsYmFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiAKLWNsYXNzIEZvbnRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250TG9hZGVy
PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0IHsKK2NsYXNzIEZv
bnRMb2FkZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250TG9hZGVyPiwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGb250TG9hZGVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHsK
QEAgLTcwLDggKzcwLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBsb2FkaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9udW1Mb2FkaW5nRnJvbUNTUyA+IDAgfHwgbV9udW1Mb2FkaW5nRnJvbUpTID4gMDsg
fQogCi0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8Rm9udExvYWRlcj46OnJlZjsKICAgICB1c2luZyBS
ZWZDb3VudGVkPEZvbnRMb2FkZXI+OjpkZXJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAppbmRleCAwZDU4M2E1ODEzODgyMzQz
NGIwYzdjNjhiYWY1NThkMDlkMDFlYjU5Li5iODYzMDRkYWM5MzQ1NDZlMzkzMWE2MmRlOWQ5NjA0
YmM2NThhMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFByb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbiA6IHB1YmxpYyBDU1NTdHlsZURlY2xhcmF0aW9uIHsKIHB1YmxpYzoK
ICAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGll
cyogcHJvcGVydHlTZXQpIDogbV9wcm9wZXJ0eVNldChwcm9wZXJ0eVNldCkgeyB9CiAgICAgCi0g
ICAgdmlydHVhbCBTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQYXJlbnRFbGVtZW50KCkg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIFN0eWxlU2hlZXRDb250ZW50cyogY29udGV4
dFN0eWxlU2hlZXQoKSBjb25zdDsKICAgICAKQEAgLTUyLDIzICs1MiwyMyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfTsKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
U3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1
ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZ2V0UHJvcGVydHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3RyaW5n
JiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5SW1w
bGljaXQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgY29uc3QgU3RyaW5nJiBwcmlvcml0eSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgU3RyaW5nIHJlbW92ZVByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBTdHJpbmcgY3Nz
VGV4dCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDc3NUZXh0KGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwoQ1NT
UHJvcGVydHlJRCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5SW50ZXJu
YWwoQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0
eU5hbWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFs
dWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1
YWwgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5k
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNQcm9wZXJ0eUltcGxpY2l0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVy
cmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgcHJpb3JpdHks
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFN0cmluZyByZW1v
dmVQcm9wZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlk
ZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVydHlJRCkgb3ZlcnJpZGUg
ZmluYWw7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1By
b3BlcnR5SUQpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eUlu
dGVybmFsKENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgCi0gICAgdmlydHVhbCBQYXNz
UmVmPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IGNvcHlQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBQYXNzUmVmPE11dGFibGVTdHlsZVByb3BlcnRpZXM+IGNvcHlQcm9w
ZXJ0aWVzKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBDU1NWYWx1ZSogY2xvbmVBbmRD
YWNoZUZvckNTU09NKENTU1ZhbHVlKik7CiAgICAgCkBAIC04MSw3ICs4MSw3IEBAIHByb3RlY3Rl
ZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaE1hcDxDU1NWYWx1ZSosIFJlZlB0cjxDU1NWYWx1
ZT4+PiBtX2Nzc29tQ1NTVmFsdWVDbG9uZXM7CiB9OwogCi1jbGFzcyBTdHlsZVJ1bGVDU1NTdHls
ZURlY2xhcmF0aW9uIDogcHVibGljIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbgorY2xh
c3MgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbiBmaW5hbCA6IHB1YmxpYyBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb24KIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGUoTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYgcHJvcGVydHlTZXQsIENTU1J1bGUmIHBhcmVudFJ1bGUpCkBAIC0xMTEsNyArMTExLDcgQEAg
cHJpdmF0ZToKICAgICBDU1NSdWxlKiBtX3BhcmVudFJ1bGU7CiB9OwogCi1jbGFzcyBJbmxpbmVD
U1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bgorY2xhc3MgSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbiBmaW5hbCA6IHB1YmxpYyBQcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24KIHsKIHB1YmxpYzoKICAgICBJbmxpbmVDU1NTdHlsZURl
Y2xhcmF0aW9uKE11dGFibGVTdHlsZVByb3BlcnRpZXMqIHByb3BlcnR5U2V0LCBTdHlsZWRFbGVt
ZW50KiBwYXJlbnRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1l
UnVsZS5oCmluZGV4IGQzNmViYWY0YTM5OTA1MGU3MzZkNThlNTkwZmJiYjQzYWNiMTM4OGMuLjli
MGVjNDQ1NTU0Mjc5ZmVhN2QxM2VhMGNiMWQ3MzkxMDQ0YmExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgKQEAgLTY5LDcgKzY5LDYgQEAgY2xhc3MgV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlIGZpbmFsIDogcHVibGljIENTU1J1bGUgewogcHVibGljOgogICAg
IHZpcnR1YWwgfldlYktpdENTU0tleWZyYW1lUnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxl
OjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXRUJLSVRfS0VZRlJBTUVfUlVM
RTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2tleWZyYW1lLT5jc3NUZXh0KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5
bGVSdWxlQmFzZSYpIG92ZXJyaWRlOwogCkBAIC04MSw2ICs4MCw4IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKFN0eWxlS2V5ZnJhbWUmLCBXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlKiBwYXJlbnQpOwogCisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXRUJLSVRfS0VZRlJBTUVfUlVMRTsgfQorCiAgICAg
UmVmPFN0eWxlS2V5ZnJhbWU+IG1fa2V5ZnJhbWU7CiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVS
dWxlQ1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oCmluZGV4IGViNzU0ODky
N2Y5MmE5NmE2NjFiMTk4NTkxYjAxNWE5YTkyYzMxYTcuLjViZjQzNDczYTk3Zjg5YjY1MjIxOTI2
NGE1NmE0YTdlZDBiZWQ1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NWaWV3cG9ydFJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmgKQEAgLTQ3LDkgKzQ3LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUodmlld3BvcnRSdWxlLCBzaGVldCkp
OwogICAgIH0KLSAgICB+V2ViS2l0Q1NTVmlld3BvcnRSdWxlKCk7CisgICAgdmlydHVhbCB+V2Vi
S2l0Q1NTVmlld3BvcnRSdWxlKCk7CiAKLSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJVF9WSUVXUE9SVF9SVUxFOyB9CiAgICAgdmly
dHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWF0dGFjaChTdHlsZVJ1bGVCYXNlJikgb3ZlcnJpZGU7CiAKQEAgLTU4LDYgKzU3LDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3Bv
cnQmLCBDU1NTdHlsZVNoZWV0Kik7CiAKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJVF9WSUVXUE9SVF9SVUxFOyB9CisKICAgICBS
ZWY8U3R5bGVSdWxlVmlld3BvcnQ+IG1fdmlld3BvcnRSdWxlOwogICAgIG11dGFibGUgUmVmUHRy
PFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24+IG1fcHJvcGVydGllc0NTU09NV3JhcHBlcjsK
IH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>