<?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>68471</bug_id>
          
          <creation_ts>2011-09-20 14:05:43 -0700</creation_ts>
          <short_desc>Add webkit &apos;filter&apos; value to RenderStyle</short_desc>
          <delta_ts>2011-09-27 12:48:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68469</blocked>
    
    <blocked>68472</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>krit</cc>
    
    <cc>peter</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>470320</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-20 14:05:43 -0700</bug_when>
    <thetext>filter needs to be exposed to all content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470321</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-20 14:08:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/10155630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471118</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-21 13:31:49 -0700</bug_when>
    <thetext>This is wrong. Obviously the property should be prefixed, so I&apos;m retitling this to be implement a new RenderStyle value. I propose the implementation goes:

1. prefixed version for HTML. SVG filter remains untouched.
2. implement prefixed version for SVG in addition to existing filter (who wins?)
3. eventually merge when we can drop prefix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471411</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-22 00:55:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This is wrong. Obviously the property should be prefixed, so I&apos;m retitling this to be implement a new RenderStyle value. I propose the implementation goes:
&gt; 
&gt; 1. prefixed version for HTML. SVG filter remains untouched.
&gt; 2. implement prefixed version for SVG in addition to existing filter (who wins?)

But you still plan to use the same work flow and the same CSS property for both, HTML and SVG, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473396</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-26 14:38:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; This is wrong. Obviously the property should be prefixed, so I&apos;m retitling this to be implement a new RenderStyle value. I propose the implementation goes:
&gt; &gt; 
&gt; &gt; 1. prefixed version for HTML. SVG filter remains untouched.
&gt; &gt; 2. implement prefixed version for SVG in addition to existing filter (who wins?)
&gt; 
&gt; But you still plan to use the same work flow and the same CSS property for both, HTML and SVG, no?

Yes, eventually. (And eventually is not that long away - I just don&apos;t want to disrupt the working SVG filter path while CSS is in flux)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473464</commentid>
    <comment_count>5</comment_count>
      <attachid>108738</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-26 15:40:00 -0700</bug_when>
    <thetext>Created attachment 108738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473478</commentid>
    <comment_count>6</comment_count>
      <attachid>108738</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 15:46:41 -0700</bug_when>
    <thetext>Comment on attachment 108738
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FilterOperation.h:230
&gt; +    double m_offsetX;
&gt; +    double m_offsetY;

What is this offset? Is it a blur radius? If so, how is it defined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473481</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-26 15:47:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 108738 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108738&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/filters/FilterOperation.h:230
&gt; &gt; +    double m_offsetX;
&gt; &gt; +    double m_offsetY;
&gt; 
&gt; What is this offset? Is it a blur radius? If so, how is it defined?

Yes, a blur radius. We expose lengths into the filter operation. I expect we&apos;ll need to plumb them through similar to the way TranslateTransformOperation has to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473568</commentid>
    <comment_count>8</comment_count>
      <attachid>108764</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-26 17:30:26 -0700</bug_when>
    <thetext>Created attachment 108764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473573</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-26 17:33:56 -0700</bug_when>
    <thetext>New patch with Simon&apos;s change to stdDeviation. I guess I shouldn&apos;t copy the r+ (not even sure I can do that)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474159</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-09-27 12:48:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/96142</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108738</attachid>
            <date>2011-09-26 15:40:00 -0700</date>
            <delta_ts>2011-09-26 17:30:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68471-20110927083957.patch</filename>
            <type>text/plain</type>
            <size>45699</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU4ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmU1YjRj
MmQ2ZTgzYTMwYzk1MjA0NTQxNjM2Njk1MjQ5YjNiZWE5ZC4uMjA1YmZiMWZhOTc1NGQyN2UzYzA0
NzA4NjVmYzFjOWVlYjY4OTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwOTksNiArMTA5
OSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9TcG90TGlnaHRTb3VyY2UuY3BwCkBAIC0xMjc4LDYgKzEyNzksNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUZpbHRlckRhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRh
LmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZiMGVm
NGU1MjhiOTM5ZWU3MjUwNTZiOGMwMDBmZDVlYThkY2JlZS4uOTYxMWE5OTlmZjBkMzk5NWU2Nzk2
ZWQ2ZDI4YWEzNGYzMzRmODU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDExLTA5
LTI2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgJ2ZpbHRl
cicgdmFsdWUgdG8gUmVuZGVyU3R5bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgZmlsdGVyIHByb3BlcnR5IHRvIFJlbmRlclN0eWxlIHdoZW4g
RU5BQkxFKENTU19GSUxURVJTKQorICAgICAgICBpcyB0dXJuZWQgb24uIFNpbWlsYXIgdG8gLXdl
YmtpdC10cmFuc2Zvcm0sIC13ZWJraXQtZmlsdGVyIGlzIGEKKyAgICAgICAgbGlzdCBvZiBGaWx0
ZXJPcGVyYXRpb25zLCBlYWNoIGlkZW50aWZ5aW5nIHdoYXQgdHlwZSBvZiBvcGVyYXRpb24KKyAg
ICAgICAgaXQgaXMuIFRoaXMgY2hhbmdlIHNpbXBseSBhZGRzIHRoZSBiYXNpYyBvYmplY3RzLCBp
dCBkb2VzIG5vdAorICAgICAgICBwYXJzZSB0aGUgcHJvcGVydHkgdG8gZ2VuZXJhdGUgdGhlIGxp
c3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJPcGVyYXRpb246On5GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9uOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbjo6Z2V0T3BlcmF0aW9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b246OmlzU2FtZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uOjpGaWx0
ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uOjpy
ZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uOjpv
cGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbjo6
UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljQ29sb3JN
YXRyaXhGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY0Nv
bG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uOjphbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uOjpCYXNpY0NvbG9yTWF0cml4Rmls
dGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljQ29tcG9uZW50VHJhbnNmZXJG
aWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY0NvbXBvbmVu
dFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uOjphbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uOjpCYXNpY0Nv
bXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbW1h
RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2FtbWFGaWx0ZXJP
cGVyYXRpb246OmFtcGxpdHVkZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJh
dGlvbjo6ZXhwb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtbWFGaWx0ZXJPcGVyYXRpb246
Om9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJhdGlvbjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJhdGlvbjo6R2FtbWFGaWx0
ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckZpbHRlck9wZXJhdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsdXJGaWx0ZXJPcGVyYXRpb246Om9mZnNldFgpOgor
ICAgICAgICAoV2ViQ29yZTo6Qmx1ckZpbHRlck9wZXJhdGlvbjo6b2Zmc2V0WSk6CisgICAgICAg
IChXZWJDb3JlOjpCbHVyRmlsdGVyT3BlcmF0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdl
YkNvcmU6OkJsdXJGaWx0ZXJPcGVyYXRpb246OkJsdXJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcnBlbkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJwZW5GaWx0ZXJPcGVyYXRpb246OnJhZGl1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFycGVuRmlsdGVyT3BlcmF0aW9uOjp0aHJlc2hvbGQpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcnBlbkZpbHRlck9wZXJhdGlvbjo6YW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJw
ZW5GaWx0ZXJPcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2hhcnBl
bkZpbHRlck9wZXJhdGlvbjo6U2hhcnBlbkZpbHRlck9wZXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbjo6c2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkRyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29y
ZTo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbjo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zOjpGaWx0ZXJPcGVy
YXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM6Om9wZXJhdG9yPT0p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM6Om9wZXJhdG9yIT0p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uczo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uczo6b3BlcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJPcGVyYXRpb25zOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnM6OmF0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmaWx0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5oZXJpdGVkRmxhZ3M6Omhhc0ZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0
ZWRGbGFnczo6c2V0RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpp
bml0aWFsRmlsdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5j
cHA6IEFkZGVkIGluY2x1ZGUgb2YgbmV3IFN0eWxlRmlsdGVyRGF0YS4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUZpbHRlckRhdGE6OlN0eWxlRmlsdGVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUZpbHRlckRhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZUZpbHRlckRhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbHRlckRh
dGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbHRlckRhdGE6OmNvcHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVGaWx0ZXJEYXRhOjpvcGVyYXRvciE9KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmg6IE5ldyBmaWx0ZXIgRGF0YVJlZi4KKwogMjAxMS0wOS0yMyAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC13ZWJraXQtZmlsdGVyIHRvIENTU1By
b3BlcnR5TmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhhNDY0MzQzMTE4
NzI2NWI4OGMzNTEyNTAzMDg2YmYzZTllZWYyMWIuLmU5ZTM0YzA0NzU0ZGQxYmYwM2Y1ZDYxNjhk
OGZhNjEzMjI0ZmQ2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjQ3Niw5
ICsyNDc2LDEyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmggXAotCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291
cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdo
dFNvdXJjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Bv
aW50TGlnaHRTb3VyY2UuY3BwIFwKQEAgLTMxNjMsNiArMzE2Niw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVn
aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRG
bGV4aWJsZUJveERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDkyMjhk
MDU1MTg3ZDI3ZTUxOTFkNTJiODRjZmE3ZjdmMjliMWE4N2MuLjBkN2M1NWRiYzAyZmMxNDM0Mzkw
OWQ3ODU4YWVhYzJkMzgyYmE1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTkzNiw2ICs5MzYsNyBA
QAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURhc2hib2FyZFJlZ2lvbi5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmgn
LAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgnLApAQCAtMzYxMyw2ICszNjE0LDkgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291
cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNv
dXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50TGln
aHRTb3VyY2UuY3BwJywKQEAgLTQ3ODQsNiArNDc4OCw3IEBACiAgICAgICAgICAgICAncmVuZGVy
aW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0
eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggN2U5OTFjZWY0NjM4
NzcxOTQ3MDExNDQ3MDVhYWI1NzFiMWIyY2U2ZS4uNzdmYTY5OWZiOWFhNzQxYTQzMzRjNDRlMzRk
Njk2MTU0OGM2NzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTExOTUsNiArMTE5NSw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9T
dHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUv
U3R5bGVGaWx0ZXJEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcCBcCkBAIC0xOTg2
LDYgKzE5ODcsOCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oIFwKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oIFwKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5oIFwKQEAgLTIyNjQsNiArMjI2Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUJveERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YS5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmggXAogICAg
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKICAgICByZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJ
bmhlcml0ZWREYXRhLmggXApAQCAtMzIwMyw2ICszMjA3LDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0ZJTFRFUlM9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5j
ZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3Bw
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MzRjYzVlY2UxNzFlODY3MGZjMzAzY2RkOTVjN2E2MTVjOGRhNjljYS4uZjQ4YWU0ODM4NTBkNWVk
MmIzNzQyZWM2ZjQxNDNhYWFmOTEyOTAxMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMwMDU2LDYgKzMwMDU2LDE4IEBACiAJCQkJCQk+CiAJ
CQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcZmlsdGVyc1xGaWx0ZXJPcGVyYXRpb24uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXEZpbHRlck9wZXJhdGlvbnMuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJ
CTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNc
RmlsdGVyT3BlcmF0aW9ucy5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJ
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcTGlnaHRTb3Vy
Y2UuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC00MDgwMyw2ICs0MDgxNSw2MiBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXHN0eWxlXFN0eWxlRmlsdGVyRGF0YS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVGaWx0
ZXJEYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwMDQ0ZGFhYzkyZDQ1YmM3MzM1ZGEwNjY1
NjViOWRmNTZhMWQwYzQuLjA1MWU5ZmIzNzNhYzQ2NTg3ZTM1YWFiNTc2MGZhMTNmN2Y1NzlmMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTc4NSw2ICs3ODUsMTEgQEAKIAkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRp
b25MaXN0LmggKi87IH07CiAJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRB
bmltYXRpb25MaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3Qu
bW0gKi87IH07CiAJCTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bkxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1
c3RvbS5jcHAgKi87IH07CisJCTMxOUFFMDYzMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRl
ckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE5QUUwNjExNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgKi87IH07CisJ
CTMxOUFFMDY0MTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUFFMDYyMTQyRDZCMjQwMDY1
NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkzMTlBRTA2ODE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3Bl
cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTlBRTA2NTE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzE5QUUwNjkxNDJENzhERDAw
NjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QUUwNjYxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9w
ZXJhdGlvbnMuY3BwICovOyB9OworCQkzMTlBRTA2QTE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVy
T3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE5QUUwNjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlFNjg4NzEzMjdD
OTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFB
IC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMzE5RTY5QjIxMzI5OUJC
RDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBQzEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0
QW5pbWF0aW9uLmNwcCAqLzsgfTsKIAkJMzE5RTY5QjMxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE5RTY5QUQxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5oICovOyB9OwpA
QCAtNzM1MCw2ICs3MzU1LDEzIEBACiAJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5
NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUFFMDYxMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHls
ZUZpbHRlckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5
bGVGaWx0ZXJEYXRhLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHls
ZUZpbHRlckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVGaWx0
ZXJEYXRhLmg7IHBhdGggPSBzdHlsZS9TdHlsZUZpbHRlckRhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE5QUUwNjUxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWx0ZXJPcGVyYXRpb24uaDsg
cGF0aCA9IGZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxOUFFMDY2MTQyRDc4REQwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZpbHRlck9wZXJhdGlvbnMuY3Bw
OyBwYXRoID0gZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5QUUwNjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsdGVyT3BlcmF0aW9ucy5oOyBw
YXRoID0gZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxOUFFMDZCMTQzMTMxRTAwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRmlsdGVyT3BlcmF0aW9uLmg7IHBhdGggPSBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTlBRTA2QzE0MzEzMUUwMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBGaWx0ZXJPcGVyYXRpb25zLmg7IHBhdGggPSBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RTY4
ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RTY5QUMxMzI5OUJCRDAwNEFDOTFB
IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTlFNjlBRDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTMwMDgsNiArMTMwMjAsOCBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAy
QUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkzMTlBRTA2QjE0MzEzMUUwMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9uLmggKi8s
CisJCQkJMzE5QUUwNkMxNDMxMzFFMDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLywK
IAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4
MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5
RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTE2NzQ3LDYgKzE2
NzYxLDkgQEAKIAkJCQk4NDVFNzJGNzBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggKi8sCiAJ
CQkJMDhDOTI1MTcwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5jcHAgKi8sCiAJCQkJ
MDhDOTI1MTgwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5oICovLAorCQkJCTMxOUFF
MDY1MTQyRDc4REQwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLywKKwkJCQkzMTlBRTA2
NjE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAgKi8sCisJCQkJMzE5QUUw
NjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLywKIAkJCQk4NDczMEQ3
MzEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuY3BwICovLAogCQkJCTg0NzMwRDc0MTI0
OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovLAogCQkJCUExRTExNTQ1MTMwMTVDNEUw
MDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNlLmNwcCAqLywKQEAgLTE4ODc3LDYgKzE4ODk0LDgg
QEAKIAkJCQlCQzVFQjY3RTBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNoYm9hcmRSZWdpb24u
aCAqLywKIAkJCQlCQzVFQjhCNjBFODIwMUJEMDBCMjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxl
eGlibGVCb3hEYXRhLmNwcCAqLywKIAkJCQlCQzVFQjhCNzBFODIwMUJEMDBCMjU5NjUgLyogU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggKi8sCisJCQkJMzE5QUUwNjExNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgKi8sCisJCQkJMzE5QUUwNjIxNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oICovLAogCQkJCTUzMTc2MTIwMTNDNTE2NjkwMDI2
RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCiAJCQkJNTMxNzYxMjExM0M1MTY2
OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi8sCiAJCQkJQkNFRjQ0N0MwRTY3
NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMjA0NjgsNiAr
MjA0ODcsOSBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMzE5QUUwNjQxNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5QUUwNjgx
NDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzE5QUUwNkExNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVEOEM0REMwMTQyODIyMkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlCQjNENTAwMkE4NzkwIC8qIEFic3Ry
YWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQxMEZGNTk4NjkwMDU3NkIz
QiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjMzNCw2ICsyNjM1Niw4
IEBACiAJCQkJOTc1MkQzOEQxNDEzMTA0QjAwMzMwNUJEIC8qIEpTSFRNTFNwYW5FbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTcxNDA1MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxi
YXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ4QzREQkYxNDI4MjIyQzAwMjZD
RTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUFF
MDYzMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzE5QUUwNjkxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDRjNTBkYTU1MTIx
NTNhMWRiNGM5ZWM3YWRhMzRmYzc5OGMwOTIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApAQCAtMCww
ICsxLDI5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRmlsdGVyT3BlcmF0aW9uX2gKKyNkZWZpbmUg
RmlsdGVyT3BlcmF0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKworI2luY2x1ZGUg
IlNoYWRvd0RhdGEuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENTUyBGaWx0
ZXJzCisKK2NsYXNzIEZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlck9w
ZXJhdGlvbj4geworcHVibGljOgorICAgIGVudW0gT3BlcmF0aW9uVHlwZSB7CisgICAgICAgIFJF
RkVSRU5DRSwgLy8gdXJsKCNzb21lZmlsdGVyKQorICAgICAgICBHUkFZU0NBTEUsCisgICAgICAg
IFNFUElBLAorICAgICAgICBTQVRVUkFURSwKKyAgICAgICAgSFVFX1JPVEFURSwKKyAgICAgICAg
SU5WRVJULAorICAgICAgICBPUEFDSVRZLAorICAgICAgICBHQU1NQSwKKyAgICAgICAgQkxVUiwK
KyAgICAgICAgU0hBUlBFTiwKKyAgICAgICAgRFJPUF9TSEFET1csCisgICAgICAgIE5PTkUKKyAg
ICB9OworCisgICAgdmlydHVhbCB+RmlsdGVyT3BlcmF0aW9uKCkgeyB9CisKKyAgICB2aXJ0dWFs
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mKSBjb25zdCA9IDA7CisgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4g
ISgqdGhpcyA9PSBvKTsgfQorCisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1l
VHlwZShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0
aW9uVHlwZSgpID09IG1fdHlwZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRmlsdGVyT3BlcmF0aW9u
KE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAg
fQorCisgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7Cit9OworCisvLyBFYWNoIG9mIHRoZSBpbmRp
dmlkdWFsIG9wZXJhdGlvbnMgYXJlIHByb3ZpZGVkIGhlcmUuIE9uY2UgdGhleSBhY3R1YWxseQor
Ly8gaGF2ZSBjb2RlIHRvIGFwcGx5IHRoZWlyIGVmZmVjdCB0aGV5J2xsIG1vdmUgdG8gc2VwYXJh
dGUgZmlsZXMuCisvLyBBdCB0aGUgbW9tZW50IHdlJ3JlIGp1c3Qgc3RvcmluZyB0aGUgZGF0YSBm
b3Igcm91bmR0cmlwcGluZy4KKworY2xhc3MgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uIDogcHVi
bGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVm
ZXJlbmNlRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiByZWZlcmVu
Y2UsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKHJlZmVyZW5jZSwgdHlwZSkpOworICAgIH0KKwor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVmZXJlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZWZl
cmVuY2U7IH0KKworcHJpdmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlw
ZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgUmVmZXJlbmNl
RmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IFJlZmVyZW5jZUZpbHRl
ck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fcmVmZXJlbmNlID09IG90aGVyLT5t
X3JlZmVyZW5jZTsKKyAgICB9CisKKyAgICBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24oY29uc3Qg
QXRvbWljU3RyaW5nJiByZWZlcmVuY2UsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBG
aWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAgICAgLCBtX3JlZmVyZW5jZShyZWZlcmVuY2UpCisg
ICAgeworICAgIH0KKworICAgIEF0b21pY1N0cmluZyBtX3JlZmVyZW5jZTsKK307CisKKy8vIEdS
QVlTQ0FMRSwgU0VQSUEsIFNBVFVSQVRFIGFuZCBIVUVfUk9UQVRFIGFyZSB2YXJpYXRpb25zIG9u
IGEgYmFzaWMgY29sb3IgbWF0cml4IGVmZmVjdC4KKy8vIEZvciBIVUVfUk9UQVRFLCB0aGUgYW5n
bGUgb2Ygcm90YXRpb24gaXMgc3RvcmVkIGluIG1fYW1vdW50LgorCitjbGFzcyBCYXNpY0NvbG9y
TWF0cml4RmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbj4g
Y3JlYXRlKGRvdWJsZSBhbW91bnQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbihhbW91
bnQsIHR5cGUpKTsKKyAgICB9CisKKyAgICBkb3VibGUgYW1vdW50KCkgY29uc3QgeyByZXR1cm4g
bV9hbW91bnQ7IH0KKworcHJpdmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1l
VHlwZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgQmFzaWND
b2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNp
Y0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uKj4oJm8pOworICAgICAgICByZXR1cm4gbV9hbW91
bnQgPT0gb3RoZXItPm1fYW1vdW50OworICAgIH0KKworICAgIEJhc2ljQ29sb3JNYXRyaXhGaWx0
ZXJPcGVyYXRpb24oZG91YmxlIGFtb3VudCwgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgICAgICA6
IEZpbHRlck9wZXJhdGlvbih0eXBlKQorICAgICAgICAsIG1fYW1vdW50KGFtb3VudCkKKyAgICB7
CisgICAgfQorCisgICAgZG91YmxlIG1fYW1vdW50OworfTsKKworLy8gSU5WRVJUIGFuZCBPUEFD
SVRZIGFyZSB2YXJpYXRpb25zIG9uIGEgYmFzaWMgY29tcG9uZW50IHRyYW5zZmVyIGVmZmVjdC4K
KworY2xhc3MgQmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBG
aWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljQ29t
cG9uZW50VHJhbnNmZXJGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShkb3VibGUgYW1vdW50LCBPcGVy
YXRpb25UeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2lj
Q29tcG9uZW50VHJhbnNmZXJGaWx0ZXJPcGVyYXRpb24oYW1vdW50LCB0eXBlKSk7CisgICAgfQor
CisgICAgZG91YmxlIGFtb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW1vdW50OyB9CisKK3ByaXZh
dGU6CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24m
IG8pIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbnN0IEJhc2ljQ29tcG9uZW50VHJhbnNmZXJGaWx0
ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNDb21wb25lbnRUcmFu
c2ZlckZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fYW1vdW50ID09IG90
aGVyLT5tX2Ftb3VudDsKKyAgICB9CisKKyAgICBCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVy
T3BlcmF0aW9uKGRvdWJsZSBhbW91bnQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBG
aWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAgICAgLCBtX2Ftb3VudChhbW91bnQpCisgICAgewor
ICAgIH0KKworICAgIGRvdWJsZSBtX2Ftb3VudDsKK307CisKK2NsYXNzIEdhbW1hRmlsdGVyT3Bl
cmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R2FtbWFGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShkb3VibGUgYW1wbGl0dWRlLCBk
b3VibGUgZXhwb25lbnQsIGRvdWJsZSBvZmZzZXQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2FtbWFGaWx0ZXJPcGVyYXRpb24oYW1wbGl0
dWRlLCBleHBvbmVudCwgb2Zmc2V0LCB0eXBlKSk7CisgICAgfQorCisgICAgZG91YmxlIGFtcGxp
dHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW1wbGl0dWRlOyB9CisgICAgZG91YmxlIGV4cG9uZW50
KCkgY29uc3QgeyByZXR1cm4gbV9leHBvbmVudDsgfQorICAgIGRvdWJsZSBvZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX29mZnNldDsgfQorCitwcml2YXRlOgorCisgICAgdmlydHVhbCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFpc1NhbWVUeXBlKG8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBj
b25zdCBHYW1tYUZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBHYW1t
YUZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fYW1wbGl0dWRlID09IG90
aGVyLT5tX2FtcGxpdHVkZSAmJiBtX2V4cG9uZW50ID09IG90aGVyLT5tX2V4cG9uZW50ICYmIG1f
b2Zmc2V0ID09IG90aGVyLT5tX29mZnNldDsKKyAgICB9CisKKyAgICBHYW1tYUZpbHRlck9wZXJh
dGlvbihkb3VibGUgYW1wbGl0dWRlLCBkb3VibGUgZXhwb25lbnQsIGRvdWJsZSBvZmZzZXQsIE9w
ZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAg
ICAgLCBtX2FtcGxpdHVkZShhbXBsaXR1ZGUpCisgICAgICAgICwgbV9leHBvbmVudChleHBvbmVu
dCkKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgeworICAgIH0KKworICAgIGRvdWJs
ZSBtX2FtcGxpdHVkZTsKKyAgICBkb3VibGUgbV9leHBvbmVudDsKKyAgICBkb3VibGUgbV9vZmZz
ZXQ7Cit9OworCitjbGFzcyBCbHVyRmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJh
dGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Qmx1ckZpbHRlck9wZXJhdGlv
bj4gY3JlYXRlKGRvdWJsZSBvZmZzZXRYLCBkb3VibGUgb2Zmc2V0WSwgT3BlcmF0aW9uVHlwZSB0
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVyRmlsdGVyT3BlcmF0
aW9uKG9mZnNldFgsIG9mZnNldFksIHR5cGUpKTsKKyAgICB9CisKKyAgICBkb3VibGUgb2Zmc2V0
WCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0WDsgfQorICAgIGRvdWJsZSBvZmZzZXRZKCkgY29u
c3QgeyByZXR1cm4gbV9vZmZzZXRZOyB9CisKK3ByaXZhdGU6CisKKyAgICB2aXJ0dWFsIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGNvbnN0IEJsdXJGaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmx1
ckZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fb2Zmc2V0WCA9PSBvdGhl
ci0+bV9vZmZzZXRYICYmIG1fb2Zmc2V0WSA9PSBvdGhlci0+bV9vZmZzZXRZOworICAgIH0KKwor
ICAgIEJsdXJGaWx0ZXJPcGVyYXRpb24oZG91YmxlIG9mZnNldFgsIGRvdWJsZSBvZmZzZXRZLCBP
cGVyYXRpb25UeXBlIHR5cGUpCisgICAgICAgIDogRmlsdGVyT3BlcmF0aW9uKHR5cGUpCisgICAg
ICAgICwgbV9vZmZzZXRYKG9mZnNldFgpCisgICAgICAgICwgbV9vZmZzZXRZKG9mZnNldFkpCisg
ICAgeworICAgIH0KKworICAgIGRvdWJsZSBtX29mZnNldFg7CisgICAgZG91YmxlIG1fb2Zmc2V0
WTsKK307CisKK2NsYXNzIFNoYXJwZW5GaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmlsdGVyT3Bl
cmF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFycGVuRmlsdGVyT3Bl
cmF0aW9uPiBjcmVhdGUoZG91YmxlIHJhZGl1cywgZG91YmxlIHRocmVzaG9sZCwgZG91YmxlIGFt
b3VudCwgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTaGFycGVuRmlsdGVyT3BlcmF0aW9uKHJhZGl1cywgdGhyZXNob2xkLCBhbW91bnQsIHR5
cGUpKTsKKyAgICB9CisKKyAgICBkb3VibGUgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRp
dXM7IH0KKyAgICBkb3VibGUgdGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV90aHJlc2hvbGQ7
IH0KKyAgICBkb3VibGUgYW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9hbW91bnQ7IH0KKworcHJp
dmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlv
biYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgU2hhcnBlbkZpbHRlck9wZXJhdGlvbiog
b3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBTaGFycGVuRmlsdGVyT3BlcmF0aW9uKj4oJm8pOwor
ICAgICAgICByZXR1cm4gbV9yYWRpdXMgPT0gb3RoZXItPm1fcmFkaXVzICYmIG1fdGhyZXNob2xk
ID09IG90aGVyLT5tX3RocmVzaG9sZCAmJiBtX2Ftb3VudCA9PSBvdGhlci0+bV9hbW91bnQ7Cisg
ICAgfQorCisgICAgU2hhcnBlbkZpbHRlck9wZXJhdGlvbihkb3VibGUgcmFkaXVzLCBkb3VibGUg
dGhyZXNob2xkLCBkb3VibGUgYW1vdW50LCBPcGVyYXRpb25UeXBlIHR5cGUpCisgICAgICAgIDog
RmlsdGVyT3BlcmF0aW9uKHR5cGUpCisgICAgICAgICwgbV9yYWRpdXMocmFkaXVzKQorICAgICAg
ICAsIG1fdGhyZXNob2xkKHRocmVzaG9sZCkKKyAgICAgICAgLCBtX2Ftb3VudChhbW91bnQpCisg
ICAgeworICAgIH0KKworICAgIGRvdWJsZSBtX3JhZGl1czsKKyAgICBkb3VibGUgbV90aHJlc2hv
bGQ7CisgICAgZG91YmxlIG1fYW1vdW50OworfTsKKworY2xhc3MgRHJvcFNoYWRvd0ZpbHRlck9w
ZXJhdGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShQYXNzT3duUHRyPFNo
YWRvd0RhdGE+IHNoYWRvdywgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKHNoYWRvdywgdHlwZSkp
OworICAgIH0KKworICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hhZG93LmdldCgpOyB9CisKK3ByaXZhdGU6CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeworICAgICAgICBpZiAo
IWlzU2FtZVR5cGUobykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbnN0
IERyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgRHJv
cFNoYWRvd0ZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuICptX3NoYWRvdyA9
PSAqKG90aGVyLT5tX3NoYWRvdyk7CisgICAgfQorCisgICAgRHJvcFNoYWRvd0ZpbHRlck9wZXJh
dGlvbihQYXNzT3duUHRyPFNoYWRvd0RhdGE+IHNoYWRvdywgT3BlcmF0aW9uVHlwZSB0eXBlKQor
ICAgICAgICA6IEZpbHRlck9wZXJhdGlvbih0eXBlKQorICAgICAgICAsIG1fc2hhZG93KHNoYWRv
dykKKyAgICB7CisgICAgfQorCisgICAgT3duUHRyPFNoYWRvd0RhdGE+IG1fc2hhZG93OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJT
KQorCisjZW5kaWYgLy8gRmlsdGVyT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcyNzg1MmJiZjkwZDdlN2UwODZhMjVmNjQ0ZmRjYzA4MTQ4MDdjYTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbnMuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgorCisjaWYgRU5BQkxF
KENTU19GSUxURVJTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZpbHRlck9wZXJhdGlvbnM6
OkZpbHRlck9wZXJhdGlvbnMoKQoreworfQorCitib29sIEZpbHRlck9wZXJhdGlvbnM6Om9wZXJh
dG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgbykgY29uc3QKK3sKKyAgICBpZiAobV9vcGVy
YXRpb25zLnNpemUoKSAhPSBvLm1fb3BlcmF0aW9ucy5zaXplKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgCisgICAgdW5zaWduZWQgcyA9IG1fb3BlcmF0aW9ucy5zaXplKCk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHM7IGkrKykgeworICAgICAgICBpZiAoKm1fb3Bl
cmF0aW9uc1tpXSAhPSAqby5tX29wZXJhdGlvbnNbaV0pCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJlYmE4Mjk5NDM4MDBiYTc4M2FiY2Q4OTMwNTk4MjE4NGIyYWY0ZDQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBGaWx0ZXJPcGVyYXRpb25zX2gKKyNkZWZpbmUgRmlsdGVyT3BlcmF0aW9uc19oCisKKyNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCisKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIEZpbHRlck9wZXJhdGlvbnMgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIEZpbHRlck9wZXJhdGlvbnMoKTsKKyAgICAKKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIGNvbnN0OworICAgIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgfQorICAgIAorICAgIHZvaWQgY2xlYXIoKQor
ICAgIHsKKyAgICAgICAgbV9vcGVyYXRpb25zLmNsZWFyKCk7CisgICAgfQorICAgIAorICAgIFZl
Y3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiBvcGVyYXRpb25zKCkgeyByZXR1cm4gbV9v
cGVyYXRpb25zOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+ID4m
IG9wZXJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wZXJhdGlvbnM7IH0KKworICAgIHNpemVf
dCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpb25zLnNpemUoKTsgfQorICAgIGNvbnN0
IEZpbHRlck9wZXJhdGlvbiogYXQoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBpbmRleCA8
IG1fb3BlcmF0aW9ucy5zaXplKCkgPyBtX29wZXJhdGlvbnMuYXQoaW5kZXgpLmdldCgpIDogMDsg
fQorCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+IG1fb3Bl
cmF0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDU1NfRklMVEVSUykKKworI2VuZGlmIC8vIEZpbHRlck9wZXJhdGlvbnNfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA4YmQ0ZjAxMTI0MmYz
MGYxMzU2YzFmM2RjMWQ0MDI5MjRmZGM3Yzc1Li40ZmUwM2M2ZDIwM2I4OWQ5ZWE1Y2U4ZTZhMzdm
NWQ1ZjA5N2E1ZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaApAQCAtMzUsNiArMzUsOSBAQAogI2luY2x1ZGUgIkNvdW50ZXJEaXJlY3RpdmVzLmgi
CiAjaW5jbHVkZSAiRGF0YVJlZi5oIgogI2luY2x1ZGUgIkZpbGxMYXllci5oIgorI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCisjZW5kaWYKICNp
bmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkxl
bmd0aC5oIgpAQCAtNDksNiArNTIsOSBAQAogI2luY2x1ZGUgIlN0eWxlQmFja2dyb3VuZERhdGEu
aCIKICNpbmNsdWRlICJTdHlsZUJveERhdGEuaCIKICNpbmNsdWRlICJTdHlsZURlcHJlY2F0ZWRG
bGV4aWJsZUJveERhdGEuaCIKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisjaW5jbHVkZSAiU3R5
bGVGaWx0ZXJEYXRhLmgiCisjZW5kaWYKICNpbmNsdWRlICJTdHlsZUZsZXhpYmxlQm94RGF0YS5o
IgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlTWFycXVl
ZURhdGEuaCIKQEAgLTg0MSw2ICs4NDcsMTEgQEAgcHVibGljOgogICAgIEVJbWFnZVJlbmRlcmlu
ZyBpbWFnZVJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVJbWFnZVJlbmRl
cmluZz4ocmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZW5kZXJpbmcpOyB9CiAgICAgCiAgICAg
RVNwZWFrIHNwZWFrKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVNwZWFrPihyYXJlSW5oZXJpdGVk
RGF0YS0+c3BlYWspOyB9CisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgY29uc3QgRmls
dGVyT3BlcmF0aW9ucyYgZmlsdGVyKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fZmlsdGVyLT5tX29wZXJhdGlvbnM7IH0KKyAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0
IHsgcmV0dXJuICFyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkuaXNFbXB0eSgpOyB9CisjZW5kaWYKICAgICAgICAgCiAvLyBhdHRyaWJ1dGUg
c2V0dGVyIG1ldGhvZHMKIApAQCAtMTE2MSw2ICsxMTcyLDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFRleHRFbXBoYXNpc01hcmsoVGV4dEVtcGhhc2lzTWFyayBtYXJrKSB7IFNFVF9WQVIocmFy
ZUluaGVyaXRlZERhdGEsIHRleHRFbXBoYXNpc01hcmssIG1hcmspOyB9CiAgICAgdm9pZCBzZXRU
ZXh0RW1waGFzaXNDdXN0b21NYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaykgeyBTRVRfVkFS
KHJhcmVJbmhlcml0ZWREYXRhLCB0ZXh0RW1waGFzaXNDdXN0b21NYXJrLCBtYXJrKTsgfQogICAg
IHZvaWQgc2V0VGV4dEVtcGhhc2lzUG9zaXRpb24oVGV4dEVtcGhhc2lzUG9zaXRpb24gcG9zaXRp
b24pIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgdGV4dEVtcGhhc2lzUG9zaXRpb24sIHBv
c2l0aW9uKTsgfQorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIHZvaWQgc2V0RmlsdGVy
KGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG9wcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2ZpbHRlciwgbV9vcGVyYXRpb25zLCBvcHMpOyB9CisjZW5kaWYKKwog
ICAgIC8vIEVuZCBDU1MzIFNldHRlcnMKIAogICAgIHZvaWQgc2V0Rmxvd1RocmVhZChjb25zdCBB
dG9taWNTdHJpbmcmIGZsb3dUaHJlYWQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwg
bV9mbG93VGhyZWFkLCBmbG93VGhyZWFkKTsgfQpAQCAtMTQ1NCw3ICsxNDcwLDkgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+JiBpbml0aWFs
RGFzaGJvYXJkUmVnaW9ucygpOwogICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9h
cmRSZWdpb24+JiBub25lRGFzaGJvYXJkUmVnaW9ucygpOwogI2VuZGlmCi0KKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgc3RhdGljIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGluaXRpYWxG
aWx0ZXIoKSB7IERFRklORV9TVEFUSUNfTE9DQUwoRmlsdGVyT3BlcmF0aW9ucywgb3BzLCAoKSk7
IHJldHVybiBvcHM7IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICB2b2lkIGluaGVyaXRVbmljb2Rl
QmlkaUZyb20oY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudCkgeyBub25pbmhlcml0ZWRfZmxhZ3Mu
X3VuaWNvZGVCaWRpID0gcGFyZW50LT5ub25pbmhlcml0ZWRfZmxhZ3MuX3VuaWNvZGVCaWRpOyB9
CiAgICAgdm9pZCBnZXRTaGFkb3dFeHRlbnQoY29uc3QgU2hhZG93RGF0YSosIExheW91dFVuaXQm
IHRvcCwgTGF5b3V0VW5pdCYgcmlnaHQsIExheW91dFVuaXQmIGJvdHRvbSwgTGF5b3V0VW5pdCYg
bGVmdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVB
bGxJbk9uZS5jcHAKaW5kZXggNGRiNDIwY2MyYzgyNmNlMDVkMjNjM2RjMGIwNjBjYzE3YjM5NjIw
ZC4uMjIzOGE2YjdlN2ZkYWVkMDQ5ZDY1MDEzYzc5Y2IyMjhjYjI0ZTI3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUFsbEluT25lLmNwcApAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgIlN0eWxlQm94RGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRJbWFnZS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNw
cCIKKyNpbmNsdWRlICJTdHlsZUZpbHRlckRhdGEuY3BwIgogI2luY2x1ZGUgIlN0eWxlRmxleGli
bGVCb3hEYXRhLmNwcCIKICNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZEltYWdlLmNwcCIKICNpbmNs
dWRlICJTdHlsZUluaGVyaXRlZERhdGEuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZGM3Y2ZkNDhkOWI3
OGQ4MTZmMmM0ODFjZDMyOGUwOGI0MTU2NTRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdHlsZUZpbHRlckRh
dGEuaCIKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKworI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3R5bGVGaWx0ZXJEYXRhOjpTdHlsZUZpbHRl
ckRhdGEoKQorICAgIDogbV9vcGVyYXRpb25zKCkKK3sKK30KKworU3R5bGVGaWx0ZXJEYXRhOjpT
dHlsZUZpbHRlckRhdGEoY29uc3QgU3R5bGVGaWx0ZXJEYXRhJiBvKQorICAgIDogUmVmQ291bnRl
ZDxTdHlsZUZpbHRlckRhdGE+KCkKKyAgICAsIG1fb3BlcmF0aW9ucyhvLm1fb3BlcmF0aW9ucykK
K3sKK30KKworYm9vbCBTdHlsZUZpbHRlckRhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWx0
ZXJEYXRhJiBvKSBjb25zdAoreworICAgIHJldHVybiBtX29wZXJhdGlvbnMgPT0gby5tX29wZXJh
dGlvbnM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShD
U1NfRklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUZpbHRlckRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZp
bHRlckRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmIxMDJlOTIwMGZmOGE3ZDM0ZjliZmQyNTM4ZDZiYjhl
Y2VlMDRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlRmlsdGVyRGF0YS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFN0
eWxlRmlsdGVyRGF0YV9oCisjZGVmaW5lIFN0eWxlRmlsdGVyRGF0YV9oCisKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0eWxlRmlsdGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PFN0eWxlRmlsdGVyRGF0YT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxl
RmlsdGVyRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlRmlsdGVyRGF0
YSk7IH0KKyAgICBQYXNzUmVmUHRyPFN0eWxlRmlsdGVyRGF0YT4gY29weSgpIGNvbnN0IHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUZpbHRlckRhdGEoKnRoaXMpKTsgfQorCisgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFN0eWxlRmlsdGVyRGF0YSYpIGNvbnN0OworICAgIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBTdHlsZUZpbHRlckRhdGEmIG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gISgqdGhpcyA9PSBvKTsKKyAgICB9CisKKyAgICBGaWx0ZXJPcGVyYXRpb25zIG1fb3BlcmF0
aW9uczsKKworcHJpdmF0ZToKKyAgICBTdHlsZUZpbHRlckRhdGEoKTsKKyAgICBTdHlsZUZpbHRl
ckRhdGEoY29uc3QgU3R5bGVGaWx0ZXJEYXRhJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKKyNlbmRpZiAvLyBTdHlsZUZp
bHRlckRhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGYzYjgwMTcxMjYxOWE4OGM4
N2YwZTNjMDZmYTIyYWEyZjgyZjE3ZDAuLjdiYzY2ODE2NWFiNjBmYjk2MTRjMjk3MmZhMWExOGYy
OGE1YmJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNp
bmNsdWRlICJSZW5kZXJDb3VudGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJTaGFkb3dEYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVGaWx0ZXJEYXRhLmgiCisjaW5jbHVk
ZSAiU3R5bGVUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVJbWFnZS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC03OCw2ICs4MCw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
CiAgICAgLCBtX21hcnF1ZWUoby5tX21hcnF1ZWUpCiAgICAgLCBtX211bHRpQ29sKG8ubV9tdWx0
aUNvbCkKICAgICAsIG1fdHJhbnNmb3JtKG8ubV90cmFuc2Zvcm0pCisjaWYgRU5BQkxFKENTU19G
SUxURVJTKQorICAgICwgbV9maWx0ZXIoby5tX2ZpbHRlcikKKyNlbmRpZgogICAgICwgbV9jb250
ZW50KG8ubV9jb250ZW50ID8gby5tX2NvbnRlbnQtPmNsb25lKCkgOiBudWxscHRyKQogICAgICwg
bV9jb3VudGVyRGlyZWN0aXZlcyhvLm1fY291bnRlckRpcmVjdGl2ZXMgPyBjbG9uZSgqby5tX2Nv
dW50ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCiAgICAgLCB1c2VyRHJhZyhvLnVzZXJEcmFnKQpA
QCAtMTM1LDYgKzE0MCw5IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1f
bWFycXVlZSA9PSBvLm1fbWFycXVlZQogICAgICAgICAmJiBtX211bHRpQ29sID09IG8ubV9tdWx0
aUNvbAogICAgICAgICAmJiBtX3RyYW5zZm9ybSA9PSBvLm1fdHJhbnNmb3JtCisjaWYgRU5BQkxF
KENTU19GSUxURVJTKQorICAgICAgICAmJiBtX2ZpbHRlciA9PSBvLm1fZmlsdGVyCisjZW5kaWYK
ICAgICAgICAgJiYgY29udGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGNvdW50ZXJE
YXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiB1c2VyRHJhZyA9PSBvLnVzZXJEcmFnCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaAppbmRleCAyMWE0MjA3Zjk5OWQ3YzVhYTRiMDMwMjhkNGE3YjBkOTMwY2Nk
NmRkLi5kOTM4ZTBkZTM5YjJjYzIzMDczZjU0M2EzYzNhNzQwN2I0N2U1NjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJGaWxsTGF5ZXIuaCIKICNp
bmNsdWRlICJMaW5lQ2xhbXBWYWx1ZS5oIgogI2luY2x1ZGUgIk5pbmVQaWVjZUltYWdlLmgiCi0j
aW5jbHVkZSAiU3R5bGVUcmFuc2Zvcm1EYXRhLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAt
NDMsNiArNDIsOSBAQCBjbGFzcyBBbmltYXRpb25MaXN0OwogY2xhc3MgQ1NTU3R5bGVTZWxlY3Rv
cjsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERh
dGE7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorY2xhc3MgU3R5bGVGaWx0ZXJEYXRhOworI2Vu
ZGlmCiBjbGFzcyBTdHlsZUZsZXhpYmxlQm94RGF0YTsKIGNsYXNzIFN0eWxlTWFycXVlZURhdGE7
CiBjbGFzcyBTdHlsZU11bHRpQ29sRGF0YTsKQEAgLTk5LDYgKzEwMSwxMCBAQCBwdWJsaWM6CiAg
ICAgRGF0YVJlZjxTdHlsZU11bHRpQ29sRGF0YT4gbV9tdWx0aUNvbDsgLy8gIENTUzMgbXVsdGlj
b2wgcHJvcGVydGllcwogICAgIERhdGFSZWY8U3R5bGVUcmFuc2Zvcm1EYXRhPiBtX3RyYW5zZm9y
bTsgLy8gVHJhbnNmb3JtIHByb3BlcnRpZXMgKHJvdGF0ZSwgc2NhbGUsIHNrZXcsIGV0Yy4pCiAK
KyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgRGF0YVJlZjxTdHlsZUZpbHRlckRhdGE+IG1f
ZmlsdGVyOyAvLyBGaWx0ZXIgb3BlcmF0aW9ucyAodXJsLCBzZXBpYSwgYmx1ciwgZXRjLikKKyNl
bmRpZgorCiAgICAgT3duUHRyPENvbnRlbnREYXRhPiBtX2NvbnRlbnQ7CiAgICAgT3duUHRyPENv
dW50ZXJEaXJlY3RpdmVNYXA+IG1fY291bnRlckRpcmVjdGl2ZXM7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108764</attachid>
            <date>2011-09-26 17:30:26 -0700</date>
            <delta_ts>2011-09-26 20:42:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68471-20110927103023.patch</filename>
            <type>text/plain</type>
            <size>46502</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU4ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmU1YjRj
MmQ2ZTgzYTMwYzk1MjA0NTQxNjM2Njk1MjQ5YjNiZWE5ZC4uMjA1YmZiMWZhOTc1NGQyN2UzYzA0
NzA4NjVmYzFjOWVlYjY4OTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwOTksNiArMTA5
OSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5j
cHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9TcG90TGlnaHRTb3VyY2UuY3BwCkBAIC0xMjc4LDYgKzEyNzksNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUZpbHRlckRhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRh
LmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZiMGVm
NGU1MjhiOTM5ZWU3MjUwNTZiOGMwMDBmZDVlYThkY2JlZS4uOTYxMWE5OTlmZjBkMzk5NWU2Nzk2
ZWQ2ZDI4YWEzNGYzMzRmODU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDExLTA5
LTI2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgJ2ZpbHRl
cicgdmFsdWUgdG8gUmVuZGVyU3R5bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgZmlsdGVyIHByb3BlcnR5IHRvIFJlbmRlclN0eWxlIHdoZW4g
RU5BQkxFKENTU19GSUxURVJTKQorICAgICAgICBpcyB0dXJuZWQgb24uIFNpbWlsYXIgdG8gLXdl
YmtpdC10cmFuc2Zvcm0sIC13ZWJraXQtZmlsdGVyIGlzIGEKKyAgICAgICAgbGlzdCBvZiBGaWx0
ZXJPcGVyYXRpb25zLCBlYWNoIGlkZW50aWZ5aW5nIHdoYXQgdHlwZSBvZiBvcGVyYXRpb24KKyAg
ICAgICAgaXQgaXMuIFRoaXMgY2hhbmdlIHNpbXBseSBhZGRzIHRoZSBiYXNpYyBvYmplY3RzLCBp
dCBkb2VzIG5vdAorICAgICAgICBwYXJzZSB0aGUgcHJvcGVydHkgdG8gZ2VuZXJhdGUgdGhlIGxp
c3QuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJPcGVyYXRpb246On5GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9uOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbjo6Z2V0T3BlcmF0aW9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b246OmlzU2FtZVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uOjpGaWx0
ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uOjpy
ZWZlcmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uOjpv
cGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbjo6
UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljQ29sb3JN
YXRyaXhGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY0Nv
bG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uOjphbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJD
b3JlOjpCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uOjpCYXNpY0NvbG9yTWF0cml4Rmls
dGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2ljQ29tcG9uZW50VHJhbnNmZXJG
aWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNpY0NvbXBvbmVu
dFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uOjphbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
aWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uOjpCYXNpY0Nv
bXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbW1h
RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2FtbWFGaWx0ZXJP
cGVyYXRpb246OmFtcGxpdHVkZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJh
dGlvbjo6ZXhwb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R2FtbWFGaWx0ZXJPcGVyYXRpb246
Om9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJhdGlvbjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1tYUZpbHRlck9wZXJhdGlvbjo6R2FtbWFGaWx0
ZXJPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Qmx1ckZpbHRlck9wZXJhdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsdXJGaWx0ZXJPcGVyYXRpb246Om9mZnNldFgpOgor
ICAgICAgICAoV2ViQ29yZTo6Qmx1ckZpbHRlck9wZXJhdGlvbjo6b2Zmc2V0WSk6CisgICAgICAg
IChXZWJDb3JlOjpCbHVyRmlsdGVyT3BlcmF0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdl
YkNvcmU6OkJsdXJGaWx0ZXJPcGVyYXRpb246OkJsdXJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcnBlbkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJwZW5GaWx0ZXJPcGVyYXRpb246OnJhZGl1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFycGVuRmlsdGVyT3BlcmF0aW9uOjp0aHJlc2hvbGQpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhcnBlbkZpbHRlck9wZXJhdGlvbjo6YW1vdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJw
ZW5GaWx0ZXJPcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U2hhcnBl
bkZpbHRlck9wZXJhdGlvbjo6U2hhcnBlbkZpbHRlck9wZXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbjo6c2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkRyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29y
ZTo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbjo6RHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zOjpGaWx0ZXJPcGVy
YXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM6Om9wZXJhdG9yPT0p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM6Om9wZXJhdG9yIT0p
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uczo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9uczo6b3BlcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWx0ZXJPcGVyYXRpb25zOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnM6OmF0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmaWx0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5oZXJpdGVkRmxhZ3M6Omhhc0ZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0
ZWRGbGFnczo6c2V0RmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpp
bml0aWFsRmlsdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5j
cHA6IEFkZGVkIGluY2x1ZGUgb2YgbmV3IFN0eWxlRmlsdGVyRGF0YS4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUZpbHRlckRhdGE6OlN0eWxlRmlsdGVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUZpbHRlckRhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZUZpbHRlckRhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbHRlckRh
dGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUZpbHRlckRhdGE6OmNvcHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVGaWx0ZXJEYXRhOjpvcGVyYXRvciE9KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmg6IE5ldyBmaWx0ZXIgRGF0YVJlZi4KKwogMjAxMS0wOS0yMyAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC13ZWJraXQtZmlsdGVyIHRvIENTU1By
b3BlcnR5TmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhhNDY0MzQzMTE4
NzI2NWI4OGMzNTEyNTAzMDg2YmYzZTllZWYyMWIuLmU5ZTM0YzA0NzU0ZGQxYmYwM2Y1ZDYxNjhk
OGZhNjEzMjI0ZmQ2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjQ3Niw5
ICsyNDc2LDEyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmggXAotCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9u
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291
cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdo
dFNvdXJjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Bv
aW50TGlnaHRTb3VyY2UuY3BwIFwKQEAgLTMxNjMsNiArMzE2Niw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVn
aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRG
bGV4aWJsZUJveERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDkyMjhk
MDU1MTg3ZDI3ZTUxOTFkNTJiODRjZmE3ZjdmMjliMWE4N2MuLjBkN2M1NWRiYzAyZmMxNDM0Mzkw
OWQ3ODU4YWVhYzJkMzgyYmE1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTkzNiw2ICs5MzYsNyBA
QAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURhc2hib2FyZFJlZ2lvbi5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmgn
LAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgnLApAQCAtMzYxMyw2ICszNjE0LDkgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0xpZ2h0U291
cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNv
dXJjZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50TGln
aHRTb3VyY2UuY3BwJywKQEAgLTQ3ODQsNiArNDc4OCw3IEBACiAgICAgICAgICAgICAncmVuZGVy
aW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0
eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggN2U5OTFjZWY0NjM4
NzcxOTQ3MDExNDQ3MDVhYWI1NzFiMWIyY2U2ZS4uNzdmYTY5OWZiOWFhNzQxYTQzMzRjNDRlMzRk
Njk2MTU0OGM2NzllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTExOTUsNiArMTE5NSw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9T
dHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUv
U3R5bGVGaWx0ZXJEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcCBcCkBAIC0xOTg2
LDYgKzE5ODcsOCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFVGlsZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5jZS5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oIFwKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oIFwKKyAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
R3JhcGhpYy5oIFwKQEAgLTIyNjQsNiArMjI2Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUJveERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YS5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmggXAogICAg
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKICAgICByZW5kZXJpbmcv
c3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJ
bmhlcml0ZWREYXRhLmggXApAQCAtMzIwMyw2ICszMjA3LDcgQEAgY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX0ZJTFRFUlM9MSkgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
VGlsZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVHVyYnVsZW5j
ZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3Bw
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MzRjYzVlY2UxNzFlODY3MGZjMzAzY2RkOTVjN2E2MTVjOGRhNjljYS4uZjQ4YWU0ODM4NTBkNWVk
MmIzNzQyZWM2ZjQxNDNhYWFmOTEyOTAxMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMwMDU2LDYgKzMwMDU2LDE4IEBACiAJCQkJCQk+CiAJ
CQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcZmlsdGVyc1xGaWx0ZXJPcGVyYXRpb24uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXEZpbHRlck9wZXJhdGlvbnMuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJ
CTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNc
RmlsdGVyT3BlcmF0aW9ucy5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJ
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcTGlnaHRTb3Vy
Y2UuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC00MDgwMyw2ICs0MDgxNSw2MiBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXHN0eWxlXFN0eWxlRmlsdGVyRGF0YS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVGaWx0
ZXJEYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIgogCQkJCQk+
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcwMDQ0ZGFhYzkyZDQ1YmM3MzM1ZGEwNjY1
NjViOWRmNTZhMWQwYzQuLjA1MWU5ZmIzNzNhYzQ2NTg3ZTM1YWFiNTc2MGZhMTNmN2Y1NzlmMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTc4NSw2ICs3ODUsMTEgQEAKIAkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRp
b25MaXN0LmggKi87IH07CiAJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRB
bmltYXRpb25MaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3Qu
bW0gKi87IH07CiAJCTMxOTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlv
bkxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE5NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1
c3RvbS5jcHAgKi87IH07CisJCTMxOUFFMDYzMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRl
ckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE5QUUwNjExNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgKi87IH07CisJ
CTMxOUFFMDY0MTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUFFMDYyMTQyRDZCMjQwMDY1
NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkzMTlBRTA2ODE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3Bl
cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTlBRTA2NTE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMzE5QUUwNjkxNDJENzhERDAw
NjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QUUwNjYxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9w
ZXJhdGlvbnMuY3BwICovOyB9OworCQkzMTlBRTA2QTE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVy
T3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE5QUUwNjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlFNjg4NzEzMjdD
OTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFB
IC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMzE5RTY5QjIxMzI5OUJC
RDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjlBQzEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0
QW5pbWF0aW9uLmNwcCAqLzsgfTsKIAkJMzE5RTY5QjMxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktp
dEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE5RTY5QUQxMzI5OUJCRDAwNEFDOTFBIC8qIFdlYktpdEFuaW1hdGlvbi5oICovOyB9OwpA
QCAtNzM1MCw2ICs3MzU1LDEzIEBACiAJCTMxOTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01X
ZWJLaXRBbmltYXRpb25MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TVdlYktpdEFuaW1hdGlvbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5
NDYyMDMxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRBbmltYXRpb25MaXN0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUFFMDYxMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHls
ZUZpbHRlckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5
bGVGaWx0ZXJEYXRhLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxOUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHls
ZUZpbHRlckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVGaWx0
ZXJEYXRhLmg7IHBhdGggPSBzdHlsZS9TdHlsZUZpbHRlckRhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE5QUUwNjUxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWx0ZXJPcGVyYXRpb24uaDsg
cGF0aCA9IGZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxOUFFMDY2MTQyRDc4REQwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZpbHRlck9wZXJhdGlvbnMuY3Bw
OyBwYXRoID0gZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzE5QUUwNjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsdGVyT3BlcmF0aW9ucy5oOyBw
YXRoID0gZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxOUFFMDZCMTQzMTMxRTAwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRmlsdGVyT3BlcmF0aW9uLmg7IHBhdGggPSBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTlBRTA2QzE0MzEzMUUwMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBGaWx0ZXJPcGVyYXRpb25zLmg7IHBhdGggPSBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RTY4
ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5RTY5QUMxMzI5OUJCRDAwNEFDOTFB
IC8qIFdlYktpdEFuaW1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJLaXRBbmltYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTlFNjlBRDEzMjk5QkJEMDA0QUM5MUEgLyogV2ViS2l0QW5pbWF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTMwMDgsNiArMTMwMjAsOCBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAy
QUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkzMTlBRTA2QjE0MzEzMUUwMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9uLmggKi8s
CisJCQkJMzE5QUUwNkMxNDMxMzFFMDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLywK
IAkJCQk2NUM5N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4
MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5
RTBDQTgyMDBCMTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTE2NzQ3LDYgKzE2
NzYxLDkgQEAKIAkJCQk4NDVFNzJGNzBGRDI2MUVFMDBBODdENzkgLyogRmlsdGVyLmggKi8sCiAJ
CQkJMDhDOTI1MTcwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5jcHAgKi8sCiAJCQkJ
MDhDOTI1MTgwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRlckVmZmVjdC5oICovLAorCQkJCTMxOUFF
MDY1MTQyRDc4REQwMDY1NjNBMSAvKiBGaWx0ZXJPcGVyYXRpb24uaCAqLywKKwkJCQkzMTlBRTA2
NjE0MkQ3OEREMDA2NTYzQTEgLyogRmlsdGVyT3BlcmF0aW9ucy5jcHAgKi8sCisJCQkJMzE5QUUw
NjcxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCAqLywKIAkJCQk4NDczMEQ3
MzEyNDhGMEIzMDBEM0E5QzkgLyogTGlnaHRTb3VyY2UuY3BwICovLAogCQkJCTg0NzMwRDc0MTI0
OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oICovLAogCQkJCUExRTExNTQ1MTMwMTVDNEUw
MDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNlLmNwcCAqLywKQEAgLTE4ODc3LDYgKzE4ODk0LDgg
QEAKIAkJCQlCQzVFQjY3RTBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNoYm9hcmRSZWdpb24u
aCAqLywKIAkJCQlCQzVFQjhCNjBFODIwMUJEMDBCMjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxl
eGlibGVCb3hEYXRhLmNwcCAqLywKIAkJCQlCQzVFQjhCNzBFODIwMUJEMDBCMjU5NjUgLyogU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggKi8sCisJCQkJMzE5QUUwNjExNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgKi8sCisJCQkJMzE5QUUwNjIxNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oICovLAogCQkJCTUzMTc2MTIwMTNDNTE2NjkwMDI2
RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCiAJCQkJNTMxNzYxMjExM0M1MTY2
OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi8sCiAJCQkJQkNFRjQ0N0MwRTY3
NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMjA0NjgsNiAr
MjA0ODcsOSBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMzE5QUUwNjQxNDJENkIyNDAw
NjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE5QUUwNjgx
NDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzE5QUUwNkExNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVEOEM0REMwMTQyODIyMkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlCQjNENTAwMkE4NzkwIC8qIEFic3Ry
YWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQxMEZGNTk4NjkwMDU3NkIz
QiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjMzNCw2ICsyNjM1Niw4
IEBACiAJCQkJOTc1MkQzOEQxNDEzMTA0QjAwMzMwNUJEIC8qIEpTSFRNTFNwYW5FbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTcxNDA1MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxi
YXJUaGVtZU1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ4QzREQkYxNDI4MjIyQzAwMjZD
RTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxOUFF
MDYzMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzE5QUUwNjkxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOThmYzQ5MTgxYjM2
MWRlODQzM2E0MDY5MmI1NzZhOTIzODUyZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApAQCAtMCww
ICsxLDI5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRmlsdGVyT3BlcmF0aW9uX2gKKyNkZWZpbmUg
RmlsdGVyT3BlcmF0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKworI2luY2x1ZGUg
IlNoYWRvd0RhdGEuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENTUyBGaWx0
ZXJzCisKK2NsYXNzIEZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlck9w
ZXJhdGlvbj4geworcHVibGljOgorICAgIGVudW0gT3BlcmF0aW9uVHlwZSB7CisgICAgICAgIFJF
RkVSRU5DRSwgLy8gdXJsKCNzb21lZmlsdGVyKQorICAgICAgICBHUkFZU0NBTEUsCisgICAgICAg
IFNFUElBLAorICAgICAgICBTQVRVUkFURSwKKyAgICAgICAgSFVFX1JPVEFURSwKKyAgICAgICAg
SU5WRVJULAorICAgICAgICBPUEFDSVRZLAorICAgICAgICBHQU1NQSwKKyAgICAgICAgQkxVUiwK
KyAgICAgICAgU0hBUlBFTiwKKyAgICAgICAgRFJPUF9TSEFET1csCisgICAgICAgIE5PTkUKKyAg
ICB9OworCisgICAgdmlydHVhbCB+RmlsdGVyT3BlcmF0aW9uKCkgeyB9CisKKyAgICB2aXJ0dWFs
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mKSBjb25zdCA9IDA7CisgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4g
ISgqdGhpcyA9PSBvKTsgfQorCisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1l
VHlwZShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0
aW9uVHlwZSgpID09IG1fdHlwZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRmlsdGVyT3BlcmF0aW9u
KE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAg
fQorCisgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7Cit9OworCisvLyBFYWNoIG9mIHRoZSBpbmRp
dmlkdWFsIG9wZXJhdGlvbnMgYXJlIHByb3ZpZGVkIGhlcmUuIE9uY2UgdGhleSBhY3R1YWxseQor
Ly8gaGF2ZSBjb2RlIHRvIGFwcGx5IHRoZWlyIGVmZmVjdCB0aGV5J2xsIG1vdmUgdG8gc2VwYXJh
dGUgZmlsZXMuCisvLyBBdCB0aGUgbW9tZW50IHdlJ3JlIGp1c3Qgc3RvcmluZyB0aGUgZGF0YSBm
b3Igcm91bmR0cmlwcGluZy4KKworY2xhc3MgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uIDogcHVi
bGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVm
ZXJlbmNlRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiByZWZlcmVu
Y2UsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKHJlZmVyZW5jZSwgdHlwZSkpOworICAgIH0KKwor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcmVmZXJlbmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZWZl
cmVuY2U7IH0KKworcHJpdmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlw
ZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgUmVmZXJlbmNl
RmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IFJlZmVyZW5jZUZpbHRl
ck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fcmVmZXJlbmNlID09IG90aGVyLT5t
X3JlZmVyZW5jZTsKKyAgICB9CisKKyAgICBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24oY29uc3Qg
QXRvbWljU3RyaW5nJiByZWZlcmVuY2UsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBG
aWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAgICAgLCBtX3JlZmVyZW5jZShyZWZlcmVuY2UpCisg
ICAgeworICAgIH0KKworICAgIEF0b21pY1N0cmluZyBtX3JlZmVyZW5jZTsKK307CisKKy8vIEdS
QVlTQ0FMRSwgU0VQSUEsIFNBVFVSQVRFIGFuZCBIVUVfUk9UQVRFIGFyZSB2YXJpYXRpb25zIG9u
IGEgYmFzaWMgY29sb3IgbWF0cml4IGVmZmVjdC4KKy8vIEZvciBIVUVfUk9UQVRFLCB0aGUgYW5n
bGUgb2Ygcm90YXRpb24gaXMgc3RvcmVkIGluIG1fYW1vdW50LgorCitjbGFzcyBCYXNpY0NvbG9y
TWF0cml4RmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbj4g
Y3JlYXRlKGRvdWJsZSBhbW91bnQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbihhbW91
bnQsIHR5cGUpKTsKKyAgICB9CisKKyAgICBkb3VibGUgYW1vdW50KCkgY29uc3QgeyByZXR1cm4g
bV9hbW91bnQ7IH0KKworcHJpdmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1l
VHlwZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgQmFzaWND
b2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBCYXNp
Y0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uKj4oJm8pOworICAgICAgICByZXR1cm4gbV9hbW91
bnQgPT0gb3RoZXItPm1fYW1vdW50OworICAgIH0KKworICAgIEJhc2ljQ29sb3JNYXRyaXhGaWx0
ZXJPcGVyYXRpb24oZG91YmxlIGFtb3VudCwgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgICAgICA6
IEZpbHRlck9wZXJhdGlvbih0eXBlKQorICAgICAgICAsIG1fYW1vdW50KGFtb3VudCkKKyAgICB7
CisgICAgfQorCisgICAgZG91YmxlIG1fYW1vdW50OworfTsKKworLy8gSU5WRVJUIGFuZCBPUEFD
SVRZIGFyZSB2YXJpYXRpb25zIG9uIGEgYmFzaWMgY29tcG9uZW50IHRyYW5zZmVyIGVmZmVjdC4K
KworY2xhc3MgQmFzaWNDb21wb25lbnRUcmFuc2ZlckZpbHRlck9wZXJhdGlvbiA6IHB1YmxpYyBG
aWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhc2ljQ29t
cG9uZW50VHJhbnNmZXJGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShkb3VibGUgYW1vdW50LCBPcGVy
YXRpb25UeXBlIHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJhc2lj
Q29tcG9uZW50VHJhbnNmZXJGaWx0ZXJPcGVyYXRpb24oYW1vdW50LCB0eXBlKSk7CisgICAgfQor
CisgICAgZG91YmxlIGFtb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW1vdW50OyB9CisKK3ByaXZh
dGU6CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24m
IG8pIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbnN0IEJhc2ljQ29tcG9uZW50VHJhbnNmZXJGaWx0
ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmFzaWNDb21wb25lbnRUcmFu
c2ZlckZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fYW1vdW50ID09IG90
aGVyLT5tX2Ftb3VudDsKKyAgICB9CisKKyAgICBCYXNpY0NvbXBvbmVudFRyYW5zZmVyRmlsdGVy
T3BlcmF0aW9uKGRvdWJsZSBhbW91bnQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBG
aWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAgICAgLCBtX2Ftb3VudChhbW91bnQpCisgICAgewor
ICAgIH0KKworICAgIGRvdWJsZSBtX2Ftb3VudDsKK307CisKK2NsYXNzIEdhbW1hRmlsdGVyT3Bl
cmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R2FtbWFGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShkb3VibGUgYW1wbGl0dWRlLCBk
b3VibGUgZXhwb25lbnQsIGRvdWJsZSBvZmZzZXQsIE9wZXJhdGlvblR5cGUgdHlwZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2FtbWFGaWx0ZXJPcGVyYXRpb24oYW1wbGl0
dWRlLCBleHBvbmVudCwgb2Zmc2V0LCB0eXBlKSk7CisgICAgfQorCisgICAgZG91YmxlIGFtcGxp
dHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW1wbGl0dWRlOyB9CisgICAgZG91YmxlIGV4cG9uZW50
KCkgY29uc3QgeyByZXR1cm4gbV9leHBvbmVudDsgfQorICAgIGRvdWJsZSBvZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX29mZnNldDsgfQorCitwcml2YXRlOgorCisgICAgdmlydHVhbCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFpc1NhbWVUeXBlKG8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBj
b25zdCBHYW1tYUZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBHYW1t
YUZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fYW1wbGl0dWRlID09IG90
aGVyLT5tX2FtcGxpdHVkZSAmJiBtX2V4cG9uZW50ID09IG90aGVyLT5tX2V4cG9uZW50ICYmIG1f
b2Zmc2V0ID09IG90aGVyLT5tX29mZnNldDsKKyAgICB9CisKKyAgICBHYW1tYUZpbHRlck9wZXJh
dGlvbihkb3VibGUgYW1wbGl0dWRlLCBkb3VibGUgZXhwb25lbnQsIGRvdWJsZSBvZmZzZXQsIE9w
ZXJhdGlvblR5cGUgdHlwZSkKKyAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24odHlwZSkKKyAgICAg
ICAgLCBtX2FtcGxpdHVkZShhbXBsaXR1ZGUpCisgICAgICAgICwgbV9leHBvbmVudChleHBvbmVu
dCkKKyAgICAgICAgLCBtX29mZnNldChvZmZzZXQpCisgICAgeworICAgIH0KKworICAgIGRvdWJs
ZSBtX2FtcGxpdHVkZTsKKyAgICBkb3VibGUgbV9leHBvbmVudDsKKyAgICBkb3VibGUgbV9vZmZz
ZXQ7Cit9OworCitjbGFzcyBCbHVyRmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJh
dGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Qmx1ckZpbHRlck9wZXJhdGlv
bj4gY3JlYXRlKGRvdWJsZSBzdGREZXZpYXRpb25YLCBkb3VibGUgc3RkRGV2aWF0aW9uWSwgT3Bl
cmF0aW9uVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVy
RmlsdGVyT3BlcmF0aW9uKHN0ZERldmlhdGlvblgsIHN0ZERldmlhdGlvblksIHR5cGUpKTsKKyAg
ICB9CisKKyAgICBkb3VibGUgc3RkRGV2aWF0aW9uWCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkRGV2
aWF0aW9uWDsgfQorICAgIGRvdWJsZSBzdGREZXZpYXRpb25ZKCkgY29uc3QgeyByZXR1cm4gbV9z
dGREZXZpYXRpb25ZOyB9CisKK3ByaXZhdGU6CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWlz
U2FtZVR5cGUobykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbnN0IEJs
dXJGaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgQmx1ckZpbHRlck9w
ZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fc3RkRGV2aWF0aW9uWCA9PSBvdGhlci0+
bV9zdGREZXZpYXRpb25YICYmIG1fc3RkRGV2aWF0aW9uWSA9PSBvdGhlci0+bV9zdGREZXZpYXRp
b25ZOworICAgIH0KKworICAgIEJsdXJGaWx0ZXJPcGVyYXRpb24oZG91YmxlIHN0ZERldmlhdGlv
blgsIGRvdWJsZSBzdGREZXZpYXRpb25ZLCBPcGVyYXRpb25UeXBlIHR5cGUpCisgICAgICAgIDog
RmlsdGVyT3BlcmF0aW9uKHR5cGUpCisgICAgICAgICwgbV9zdGREZXZpYXRpb25YKHN0ZERldmlh
dGlvblgpCisgICAgICAgICwgbV9zdGREZXZpYXRpb25ZKHN0ZERldmlhdGlvblkpCisgICAgewor
ICAgIH0KKworICAgIGRvdWJsZSBtX3N0ZERldmlhdGlvblg7CisgICAgZG91YmxlIG1fc3RkRGV2
aWF0aW9uWTsKK307CisKK2NsYXNzIFNoYXJwZW5GaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmls
dGVyT3BlcmF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFycGVuRmls
dGVyT3BlcmF0aW9uPiBjcmVhdGUoZG91YmxlIHJhZGl1cywgZG91YmxlIHRocmVzaG9sZCwgZG91
YmxlIGFtb3VudCwgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTaGFycGVuRmlsdGVyT3BlcmF0aW9uKHJhZGl1cywgdGhyZXNob2xkLCBhbW91
bnQsIHR5cGUpKTsKKyAgICB9CisKKyAgICBkb3VibGUgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4g
bV9yYWRpdXM7IH0KKyAgICBkb3VibGUgdGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV90aHJl
c2hvbGQ7IH0KKyAgICBkb3VibGUgYW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9hbW91bnQ7IH0K
KworcHJpdmF0ZToKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9w
ZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgU2hhcnBlbkZpbHRlck9wZXJh
dGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBTaGFycGVuRmlsdGVyT3BlcmF0aW9uKj4o
Jm8pOworICAgICAgICByZXR1cm4gbV9yYWRpdXMgPT0gb3RoZXItPm1fcmFkaXVzICYmIG1fdGhy
ZXNob2xkID09IG90aGVyLT5tX3RocmVzaG9sZCAmJiBtX2Ftb3VudCA9PSBvdGhlci0+bV9hbW91
bnQ7CisgICAgfQorCisgICAgU2hhcnBlbkZpbHRlck9wZXJhdGlvbihkb3VibGUgcmFkaXVzLCBk
b3VibGUgdGhyZXNob2xkLCBkb3VibGUgYW1vdW50LCBPcGVyYXRpb25UeXBlIHR5cGUpCisgICAg
ICAgIDogRmlsdGVyT3BlcmF0aW9uKHR5cGUpCisgICAgICAgICwgbV9yYWRpdXMocmFkaXVzKQor
ICAgICAgICAsIG1fdGhyZXNob2xkKHRocmVzaG9sZCkKKyAgICAgICAgLCBtX2Ftb3VudChhbW91
bnQpCisgICAgeworICAgIH0KKworICAgIGRvdWJsZSBtX3JhZGl1czsKKyAgICBkb3VibGUgbV90
aHJlc2hvbGQ7CisgICAgZG91YmxlIG1fYW1vdW50OworfTsKKworY2xhc3MgRHJvcFNoYWRvd0Zp
bHRlck9wZXJhdGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShQYXNzT3du
UHRyPFNoYWRvd0RhdGE+IHNoYWRvdywgT3BlcmF0aW9uVHlwZSB0eXBlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uKHNoYWRvdywg
dHlwZSkpOworICAgIH0KKworICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdygpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhZG93LmdldCgpOyB9CisKK3ByaXZhdGU6CisKKyAgICB2aXJ0dWFsIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGNvbnN0IERyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29u
c3QgRHJvcFNoYWRvd0ZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuICptX3No
YWRvdyA9PSAqKG90aGVyLT5tX3NoYWRvdyk7CisgICAgfQorCisgICAgRHJvcFNoYWRvd0ZpbHRl
ck9wZXJhdGlvbihQYXNzT3duUHRyPFNoYWRvd0RhdGE+IHNoYWRvdywgT3BlcmF0aW9uVHlwZSB0
eXBlKQorICAgICAgICA6IEZpbHRlck9wZXJhdGlvbih0eXBlKQorICAgICAgICAsIG1fc2hhZG93
KHNoYWRvdykKKyAgICB7CisgICAgfQorCisgICAgT3duUHRyPFNoYWRvd0RhdGE+IG1fc2hhZG93
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19G
SUxURVJTKQorCisjZW5kaWYgLy8gRmlsdGVyT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlv
bnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyNzg1MmJiZjkwZDdlN2UwODZhMjVmNjQ0ZmRjYzA4MTQ4MDdj
YTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgorCisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZpbHRlck9wZXJh
dGlvbnM6OkZpbHRlck9wZXJhdGlvbnMoKQoreworfQorCitib29sIEZpbHRlck9wZXJhdGlvbnM6
Om9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgbykgY29uc3QKK3sKKyAgICBpZiAo
bV9vcGVyYXRpb25zLnNpemUoKSAhPSBvLm1fb3BlcmF0aW9ucy5zaXplKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgdW5zaWduZWQgcyA9IG1fb3BlcmF0aW9ucy5zaXpl
KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHM7IGkrKykgeworICAgICAgICBpZiAo
Km1fb3BlcmF0aW9uc1tpXSAhPSAqby5tX29wZXJhdGlvbnNbaV0pCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3Bl
cmF0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlYmE4Mjk5NDM4MDBiYTc4M2FiY2Q4OTMwNTk4MjE4NGIy
YWY0ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBGaWx0ZXJPcGVyYXRpb25zX2gKKyNkZWZpbmUgRmlsdGVyT3BlcmF0aW9uc19oCisK
KyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIK
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbHRlck9wZXJhdGlvbnMgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEZpbHRlck9wZXJhdGlvbnMoKTsKKyAgICAK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIGNvbnN0OworICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgfQorICAgIAorICAgIHZvaWQgY2xl
YXIoKQorICAgIHsKKyAgICAgICAgbV9vcGVyYXRpb25zLmNsZWFyKCk7CisgICAgfQorICAgIAor
ICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiBvcGVyYXRpb25zKCkgeyByZXR1
cm4gbV9vcGVyYXRpb25zOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+ID4mIG9wZXJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wZXJhdGlvbnM7IH0KKworICAg
IHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpb25zLnNpemUoKTsgfQorICAg
IGNvbnN0IEZpbHRlck9wZXJhdGlvbiogYXQoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBp
bmRleCA8IG1fb3BlcmF0aW9ucy5zaXplKCkgPyBtX29wZXJhdGlvbnMuYXQoaW5kZXgpLmdldCgp
IDogMDsgfQorCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+
IG1fb3BlcmF0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShDU1NfRklMVEVSUykKKworI2VuZGlmIC8vIEZpbHRlck9wZXJhdGlvbnNfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNDA1
MDc2NjViY2JiMjAxZjVmZWEwZmU1ZTA3ZmQyMTIyOTcxMTBhNC4uNmMwZDM4NTA2MDExOThiMGQ4
MmJiYWQxMzE5ZmIyYWE2Mzk0OWQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xMjUsNiArMTI1LDkgQEAgQUxXQVlTX0lOTElORSBS
ZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoYm9vbCkKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKS0+bV9tYXJxdWVlLmluaXQoKTsKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9tdWx0aUNvbC5pbml0KCk7CiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fdHJhbnNmb3JtLmluaXQoKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgcmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLmluaXQoKTsKKyNlbmRpZgogICAg
IHJhcmVJbmhlcml0ZWREYXRhLmluaXQoKTsKICAgICBpbmhlcml0ZWQuaW5pdCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDhiZDRmMDEx
MjQyZjMwZjEzNTZjMWYzZGMxZDQwMjkyNGZkYzdjNzUuLjRmZTAzYzZkMjAzYjg5ZDllYTVjZThl
NmEzN2Y1ZDVmMDk3YTVkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCkBAIC0zNSw2ICszNSw5IEBACiAjaW5jbHVkZSAiQ291bnRlckRpcmVjdGl2
ZXMuaCIKICNpbmNsdWRlICJEYXRhUmVmLmgiCiAjaW5jbHVkZSAiRmlsbExheWVyLmgiCisjaWYg
RU5BQkxFKENTU19GSUxURVJTKQorI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVk
ZSAiTGVuZ3RoLmgiCkBAIC00OSw2ICs1Miw5IEBACiAjaW5jbHVkZSAiU3R5bGVCYWNrZ3JvdW5k
RGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlQm94RGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlRGVwcmVj
YXRlZEZsZXhpYmxlQm94RGF0YS5oIgorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyNpbmNsdWRl
ICJTdHlsZUZpbHRlckRhdGEuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlN0eWxlRmxleGlibGVCb3hE
YXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVN
YXJxdWVlRGF0YS5oIgpAQCAtODQxLDYgKzg0NywxMSBAQCBwdWJsaWM6CiAgICAgRUltYWdlUmVu
ZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdl
UmVuZGVyaW5nPihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZyk7IH0KICAgICAK
ICAgICBFU3BlYWsgc3BlYWsoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhl
cml0ZWREYXRhLT5zcGVhayk7IH0KKworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9uczsgfQorICAgIGJvb2wgaGFzRmlsdGVyKCkg
Y29uc3QgeyByZXR1cm4gIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVyYXRp
b25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5KCk7IH0KKyNlbmRpZgogICAgICAgICAKIC8vIGF0dHJp
YnV0ZSBzZXR0ZXIgbWV0aG9kcwogCkBAIC0xMTYxLDYgKzExNzIsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0VGV4dEVtcGhhc2lzTWFyayhUZXh0RW1waGFzaXNNYXJrIG1hcmspIHsgU0VUX1ZB
UihyYXJlSW5oZXJpdGVkRGF0YSwgdGV4dEVtcGhhc2lzTWFyaywgbWFyayk7IH0KICAgICB2b2lk
IHNldFRleHRFbXBoYXNpc0N1c3RvbU1hcmsoY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrKSB7IFNF
VF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRleHRFbXBoYXNpc0N1c3RvbU1hcmssIG1hcmspOyB9
CiAgICAgdm9pZCBzZXRUZXh0RW1waGFzaXNQb3NpdGlvbihUZXh0RW1waGFzaXNQb3NpdGlvbiBw
b3NpdGlvbikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0ZXh0RW1waGFzaXNQb3NpdGlv
biwgcG9zaXRpb24pOyB9CisKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgdm9pZCBzZXRG
aWx0ZXIoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3BzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLCBtX29wZXJhdGlvbnMsIG9wcyk7IH0KKyNlbmRp
ZgorCiAgICAgLy8gRW5kIENTUzMgU2V0dGVycwogCiAgICAgdm9pZCBzZXRGbG93VGhyZWFkKGNv
bnN0IEF0b21pY1N0cmluZyYgZmxvd1RocmVhZCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLCBtX2Zsb3dUaHJlYWQsIGZsb3dUaHJlYWQpOyB9CkBAIC0xNDU0LDcgKzE0NzAsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIGlu
aXRpYWxEYXNoYm9hcmRSZWdpb25zKCk7CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURh
c2hib2FyZFJlZ2lvbj4mIG5vbmVEYXNoYm9hcmRSZWdpb25zKCk7CiAjZW5kaWYKLQorI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5p
dGlhbEZpbHRlcigpIHsgREVGSU5FX1NUQVRJQ19MT0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMs
ICgpKTsgcmV0dXJuIG9wczsgfQorI2VuZGlmCiBwcml2YXRlOgogICAgIHZvaWQgaW5oZXJpdFVu
aWNvZGVCaWRpRnJvbShjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50KSB7IG5vbmluaGVyaXRlZF9m
bGFncy5fdW5pY29kZUJpZGkgPSBwYXJlbnQtPm5vbmluaGVyaXRlZF9mbGFncy5fdW5pY29kZUJp
ZGk7IH0KICAgICB2b2lkIGdldFNoYWRvd0V4dGVudChjb25zdCBTaGFkb3dEYXRhKiwgTGF5b3V0
VW5pdCYgdG9wLCBMYXlvdXRVbml0JiByaWdodCwgTGF5b3V0VW5pdCYgYm90dG9tLCBMYXlvdXRV
bml0JiBsZWZ0KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUFsbEluT25lLmNwcAppbmRleCA0ZGI0MjBjYzJjODI2Y2UwNWQyM2MzZGMwYjA2MGNjMTdi
Mzk2MjBkLi4yMjM4YTZiN2U3ZmRhZWQwNDlkNjUwMTNjNzljYjIyOGNiMjRlMjcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSAiU3R5bGVCb3hEYXRhLmNwcCIKICNpbmNsdWRlICJTdHls
ZUNhY2hlZEltYWdlLmNwcCIKICNpbmNsdWRlICJTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERh
dGEuY3BwIgorI2luY2x1ZGUgIlN0eWxlRmlsdGVyRGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVG
bGV4aWJsZUJveERhdGEuY3BwIgogI2luY2x1ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIgog
I2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYzdjZmQ0
OGQ5Yjc4ZDgxNmYyYzQ4MWNkMzI4ZTA4YjQxNTY1NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcApAQCAtMCwwICsx
LDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0eWxlRmls
dGVyRGF0YS5oIgorCisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHlsZUZpbHRlckRhdGE6OlN0eWxl
RmlsdGVyRGF0YSgpCisgICAgOiBtX29wZXJhdGlvbnMoKQoreworfQorCitTdHlsZUZpbHRlckRh
dGE6OlN0eWxlRmlsdGVyRGF0YShjb25zdCBTdHlsZUZpbHRlckRhdGEmIG8pCisgICAgOiBSZWZD
b3VudGVkPFN0eWxlRmlsdGVyRGF0YT4oKQorICAgICwgbV9vcGVyYXRpb25zKG8ubV9vcGVyYXRp
b25zKQoreworfQorCitib29sIFN0eWxlRmlsdGVyRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHls
ZUZpbHRlckRhdGEmIG8pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3BlcmF0aW9ucyA9PSBvLm1f
b3BlcmF0aW9uczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlRmlsdGVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlRmlsdGVyRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YjEwMmU5MjAwZmY4YTdkMzRmOWJmZDI1Mzhk
NmJiOGVjZWUwNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgU3R5bGVGaWx0ZXJEYXRhX2gKKyNkZWZpbmUgU3R5bGVGaWx0ZXJEYXRhX2gKKworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKworI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3R5bGVGaWx0ZXJEYXRhIDogcHVibGljIFJlZkNv
dW50ZWQ8U3R5bGVGaWx0ZXJEYXRhPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3R5bGVGaWx0ZXJEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVGaWx0
ZXJEYXRhKTsgfQorICAgIFBhc3NSZWZQdHI8U3R5bGVGaWx0ZXJEYXRhPiBjb3B5KCkgY29uc3Qg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlRmlsdGVyRGF0YSgqdGhpcykpOyB9CisKKyAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVGaWx0ZXJEYXRhJikgY29uc3Q7CisgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IFN0eWxlRmlsdGVyRGF0YSYgbykgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAhKCp0aGlzID09IG8pOworICAgIH0KKworICAgIEZpbHRlck9wZXJhdGlvbnMgbV9v
cGVyYXRpb25zOworCitwcml2YXRlOgorICAgIFN0eWxlRmlsdGVyRGF0YSgpOworICAgIFN0eWxl
RmlsdGVyRGF0YShjb25zdCBTdHlsZUZpbHRlckRhdGEmKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKKworI2VuZGlmIC8vIFN0
eWxlRmlsdGVyRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggZjNiODAxNzEyNjE5
YTg4Yzg3ZjBlM2MwNmZhMjJhYTJmODJmMTdkMC4uN2JjNjY4MTY1YWI2MGZiOTYxNGMyOTcyZmEx
YTE4ZjI4YTViYmM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtMjcsNiArMjcsOCBA
QAogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgog
I2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKKyNpbmNsdWRlICJTdHlsZUZpbHRlckRhdGEuaCIKKyNp
bmNsdWRlICJTdHlsZVRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc4LDYgKzgwLDkgQEAgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25Jbmhl
cml0ZWQKICAgICAsIG1fbWFycXVlZShvLm1fbWFycXVlZSkKICAgICAsIG1fbXVsdGlDb2woby5t
X211bHRpQ29sKQogICAgICwgbV90cmFuc2Zvcm0oby5tX3RyYW5zZm9ybSkKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgLCBtX2ZpbHRlcihvLm1fZmlsdGVyKQorI2VuZGlmCiAgICAgLCBt
X2NvbnRlbnQoby5tX2NvbnRlbnQgPyBvLm1fY29udGVudC0+Y2xvbmUoKSA6IG51bGxwdHIpCiAg
ICAgLCBtX2NvdW50ZXJEaXJlY3RpdmVzKG8ubV9jb3VudGVyRGlyZWN0aXZlcyA/IGNsb25lKCpv
Lm1fY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKICAgICAsIHVzZXJEcmFnKG8udXNlckRy
YWcpCkBAIC0xMzUsNiArMTQwLDkgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpv
cGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAg
JiYgbV9tYXJxdWVlID09IG8ubV9tYXJxdWVlCiAgICAgICAgICYmIG1fbXVsdGlDb2wgPT0gby5t
X211bHRpQ29sCiAgICAgICAgICYmIG1fdHJhbnNmb3JtID09IG8ubV90cmFuc2Zvcm0KKyNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgICAgICYmIG1fZmlsdGVyID09IG8ubV9maWx0ZXIKKyNl
bmRpZgogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgY291
bnRlckRhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIHVzZXJEcmFnID09IG8udXNlckRyYWcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDIxYTQyMDdmOTk5ZDdjNWFhNGIwMzAyOGQ0YTdiMGQ5
MzBjY2Q2ZGQuLmQ5MzhlMGRlMzliMmNjMjMwNzNmNTQzYTNjM2E3NDA3YjQ3ZTU2NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkZpbGxMYXllci5o
IgogI2luY2x1ZGUgIkxpbmVDbGFtcFZhbHVlLmgiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2Uu
aCIKLSNpbmNsdWRlICJTdHlsZVRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CkBAIC00Myw2ICs0Miw5IEBAIGNsYXNzIEFuaW1hdGlvbkxpc3Q7CiBjbGFzcyBDU1NTdHlsZVNl
bGVjdG9yOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCitjbGFzcyBTdHlsZUZpbHRlckRhdGE7
CisjZW5kaWYKIGNsYXNzIFN0eWxlRmxleGlibGVCb3hEYXRhOwogY2xhc3MgU3R5bGVNYXJxdWVl
RGF0YTsKIGNsYXNzIFN0eWxlTXVsdGlDb2xEYXRhOwpAQCAtOTksNiArMTAxLDEwIEBAIHB1Ymxp
YzoKICAgICBEYXRhUmVmPFN0eWxlTXVsdGlDb2xEYXRhPiBtX211bHRpQ29sOyAvLyAgQ1NTMyBt
dWx0aWNvbCBwcm9wZXJ0aWVzCiAgICAgRGF0YVJlZjxTdHlsZVRyYW5zZm9ybURhdGE+IG1fdHJh
bnNmb3JtOyAvLyBUcmFuc2Zvcm0gcHJvcGVydGllcyAocm90YXRlLCBzY2FsZSwgc2tldywgZXRj
LikKIAorI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBEYXRhUmVmPFN0eWxlRmlsdGVyRGF0
YT4gbV9maWx0ZXI7IC8vIEZpbHRlciBvcGVyYXRpb25zICh1cmwsIHNlcGlhLCBibHVyLCBldGMu
KQorI2VuZGlmCisKICAgICBPd25QdHI8Q29udGVudERhdGE+IG1fY29udGVudDsKICAgICBPd25Q
dHI8Q291bnRlckRpcmVjdGl2ZU1hcD4gbV9jb3VudGVyRGlyZWN0aXZlczsKIAo=
</data>
<flag name="review"
          id="105800"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>