<?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>137731</bug_id>
          
          <creation_ts>2014-10-14 20:01:14 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for TransformOperation subclasses</short_desc>
          <delta_ts>2014-10-15 12:15:30 -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>Platform</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>
          <dependson>137056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041770</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 20:01:14 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for TransformOperation subclasses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041771</commentid>
    <comment_count>1</comment_count>
      <attachid>239842</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 20:09:49 -0700</bug_when>
    <thetext>Created attachment 239842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041785</commentid>
    <comment_count>2</comment_count>
      <attachid>239847</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 21:22:17 -0700</bug_when>
    <thetext>Created attachment 239847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041864</commentid>
    <comment_count>3</comment_count>
      <attachid>239847</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-15 09:21:35 -0700</bug_when>
    <thetext>Comment on attachment 239847
Patch

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

r=me as long as you fix the coordinated graphics build

&gt; Source/WebCore/platform/graphics/transforms/Matrix3DTransformOperation.cpp:37
&gt; -    if (!isSameType(o))
&gt; +    if (!isSameType(other))
&gt;          return false;
&gt; -    const Matrix3DTransformOperation&amp; m = toMatrix3DTransformOperation(o);
&gt; -    return m_matrix == m.m_matrix;
&gt; +    return m_matrix == downcast&lt;Matrix3DTransformOperation&gt;(other).m_matrix;

Almost seems like we’d want to write this with &amp;&amp; on a single line.a

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:187
&gt; -            encoder &lt;&lt; toScaleTransformOperation(operation)-&gt;x();
&gt; -            encoder &lt;&lt; toScaleTransformOperation(operation)-&gt;y();
&gt; -            encoder &lt;&lt; toScaleTransformOperation(operation)-&gt;z();
&gt; +            const auto&amp; scaleOperation = downcast&lt;ScaleTransformOperation&gt;(*operation);
&gt; +            encoder &lt;&lt; scaleOperation.x();
&gt; +            encoder &lt;&lt; scaleOperation.y();
&gt; +            encoder &lt;&lt; scaleOperation.z();
&gt;              break;

I wouldn’t expect this to compile unless you add braces to scope the local variable so that jumping to later cases doesn’t jump across it. I am guessing that’s why EFL failed to build.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:193
&gt; +            const auto&amp; translateOperation = downcast&lt;TranslateTransformOperation&gt;(*operation);

Ditto.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:202
&gt; +            const auto&amp; rotateOperation = downcast&lt;RotateTransformOperation&gt;(*operation);

Ditto.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:211
&gt; +            const auto&amp; skewOperation = downcast&lt;SkewTransformOperation&gt;(*operation);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041886</commentid>
    <comment_count>4</comment_count>
      <attachid>239876</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-15 10:21:34 -0700</bug_when>
    <thetext>Created attachment 239876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041908</commentid>
    <comment_count>5</comment_count>
      <attachid>239876</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-15 11:38:09 -0700</bug_when>
    <thetext>Comment on attachment 239876
Patch

All green \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041917</commentid>
    <comment_count>6</comment_count>
      <attachid>239876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 12:15:22 -0700</bug_when>
    <thetext>Comment on attachment 239876
Patch

Clearing flags on attachment: 239876

Committed r174739: &lt;http://trac.webkit.org/changeset/174739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041918</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 12:15:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239842</attachid>
            <date>2014-10-14 20:09:49 -0700</date>
            <delta_ts>2014-10-14 21:22:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137731-20141014200956.patch</filename>
            <type>text/plain</type>
            <size>32289</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc2MDJmZjY0NWQ4MDY4
ZDg0MmNjYzhlNWVhNTNlMmJhYTY4NjI0MC4uNjg1MmI2MmMxY2Y2MTA2ZWNkZDQxZWYwZDllY2Nh
NTcyODA0ZTI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgVHJhbnNmb3JtT3BlcmF0aW9uIHN1YmNsYXNzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+
KCkgZm9yIFRyYW5zZm9ybU9wZXJhdGlvbiBzdWJjbGFzc2VzIGFuZCBjbGVhbgorICAgICAgICB1
cCB0aGUgc3Vycm91bmRpbmcgY29kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2
aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1P
cGVyYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9w
ZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4
M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZl
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZlVHJh
bnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0
aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXZWJDb3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNrZXdUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
U2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6
YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRl
VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisKIDIwMTQtMTAtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE1OTIwOCk6IENyYXNoIHdoZW4g
Y2xpY2tpbmcgc2NydWJiZXIgYWZ0ZXIgbmF2aWdhdGluZyBhd2F5L2JhY2sgdG8gdmlkZW8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCA1NGNiOGRlM2MwYzQ2Njk1NTk4YmM3ZjUyNDcyYjY4OTgyOWZkN2U4Li5mZTk5
OGRjOWU4NWM2MzQ2NDZkOGRmMGQ3NTc2Zjk1ODlhNDZjZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTQtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBUcmFuc2Zvcm1PcGVyYXRpb24g
c3ViY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM3NzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgVHJhbnNmb3JtT3BlcmF0aW9uIHN1YmNs
YXNzZXMgYW5kIGNsZWFuCisgICAgICAgIHVwIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVy
YXRpb25zPjo6ZW5jb2RlKToKKwogMjAxNC0xMC0xNCAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBh
cmtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBGaXggdGhlIHByb2JsZW0gdGhh
dCB0aHJlYWRzIGNyZWF0ZWQgYnkgYSBEaXNwYXRjaFF1ZXVlRWZsIGFyZSBub3QgZGVzdHJveWVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDM5NGIyZWZhNjMwMjk2YmY2Y2NlNTM4MzkwM2NmZmM2MzZmMTQxYmEuLjNkN2Nk
ODUyNzFiMjk4NjQzY2Q2NTVmNjkxODEyYmJlNTgyZGI3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC01MjEsOCArNTIx
LDggQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlVHJhbnNmb3JtT3BlcmF0aW9ucyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXMKICAgICB9CiAKICAgICAvLyBLZXlmcmFtZXMg
YXJlIHZhbGlkLCBjaGVjayBmb3IgYmlnIHJvdGF0aW9ucy4gICAgCi0gICAgZG91YmxlIGxhc3RS
b3RBbmdsZSA9IDAuMDsKLSAgICBkb3VibGUgbWF4Um90QW5nbGUgPSAtMS4wOworICAgIGRvdWJs
ZSBsYXN0Um90YXRpb25BbmdsZSA9IDAuMDsKKyAgICBkb3VibGUgbWF4Um90YXRpb25BbmdsZSA9
IC0xLjA7CiAgICAgICAgIAogICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwub3Bl
cmF0aW9ucygpLnNpemUoKTsgKytqKSB7CiAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSB0eXBlID0gZmlyc3RWYWwub3BlcmF0aW9ucygpLmF0KGopLT50eXBlKCk7CkBA
IC01MzIsMjMgKzUzMiwyMyBAQCBpbnQgR3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1P
cGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpcwogICAgICAgICAgICAg
dHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9ZIHx8CiAgICAgICAgICAgICB0eXBl
ID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1ogfHwKICAgICAgICAgICAgIHR5cGUgPT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfM0QpIHsKLSAgICAgICAgICAgIGxhc3RSb3RBbmds
ZSA9IHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChq
KS5nZXQoKSktPmFuZ2xlKCk7CisgICAgICAgICAgICBsYXN0Um90YXRpb25BbmdsZSA9IGRvd25j
YXN0PFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oKmZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChq
KSkuYW5nbGUoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG1heFJvdEFuZ2xlIDwg
MCkKLSAgICAgICAgICAgICAgICBtYXhSb3RBbmdsZSA9IGZhYnMobGFzdFJvdEFuZ2xlKTsKKyAg
ICAgICAgICAgIGlmIChtYXhSb3RhdGlvbkFuZ2xlIDwgMCkKKyAgICAgICAgICAgICAgICBtYXhS
b3RhdGlvbkFuZ2xlID0gZmFicyhsYXN0Um90YXRpb25BbmdsZSk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEluZGV4ICsgMTsgaSA8IHZhbHVlTGlzdC5z
aXplKCk7ICsraSkgewogICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMm
IHZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGkpOwotICAgICAgICAgICAgICAgIGRvdWJs
ZSByb3RBbmdsZSA9IHZhbC5vcGVyYXRpb25zKCkuaXNFbXB0eSgpID8gMCA6ICh0b1JvdGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbih2YWwub3BlcmF0aW9ucygpLmF0KGopLmdldCgpKS0+YW5nbGUoKSk7
Ci0gICAgICAgICAgICAgICAgZG91YmxlIGRpZmZBbmdsZSA9IGZhYnMocm90QW5nbGUgLSBsYXN0
Um90QW5nbGUpOwotICAgICAgICAgICAgICAgIGlmIChkaWZmQW5nbGUgPiBtYXhSb3RBbmdsZSkK
LSAgICAgICAgICAgICAgICAgICAgbWF4Um90QW5nbGUgPSBkaWZmQW5nbGU7Ci0gICAgICAgICAg
ICAgICAgbGFzdFJvdEFuZ2xlID0gcm90QW5nbGU7CisgICAgICAgICAgICAgICAgZG91YmxlIHJv
dGF0aW9uQW5nbGUgPSB2YWwub3BlcmF0aW9ucygpLmlzRW1wdHkoKSA/IDAgOiBkb3duY2FzdDxS
b3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KCp2YWwub3BlcmF0aW9ucygpLmF0KGopKS5hbmdsZSgp
OworICAgICAgICAgICAgICAgIGRvdWJsZSBkaWZmQW5nbGUgPSBmYWJzKHJvdGF0aW9uQW5nbGUg
LSBsYXN0Um90YXRpb25BbmdsZSk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZBbmdsZSA+IG1h
eFJvdGF0aW9uQW5nbGUpCisgICAgICAgICAgICAgICAgICAgIG1heFJvdGF0aW9uQW5nbGUgPSBk
aWZmQW5nbGU7CisgICAgICAgICAgICAgICAgbGFzdFJvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGhhc0JpZ1Jv
dGF0aW9uID0gbWF4Um90QW5nbGUgPj0gMTgwLjA7CisgICAgaGFzQmlnUm90YXRpb24gPSBtYXhS
b3RhdGlvbkFuZ2xlID49IDE4MC4wOwogICAgIAogICAgIHJldHVybiBmaXJzdEluZGV4OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKaW5kZXggNjA2MTdjMmUwZjcwNzUyMjUzMGMzMTMxMjNjNzRkZGM5NDA2Y2Zi
NS4uYzU0ZmE5ZDIzOTM1YWE4NmRmZTE4NTk2MWM2NGI2NmEyN2Q5YzM4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC0xMjksMjUgKzEyOSwyNSBAQCBzdGF0aWMgdm9pZCBnZXRUcmFuc2Zvcm1GdW5jdGlv
blZhbHVlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNmb3JtT3AsIFRyYQogICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEU6CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRp
b246OlJPVEFURV9YOgogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWToKLSAg
ICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZGVnMnJh
ZCh0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPmFuZ2xlKCkpKSA6IDA7
CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRl
ZzJyYWQoZG93bmNhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLmFu
Z2xlKCkpKSA6IDA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9u
OjpTQ0FMRV9YOgotICAgICAgICB2YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9u
VG9GbG9hdCh0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKS0+eCgpKSA6IDE7
CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRv
d25jYXN0PFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLngoKSkgOiAxOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6U0NBTEVfWToKLSAg
ICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9TY2Fs
ZVRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPnkoKSkgOiAxOworICAgICAgICB2YWx1
ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChkb3duY2FzdDxTY2FsZVRy
YW5zZm9ybU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS55KCkpIDogMTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFX1o6Ci0gICAgICAgIHZhbHVlID0g
dHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHRvU2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb24odHJhbnNmb3JtT3ApLT56KCkpIDogMTsKKyAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1P
cCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZG93bmNhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b24+KCp0cmFuc2Zvcm1PcCkueigpKSA6IDE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJh
bnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWDoKLSAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1P
cCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24o
dHJhbnNmb3JtT3ApLT54KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3Ag
PyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbj4oKnRyYW5zZm9ybU9wKS54KHNpemUpKSA6IDA7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWToKLSAgICAgICAgdmFsdWUgPSB0cmFu
c2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24odHJhbnNmb3JtT3ApLT55KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0gdHJhbnNm
b3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS55KHNpemUpKSA6IDA7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWjoKLSAgICAgICAgdmFsdWUg
PSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zv
cm1PcGVyYXRpb24odHJhbnNmb3JtT3ApLT56KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0g
dHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS56KHNpemUpKSA6IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0
YXRpYyB2b2lkIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9uKiB0cmFuc2Zvcm1PcCwgVHJhCiAgICAgc3dpdGNoICh0cmFuc2Zvcm1UeXBlKSB7CiAgICAg
Y2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFOgogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0
aW9uOjpTQ0FMRV8zRDogewotICAgICAgICBjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiog
c2NhbGVUcmFuc2Zvcm1PcCA9IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24odHJhbnNmb3JtT3Ap
OworICAgICAgICBjb25zdCBhdXRvKiBzY2FsZVRyYW5zZm9ybU9wID0gZG93bmNhc3Q8U2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24+KHRyYW5zZm9ybU9wKTsKICAgICAgICAgdmFsdWUuc2V0WChzY2Fs
ZVRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChzY2FsZVRyYW5zZm9ybU9wLT54
KCkpIDogMSk7CiAgICAgICAgIHZhbHVlLnNldFkoc2NhbGVUcmFuc2Zvcm1PcCA/IG5hcnJvd1By
ZWNpc2lvblRvRmxvYXQoc2NhbGVUcmFuc2Zvcm1PcC0+eSgpKSA6IDEpOwogICAgICAgICB2YWx1
ZS5zZXRaKHNjYWxlVHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNjYWxlVHJh
bnNmb3JtT3AtPnooKSkgOiAxKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgdm9pZCBnZXRU
cmFuc2Zvcm1GdW5jdGlvblZhbHVlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNmb3Jt
T3AsIFRyYQogICAgIH0KICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFOgog
ICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6IHsKLSAgICAgICAgY29u
c3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiB0cmFuc2xhdGVUcmFuc2Zvcm1PcCA9IHRv
VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKTsKKyAgICAgICAgY29uc3Qg
YXV0byogdHJhbnNsYXRlVHJhbnNmb3JtT3AgPSBkb3duY2FzdDxUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24+KHRyYW5zZm9ybU9wKTsKICAgICAgICAgdmFsdWUuc2V0WCh0cmFuc2xhdGVUcmFu
c2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodHJhbnNsYXRlVHJhbnNmb3JtT3AtPngo
c2l6ZSkpIDogMCk7CiAgICAgICAgIHZhbHVlLnNldFkodHJhbnNsYXRlVHJhbnNmb3JtT3AgPyBu
YXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHRyYW5zbGF0ZVRyYW5zZm9ybU9wLT55KHNpemUpKSA6IDAp
OwogICAgICAgICB2YWx1ZS5zZXRaKHRyYW5zbGF0ZVRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lz
aW9uVG9GbG9hdCh0cmFuc2xhdGVUcmFuc2Zvcm1PcC0+eihzaXplKSkgOiAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlU
cmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAyN2Y1MDU4NjIxZWZj
NDU4ODI5YmUwMjU1NGJlMzhlYzRlZDJiOTRkLi45MWIxNTNiOTRmMmVkZjUyMzQ5ZDg2ODkzNTZj
MjJmZmYwNGYyMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJh
dGlvbi5oCkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAKIH07CiAKLVRSQU5TRk9STU9QRVJB
VElPTl9UWVBFX0NBU1RTKElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpJREVOVElUWSk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6SWRlbnRp
dHlUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUoKSA9PSBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRp
b246OklERU5USVRZKQorCiAjZW5kaWYgLy8gSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9N
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA1
MjlmNzUwYjY0NzBmNjc5ZDBhMTczNTY3YjFmZjJmOGRiZWViMWVmLi5mOTY5ZDgxNjgzODAwZjMy
ZDE4OGY4MzIwNjdhODY5NTQyOGViYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMzAsMTIgKzMwLDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotYm9vbCBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShj
b25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0Citib29sIE1hdHJpeDNEVHJhbnNmb3Jt
T3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNv
bnN0CiB7Ci0gICAgaWYgKCFpc1NhbWVUeXBlKG8pKQorICAgIGlmICghaXNTYW1lVHlwZShvdGhl
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCBNYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbiYgbSA9IHRvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24obyk7Ci0gICAgcmV0dXJu
IG1fbWF0cml4ID09IG0ubV9tYXRyaXg7CisgICAgcmV0dXJuIG1fbWF0cml4ID09IGRvd25jYXN0
PE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uPihvdGhlcikubV9tYXRyaXg7CiB9CiAKIFBhc3NS
ZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6Ymxl
bmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wg
YmxlbmRUb0lkZW50aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbi5oCmluZGV4IDIxZDM5ZmU2MjM0MmY5MmJiYWYzNmU3M2FlOGU3ZDIyNDgxMGJkNjMuLjMx
MmJkM2RmN2IzZmNhMThmODdkODRmYmQwMWM4OGJjNzk4NDE5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1P
cGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0
ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX21hdHJpeDsKIH07CiAKLVRSQU5TRk9STU9Q
RVJBVElPTl9UWVBFX0NBU1RTKE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6Ok1h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gV2ViQ29yZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uOjpNQVRSSVhfM0QpCisKICNlbmRpZiAvLyBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlv
bl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXgg
YjA2MGI5ZWYyMDdmZGQzZGEyY2VlOGQ5YzllZThhZmQ4YTRkMTMwNy4uNDhhN2I1OTFjZGQ1NWUw
MjQxMTFmYTBlZjI3YzI1MjViYzdhNzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMjYsMTEgKzI2LDExIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotYm9vbCBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAorYm9vbCBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKIHsK
LSAgICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgaWYgKCFpc1NhbWVUeXBlKG90aGVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNvbnN0IE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbiYg
bSA9IHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKG8pOworICAgIGNvbnN0IE1hdHJpeFRyYW5z
Zm9ybU9wZXJhdGlvbiYgbSA9IGRvd25jYXN0PE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbj4ob3Ro
ZXIpOwogICAgIHJldHVybiBtX2EgPT0gbS5tX2EgJiYgbV9iID09IG0ubV9iICYmIG1fYyA9PSBt
Lm1fYyAmJiBtX2QgPT0gbS5tX2QgJiYgbV9lID09IG0ubV9lICYmIG1fZiA9PSBtLm1fZjsKIH0K
IApAQCAtNDAsMTEgKzQwLDEwIEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRy
aXhUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgICAgIHJl
dHVybiB0aGlzOwogCiAgICAgLy8gY29udmVydCB0aGUgVHJhbnNmb3JtT3BlcmF0aW9ucyBpbnRv
IG1hdHJpY2VzCi0gICAgRmxvYXRTaXplIHNpemU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
ZnJvbVQ7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG9UKG1fYSwgbV9iLCBtX2MsIG1fZCwg
bV9lLCBtX2YpOwogICAgIGlmIChmcm9tKSB7Ci0gICAgICAgIGNvbnN0IE1hdHJpeFRyYW5zZm9y
bU9wZXJhdGlvbiYgbSA9IHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKCpmcm9tKTsKKyAgICAg
ICAgY29uc3QgTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uJiBtID0gZG93bmNhc3Q8TWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uPigqZnJvbSk7CiAgICAgICAgIGZyb21ULnNldE1hdHJpeChtLm1fYSwg
bS5tX2IsIG0ubV9jLCBtLm1fZCwgbS5tX2UsIG0ubV9mKTsKICAgICB9CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRy
YW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA1ZDU1MjY0N2NhZmMzZTdk
ODMwZDQ4NTljOTQyOTBiMTA0ZjQ1MzQ2Li4yMTdkMThkYWRhZDZkMThiMjEzZDNkZDIyZjA3NjFm
ZWIyNjgzOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgK
QEAgLTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9mOwogfTsKIAotVFJBTlNG
T1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkg
PT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVgpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6Ok1h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbiwgdHlwZSgpID09IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJh
dGlvbjo6TUFUUklYKQorCiAjZW5kaWYgLy8gTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5k
ZXggYjc3MWUwYjA5ZThjYmU2ZDA5NmJjMTM1MzJjZGRmMDFmOWYyOGM0NC4uZTM5ZTVlYjhmMmM2
OTFmODIwY2UxMTNhZTQyOGI1M2RlNjg0OGEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTMxLDEyICszMSwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246
Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAorYm9vbCBQZXJz
cGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAgICBpZiAo
IWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24mIHAgPSB0b1BlcnNwZWN0aXZlVHJhbnNmb3JtT3Bl
cmF0aW9uKG8pOwotICAgIHJldHVybiBtX3AgPT0gcC5tX3A7CisgICAgcmV0dXJuIG1fcCA9PSBk
b3duY2FzdDxQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpLm1fcDsKIH0KIAog
UGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0
aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVz
cywgYm9vbCBibGVuZFRvSWRlbnRpdHkpCkBAIC01MCw3ICs0OSw3IEBAIFBhc3NSZWZQdHI8VHJh
bnNmb3JtT3BlcmF0aW9uPiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29u
c3QgVHJhbnNmCiAgICAgICAgIHJldHVybiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6
Y3JlYXRlKExlbmd0aChjbGFtcFRvUG9zaXRpdmVJbnRlZ2VyKHApLCBGaXhlZCkpOwogICAgIH0K
ICAgICAKLSAgICBjb25zdCBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0g
dG9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBQZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8UGVyc3BlY3RpdmVUcmFu
c2Zvcm1PcGVyYXRpb24+KGZyb20pOwogICAgIExlbmd0aCBmcm9tUCA9IGZyb21PcCA/IGZyb21P
cC0+bV9wIDogTGVuZ3RoKG1fcC50eXBlKCkpOwogICAgIExlbmd0aCB0b1AgPSBtX3A7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAx
ZjE2MmNmNTYzM2NlMTJhMzM2MGEwNzlmZTVjYmI4Yzg5ZTU4MjVlLi5hNWVmYzkxMmFmMzgzMjc5
NTVjNWYyNmIyNWQwNjEyYmMzMDE2YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC02NSw4ICs2NSw4IEBAIHByaXZhdGU6CiAgICAg
TGVuZ3RoIG1fcDsKIH07CiAKLVRSQU5TRk9STU9QRVJBVElPTl9UWVBFX0NBU1RTKFBlcnNwZWN0
aXZlVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpQRVJT
UEVDVElWRSk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb24sIHR5cGUoKSA9PSBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb246OlBFUlNQRUNUSVZF
KQorCiAjZW5kaWYgLy8gUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IGI2YTg3YjU5NDY4NDQ5
Zjk1YTZkZjIwYzk0YjYyMDJmNjViYzc4MWQuLmJjZWY4NWUwNTkyN2U1ZmJkYmU4ZDM5M2VjYTUy
ODRhNjEzNDFiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKQEAgLTI4LDExICsyOCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wg
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbiYgbykgY29uc3QKK2Jvb2wgUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09
KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1Nh
bWVUeXBlKG8pKQorICAgIGlmICghaXNTYW1lVHlwZShvdGhlcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24mIHIgPSB0b1JvdGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbihvKTsKKyAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24m
IHIgPSBkb3duY2FzdDxSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KG90aGVyKTsKICAgICByZXR1
cm4gbV94ID09IHIubV94ICYmIG1feSA9PSByLm1feSAmJiBtX3ogPT0gci5tX3ogJiYgbV9hbmds
ZSA9PSByLm1fYW5nbGU7CiB9CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgUGFzc1JlZlB0cjxUcmFuc2Zv
cm1PcGVyYXRpb24+IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNm
b3JtT3AKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQogICAgICAgICByZXR1cm4gUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV94LCBtX3ksIG1feiwgbV9hbmdsZSAtIG1fYW5nbGUg
KiBwcm9ncmVzcywgbV90eXBlKTsKICAgICAKLSAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVy
YXRpb24qIGZyb21PcCA9IHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOworICAgIGNv
bnN0IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8Um90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uPihmcm9tKTsKICAgICAKICAgICAvLyBPcHRpbWl6ZSBmb3Igc2luZ2xl
IGF4aXMgcm90YXRpb24KICAgICBpZiAoIWZyb21PcCB8fCAoZnJvbU9wLT5tX3ggPT0gMCAmJiBm
cm9tT3AtPm1feSA9PSAwICYmIGZyb21PcC0+bV96ID09IDEpIHx8IApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggNjdjOWJkNTcyMTU5NDM3MjA0YmZkMzAy
NzdjYzhhYjE0Y2JlOWNlYi4uZjdjYzgxMmViYzA5NDAwZjVlYmIyMmNlNTFiMzBhOTRlYjdhNWFm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC03OSw4
ICs3OSw4IEBAIHByaXZhdGU6CiAgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7CiB9OwogCi1UUkFO
U0ZPUk1PUEVSQVRJT05fVFlQRV9DQVNUUyhSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24sIGlzUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJDb3JlOjpSb3Rh
dGVUcmFuc2Zvcm1PcGVyYXRpb24sIGlzUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKQor
CiAjZW5kaWYgLy8gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggNTZhNmQwZjYxOTcyYTNiZTQxZTZiMDgz
ZDhhODk5MWI4ODkxNzkyMy4uYjQ5ZTBkMWQxY2QxNzE4NGVlMTkzZjg1MDg5N2EzMDUwY2Q3N2Zi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTI2
LDExICsyNiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25z
dAorYm9vbCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAg
ICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29u
c3QgU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24mIHMgPSB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9u
KG8pOworICAgIGNvbnN0IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uJiBzID0gZG93bmNhc3Q8U2Nh
bGVUcmFuc2Zvcm1PcGVyYXRpb24+KG90aGVyKTsKICAgICByZXR1cm4gbV94ID09IHMubV94ICYm
IG1feSA9PSBzLm1feSAmJiBtX3ogPT0gcy5tX3o7CiB9CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgUGFz
c1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVu
ZChjb25zdCBUcmFuc2Zvcm1PcGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViQ29yZTo6YmxlbmQobV95LCAxLjAsIHByb2dyZXNzKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6YmxlbmQobV96
LCAxLjAsIHByb2dyZXNzKSwgbV90eXBlKTsKICAgICAKLSAgICBjb25zdCBTY2FsZVRyYW5zZm9y
bU9wZXJhdGlvbiogZnJvbU9wID0gdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAg
ICBjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8U2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24+KGZyb20pOwogICAgIGRvdWJsZSBmcm9tWCA9IGZyb21PcCA/IGZy
b21PcC0+bV94IDogMS4wOwogICAgIGRvdWJsZSBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+bV95
IDogMS4wOwogICAgIGRvdWJsZSBmcm9tWiA9IGZyb21PcCA/IGZyb21PcC0+bV96IDogMS4wOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IDAyZjBjMzY0MGZk
M2Y0NzFlYzllYzkxZmU1MTU0OGI5MmZkNDQ2MDIuLmMyZTFjZDdmOGYxYTU5YWVlMDlmYzFiNDU4
MWFlNmVlMjc1ODg0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9u
LmgKQEAgLTc2LDggKzc2LDggQEAgcHJpdmF0ZToKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsK
IH07CiAKLVRSQU5TRk9STU9QRVJBVElPTl9UWVBFX0NBU1RTKFNjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLCBpc1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJD
b3JlOjpTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNTY2FsZVRyYW5zZm9ybU9wZXJhdGlvblR5
cGUoKSkKKwogI2VuZGlmIC8vIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9y
bU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IGY1OWRiOWVkOTdkY2QwOGE2MTY1
MTk2ODJjZTQyYTI2ZjJmOWVkMzIuLmE0NWRlZGFkZWJkNjY1YjA3Zjc0NTNmODU3YzUwNjcxODY0
MmMzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAt
MjYsMTEgKzI2LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBTa2V3VHJhbnNm
b3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29u
c3QKK2Jvb2wgU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAg
ICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29u
c3QgU2tld1RyYW5zZm9ybU9wZXJhdGlvbiYgcyA9IHRvU2tld1RyYW5zZm9ybU9wZXJhdGlvbihv
KTsKKyAgICBjb25zdCBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uJiBzID0gZG93bmNhc3Q8U2tld1Ry
YW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpOwogICAgIHJldHVybiBtX2FuZ2xlWCA9PSBzLm1fYW5n
bGVYICYmIG1fYW5nbGVZID09IHMubV9hbmdsZVk7CiB9CiAKQEAgLTQyLDcgKzQyLDcgQEAgUGFz
c1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5k
KGNvbnN0IFRyYW5zZm9ybU9wZXIKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQogICAgICAgICBy
ZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKG1fYW5n
bGVYLCAwLjAsIHByb2dyZXNzKSwgV2ViQ29yZTo6YmxlbmQobV9hbmdsZVksIDAuMCwgcHJvZ3Jl
c3MpLCBtX3R5cGUpOwogICAgIAotICAgIGNvbnN0IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24qIGZy
b21PcCA9IHRvU2tld1RyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBTa2V3VHJh
bnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBkb3duY2FzdDxTa2V3VHJhbnNmb3JtT3BlcmF0aW9u
Pihmcm9tKTsKICAgICBkb3VibGUgZnJvbUFuZ2xlWCA9IGZyb21PcCA/IGZyb21PcC0+bV9hbmds
ZVggOiAwOwogICAgIGRvdWJsZSBmcm9tQW5nbGVZID0gZnJvbU9wID8gZnJvbU9wLT5tX2FuZ2xl
WSA6IDA7CiAgICAgcmV0dXJuIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShXZWJDb3Jl
OjpibGVuZChmcm9tQW5nbGVYLCBtX2FuZ2xlWCwgcHJvZ3Jlc3MpLCBXZWJDb3JlOjpibGVuZChm
cm9tQW5nbGVZLCBtX2FuZ2xlWSwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3Bl
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nr
ZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCBjMDNlZGJkMmIyNGNjMjVmNjFmMWE1YzE0N2Vj
NTFmOTdlMjAwYjVhLi5lN2Q3YTIzYjYzNTY4NTFlMWZmMzBhZjRlYTVjZDJjMjAxNDQ4NzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nr
ZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNjcsOCArNjcsOCBA
QCBwcml2YXRlOgogICAgIE9wZXJhdGlvblR5cGUgbV90eXBlOwogfTsKIAotVFJBTlNGT1JNT1BF
UkFUSU9OX1RZUEVfQ0FTVFMoU2tld1RyYW5zZm9ybU9wZXJhdGlvbiwgaXNTa2V3VHJhbnNmb3Jt
T3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJDb3JlOjpTa2V3VHJhbnNmb3JtT3Bl
cmF0aW9uLCBpc1NrZXdUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpCisKICNlbmRpZiAvLyBTa2V3
VHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4
IDY4Nzk5OWQ0MTkxOTFlMzMwMGQ4ZDMyMDQwMDIwMzQ5N2I1NzRmZWUuLjY2ZmM5YWIxMzVlNzBj
Zjk4MjViYzBlYzE3ZDFiMDQzZjZhMjU5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRp
b24uaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4Lmgi
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xMDEsOSArMTAyLDExIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi0jZGVmaW5lIFRSQU5TRk9S
TU9QRVJBVElPTl9UWVBFX0NBU1RTKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCi0gICAg
VFlQRV9DQVNUU19CQVNFKFRvVmFsdWVUeXBlTmFtZSwgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0
aW9uLCB2YWx1ZSwgdmFsdWUtPnByZWRpY2F0ZSwgdmFsdWUucHJlZGljYXRlKQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZP
Uk1PUEVSQVRJT04oVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbiYgb3BlcmF0aW9uKSB7IHJldHVybiBv
cGVyYXRpb24ucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwog
I2VuZGlmIC8vIFRyYW5zZm9ybU9wZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggMmU2MGZiNTRiZGRkY2U2ODQ5MWZiYmUz
ZTdjNjJmYjU5ODcwZjhlZi4uOTBmNjJiYmQ1NmM5MzM4NTU1ZGI1MGEwNjdjOTRiN2M1NWYyMjUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9uJiBvKSBjb25zdAorYm9vbCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9y
PT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoIWlz
U2FtZVR5cGUobykpCisgICAgaWYgKCFpc1NhbWVUeXBlKG90aGVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiYgdCA9IHRvVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKG8pOworICAgIGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbiYgdCA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3Ro
ZXIpOwogICAgIHJldHVybiBtX3ggPT0gdC5tX3ggJiYgbV95ID09IHQubV95ICYmIG1feiA9PSB0
Lm1fejsKIH0KIApAQCAtNDIsNyArNDIsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlv
bj4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2ZvcgogICAg
IGlmIChibGVuZFRvSWRlbnRpdHkpCiAgICAgICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb246OmNyZWF0ZSh6ZXJvTGVuZ3RoLmJsZW5kKG1feCwgcHJvZ3Jlc3MpLCB6ZXJvTGVu
Z3RoLmJsZW5kKG1feSwgcHJvZ3Jlc3MpLCB6ZXJvTGVuZ3RoLmJsZW5kKG1feiwgcHJvZ3Jlc3Mp
LCBtX3R5cGUpOwogCi0gICAgY29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9t
T3AgPSB0b1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5z
Zm9ybU9wZXJhdGlvbj4oZnJvbSk7CiAgICAgTGVuZ3RoIGZyb21YID0gZnJvbU9wID8gZnJvbU9w
LT5tX3ggOiB6ZXJvTGVuZ3RoOwogICAgIExlbmd0aCBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+
bV95IDogemVyb0xlbmd0aDsKICAgICBMZW5ndGggZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1f
eiA6IHplcm9MZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24uaAppbmRleCBmMTRlNDY1OGUwNjVlOGNhMTI2YjM3NDcwZTliMDkyOGY4ODFjOWZkLi4z
ZTFlYmE4YmUxZDQxZDU0Y2E5YzAzZTQ5OWNmNDg1MmNkNmQwNGFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTgyLDggKzgyLDggQEAgcHJp
dmF0ZToKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsKIH07CiAKLVRSQU5TRk9STU9QRVJBVElP
Tl9UWVBFX0NBU1RTKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb25UeXBlKCkpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6OlRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbiwgaXNUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpCisK
ICNlbmRpZiAvLyBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTNkMmM0
Y2I0NGYxOTAyYzZmZjMzMmEwZjg1MGQ2MmJhOTcwMTQ0OS4uNTI1NWY0NjYxNjE5MDhlODYwNDIx
NGNiYzVhMGI5MWQ5MzkxYTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNzEsOCArMTcxLDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLAogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25z
JiB0cmFuc2Zvcm1PcGVyYXRpb25zKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9uKiBvcGVyYXRpb24gPSB0cmFuc2Zvcm1PcGVyYXRpb25zLmF0KGkp
OworICAgIGZvciAoY29uc3QgYXV0byogb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkpIHsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG9wZXJhdGlvbi0+dHlw
ZSgpKTsKIAogICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+dHlwZSgpKSB7CkBAIC0xODEsNDIg
KzE4MCw0NiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgICAgIGNhc2UgVHJhbnNmb3Jt
T3BlcmF0aW9uOjpTQ0FMRToKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxF
X1o6CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpTQ0FMRV8zRDoKLSAgICAgICAg
ICAgIGVuY29kZXIgPDwgdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT54KCk7
Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0
aW9uKS0+eSgpOwotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uKG9wZXJhdGlvbiktPnooKTsKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHNjYWxlT3BlcmF0
aW9uID0gZG93bmNhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24+KCpvcGVyYXRpb24pOworICAg
ICAgICAgICAgZW5jb2RlciA8PCBzY2FsZU9wZXJhdGlvbi54KCk7CisgICAgICAgICAgICBlbmNv
ZGVyIDw8IHNjYWxlT3BlcmF0aW9uLnkoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc2NhbGVP
cGVyYXRpb24ueigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3Jt
T3BlcmF0aW9uOjpUUkFOU0xBVEVfWDoKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246
OlRSQU5TTEFURV9ZOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRF
OgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1o6CiAgICAgICAg
IGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6Ci0gICAgICAgICAgICBBcmd1
bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCB0b1RyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbihvcGVyYXRpb24pLT54KCkpOwotICAgICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5n
dGg+OjplbmNvZGUoZW5jb2RlciwgdG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0
aW9uKS0+eSgpKTsKLSAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVu
Y29kZXIsIHRvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnooKSk7Cisg
ICAgICAgICAgICBjb25zdCBhdXRvJiB0cmFuc2xhdGVPcGVyYXRpb24gPSBkb3duY2FzdDxUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KCpvcGVyYXRpb24pOworICAgICAgICAgICAgQXJndW1l
bnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNsYXRlT3BlcmF0aW9uLngoKSk7
CisgICAgICAgICAgICBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCB0cmFu
c2xhdGVPcGVyYXRpb24ueSgpKTsKKyAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6
ZW5jb2RlKGVuY29kZXIsIHRyYW5zbGF0ZU9wZXJhdGlvbi56KCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEU6CiAgICAgICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWDoKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1P
cGVyYXRpb246OlJPVEFURV9ZOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9U
QVRFXzNEOgotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bihvcGVyYXRpb24pLT54KCk7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvUm90YXRlVHJhbnNm
b3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnkoKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgdG9S
b3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+eigpOwotICAgICAgICAgICAgZW5j
b2RlciA8PCB0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT5hbmdsZSgpOwor
ICAgICAgICAgICAgY29uc3QgYXV0byYgcm90YXRlT3BlcmF0aW9uID0gZG93bmNhc3Q8Um90YXRl
VHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
cm90YXRlT3BlcmF0aW9uLngoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0
aW9uLnkoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLnooKTsKKyAg
ICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLmFuZ2xlKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNLRVdfWDoKICAgICAg
ICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNLRVdfWToKICAgICAgICAgY2FzZSBUcmFuc2Zv
cm1PcGVyYXRpb246OlNLRVc6Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvU2tld1RyYW5zZm9y
bU9wZXJhdGlvbihvcGVyYXRpb24pLT5hbmdsZVgoKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwg
dG9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPmFuZ2xlWSgpOworICAgICAgICAg
ICAgY29uc3QgYXV0byYgc2tld09wZXJhdGlvbiA9IGRvd25jYXN0PFNrZXdUcmFuc2Zvcm1PcGVy
YXRpb24+KCpvcGVyYXRpb24pOworICAgICAgICAgICAgZW5jb2RlciA8PCBza2V3T3BlcmF0aW9u
LmFuZ2xlWCgpOworICAgICAgICAgICAgZW5jb2RlciA8PCBza2V3T3BlcmF0aW9uLmFuZ2xlWSgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpN
QVRSSVg6Ci0gICAgICAgICAgICBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6
ZW5jb2RlKGVuY29kZXIsIHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPm1h
dHJpeCgpKTsKKyAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+
OjplbmNvZGUoZW5jb2RlciwgZG93bmNhc3Q8TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uPigqb3Bl
cmF0aW9uKS5tYXRyaXgoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUcmFu
c2Zvcm1PcGVyYXRpb246Ok1BVFJJWF8zRDoKLSAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8VHJh
bnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdG9NYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbihvcGVyYXRpb24pLT5tYXRyaXgoKSk7CisgICAgICAgICAgICBBcmd1bWVudENvZGVy
PFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIGRvd25jYXN0PE1hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKS5tYXRyaXgoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlBFUlNQRUNUSVZFOgotICAg
ICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgdG9QZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT5wZXJzcGVjdGl2ZSgpKTsKKyAgICAg
ICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGRvd25jYXN0PFBl
cnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKS5wZXJzcGVjdGl2ZSgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6SURF
TlRJVFk6CiAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239847</attachid>
            <date>2014-10-14 21:22:17 -0700</date>
            <delta_ts>2014-10-15 10:21:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137731-20141014212224.patch</filename>
            <type>text/plain</type>
            <size>32289</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc2MDJmZjY0NWQ4MDY4
ZDg0MmNjYzhlNWVhNTNlMmJhYTY4NjI0MC4uNjg1MmI2MmMxY2Y2MTA2ZWNkZDQxZWYwZDllY2Nh
NTcyODA0ZTI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgVHJhbnNmb3JtT3BlcmF0aW9uIHN1YmNsYXNzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+
KCkgZm9yIFRyYW5zZm9ybU9wZXJhdGlvbiBzdWJjbGFzc2VzIGFuZCBjbGVhbgorICAgICAgICB1
cCB0aGUgc3Vycm91bmRpbmcgY29kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2
aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1P
cGVyYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9w
ZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4
M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZl
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZlVHJh
bnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0
aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXZWJDb3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNrZXdUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
U2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6
YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRl
VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisKIDIwMTQtMTAtMTQgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE1OTIwOCk6IENyYXNoIHdoZW4g
Y2xpY2tpbmcgc2NydWJiZXIgYWZ0ZXIgbmF2aWdhdGluZyBhd2F5L2JhY2sgdG8gdmlkZW8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCA1NGNiOGRlM2MwYzQ2Njk1NTk4YmM3ZjUyNDcyYjY4OTgyOWZkN2U4Li5mZTk5
OGRjOWU4NWM2MzQ2NDZkOGRmMGQ3NTc2Zjk1ODlhNDZjZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTQtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBUcmFuc2Zvcm1PcGVyYXRpb24g
c3ViY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM3NzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgVHJhbnNmb3JtT3BlcmF0aW9uIHN1YmNs
YXNzZXMgYW5kIGNsZWFuCisgICAgICAgIHVwIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAg
ICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3Vt
ZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVy
YXRpb25zPjo6ZW5jb2RlKToKKwogMjAxNC0xMC0xNCAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBh
cmtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBGaXggdGhlIHByb2JsZW0gdGhh
dCB0aHJlYWRzIGNyZWF0ZWQgYnkgYSBEaXNwYXRjaFF1ZXVlRWZsIGFyZSBub3QgZGVzdHJveWVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDM5NGIyZWZhNjMwMjk2YmY2Y2NlNTM4MzkwM2NmZmM2MzZmMTQxYmEuLjNkN2Nk
ODUyNzFiMjk4NjQzY2Q2NTVmNjkxODEyYmJlNTgyZGI3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC01MjEsOCArNTIx
LDggQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlkYXRlVHJhbnNmb3JtT3BlcmF0aW9ucyhjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXMKICAgICB9CiAKICAgICAvLyBLZXlmcmFtZXMg
YXJlIHZhbGlkLCBjaGVjayBmb3IgYmlnIHJvdGF0aW9ucy4gICAgCi0gICAgZG91YmxlIGxhc3RS
b3RBbmdsZSA9IDAuMDsKLSAgICBkb3VibGUgbWF4Um90QW5nbGUgPSAtMS4wOworICAgIGRvdWJs
ZSBsYXN0Um90YXRpb25BbmdsZSA9IDAuMDsKKyAgICBkb3VibGUgbWF4Um90YXRpb25BbmdsZSA9
IC0xLjA7CiAgICAgICAgIAogICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwub3Bl
cmF0aW9ucygpLnNpemUoKTsgKytqKSB7CiAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSB0eXBlID0gZmlyc3RWYWwub3BlcmF0aW9ucygpLmF0KGopLT50eXBlKCk7CkBA
IC01MzIsMjMgKzUzMiwyMyBAQCBpbnQgR3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1P
cGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpcwogICAgICAgICAgICAg
dHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9ZIHx8CiAgICAgICAgICAgICB0eXBl
ID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1ogfHwKICAgICAgICAgICAgIHR5cGUgPT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfM0QpIHsKLSAgICAgICAgICAgIGxhc3RSb3RBbmds
ZSA9IHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChq
KS5nZXQoKSktPmFuZ2xlKCk7CisgICAgICAgICAgICBsYXN0Um90YXRpb25BbmdsZSA9IGRvd25j
YXN0PFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oKmZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChq
KSkuYW5nbGUoKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG1heFJvdEFuZ2xlIDwg
MCkKLSAgICAgICAgICAgICAgICBtYXhSb3RBbmdsZSA9IGZhYnMobGFzdFJvdEFuZ2xlKTsKKyAg
ICAgICAgICAgIGlmIChtYXhSb3RhdGlvbkFuZ2xlIDwgMCkKKyAgICAgICAgICAgICAgICBtYXhS
b3RhdGlvbkFuZ2xlID0gZmFicyhsYXN0Um90YXRpb25BbmdsZSk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEluZGV4ICsgMTsgaSA8IHZhbHVlTGlzdC5z
aXplKCk7ICsraSkgewogICAgICAgICAgICAgICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMm
IHZhbCA9IG9wZXJhdGlvbnNBdCh2YWx1ZUxpc3QsIGkpOwotICAgICAgICAgICAgICAgIGRvdWJs
ZSByb3RBbmdsZSA9IHZhbC5vcGVyYXRpb25zKCkuaXNFbXB0eSgpID8gMCA6ICh0b1JvdGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbih2YWwub3BlcmF0aW9ucygpLmF0KGopLmdldCgpKS0+YW5nbGUoKSk7
Ci0gICAgICAgICAgICAgICAgZG91YmxlIGRpZmZBbmdsZSA9IGZhYnMocm90QW5nbGUgLSBsYXN0
Um90QW5nbGUpOwotICAgICAgICAgICAgICAgIGlmIChkaWZmQW5nbGUgPiBtYXhSb3RBbmdsZSkK
LSAgICAgICAgICAgICAgICAgICAgbWF4Um90QW5nbGUgPSBkaWZmQW5nbGU7Ci0gICAgICAgICAg
ICAgICAgbGFzdFJvdEFuZ2xlID0gcm90QW5nbGU7CisgICAgICAgICAgICAgICAgZG91YmxlIHJv
dGF0aW9uQW5nbGUgPSB2YWwub3BlcmF0aW9ucygpLmlzRW1wdHkoKSA/IDAgOiBkb3duY2FzdDxS
b3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KCp2YWwub3BlcmF0aW9ucygpLmF0KGopKS5hbmdsZSgp
OworICAgICAgICAgICAgICAgIGRvdWJsZSBkaWZmQW5nbGUgPSBmYWJzKHJvdGF0aW9uQW5nbGUg
LSBsYXN0Um90YXRpb25BbmdsZSk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZBbmdsZSA+IG1h
eFJvdGF0aW9uQW5nbGUpCisgICAgICAgICAgICAgICAgICAgIG1heFJvdGF0aW9uQW5nbGUgPSBk
aWZmQW5nbGU7CisgICAgICAgICAgICAgICAgbGFzdFJvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGhhc0JpZ1Jv
dGF0aW9uID0gbWF4Um90QW5nbGUgPj0gMTgwLjA7CisgICAgaGFzQmlnUm90YXRpb24gPSBtYXhS
b3RhdGlvbkFuZ2xlID49IDE4MC4wOwogICAgIAogICAgIHJldHVybiBmaXJzdEluZGV4OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKaW5kZXggNjA2MTdjMmUwZjcwNzUyMjUzMGMzMTMxMjNjNzRkZGM5NDA2Y2Zi
NS4uYzU0ZmE5ZDIzOTM1YWE4NmRmZTE4NTk2MWM2NGI2NmEyN2Q5YzM4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwCkBAIC0xMjksMjUgKzEyOSwyNSBAQCBzdGF0aWMgdm9pZCBnZXRUcmFuc2Zvcm1GdW5jdGlv
blZhbHVlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNmb3JtT3AsIFRyYQogICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEU6CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRp
b246OlJPVEFURV9YOgogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWToKLSAg
ICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZGVnMnJh
ZCh0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPmFuZ2xlKCkpKSA6IDA7
CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRl
ZzJyYWQoZG93bmNhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLmFu
Z2xlKCkpKSA6IDA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9u
OjpTQ0FMRV9YOgotICAgICAgICB2YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9u
VG9GbG9hdCh0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKS0+eCgpKSA6IDE7
CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRv
d25jYXN0PFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLngoKSkgOiAxOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6U0NBTEVfWToKLSAg
ICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9TY2Fs
ZVRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPnkoKSkgOiAxOworICAgICAgICB2YWx1
ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChkb3duY2FzdDxTY2FsZVRy
YW5zZm9ybU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS55KCkpIDogMTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFX1o6Ci0gICAgICAgIHZhbHVlID0g
dHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHRvU2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb24odHJhbnNmb3JtT3ApLT56KCkpIDogMTsKKyAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1P
cCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZG93bmNhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b24+KCp0cmFuc2Zvcm1PcCkueigpKSA6IDE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJh
bnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWDoKLSAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1P
cCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24o
dHJhbnNmb3JtT3ApLT54KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3Ag
PyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbj4oKnRyYW5zZm9ybU9wKS54KHNpemUpKSA6IDA7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWToKLSAgICAgICAgdmFsdWUgPSB0cmFu
c2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24odHJhbnNmb3JtT3ApLT55KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0gdHJhbnNm
b3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS55KHNpemUpKSA6IDA7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWjoKLSAgICAgICAgdmFsdWUg
PSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9UcmFuc2xhdGVUcmFuc2Zv
cm1PcGVyYXRpb24odHJhbnNmb3JtT3ApLT56KHNpemUpKSA6IDA7CisgICAgICAgIHZhbHVlID0g
dHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25jYXN0PFRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS56KHNpemUpKSA6IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0
YXRpYyB2b2lkIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9uKiB0cmFuc2Zvcm1PcCwgVHJhCiAgICAgc3dpdGNoICh0cmFuc2Zvcm1UeXBlKSB7CiAgICAg
Y2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFOgogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0
aW9uOjpTQ0FMRV8zRDogewotICAgICAgICBjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiog
c2NhbGVUcmFuc2Zvcm1PcCA9IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24odHJhbnNmb3JtT3Ap
OworICAgICAgICBjb25zdCBhdXRvKiBzY2FsZVRyYW5zZm9ybU9wID0gZG93bmNhc3Q8U2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24+KHRyYW5zZm9ybU9wKTsKICAgICAgICAgdmFsdWUuc2V0WChzY2Fs
ZVRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChzY2FsZVRyYW5zZm9ybU9wLT54
KCkpIDogMSk7CiAgICAgICAgIHZhbHVlLnNldFkoc2NhbGVUcmFuc2Zvcm1PcCA/IG5hcnJvd1By
ZWNpc2lvblRvRmxvYXQoc2NhbGVUcmFuc2Zvcm1PcC0+eSgpKSA6IDEpOwogICAgICAgICB2YWx1
ZS5zZXRaKHNjYWxlVHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNjYWxlVHJh
bnNmb3JtT3AtPnooKSkgOiAxKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgdm9pZCBnZXRU
cmFuc2Zvcm1GdW5jdGlvblZhbHVlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNmb3Jt
T3AsIFRyYQogICAgIH0KICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFOgog
ICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6IHsKLSAgICAgICAgY29u
c3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiB0cmFuc2xhdGVUcmFuc2Zvcm1PcCA9IHRv
VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKTsKKyAgICAgICAgY29uc3Qg
YXV0byogdHJhbnNsYXRlVHJhbnNmb3JtT3AgPSBkb3duY2FzdDxUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24+KHRyYW5zZm9ybU9wKTsKICAgICAgICAgdmFsdWUuc2V0WCh0cmFuc2xhdGVUcmFu
c2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodHJhbnNsYXRlVHJhbnNmb3JtT3AtPngo
c2l6ZSkpIDogMCk7CiAgICAgICAgIHZhbHVlLnNldFkodHJhbnNsYXRlVHJhbnNmb3JtT3AgPyBu
YXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHRyYW5zbGF0ZVRyYW5zZm9ybU9wLT55KHNpemUpKSA6IDAp
OwogICAgICAgICB2YWx1ZS5zZXRaKHRyYW5zbGF0ZVRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lz
aW9uVG9GbG9hdCh0cmFuc2xhdGVUcmFuc2Zvcm1PcC0+eihzaXplKSkgOiAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlU
cmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAyN2Y1MDU4NjIxZWZj
NDU4ODI5YmUwMjU1NGJlMzhlYzRlZDJiOTRkLi45MWIxNTNiOTRmMmVkZjUyMzQ5ZDg2ODkzNTZj
MjJmZmYwNGYyMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJh
dGlvbi5oCkBAIC02Miw4ICs2Miw4IEBAIHByaXZhdGU6CiAKIH07CiAKLVRSQU5TRk9STU9QRVJB
VElPTl9UWVBFX0NBU1RTKElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpJREVOVElUWSk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6SWRlbnRp
dHlUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUoKSA9PSBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRp
b246OklERU5USVRZKQorCiAjZW5kaWYgLy8gSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9N
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA1
MjlmNzUwYjY0NzBmNjc5ZDBhMTczNTY3YjFmZjJmOGRiZWViMWVmLi5mOTY5ZDgxNjgzODAwZjMy
ZDE4OGY4MzIwNjdhODY5NTQyOGViYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMzAsMTIgKzMwLDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotYm9vbCBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShj
b25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0Citib29sIE1hdHJpeDNEVHJhbnNmb3Jt
T3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNv
bnN0CiB7Ci0gICAgaWYgKCFpc1NhbWVUeXBlKG8pKQorICAgIGlmICghaXNTYW1lVHlwZShvdGhl
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCBNYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbiYgbSA9IHRvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24obyk7Ci0gICAgcmV0dXJu
IG1fbWF0cml4ID09IG0ubV9tYXRyaXg7CisgICAgcmV0dXJuIG1fbWF0cml4ID09IGRvd25jYXN0
PE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uPihvdGhlcikubV9tYXRyaXg7CiB9CiAKIFBhc3NS
ZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6Ymxl
bmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wg
YmxlbmRUb0lkZW50aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJh
dGlvbi5oCmluZGV4IDIxZDM5ZmU2MjM0MmY5MmJiYWYzNmU3M2FlOGU3ZDIyNDgxMGJkNjMuLjMx
MmJkM2RmN2IzZmNhMThmODdkODRmYmQwMWM4OGJjNzk4NDE5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1P
cGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0
ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX21hdHJpeDsKIH07CiAKLVRSQU5TRk9STU9Q
RVJBVElPTl9UWVBFX0NBU1RTKE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0g
VHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6Ok1h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gV2ViQ29yZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uOjpNQVRSSVhfM0QpCisKICNlbmRpZiAvLyBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlv
bl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXgg
YjA2MGI5ZWYyMDdmZGQzZGEyY2VlOGQ5YzllZThhZmQ4YTRkMTMwNy4uNDhhN2I1OTFjZGQ1NWUw
MjQxMTFmYTBlZjI3YzI1MjViYzdhNzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMjYsMTEgKzI2LDExIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotYm9vbCBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAorYm9vbCBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKIHsK
LSAgICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgaWYgKCFpc1NhbWVUeXBlKG90aGVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNvbnN0IE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbiYg
bSA9IHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKG8pOworICAgIGNvbnN0IE1hdHJpeFRyYW5z
Zm9ybU9wZXJhdGlvbiYgbSA9IGRvd25jYXN0PE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbj4ob3Ro
ZXIpOwogICAgIHJldHVybiBtX2EgPT0gbS5tX2EgJiYgbV9iID09IG0ubV9iICYmIG1fYyA9PSBt
Lm1fYyAmJiBtX2QgPT0gbS5tX2QgJiYgbV9lID09IG0ubV9lICYmIG1fZiA9PSBtLm1fZjsKIH0K
IApAQCAtNDAsMTEgKzQwLDEwIEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRy
aXhUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgICAgIHJl
dHVybiB0aGlzOwogCiAgICAgLy8gY29udmVydCB0aGUgVHJhbnNmb3JtT3BlcmF0aW9ucyBpbnRv
IG1hdHJpY2VzCi0gICAgRmxvYXRTaXplIHNpemU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
ZnJvbVQ7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdG9UKG1fYSwgbV9iLCBtX2MsIG1fZCwg
bV9lLCBtX2YpOwogICAgIGlmIChmcm9tKSB7Ci0gICAgICAgIGNvbnN0IE1hdHJpeFRyYW5zZm9y
bU9wZXJhdGlvbiYgbSA9IHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKCpmcm9tKTsKKyAgICAg
ICAgY29uc3QgTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uJiBtID0gZG93bmNhc3Q8TWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uPigqZnJvbSk7CiAgICAgICAgIGZyb21ULnNldE1hdHJpeChtLm1fYSwg
bS5tX2IsIG0ubV9jLCBtLm1fZCwgbS5tX2UsIG0ubV9mKTsKICAgICB9CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRy
YW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA1ZDU1MjY0N2NhZmMzZTdk
ODMwZDQ4NTljOTQyOTBiMTA0ZjQ1MzQ2Li4yMTdkMThkYWRhZDZkMThiMjEzZDNkZDIyZjA3NjFm
ZWIyNjgzOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgK
QEAgLTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9mOwogfTsKIAotVFJBTlNG
T1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkg
PT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpNQVRSSVgpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6Ok1h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbiwgdHlwZSgpID09IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJh
dGlvbjo6TUFUUklYKQorCiAjZW5kaWYgLy8gTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5k
ZXggYjc3MWUwYjA5ZThjYmU2ZDA5NmJjMTM1MzJjZGRmMDFmOWYyOGM0NC4uZTM5ZTVlYjhmMmM2
OTFmODIwY2UxMTNhZTQyOGI1M2RlNjg0OGEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTMxLDEyICszMSwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246
Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAorYm9vbCBQZXJz
cGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAgICBpZiAo
IWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24mIHAgPSB0b1BlcnNwZWN0aXZlVHJhbnNmb3JtT3Bl
cmF0aW9uKG8pOwotICAgIHJldHVybiBtX3AgPT0gcC5tX3A7CisgICAgcmV0dXJuIG1fcCA9PSBk
b3duY2FzdDxQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpLm1fcDsKIH0KIAog
UGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0
aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVz
cywgYm9vbCBibGVuZFRvSWRlbnRpdHkpCkBAIC01MCw3ICs0OSw3IEBAIFBhc3NSZWZQdHI8VHJh
bnNmb3JtT3BlcmF0aW9uPiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29u
c3QgVHJhbnNmCiAgICAgICAgIHJldHVybiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6
Y3JlYXRlKExlbmd0aChjbGFtcFRvUG9zaXRpdmVJbnRlZ2VyKHApLCBGaXhlZCkpOwogICAgIH0K
ICAgICAKLSAgICBjb25zdCBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0g
dG9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBQZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8UGVyc3BlY3RpdmVUcmFu
c2Zvcm1PcGVyYXRpb24+KGZyb20pOwogICAgIExlbmd0aCBmcm9tUCA9IGZyb21PcCA/IGZyb21P
cC0+bV9wIDogTGVuZ3RoKG1fcC50eXBlKCkpOwogICAgIExlbmd0aCB0b1AgPSBtX3A7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAx
ZjE2MmNmNTYzM2NlMTJhMzM2MGEwNzlmZTVjYmI4Yzg5ZTU4MjVlLi5hNWVmYzkxMmFmMzgzMjc5
NTVjNWYyNmIyNWQwNjEyYmMzMDE2YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC02NSw4ICs2NSw4IEBAIHByaXZhdGU6CiAgICAg
TGVuZ3RoIG1fcDsKIH07CiAKLVRSQU5TRk9STU9QRVJBVElPTl9UWVBFX0NBU1RTKFBlcnNwZWN0
aXZlVHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpQRVJT
UEVDVElWRSk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb24sIHR5cGUoKSA9PSBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb246OlBFUlNQRUNUSVZF
KQorCiAjZW5kaWYgLy8gUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IGI2YTg3YjU5NDY4NDQ5
Zjk1YTZkZjIwYzk0YjYyMDJmNjViYzc4MWQuLmJjZWY4NWUwNTkyN2U1ZmJkYmU4ZDM5M2VjYTUy
ODRhNjEzNDFiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAKQEAgLTI4LDExICsyOCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wg
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbiYgbykgY29uc3QKK2Jvb2wgUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09
KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1Nh
bWVUeXBlKG8pKQorICAgIGlmICghaXNTYW1lVHlwZShvdGhlcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24mIHIgPSB0b1JvdGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbihvKTsKKyAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24m
IHIgPSBkb3duY2FzdDxSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KG90aGVyKTsKICAgICByZXR1
cm4gbV94ID09IHIubV94ICYmIG1feSA9PSByLm1feSAmJiBtX3ogPT0gci5tX3ogJiYgbV9hbmds
ZSA9PSByLm1fYW5nbGU7CiB9CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgUGFzc1JlZlB0cjxUcmFuc2Zv
cm1PcGVyYXRpb24+IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNm
b3JtT3AKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQogICAgICAgICByZXR1cm4gUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUobV94LCBtX3ksIG1feiwgbV9hbmdsZSAtIG1fYW5nbGUg
KiBwcm9ncmVzcywgbV90eXBlKTsKICAgICAKLSAgICBjb25zdCBSb3RhdGVUcmFuc2Zvcm1PcGVy
YXRpb24qIGZyb21PcCA9IHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOworICAgIGNv
bnN0IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8Um90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uPihmcm9tKTsKICAgICAKICAgICAvLyBPcHRpbWl6ZSBmb3Igc2luZ2xl
IGF4aXMgcm90YXRpb24KICAgICBpZiAoIWZyb21PcCB8fCAoZnJvbU9wLT5tX3ggPT0gMCAmJiBm
cm9tT3AtPm1feSA9PSAwICYmIGZyb21PcC0+bV96ID09IDEpIHx8IApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggNjdjOWJkNTcyMTU5NDM3MjA0YmZkMzAy
NzdjYzhhYjE0Y2JlOWNlYi4uZjdjYzgxMmViYzA5NDAwZjVlYmIyMmNlNTFiMzBhOTRlYjdhNWFm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC03OSw4
ICs3OSw4IEBAIHByaXZhdGU6CiAgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7CiB9OwogCi1UUkFO
U0ZPUk1PUEVSQVRJT05fVFlQRV9DQVNUUyhSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24sIGlzUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJDb3JlOjpSb3Rh
dGVUcmFuc2Zvcm1PcGVyYXRpb24sIGlzUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKQor
CiAjZW5kaWYgLy8gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggNTZhNmQwZjYxOTcyYTNiZTQxZTZiMDgz
ZDhhODk5MWI4ODkxNzkyMy4uYjQ5ZTBkMWQxY2QxNzE4NGVlMTkzZjg1MDg5N2EzMDUwY2Q3N2Zi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTI2
LDExICsyNiwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25z
dAorYm9vbCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAg
ICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29u
c3QgU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24mIHMgPSB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9u
KG8pOworICAgIGNvbnN0IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uJiBzID0gZG93bmNhc3Q8U2Nh
bGVUcmFuc2Zvcm1PcGVyYXRpb24+KG90aGVyKTsKICAgICByZXR1cm4gbV94ID09IHMubV94ICYm
IG1feSA9PSBzLm1feSAmJiBtX3ogPT0gcy5tX3o7CiB9CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgUGFz
c1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVu
ZChjb25zdCBUcmFuc2Zvcm1PcGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViQ29yZTo6YmxlbmQobV95LCAxLjAsIHByb2dyZXNzKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6YmxlbmQobV96
LCAxLjAsIHByb2dyZXNzKSwgbV90eXBlKTsKICAgICAKLSAgICBjb25zdCBTY2FsZVRyYW5zZm9y
bU9wZXJhdGlvbiogZnJvbU9wID0gdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAg
ICBjb25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8U2NhbGVU
cmFuc2Zvcm1PcGVyYXRpb24+KGZyb20pOwogICAgIGRvdWJsZSBmcm9tWCA9IGZyb21PcCA/IGZy
b21PcC0+bV94IDogMS4wOwogICAgIGRvdWJsZSBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+bV95
IDogMS4wOwogICAgIGRvdWJsZSBmcm9tWiA9IGZyb21PcCA/IGZyb21PcC0+bV96IDogMS4wOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IDAyZjBjMzY0MGZk
M2Y0NzFlYzllYzkxZmU1MTU0OGI5MmZkNDQ2MDIuLmMyZTFjZDdmOGYxYTU5YWVlMDlmYzFiNDU4
MWFlNmVlMjc1ODg0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9u
LmgKQEAgLTc2LDggKzc2LDggQEAgcHJpdmF0ZToKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsK
IH07CiAKLVRSQU5TRk9STU9QRVJBVElPTl9UWVBFX0NBU1RTKFNjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLCBpc1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJD
b3JlOjpTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNTY2FsZVRyYW5zZm9ybU9wZXJhdGlvblR5
cGUoKSkKKwogI2VuZGlmIC8vIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9y
bU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IGY1OWRiOWVkOTdkY2QwOGE2MTY1
MTk2ODJjZTQyYTI2ZjJmOWVkMzIuLmE0NWRlZGFkZWJkNjY1YjA3Zjc0NTNmODU3YzUwNjcxODY0
MmMzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAt
MjYsMTEgKzI2LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBTa2V3VHJhbnNm
b3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29u
c3QKK2Jvb2wgU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAg
ICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29u
c3QgU2tld1RyYW5zZm9ybU9wZXJhdGlvbiYgcyA9IHRvU2tld1RyYW5zZm9ybU9wZXJhdGlvbihv
KTsKKyAgICBjb25zdCBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uJiBzID0gZG93bmNhc3Q8U2tld1Ry
YW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpOwogICAgIHJldHVybiBtX2FuZ2xlWCA9PSBzLm1fYW5n
bGVYICYmIG1fYW5nbGVZID09IHMubV9hbmdsZVk7CiB9CiAKQEAgLTQyLDcgKzQyLDcgQEAgUGFz
c1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5k
KGNvbnN0IFRyYW5zZm9ybU9wZXIKICAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQogICAgICAgICBy
ZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNvcmU6OmJsZW5kKG1fYW5n
bGVYLCAwLjAsIHByb2dyZXNzKSwgV2ViQ29yZTo6YmxlbmQobV9hbmdsZVksIDAuMCwgcHJvZ3Jl
c3MpLCBtX3R5cGUpOwogICAgIAotICAgIGNvbnN0IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24qIGZy
b21PcCA9IHRvU2tld1RyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBTa2V3VHJh
bnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBkb3duY2FzdDxTa2V3VHJhbnNmb3JtT3BlcmF0aW9u
Pihmcm9tKTsKICAgICBkb3VibGUgZnJvbUFuZ2xlWCA9IGZyb21PcCA/IGZyb21PcC0+bV9hbmds
ZVggOiAwOwogICAgIGRvdWJsZSBmcm9tQW5nbGVZID0gZnJvbU9wID8gZnJvbU9wLT5tX2FuZ2xl
WSA6IDA7CiAgICAgcmV0dXJuIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShXZWJDb3Jl
OjpibGVuZChmcm9tQW5nbGVYLCBtX2FuZ2xlWCwgcHJvZ3Jlc3MpLCBXZWJDb3JlOjpibGVuZChm
cm9tQW5nbGVZLCBtX2FuZ2xlWSwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3Bl
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nr
ZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCBjMDNlZGJkMmIyNGNjMjVmNjFmMWE1YzE0N2Vj
NTFmOTdlMjAwYjVhLi5lN2Q3YTIzYjYzNTY4NTFlMWZmMzBhZjRlYTVjZDJjMjAxNDQ4NzFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nr
ZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNjcsOCArNjcsOCBA
QCBwcml2YXRlOgogICAgIE9wZXJhdGlvblR5cGUgbV90eXBlOwogfTsKIAotVFJBTlNGT1JNT1BF
UkFUSU9OX1RZUEVfQ0FTVFMoU2tld1RyYW5zZm9ybU9wZXJhdGlvbiwgaXNTa2V3VHJhbnNmb3Jt
T3BlcmF0aW9uVHlwZSgpKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJDb3JlOjpTa2V3VHJhbnNmb3JtT3Bl
cmF0aW9uLCBpc1NrZXdUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpCisKICNlbmRpZiAvLyBTa2V3
VHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4
IDY4Nzk5OWQ0MTkxOTFlMzMwMGQ4ZDMyMDQwMDIwMzQ5N2I1NzRmZWUuLjY2ZmM5YWIxMzVlNzBj
Zjk4MjViYzBlYzE3ZDFiMDQzZjZhMjU5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRp
b24uaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4Lmgi
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xMDEsOSArMTAyLDExIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi0jZGVmaW5lIFRSQU5TRk9S
TU9QRVJBVElPTl9UWVBFX0NBU1RTKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCi0gICAg
VFlQRV9DQVNUU19CQVNFKFRvVmFsdWVUeXBlTmFtZSwgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0
aW9uLCB2YWx1ZSwgdmFsdWUtPnByZWRpY2F0ZSwgdmFsdWUucHJlZGljYXRlKQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZP
Uk1PUEVSQVRJT04oVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oVG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbiYgb3BlcmF0aW9uKSB7IHJldHVybiBv
cGVyYXRpb24ucHJlZGljYXRlOyB9IFwKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwog
I2VuZGlmIC8vIFRyYW5zZm9ybU9wZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggMmU2MGZiNTRiZGRkY2U2ODQ5MWZiYmUz
ZTdjNjJmYjU5ODcwZjhlZi4uOTBmNjJiYmQ1NmM5MzM4NTU1ZGI1MGEwNjdjOTRiN2M1NWYyMjUy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9uJiBvKSBjb25zdAorYm9vbCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9y
PT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoIWlz
U2FtZVR5cGUobykpCisgICAgaWYgKCFpc1NhbWVUeXBlKG90aGVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiYgdCA9IHRvVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKG8pOworICAgIGNvbnN0IFRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbiYgdCA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3Ro
ZXIpOwogICAgIHJldHVybiBtX3ggPT0gdC5tX3ggJiYgbV95ID09IHQubV95ICYmIG1feiA9PSB0
Lm1fejsKIH0KIApAQCAtNDIsNyArNDIsNyBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlv
bj4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2ZvcgogICAg
IGlmIChibGVuZFRvSWRlbnRpdHkpCiAgICAgICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb246OmNyZWF0ZSh6ZXJvTGVuZ3RoLmJsZW5kKG1feCwgcHJvZ3Jlc3MpLCB6ZXJvTGVu
Z3RoLmJsZW5kKG1feSwgcHJvZ3Jlc3MpLCB6ZXJvTGVuZ3RoLmJsZW5kKG1feiwgcHJvZ3Jlc3Mp
LCBtX3R5cGUpOwogCi0gICAgY29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9t
T3AgPSB0b1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbihmcm9tKTsKKyAgICBjb25zdCBUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5z
Zm9ybU9wZXJhdGlvbj4oZnJvbSk7CiAgICAgTGVuZ3RoIGZyb21YID0gZnJvbU9wID8gZnJvbU9w
LT5tX3ggOiB6ZXJvTGVuZ3RoOwogICAgIExlbmd0aCBmcm9tWSA9IGZyb21PcCA/IGZyb21PcC0+
bV95IDogemVyb0xlbmd0aDsKICAgICBMZW5ndGggZnJvbVogPSBmcm9tT3AgPyBmcm9tT3AtPm1f
eiA6IHplcm9MZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24uaAppbmRleCBmMTRlNDY1OGUwNjVlOGNhMTI2YjM3NDcwZTliMDkyOGY4ODFjOWZkLi4z
ZTFlYmE4YmUxZDQxZDU0Y2E5YzAzZTQ5OWNmNDg1MmNkNmQwNGFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTgyLDggKzgyLDggQEAgcHJp
dmF0ZToKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsKIH07CiAKLVRSQU5TRk9STU9QRVJBVElP
Tl9UWVBFX0NBU1RTKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb25UeXBlKCkpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6OlRyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbiwgaXNUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpCisK
ICNlbmRpZiAvLyBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTNkMmM0
Y2I0NGYxOTAyYzZmZjMzMmEwZjg1MGQ2MmJhOTcwMTQ0OS4uOWVkNjZjMWZiMjVmMWNhYmE5YTU3
NDdhZDI0NzU5NmVmODY0N2E3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNzEsOCArMTcxLDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLAogdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25z
JiB0cmFuc2Zvcm1PcGVyYXRpb25zKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9uKiBvcGVyYXRpb24gPSB0cmFuc2Zvcm1PcGVyYXRpb25zLmF0KGkp
OworICAgIGZvciAoY29uc3QgYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkpIHsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG9wZXJhdGlvbi0+dHlw
ZSgpKTsKIAogICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+dHlwZSgpKSB7CkBAIC0xODEsNDIg
KzE4MCw0NiBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgICAgIGNhc2UgVHJhbnNmb3Jt
T3BlcmF0aW9uOjpTQ0FMRToKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxF
X1o6CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpTQ0FMRV8zRDoKLSAgICAgICAg
ICAgIGVuY29kZXIgPDwgdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT54KCk7
Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0
aW9uKS0+eSgpOwotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uKG9wZXJhdGlvbiktPnooKTsKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHNjYWxlT3BlcmF0
aW9uID0gZG93bmNhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24+KCpvcGVyYXRpb24pOworICAg
ICAgICAgICAgZW5jb2RlciA8PCBzY2FsZU9wZXJhdGlvbi54KCk7CisgICAgICAgICAgICBlbmNv
ZGVyIDw8IHNjYWxlT3BlcmF0aW9uLnkoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc2NhbGVP
cGVyYXRpb24ueigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3Jt
T3BlcmF0aW9uOjpUUkFOU0xBVEVfWDoKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246
OlRSQU5TTEFURV9ZOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRF
OgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1o6CiAgICAgICAg
IGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6Ci0gICAgICAgICAgICBBcmd1
bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCB0b1RyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbihvcGVyYXRpb24pLT54KCkpOwotICAgICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5n
dGg+OjplbmNvZGUoZW5jb2RlciwgdG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0
aW9uKS0+eSgpKTsKLSAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVu
Y29kZXIsIHRvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnooKSk7Cisg
ICAgICAgICAgICBjb25zdCBhdXRvJiB0cmFuc2xhdGVPcGVyYXRpb24gPSBkb3duY2FzdDxUcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KCpvcGVyYXRpb24pOworICAgICAgICAgICAgQXJndW1l
bnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgdHJhbnNsYXRlT3BlcmF0aW9uLngoKSk7
CisgICAgICAgICAgICBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCB0cmFu
c2xhdGVPcGVyYXRpb24ueSgpKTsKKyAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6
ZW5jb2RlKGVuY29kZXIsIHRyYW5zbGF0ZU9wZXJhdGlvbi56KCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEU6CiAgICAgICAgIGNh
c2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWDoKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1P
cGVyYXRpb246OlJPVEFURV9ZOgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9U
QVRFXzNEOgotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bihvcGVyYXRpb24pLT54KCk7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvUm90YXRlVHJhbnNm
b3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnkoKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgdG9S
b3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+eigpOwotICAgICAgICAgICAgZW5j
b2RlciA8PCB0b1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT5hbmdsZSgpOwor
ICAgICAgICAgICAgY29uc3QgYXV0byYgcm90YXRlT3BlcmF0aW9uID0gZG93bmNhc3Q8Um90YXRl
VHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
cm90YXRlT3BlcmF0aW9uLngoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0
aW9uLnkoKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLnooKTsKKyAg
ICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLmFuZ2xlKCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNLRVdfWDoKICAgICAg
ICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNLRVdfWToKICAgICAgICAgY2FzZSBUcmFuc2Zv
cm1PcGVyYXRpb246OlNLRVc6Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvU2tld1RyYW5zZm9y
bU9wZXJhdGlvbihvcGVyYXRpb24pLT5hbmdsZVgoKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwg
dG9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPmFuZ2xlWSgpOworICAgICAgICAg
ICAgY29uc3QgYXV0byYgc2tld09wZXJhdGlvbiA9IGRvd25jYXN0PFNrZXdUcmFuc2Zvcm1PcGVy
YXRpb24+KCpvcGVyYXRpb24pOworICAgICAgICAgICAgZW5jb2RlciA8PCBza2V3T3BlcmF0aW9u
LmFuZ2xlWCgpOworICAgICAgICAgICAgZW5jb2RlciA8PCBza2V3T3BlcmF0aW9uLmFuZ2xlWSgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpN
QVRSSVg6Ci0gICAgICAgICAgICBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6
ZW5jb2RlKGVuY29kZXIsIHRvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPm1h
dHJpeCgpKTsKKyAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtYXRpb25NYXRyaXg+
OjplbmNvZGUoZW5jb2RlciwgZG93bmNhc3Q8TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uPigqb3Bl
cmF0aW9uKS5tYXRyaXgoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUcmFu
c2Zvcm1PcGVyYXRpb246Ok1BVFJJWF8zRDoKLSAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8VHJh
bnNmb3JtYXRpb25NYXRyaXg+OjplbmNvZGUoZW5jb2RlciwgdG9NYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbihvcGVyYXRpb24pLT5tYXRyaXgoKSk7CisgICAgICAgICAgICBBcmd1bWVudENvZGVy
PFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIGRvd25jYXN0PE1hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKS5tYXRyaXgoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlBFUlNQRUNUSVZFOgotICAg
ICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgdG9QZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT5wZXJzcGVjdGl2ZSgpKTsKKyAgICAg
ICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGRvd25jYXN0PFBl
cnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKS5wZXJzcGVjdGl2ZSgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6SURF
TlRJVFk6CiAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239876</attachid>
            <date>2014-10-15 10:21:34 -0700</date>
            <delta_ts>2014-10-15 12:15:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137731-20141015102143.patch</filename>
            <type>text/plain</type>
            <size>32506</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNDk5MTU3NzJlODc1
MzIyYmEzYmE4OTNiNGM3YWRmYmVhZDg2My4uMmU2MTMzNWYyOWRjYTI4NDVhOTY3YjA4ZjY5NGEw
ZTQ4OTkzNDUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgVHJhbnNmb3JtT3BlcmF0aW9uIHN1YmNsYXNzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkg
Zm9yIFRyYW5zZm9ybU9wZXJhdGlvbiBzdWJjbGFzc2VzIGFuZCBjbGVhbgorICAgICAgICB1cCB0
aGUgc3Vycm91bmRpbmcgY29kZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1PcGVy
YXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJh
dGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zv
cm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJh
bnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZlVHJhbnNm
b3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0aXZl
VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6
CisgICAgICAgIChXZWJDb3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb246OmJsZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nj
YWxlVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNr
ZXdUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2tl
d1RyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6Ymxl
bmQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uLmg6CisKIDIwMTQtMTAtMTUgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5l
YUBhZG9iZS5jb20+CiAKICAgICAgICAgVXNlIG1vZGVybiBsb29wcyBpbiBzdWJ0cmVlcyBzZWxl
Y3Rpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU0Y2I4ZGUzYzBjNDY2OTU1OThiYzdmNTI0NzJiNjg5
ODI5ZmQ3ZTguLmYzMDBjZDQyMWI1MjVhYzlhMWU2NTIwYTE0YjVlMThjZmMwOTA4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0xMC0xNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIFRyYW5z
Zm9ybU9wZXJhdGlvbiBzdWJjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzc3MzEKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBUcmFuc2Zvcm1PcGVy
YXRpb24gc3ViY2xhc3NlcyBhbmQgY2xlYW4KKyAgICAgICAgdXAgdGhlIHN1cnJvdW5kaW5nIGNv
ZGUuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRy
YW5zZm9ybU9wZXJhdGlvbnM+OjplbmNvZGUpOgorCiAyMDE0LTEwLTE0ICBKb29uZ2h1biBQYXJr
ICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbV0syXVtFRkxdIEZpeCB0aGUg
cHJvYmxlbSB0aGF0IHRocmVhZHMgY3JlYXRlZCBieSBhIERpc3BhdGNoUXVldWVFZmwgYXJlIG5v
dCBkZXN0cm95ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggMzk0YjJlZmE2MzAyOTZiZjZjY2U1MzgzOTAzY2ZmYzYzNmYx
NDFiYS4uM2Q3Y2Q4NTI3MWIyOTg2NDNjZDY1NWY2OTE4MTJiYmU1ODJkYjcxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAg
LTUyMSw4ICs1MjEsOCBAQCBpbnQgR3JhcGhpY3NMYXllcjo6dmFsaWRhdGVUcmFuc2Zvcm1PcGVy
YXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZUxpcwogICAgIH0KIAogICAgIC8v
IEtleWZyYW1lcyBhcmUgdmFsaWQsIGNoZWNrIGZvciBiaWcgcm90YXRpb25zLiAgICAKLSAgICBk
b3VibGUgbGFzdFJvdEFuZ2xlID0gMC4wOwotICAgIGRvdWJsZSBtYXhSb3RBbmdsZSA9IC0xLjA7
CisgICAgZG91YmxlIGxhc3RSb3RhdGlvbkFuZ2xlID0gMC4wOworICAgIGRvdWJsZSBtYXhSb3Rh
dGlvbkFuZ2xlID0gLTEuMDsKICAgICAgICAgCiAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBm
aXJzdFZhbC5vcGVyYXRpb25zKCkuc2l6ZSgpOyArK2opIHsKICAgICAgICAgVHJhbnNmb3JtT3Bl
cmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBmaXJzdFZhbC5vcGVyYXRpb25zKCkuYXQoaikt
PnR5cGUoKTsKQEAgLTUzMiwyMyArNTMyLDIzIEBAIGludCBHcmFwaGljc0xheWVyOjp2YWxpZGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGlzCiAg
ICAgICAgICAgICB0eXBlID09IFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1kgfHwKICAgICAg
ICAgICAgIHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWiB8fAogICAgICAgICAg
ICAgdHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV8zRCkgewotICAgICAgICAgICAg
bGFzdFJvdEFuZ2xlID0gdG9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24oZmlyc3RWYWwub3BlcmF0
aW9ucygpLmF0KGopLmdldCgpKS0+YW5nbGUoKTsKKyAgICAgICAgICAgIGxhc3RSb3RhdGlvbkFu
Z2xlID0gZG93bmNhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uPigqZmlyc3RWYWwub3BlcmF0
aW9ucygpLmF0KGopKS5hbmdsZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobWF4
Um90QW5nbGUgPCAwKQotICAgICAgICAgICAgICAgIG1heFJvdEFuZ2xlID0gZmFicyhsYXN0Um90
QW5nbGUpOworICAgICAgICAgICAgaWYgKG1heFJvdGF0aW9uQW5nbGUgPCAwKQorICAgICAgICAg
ICAgICAgIG1heFJvdGF0aW9uQW5nbGUgPSBmYWJzKGxhc3RSb3RhdGlvbkFuZ2xlKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0SW5kZXggKyAxOyBpIDwg
dmFsdWVMaXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgVHJhbnNmb3Jt
T3BlcmF0aW9ucyYgdmFsID0gb3BlcmF0aW9uc0F0KHZhbHVlTGlzdCwgaSk7Ci0gICAgICAgICAg
ICAgICAgZG91YmxlIHJvdEFuZ2xlID0gdmFsLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCkgPyAwIDog
KHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKHZhbC5vcGVyYXRpb25zKCkuYXQoaikuZ2V0KCkp
LT5hbmdsZSgpKTsKLSAgICAgICAgICAgICAgICBkb3VibGUgZGlmZkFuZ2xlID0gZmFicyhyb3RB
bmdsZSAtIGxhc3RSb3RBbmdsZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGRpZmZBbmdsZSA+IG1h
eFJvdEFuZ2xlKQotICAgICAgICAgICAgICAgICAgICBtYXhSb3RBbmdsZSA9IGRpZmZBbmdsZTsK
LSAgICAgICAgICAgICAgICBsYXN0Um90QW5nbGUgPSByb3RBbmdsZTsKKyAgICAgICAgICAgICAg
ICBkb3VibGUgcm90YXRpb25BbmdsZSA9IHZhbC5vcGVyYXRpb25zKCkuaXNFbXB0eSgpID8gMCA6
IGRvd25jYXN0PFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oKnZhbC5vcGVyYXRpb25zKCkuYXQo
aikpLmFuZ2xlKCk7CisgICAgICAgICAgICAgICAgZG91YmxlIGRpZmZBbmdsZSA9IGZhYnMocm90
YXRpb25BbmdsZSAtIGxhc3RSb3RhdGlvbkFuZ2xlKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlm
ZkFuZ2xlID4gbWF4Um90YXRpb25BbmdsZSkKKyAgICAgICAgICAgICAgICAgICAgbWF4Um90YXRp
b25BbmdsZSA9IGRpZmZBbmdsZTsKKyAgICAgICAgICAgICAgICBsYXN0Um90YXRpb25BbmdsZSA9
IHJvdGF0aW9uQW5nbGU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0g
ICAgaGFzQmlnUm90YXRpb24gPSBtYXhSb3RBbmdsZSA+PSAxODAuMDsKKyAgICBoYXNCaWdSb3Rh
dGlvbiA9IG1heFJvdGF0aW9uQW5nbGUgPj0gMTgwLjA7CiAgICAgCiAgICAgcmV0dXJuIGZpcnN0
SW5kZXg7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2MDYxN2MyZTBmNzA3NTIyNTMwYzMxMzEyM2M3
NGRkYzk0MDZjZmI1Li5jNTRmYTlkMjM5MzVhYTg2ZGZlMTg1OTYxYzY0YjY2YTI3ZDljMzg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5jcHAKQEAgLTEyOSwyNSArMTI5LDI1IEBAIHN0YXRpYyB2b2lkIGdldFRyYW5z
Zm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiB0cmFuc2Zvcm1PcCwg
VHJhCiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURToKICAgICBjYXNlIFRyYW5z
Zm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1g6CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlJP
VEFURV9ZOgotICAgICAgICB2YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9G
bG9hdChkZWcycmFkKHRvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKS0+YW5n
bGUoKSkpIDogMDsKKyAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lv
blRvRmxvYXQoZGVnMnJhZChkb3duY2FzdDxSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24+KCp0cmFu
c2Zvcm1PcCkuYW5nbGUoKSkpIDogMDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUcmFuc2Zv
cm1PcGVyYXRpb246OlNDQUxFX1g6Ci0gICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJy
b3dQcmVjaXNpb25Ub0Zsb2F0KHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24odHJhbnNmb3JtT3Ap
LT54KCkpIDogMTsKKyAgICAgICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lv
blRvRmxvYXQoZG93bmNhc3Q8U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24+KCp0cmFuc2Zvcm1PcCku
eCgpKSA6IDE7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpT
Q0FMRV9ZOgotICAgICAgICB2YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9G
bG9hdCh0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKHRyYW5zZm9ybU9wKS0+eSgpKSA6IDE7Cisg
ICAgICAgIHZhbHVlID0gdHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGRvd25j
YXN0PFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLnkoKSkgOiAxOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6U0NBTEVfWjoKLSAgICAg
ICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodG9TY2FsZVRy
YW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPnooKSkgOiAxOworICAgICAgICB2YWx1ZSA9
IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChkb3duY2FzdDxTY2FsZVRyYW5z
Zm9ybU9wZXJhdGlvbj4oKnRyYW5zZm9ybU9wKS56KCkpIDogMTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9YOgotICAgICAgICB2YWx1ZSA9
IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh0b1RyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPngoc2l6ZSkpIDogMDsKKyAgICAgICAgdmFsdWUgPSB0
cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZG93bmNhc3Q8VHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLngoc2l6ZSkpIDogMDsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZOgotICAgICAgICB2
YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh0b1RyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPnkoc2l6ZSkpIDogMDsKKyAgICAgICAgdmFs
dWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZG93bmNhc3Q8VHJhbnNs
YXRlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLnkoc2l6ZSkpIDogMDsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aOgotICAg
ICAgICB2YWx1ZSA9IHRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh0b1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbih0cmFuc2Zvcm1PcCktPnooc2l6ZSkpIDogMDsKKyAgICAg
ICAgdmFsdWUgPSB0cmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZG93bmNhc3Q8
VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uPigqdHJhbnNmb3JtT3ApLnooc2l6ZSkpIDogMDsK
ICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0xNTksNyAr
MTU5LDcgQEAgc3RhdGljIHZvaWQgZ2V0VHJhbnNmb3JtRnVuY3Rpb25WYWx1ZShjb25zdCBUcmFu
c2Zvcm1PcGVyYXRpb24qIHRyYW5zZm9ybU9wLCBUcmEKICAgICBzd2l0Y2ggKHRyYW5zZm9ybVR5
cGUpIHsKICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6U0NBTEU6CiAgICAgY2FzZSBUcmFu
c2Zvcm1PcGVyYXRpb246OlNDQUxFXzNEOiB7Ci0gICAgICAgIGNvbnN0IFNjYWxlVHJhbnNmb3Jt
T3BlcmF0aW9uKiBzY2FsZVRyYW5zZm9ybU9wID0gdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbih0
cmFuc2Zvcm1PcCk7CisgICAgICAgIGNvbnN0IGF1dG8qIHNjYWxlVHJhbnNmb3JtT3AgPSBkb3du
Y2FzdDxTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbj4odHJhbnNmb3JtT3ApOwogICAgICAgICB2YWx1
ZS5zZXRYKHNjYWxlVHJhbnNmb3JtT3AgPyBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHNjYWxlVHJh
bnNmb3JtT3AtPngoKSkgOiAxKTsKICAgICAgICAgdmFsdWUuc2V0WShzY2FsZVRyYW5zZm9ybU9w
ID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdChzY2FsZVRyYW5zZm9ybU9wLT55KCkpIDogMSk7CiAg
ICAgICAgIHZhbHVlLnNldFooc2NhbGVUcmFuc2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxv
YXQoc2NhbGVUcmFuc2Zvcm1PcC0+eigpKSA6IDEpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRp
YyB2b2lkIGdldFRyYW5zZm9ybUZ1bmN0aW9uVmFsdWUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9u
KiB0cmFuc2Zvcm1PcCwgVHJhCiAgICAgfQogICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpU
UkFOU0xBVEU6CiAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV8zRDogewot
ICAgICAgICBjb25zdCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIHRyYW5zbGF0ZVRyYW5z
Zm9ybU9wID0gdG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24odHJhbnNmb3JtT3ApOworICAg
ICAgICBjb25zdCBhdXRvKiB0cmFuc2xhdGVUcmFuc2Zvcm1PcCA9IGRvd25jYXN0PFRyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbj4odHJhbnNmb3JtT3ApOwogICAgICAgICB2YWx1ZS5zZXRYKHRy
YW5zbGF0ZVRyYW5zZm9ybU9wID8gbmFycm93UHJlY2lzaW9uVG9GbG9hdCh0cmFuc2xhdGVUcmFu
c2Zvcm1PcC0+eChzaXplKSkgOiAwKTsKICAgICAgICAgdmFsdWUuc2V0WSh0cmFuc2xhdGVUcmFu
c2Zvcm1PcCA/IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodHJhbnNsYXRlVHJhbnNmb3JtT3AtPnko
c2l6ZSkpIDogMCk7CiAgICAgICAgIHZhbHVlLnNldFoodHJhbnNsYXRlVHJhbnNmb3JtT3AgPyBu
YXJyb3dQcmVjaXNpb25Ub0Zsb2F0KHRyYW5zbGF0ZVRyYW5zZm9ybU9wLT56KHNpemUpKSA6IDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IDI3
ZjUwNTg2MjFlZmM0NTg4MjliZTAyNTU0YmUzOGVjNGVkMmI5NGQuLjkxYjE1M2I5NGYyZWRmNTIz
NDlkODY4OTM1NmMyMmZmZjA0ZjIzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0lkZW50aXR5VHJh
bnNmb3JtT3BlcmF0aW9uLmgKQEAgLTYyLDggKzYyLDggQEAgcHJpdmF0ZToKIAogfTsKIAotVFJB
TlNGT1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24sIHR5
cGUoKSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OklERU5USVRZKTsKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJD
b3JlOjpJZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbiwgdHlwZSgpID09IFdlYkNvcmU6OlRyYW5z
Zm9ybU9wZXJhdGlvbjo6SURFTlRJVFkpCisKICNlbmRpZiAvLyBJZGVudGl0eVRyYW5zZm9ybU9w
ZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwCmluZGV4IDUyOWY3NTBiNjQ3MGY2NzlkMGExNzM1NjdiMWZmMmY4ZGJlZWIxZWYuLmJkMjM5
NmMyN2UxYzI5ZDBiZjFiZWYzMDNjYjU1Njg1ODU5MjFiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0zMCwxMiArMzAsOSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb246Om9w
ZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAorYm9vbCBNYXRyaXgz
RFRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24m
IG90aGVyKSBjb25zdAogewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGNvbnN0IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uJiBtID0gdG9NYXRy
aXgzRFRyYW5zZm9ybU9wZXJhdGlvbihvKTsKLSAgICByZXR1cm4gbV9tYXRyaXggPT0gbS5tX21h
dHJpeDsKKyAgICByZXR1cm4gaXNTYW1lVHlwZShvdGhlcikgJiYgbV9tYXRyaXggPT0gZG93bmNh
c3Q8TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24+KG90aGVyKS5tX21hdHJpeDsKIH0KIAogUGFz
c1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpi
bGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVzcywgYm9v
bCBibGVuZFRvSWRlbnRpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3Bl
cmF0aW9uLmgKaW5kZXggMjFkMzlmZTYyMzQyZjkyYmJhZjM2ZTczYWU4ZTdkMjI0ODEwYmQ2My4u
MzEyYmQzZGY3YjNmY2ExOGY4N2Q4NGZiZDAxYzg4YmM3OTg0MTljNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9y
bU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNjMsOCArNjMsOCBAQCBwcml2
YXRlOgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fbWF0cml4OwogfTsKIAotVFJBTlNGT1JN
T1BFUkFUSU9OX1RZUEVfQ0FTVFMoTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUoKSA9
PSBUcmFuc2Zvcm1PcGVyYXRpb246Ok1BVFJJWF8zRCk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6
TWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUoKSA9PSBXZWJDb3JlOjpUcmFuc2Zvcm1P
cGVyYXRpb246Ok1BVFJJWF8zRCkKKwogI2VuZGlmIC8vIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRl
eCBiMDYwYjllZjIwN2ZkZDNkYTJjZWU4ZDljOWVlOGFmZDhhNGQxMzA3Li40OGE3YjU5MWNkZDU1
ZTAyNDExMWZhMGVmMjdjMjUyNWJjN2E3NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1ib29sIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0Citib29sIE1hdHJpeFRyYW5zZm9ybU9wZXJh
dGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAog
ewotICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAgICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9u
JiBtID0gdG9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24obyk7CisgICAgY29uc3QgTWF0cml4VHJh
bnNmb3JtT3BlcmF0aW9uJiBtID0gZG93bmNhc3Q8TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uPihv
dGhlcik7CiAgICAgcmV0dXJuIG1fYSA9PSBtLm1fYSAmJiBtX2IgPT0gbS5tX2IgJiYgbV9jID09
IG0ubV9jICYmIG1fZCA9PSBtLm1fZCAmJiBtX2UgPT0gbS5tX2UgJiYgbV9mID09IG0ubV9mOwog
fQogCkBAIC00MCwxMSArNDAsMTAgQEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IE1h
dHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmb3JtT3AKICAgICAgICAg
cmV0dXJuIHRoaXM7CiAKICAgICAvLyBjb252ZXJ0IHRoZSBUcmFuc2Zvcm1PcGVyYXRpb25zIGlu
dG8gbWF0cmljZXMKLSAgICBGbG9hdFNpemUgc2l6ZTsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBmcm9tVDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0b1QobV9hLCBtX2IsIG1fYywgbV9k
LCBtX2UsIG1fZik7CiAgICAgaWYgKGZyb20pIHsKLSAgICAgICAgY29uc3QgTWF0cml4VHJhbnNm
b3JtT3BlcmF0aW9uJiBtID0gdG9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24oKmZyb20pOworICAg
ICAgICBjb25zdCBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24mIG0gPSBkb3duY2FzdDxNYXRyaXhU
cmFuc2Zvcm1PcGVyYXRpb24+KCpmcm9tKTsKICAgICAgICAgZnJvbVQuc2V0TWF0cml4KG0ubV9h
LCBtLm1fYiwgbS5tX2MsIG0ubV9kLCBtLm1fZSwgbS5tX2YpOwogICAgIH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4
VHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IDVkNTUyNjQ3Y2FmYzNl
N2Q4MzBkNDg1OWM5NDI5MGIxMDRmNDUzNDYuLjIxN2QxOGRhZGFkNmQxOGIyMTNkM2RkMjJmMDc2
MWZlYjI2ODM4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24u
aApAQCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2Y7CiB9OwogCi1UUkFO
U0ZPUk1PUEVSQVRJT05fVFlQRV9DQVNUUyhNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUo
KSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246Ok1BVFJJWCk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6
TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLCB0eXBlKCkgPT0gV2ViQ29yZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uOjpNQVRSSVgpCisKICNlbmRpZiAvLyBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApp
bmRleCBiNzcxZTBiMDllOGNiZTZkMDk2YmMxMzUzMmNkZGYwMWY5ZjI4YzQ0Li5lMzllNWViOGYy
YzY5MWY4MjBjZTExM2FlNDI4YjUzZGU2ODQ4YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMzEsMTIgKzMxLDExIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlv
bjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0Citib29sIFBl
cnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1NhbWVUeXBlKG8pKQorICAgIGlm
ICghaXNTYW1lVHlwZShvdGhlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCBQ
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbiYgcCA9IHRvUGVyc3BlY3RpdmVUcmFuc2Zvcm1P
cGVyYXRpb24obyk7Ci0gICAgcmV0dXJuIG1fcCA9PSBwLm1fcDsKKyAgICByZXR1cm4gbV9wID09
IGRvd25jYXN0PFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uPihvdGhlcikubV9wOwogfQog
CiBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbSwgZG91YmxlIHByb2dy
ZXNzLCBib29sIGJsZW5kVG9JZGVudGl0eSkKQEAgLTUwLDcgKzQ5LDcgQEAgUGFzc1JlZlB0cjxU
cmFuc2Zvcm1PcGVyYXRpb24+IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChj
b25zdCBUcmFuc2YKICAgICAgICAgcmV0dXJuIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
OjpjcmVhdGUoTGVuZ3RoKGNsYW1wVG9Qb3NpdGl2ZUludGVnZXIocCksIEZpeGVkKSk7CiAgICAg
fQogICAgIAotICAgIGNvbnN0IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3Ag
PSB0b1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOworICAgIGNvbnN0IFBlcnNw
ZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBkb3duY2FzdDxQZXJzcGVjdGl2ZVRy
YW5zZm9ybU9wZXJhdGlvbj4oZnJvbSk7CiAgICAgTGVuZ3RoIGZyb21QID0gZnJvbU9wID8gZnJv
bU9wLT5tX3AgOiBMZW5ndGgobV9wLnR5cGUoKSk7CiAgICAgTGVuZ3RoIHRvUCA9IG1fcDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4
IDFmMTYyY2Y1NjMzY2UxMmEzMzYwYTA3OWZlNWNiYjhjODllNTgyNWUuLmE1ZWZjOTEyYWYzODMy
Nzk1NWM1ZjI2YjI1ZDA2MTJiYzMwMTZhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNw
ZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTY1LDggKzY1LDggQEAgcHJpdmF0ZToKICAg
ICBMZW5ndGggbV9wOwogfTsKIAotVFJBTlNGT1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoUGVyc3Bl
Y3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24sIHR5cGUoKSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlBF
UlNQRUNUSVZFKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX1RSQU5TRk9STU9QRVJBVElPTihXZWJDb3JlOjpQZXJzcGVjdGl2ZVRyYW5zZm9ybU9w
ZXJhdGlvbiwgdHlwZSgpID09IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbjo6UEVSU1BFQ1RJ
VkUpCisKICNlbmRpZiAvLyBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRy
YW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggYjZhODdiNTk0Njg0
NDlmOTVhNmRmMjBjOTRiNjIwMmY2NWJjNzgxZC4uYmNlZjg1ZTA1OTI3ZTVmYmRiZThkMzkzZWNh
NTI4NGE2MTM0MWIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcApAQCAtMjgsMTEgKzI4LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9v
bCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9uJiBvKSBjb25zdAorYm9vbCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246Om9wZXJhdG9y
PT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAoIWlz
U2FtZVR5cGUobykpCisgICAgaWYgKCFpc1NhbWVUeXBlKG90aGVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGNvbnN0IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiYgciA9IHRvUm90YXRl
VHJhbnNmb3JtT3BlcmF0aW9uKG8pOworICAgIGNvbnN0IFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
biYgciA9IGRvd25jYXN0PFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpOwogICAgIHJl
dHVybiBtX3ggPT0gci5tX3ggJiYgbV95ID09IHIubV95ICYmIG1feiA9PSByLm1feiAmJiBtX2Fu
Z2xlID09IHIubV9hbmdsZTsKIH0KIApAQCAtNDQsNyArNDQsNyBAQCBQYXNzUmVmUHRyPFRyYW5z
Zm9ybU9wZXJhdGlvbj4gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFu
c2Zvcm1PcAogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCiAgICAgICAgIHJldHVybiBSb3RhdGVU
cmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShtX3gsIG1feSwgbV96LCBtX2FuZ2xlIC0gbV9hbmds
ZSAqIHByb2dyZXNzLCBtX3R5cGUpOwogICAgIAotICAgIGNvbnN0IFJvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbiogZnJvbU9wID0gdG9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24oZnJvbSk7CisgICAg
Y29uc3QgUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBkb3duY2FzdDxSb3RhdGVU
cmFuc2Zvcm1PcGVyYXRpb24+KGZyb20pOwogICAgIAogICAgIC8vIE9wdGltaXplIGZvciBzaW5n
bGUgYXhpcyByb3RhdGlvbgogICAgIGlmICghZnJvbU9wIHx8IChmcm9tT3AtPm1feCA9PSAwICYm
IGZyb21PcC0+bV95ID09IDAgJiYgZnJvbU9wLT5tX3ogPT0gMSkgfHwgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA2N2M5YmQ1NzIxNTk0MzcyMDRiZmQz
MDI3N2NjOGFiMTRjYmU5Y2ViLi5mN2NjODEyZWJjMDk0MDBmNWViYjIyY2U1MWIzMGE5NGViN2E1
YWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTc5
LDggKzc5LDggQEAgcHJpdmF0ZToKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsKIH07CiAKLVRS
QU5TRk9STU9QRVJBVElPTl9UWVBFX0NBU1RTKFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNS
b3RhdGVUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6OlJv
dGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiwgaXNSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkp
CisKICNlbmRpZiAvLyBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9w
ZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA1NmE2ZDBmNjE5NzJhM2JlNDFlNmIw
ODNkOGE4OTkxYjg4OTE3OTIzLi5iNDllMGQxZDFjZDE3MTg0ZWUxOTNmODUwODk3YTMwNTBjZDc3
ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAt
MjYsMTEgKzI2LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBTY2FsZVRyYW5z
Zm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNv
bnN0Citib29sIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5z
Zm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1NhbWVUeXBlKG8pKQor
ICAgIGlmICghaXNTYW1lVHlwZShvdGhlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBj
b25zdCBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbiYgcyA9IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b24obyk7CisgICAgY29uc3QgU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24mIHMgPSBkb3duY2FzdDxT
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbj4ob3RoZXIpOwogICAgIHJldHVybiBtX3ggPT0gcy5tX3gg
JiYgbV95ID09IHMubV95ICYmIG1feiA9PSBzLm1fejsKIH0KIApAQCAtNDQsNyArNDQsNyBAQCBQ
YXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb246OmJs
ZW5kKGNvbnN0IFRyYW5zZm9ybU9wZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZChtX3ksIDEuMCwgcHJvZ3Jlc3MpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpibGVuZCht
X3osIDEuMCwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwogICAgIAotICAgIGNvbnN0IFNjYWxlVHJhbnNm
b3JtT3BlcmF0aW9uKiBmcm9tT3AgPSB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOwor
ICAgIGNvbnN0IFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tT3AgPSBkb3duY2FzdDxTY2Fs
ZVRyYW5zZm9ybU9wZXJhdGlvbj4oZnJvbSk7CiAgICAgZG91YmxlIGZyb21YID0gZnJvbU9wID8g
ZnJvbU9wLT5tX3ggOiAxLjA7CiAgICAgZG91YmxlIGZyb21ZID0gZnJvbU9wID8gZnJvbU9wLT5t
X3kgOiAxLjA7CiAgICAgZG91YmxlIGZyb21aID0gZnJvbU9wID8gZnJvbU9wLT5tX3ogOiAxLjA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggMDJmMGMzNjQw
ZmQzZjQ3MWVjOWVjOTFmZTUxNTQ4YjkyZmQ0NDYwMi4uYzJlMWNkN2Y4ZjFhNTlhZWUwOWZjMWI0
NTgxYWU2ZWUyNzU4ODQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b24uaApAQCAtNzYsOCArNzYsOCBAQCBwcml2YXRlOgogICAgIE9wZXJhdGlvblR5cGUgbV90eXBl
OwogfTsKIAotVFJBTlNGT1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoU2NhbGVUcmFuc2Zvcm1PcGVy
YXRpb24sIGlzU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb25UeXBlKCkpOwotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdl
YkNvcmU6OlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLCBpc1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9u
VHlwZSgpKQorCiAjZW5kaWYgLy8gU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNm
b3JtT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggZjU5ZGI5ZWQ5N2RjZDA4YTYx
NjUxOTY4MmNlNDJhMjZmMmY5ZWQzMi4uYTQ1ZGVkYWRlYmQ2NjViMDdmNzQ1M2Y4NTdjNTA2NzE4
NjQyYzMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBA
IC0yNiwxMSArMjYsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIFNrZXdUcmFu
c2Zvcm1PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBj
b25zdAorYm9vbCBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpvcGVyYXRvcj09KGNvbnN0IFRyYW5z
Zm9ybU9wZXJhdGlvbiYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFpc1NhbWVUeXBlKG8pKQor
ICAgIGlmICghaXNTYW1lVHlwZShvdGhlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBj
b25zdCBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uJiBzID0gdG9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9u
KG8pOworICAgIGNvbnN0IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24mIHMgPSBkb3duY2FzdDxTa2V3
VHJhbnNmb3JtT3BlcmF0aW9uPihvdGhlcik7CiAgICAgcmV0dXJuIG1fYW5nbGVYID09IHMubV9h
bmdsZVggJiYgbV9hbmdsZVkgPT0gcy5tX2FuZ2xlWTsKIH0KIApAQCAtNDIsNyArNDIsNyBAQCBQ
YXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Ymxl
bmQoY29uc3QgVHJhbnNmb3JtT3BlcgogICAgIGlmIChibGVuZFRvSWRlbnRpdHkpCiAgICAgICAg
IHJldHVybiBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoV2ViQ29yZTo6YmxlbmQobV9h
bmdsZVgsIDAuMCwgcHJvZ3Jlc3MpLCBXZWJDb3JlOjpibGVuZChtX2FuZ2xlWSwgMC4wLCBwcm9n
cmVzcyksIG1fdHlwZSk7CiAgICAgCi0gICAgY29uc3QgU2tld1RyYW5zZm9ybU9wZXJhdGlvbiog
ZnJvbU9wID0gdG9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOworICAgIGNvbnN0IFNrZXdU
cmFuc2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IGRvd25jYXN0PFNrZXdUcmFuc2Zvcm1PcGVyYXRp
b24+KGZyb20pOwogICAgIGRvdWJsZSBmcm9tQW5nbGVYID0gZnJvbU9wID8gZnJvbU9wLT5tX2Fu
Z2xlWCA6IDA7CiAgICAgZG91YmxlIGZyb21BbmdsZVkgPSBmcm9tT3AgPyBmcm9tT3AtPm1fYW5n
bGVZIDogMDsKICAgICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6Y3JlYXRlKFdlYkNv
cmU6OmJsZW5kKGZyb21BbmdsZVgsIG1fYW5nbGVYLCBwcm9ncmVzcyksIFdlYkNvcmU6OmJsZW5k
KGZyb21BbmdsZVksIG1fYW5nbGVZLCBwcm9ncmVzcyksIG1fdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1P
cGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
U2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGMwM2VkYmQyYjI0Y2MyNWY2MWYxYTVjMTQ3
ZWM1MWY5N2UyMDBiNWEuLmU3ZDdhMjNiNjM1Njg1MWUxZmYzMGFmNGVhNWNkMmMyMDE0NDg3MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
U2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC02Nyw4ICs2Nyw4
IEBAIHByaXZhdGU6CiAgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7CiB9OwogCi1UUkFOU0ZPUk1P
UEVSQVRJT05fVFlQRV9DQVNUUyhTa2V3VHJhbnNmb3JtT3BlcmF0aW9uLCBpc1NrZXdUcmFuc2Zv
cm1PcGVyYXRpb25UeXBlKCkpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfVFJBTlNGT1JNT1BFUkFUSU9OKFdlYkNvcmU6OlNrZXdUcmFuc2Zvcm1P
cGVyYXRpb24sIGlzU2tld1RyYW5zZm9ybU9wZXJhdGlvblR5cGUoKSkKKwogI2VuZGlmIC8vIFNr
ZXdUcmFuc2Zvcm1PcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5k
ZXggNjg3OTk5ZDQxOTE5MWUzMzAwZDhkMzIwNDAwMjAzNDk3YjU3NGZlZS4uNjZmYzlhYjEzNWU3
MGNmOTgyNWJjMGVjMTdkMWIwNDNmNmEyNTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJh
dGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXgu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTEwMSw5ICsxMDIsMTEgQEAgcHVibGljOgogICAgIH0KIH07CiAKLSNkZWZpbmUgVFJBTlNG
T1JNT1BFUkFUSU9OX1RZUEVfQ0FTVFMoVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKLSAg
ICBUWVBFX0NBU1RTX0JBU0UoVG9WYWx1ZVR5cGVOYW1lLCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVy
YXRpb24sIHZhbHVlLCB2YWx1ZS0+cHJlZGljYXRlLCB2YWx1ZS5wcmVkaWNhdGUpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAorI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX1RSQU5T
Rk9STU9QRVJBVElPTihUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9uJiBvcGVyYXRpb24pIHsgcmV0dXJu
IG9wZXJhdGlvbi5wcmVkaWNhdGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CiAjZW5kaWYgLy8gVHJhbnNmb3JtT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCAyZTYwZmI1NGJkZGRjZTY4NDkxZmJi
ZTNlN2M2MmZiNTk4NzBmOGVmLi45MGY2MmJiZDU2YzkzMzg1NTVkYjUwYTA2N2M5NGI3YzU1ZjIy
NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIFRy
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb24mIG8pIGNvbnN0Citib29sIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6b3BlcmF0
b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG90aGVyKSBjb25zdAogewotICAgIGlmICgh
aXNTYW1lVHlwZShvKSkKKyAgICBpZiAoIWlzU2FtZVR5cGUob3RoZXIpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgY29uc3QgVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uJiB0ID0gdG9U
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24obyk7CisgICAgY29uc3QgVHJhbnNsYXRlVHJhbnNm
b3JtT3BlcmF0aW9uJiB0ID0gZG93bmNhc3Q8VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uPihv
dGhlcik7CiAgICAgcmV0dXJuIG1feCA9PSB0Lm1feCAmJiBtX3kgPT0gdC5tX3kgJiYgbV96ID09
IHQubV96OwogfQogCkBAIC00Miw3ICs0Miw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0
aW9uPiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9yCiAg
ICAgaWYgKGJsZW5kVG9JZGVudGl0eSkKICAgICAgICAgcmV0dXJuIFRyYW5zbGF0ZVRyYW5zZm9y
bU9wZXJhdGlvbjo6Y3JlYXRlKHplcm9MZW5ndGguYmxlbmQobV94LCBwcm9ncmVzcyksIHplcm9M
ZW5ndGguYmxlbmQobV95LCBwcm9ncmVzcyksIHplcm9MZW5ndGguYmxlbmQobV96LCBwcm9ncmVz
cyksIG1fdHlwZSk7CiAKLSAgICBjb25zdCBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZy
b21PcCA9IHRvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKGZyb20pOworICAgIGNvbnN0IFRy
YW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbiogZnJvbU9wID0gZG93bmNhc3Q8VHJhbnNsYXRlVHJh
bnNmb3JtT3BlcmF0aW9uPihmcm9tKTsKICAgICBMZW5ndGggZnJvbVggPSBmcm9tT3AgPyBmcm9t
T3AtPm1feCA6IHplcm9MZW5ndGg7CiAgICAgTGVuZ3RoIGZyb21ZID0gZnJvbU9wID8gZnJvbU9w
LT5tX3kgOiB6ZXJvTGVuZ3RoOwogICAgIExlbmd0aCBmcm9tWiA9IGZyb21PcCA/IGZyb21PcC0+
bV96IDogemVyb0xlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oCmluZGV4IGYxNGU0NjU4ZTA2NWU4Y2ExMjZiMzc0NzBlOWIwOTI4Zjg4MWM5ZmQu
LjNlMWViYThiZTFkNDFkNTRjYTljMDNlNDk5Y2Y0ODUyY2Q2ZDA0YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNm
b3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtODIsOCArODIsOCBAQCBw
cml2YXRlOgogICAgIE9wZXJhdGlvblR5cGUgbV90eXBlOwogfTsKIAotVFJBTlNGT1JNT1BFUkFU
SU9OX1RZUEVfQ0FTVFMoVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLCBpc1RyYW5zbGF0ZVRy
YW5zZm9ybU9wZXJhdGlvblR5cGUoKSk7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19UUkFOU0ZPUk1PUEVSQVRJT04oV2ViQ29yZTo6VHJhbnNsYXRl
VHJhbnNmb3JtT3BlcmF0aW9uLCBpc1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvblR5cGUoKSkK
KwogI2VuZGlmIC8vIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlM2Qy
YzRjYjQ0ZjE5MDJjNmZmMzMyYTBmODUwZDYyYmE5NzAxNDQ5Li5jZjZlNGE3YmFlM2ViMjllZGI2
NTgxM2U2MDI3NGViN2Q0OWUyYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTE3MSw4ICsxNzEsNyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsCiB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46
OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlv
bnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBjb25z
dCBUcmFuc2Zvcm1PcGVyYXRpb24qIG9wZXJhdGlvbiA9IHRyYW5zZm9ybU9wZXJhdGlvbnMuYXQo
aSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBvcGVyYXRpb24gOiB0cmFuc2Zvcm1PcGVyYXRpb25z
Lm9wZXJhdGlvbnMoKSkgewogICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0ob3BlcmF0aW9uLT50
eXBlKCkpOwogCiAgICAgICAgIHN3aXRjaCAob3BlcmF0aW9uLT50eXBlKCkpIHsKQEAgLTE4MCw0
MyArMTc5LDUxIEBAIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QKICAgICAgICAgY2FzZSBUcmFuc2Zv
cm1PcGVyYXRpb246OlNDQUxFX1k6CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpT
Q0FMRToKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFX1o6Ci0gICAgICAg
IGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpTQ0FMRV8zRDoKLSAgICAgICAgICAgIGVuY29kZXIg
PDwgdG9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT54KCk7Ci0gICAgICAgICAg
ICBlbmNvZGVyIDw8IHRvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+eSgpOwot
ICAgICAgICAgICAgZW5jb2RlciA8PCB0b1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlv
biktPnooKTsKKyAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlNDQUxFXzNEOiB7Cisg
ICAgICAgICAgICBjb25zdCBhdXRvJiBzY2FsZU9wZXJhdGlvbiA9IGRvd25jYXN0PFNjYWxlVHJh
bnNmb3JtT3BlcmF0aW9uPigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgc2Nh
bGVPcGVyYXRpb24ueCgpOworICAgICAgICAgICAgZW5jb2RlciA8PCBzY2FsZU9wZXJhdGlvbi55
KCk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IHNjYWxlT3BlcmF0aW9uLnooKTsKICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpU
UkFOU0xBVEVfWDoKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9Z
OgogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFOgogICAgICAgICBj
YXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1o6Ci0gICAgICAgIGNhc2UgVHJhbnNm
b3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6Ci0gICAgICAgICAgICBBcmd1bWVudENvZGVyPExl
bmd0aD46OmVuY29kZShlbmNvZGVyLCB0b1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbihvcGVy
YXRpb24pLT54KCkpOwotICAgICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUo
ZW5jb2RlciwgdG9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+eSgpKTsK
LSAgICAgICAgICAgIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIHRvVHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnooKSk7CisgICAgICAgIGNhc2Ug
VHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0Q6IHsKKyAgICAgICAgICAgIGNvbnN0IGF1
dG8mIHRyYW5zbGF0ZU9wZXJhdGlvbiA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbj4oKm9wZXJhdGlvbik7CisgICAgICAgICAgICBBcmd1bWVudENvZGVyPExlbmd0aD46OmVu
Y29kZShlbmNvZGVyLCB0cmFuc2xhdGVPcGVyYXRpb24ueCgpKTsKKyAgICAgICAgICAgIEFyZ3Vt
ZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIHRyYW5zbGF0ZU9wZXJhdGlvbi55KCkp
OworICAgICAgICAgICAgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2RlciwgdHJh
bnNsYXRlT3BlcmF0aW9uLnooKSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
ICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6Uk9UQVRFOgogICAgICAgICBjYXNlIFRyYW5z
Zm9ybU9wZXJhdGlvbjo6Uk9UQVRFX1g6CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9u
OjpST1RBVEVfWToKLSAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV8zRDoK
LSAgICAgICAgICAgIGVuY29kZXIgPDwgdG9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0
aW9uKS0+eCgpOwotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1JvdGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbihvcGVyYXRpb24pLT55KCk7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IHRvUm90YXRlVHJh
bnNmb3JtT3BlcmF0aW9uKG9wZXJhdGlvbiktPnooKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwg
dG9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+YW5nbGUoKTsKKyAgICAgICAg
Y2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV8zRDogeworICAgICAgICAgICAgY29uc3Qg
YXV0byYgcm90YXRlT3BlcmF0aW9uID0gZG93bmNhc3Q8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9u
Pigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLngo
KTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLnkoKTsKKyAgICAgICAg
ICAgIGVuY29kZXIgPDwgcm90YXRlT3BlcmF0aW9uLnooKTsKKyAgICAgICAgICAgIGVuY29kZXIg
PDwgcm90YXRlT3BlcmF0aW9uLmFuZ2xlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6U0tFV19YOgogICAgICAgICBjYXNl
IFRyYW5zZm9ybU9wZXJhdGlvbjo6U0tFV19ZOgotICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJh
dGlvbjo6U0tFVzoKLSAgICAgICAgICAgIGVuY29kZXIgPDwgdG9Ta2V3VHJhbnNmb3JtT3BlcmF0
aW9uKG9wZXJhdGlvbiktPmFuZ2xlWCgpOwotICAgICAgICAgICAgZW5jb2RlciA8PCB0b1NrZXdU
cmFuc2Zvcm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+YW5nbGVZKCk7CisgICAgICAgIGNhc2UgVHJh
bnNmb3JtT3BlcmF0aW9uOjpTS0VXOiB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBza2V3T3Bl
cmF0aW9uID0gZG93bmNhc3Q8U2tld1RyYW5zZm9ybU9wZXJhdGlvbj4oKm9wZXJhdGlvbik7Cisg
ICAgICAgICAgICBlbmNvZGVyIDw8IHNrZXdPcGVyYXRpb24uYW5nbGVYKCk7CisgICAgICAgICAg
ICBlbmNvZGVyIDw8IHNrZXdPcGVyYXRpb24uYW5nbGVZKCk7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICBjYXNlIFRyYW5zZm9ybU9wZXJhdGlvbjo6TUFUUklYOgotICAg
ICAgICAgICAgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD46OmVuY29kZShlbmNv
ZGVyLCB0b01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pLT5tYXRyaXgoKSk7Cisg
ICAgICAgICAgICBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9uTWF0cml4Pjo6ZW5jb2RlKGVu
Y29kZXIsIGRvd25jYXN0PE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbj4oKm9wZXJhdGlvbikubWF0
cml4KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0
aW9uOjpNQVRSSVhfM0Q6Ci0gICAgICAgICAgICBBcmd1bWVudENvZGVyPFRyYW5zZm9ybWF0aW9u
TWF0cml4Pjo6ZW5jb2RlKGVuY29kZXIsIHRvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24ob3Bl
cmF0aW9uKS0+bWF0cml4KCkpOworICAgICAgICAgICAgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1h
dGlvbk1hdHJpeD46OmVuY29kZShlbmNvZGVyLCBkb3duY2FzdDxNYXRyaXgzRFRyYW5zZm9ybU9w
ZXJhdGlvbj4oKm9wZXJhdGlvbikubWF0cml4KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgVHJhbnNmb3JtT3BlcmF0aW9uOjpQRVJTUEVDVElWRToKLSAgICAgICAgICAgIEFy
Z3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIHRvUGVyc3BlY3RpdmVUcmFuc2Zv
cm1PcGVyYXRpb24ob3BlcmF0aW9uKS0+cGVyc3BlY3RpdmUoKSk7CisgICAgICAgICAgICBBcmd1
bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCBkb3duY2FzdDxQZXJzcGVjdGl2ZVRy
YW5zZm9ybU9wZXJhdGlvbj4oKm9wZXJhdGlvbikucGVyc3BlY3RpdmUoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBUcmFuc2Zvcm1PcGVyYXRpb246OklERU5USVRZOgogICAg
ICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>