<?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>79151</bug_id>
          
          <creation_ts>2012-02-21 14:46:42 -0800</creation_ts>
          <short_desc>Implement limited parsing of -webkit-grid-column and -webkit-grid-row</short_desc>
          <delta_ts>2012-02-24 15:25:06 -0800</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561240</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-21 14:46:42 -0800</bug_when>
    <thetext>http://dev.w3.org/csswg/css3-grid-align/#grid-row-property
http://dev.w3.org/csswg/css3-grid-align/#grid-column-property

This is a first step into properly parsing them. We limit the syntax to &lt;integer&gt; | &apos;auto&apos; to have a manageable size for the change.

Note: there has been some proposal about renaming them but for now no one backed this change so we will likely have to rename them down the road.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561252</commentid>
    <comment_count>1</comment_count>
      <attachid>128050</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-21 14:59:55 -0800</bug_when>
    <thetext>Created attachment 128050
Early patch to discuss the naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562345</commentid>
    <comment_count>2</comment_count>
      <attachid>128050</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-02-22 13:43:11 -0800</bug_when>
    <thetext>Comment on attachment 128050
Early patch to discuss the naming.

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

The naming seems fine to me.

&gt; Source/WebCore/ChangeLog:12
&gt; +        -webkit-{row|column} := &lt;integer&gt; | &apos;auto&apos;

-webkit-grid-{row|column}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563353</commentid>
    <comment_count>3</comment_count>
      <attachid>128530</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-23 12:16:51 -0800</bug_when>
    <thetext>Created attachment 128530
Fully working patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563580</commentid>
    <comment_count>4</comment_count>
      <attachid>128530</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-23 15:47:43 -0800</bug_when>
    <thetext>Comment on attachment 128530
Fully working patch.

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:920
&gt; +static PassRefPtr&lt;CSSValue&gt; valueForGridPosition(const Length&amp; position, const RenderStyle* style, CSSValuePool* cssValuePool)

Looks like the unused parameter |style| is making the mac EWS sad. I will update the patch to make them happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563789</commentid>
    <comment_count>5</comment_count>
      <attachid>128625</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-23 18:17:44 -0800</bug_when>
    <thetext>Created attachment 128625
Updated patch: fixed the Mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564563</commentid>
    <comment_count>6</comment_count>
      <attachid>128786</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-24 12:47:23 -0800</bug_when>
    <thetext>Created attachment 128786
Rebaselined XCode file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564626</commentid>
    <comment_count>7</comment_count>
      <attachid>128786</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-02-24 14:14:31 -0800</bug_when>
    <thetext>Comment on attachment 128786
Rebaselined XCode file.

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

Please merge the JS file into the html test before committing.

&gt; LayoutTests/fast/css-grid-layout/grid-item-column-row-get-set.html:26
&gt; +&lt;script src=&quot;resources/grid-item-column-row-get-set.js&quot;&gt;&lt;/script&gt;

I&apos;d rather you inline the JS here. Having multiple files for a test is a pain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564704</commentid>
    <comment_count>8</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-24 15:25:06 -0800</bug_when>
    <thetext>Committed r108855: &lt;http://trac.webkit.org/changeset/108855&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128050</attachid>
            <date>2012-02-21 14:59:55 -0800</date>
            <delta_ts>2012-02-23 12:16:48 -0800</delta_ts>
            <desc>Early patch to discuss the naming.</desc>
            <filename>bug-79151-20120221145953.patch</filename>
            <type>text/plain</type>
            <size>27391</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAyNzY5MjYxNzM5NDgy
ODU3NjRlNDgzODk5NDY0MjU0YzUxNTY2NC4uODcxYzVkMTBlZjgyZjU4ODkwNzY3NWJhNzdiY2Rl
MzZkM2NkNDBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTAyLTIxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBsaW1pdGVkIHBhcnNpbmcgb2YgLXdlYmtpdC1jb2x1bW4gYW5kIC13ZWJraXQtcm93CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbAorCisgICAgICAg
IFRoaXMgY2hhbmdlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgdGhlIGdyYW1tYXI6CisKKyAgICAg
ICAgLXdlYmtpdC17cm93fGNvbHVtbn0gOj0gPGludGVnZXI+IHwgJ2F1dG8nCisKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgIEFkZGVkIHRoZSBuZXcgZmlsZSB0byBDaHJvbWl1bSBm
b3Igbm93LgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAoY3JlYXRlR3JpZFBvc2l0
aW9uKToKKyAgICAgICAgQWRkZWQgaGFuZGxpbmcgZm9yIHRoZSBuZXcgcHJvcGVydGllcy4KKwor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKToKKyAgICAgICAgQWxsb3cgb25seSAnYXV0bycgb3IgPGludGVnZXI+Lgor
CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluOgorICAgICAgICBBZGRlZCB0aGUgMiBuZXcgcHJvcGVydGllcy4KKworCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6ZGlmZik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpTdHls
ZUdyaWRJdGVtRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1E
YXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdHlsZUdyaWRJdGVt
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpjb3B5KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlR3JpZEl0ZW1EYXRhOjpvcGVyYXRvciE9KToKKyAgICAgICAgSW1wbGVtZW50ZWQgdGhlIG1p
bmltdW0gc2tlbGV0b24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICBBZGRlZCBTdHls
ZUdyaWRJdGVtRGF0YSB0byB0aGUgY2xhc3MgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS4KKwog
MjAxMi0wMi0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmVtb3ZlIFtDb252ZXJ0U2NyaXB0U3RyaW5nXSBmcm9tIEZpbGVSZWFkZXJTeW5jLmlkbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDZkOTk2NThkNDEwMTkyNzU3OWY5ZjYwNjJiOTM5OTM2MmM4OTNm
MGYuLjUzMDFiYmFkNWM1NjY4ZGFhMzExYjY3MmYzMzIyNjBmNWZlNGY4NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTU0MCw2ICs1NDAsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9T
dHlsZUZsZXhpYmxlQm94RGF0YS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5
bGVHZW5lcmF0ZWRJbWFnZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkRGF0YS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURh
dGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5oJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5oJywKQEAgLTQ1MTUsNiArNDUx
Niw3IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRh
LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2Uu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAnLAor
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5jcHAnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBjMDhl
M2ViNWQxMjk3YzU1NTY1NmZlNzI5ZjdiNGNhM2JhNjE1M2Y4Li44MjVkYWU1MjQzMjFhOTQ0MmNh
NjA1NmQ1ODE5NjdkYTljNWQ3M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjMyLDYgKzIzMiw5IEBAIHN0YXRpYyBj
b25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zLAogICAgIENTU1Byb3BlcnR5
V2Via2l0R3JpZFJvd3MsCisKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW4sCisgICAg
Q1NTUHJvcGVydHlXZWJraXRHcmlkUm93LAogI2VuZGlmCiAgICAgQ1NTUHJvcGVydHlXZWJraXRI
aWdobGlnaHQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRIeXBoZW5hdGVDaGFyYWN0ZXIsCkBAIC05
MTIsNiArOTE1LDE1IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRU
cmFja0xpc3QoY29uc3QgVmVjdG9yPExlbmd0aD4mIHRyYWNrTGVuCiAgICAgICAgIGxpc3QtPmFw
cGVuZCh2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tMZW5ndGhzW2ldLCBzdHlsZSwgY3Nz
VmFsdWVQb29sKSk7CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQorCitzdGF0aWMgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkUG9zaXRpb24oY29uc3QgTGVuZ3RoJiBwb3Np
dGlvbiwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9v
bCkKK3sKKyAgICBpZiAocG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworCisgICAgQVNTRVJU
KHBvc2l0aW9uLmlzRml4ZWQoKSk7CisgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFs
dWUocG9zaXRpb24udmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworfQog
I2VuZGlmCiAKIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXREZWxheVZhbHVlKGNvbnN0
IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0LCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKQEAg
LTE2NDcsNiArMTY1OSwxMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZv
ckdyaWRUcmFja0xpc3Qoc3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBv
b2wpOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1
bW46CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJ
dGVtQ29sdW1uKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZFJvdzoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRQ
b3NpdGlvbihzdHlsZS0+Z3JpZEl0ZW1Sb3coKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7
CiAjZW5kaWYKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKICAgICAgICAgICAgIGlm
IChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxYjQ3MmEyMmUzZjhk
ODg5YTllNzNmNzg5YTk4MzFmMzBkZjc4Mjk2Li40ZGQ4ZDhjYzFjYzdhNDljMzM0ZDVlZTU1MDk0
YjBkNzNjOTVjYjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTg3NCw2ICsxODc0
LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0
YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRUcmFja0xp
c3QocHJvcElkLCBpbXBvcnRhbnQpOworCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRD
b2x1bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAgICAgIHZhbGlk
UHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVn
ZXIsIG1fc3RyaWN0KTsKKyAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFyZ2luQ29sbGFwc2U6IHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNb
Ml0gPSB7IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlQ29sbGFwc2UsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5LmNwcAppbmRleCAwNmE0OGFiMGY5YWEwYmIxZmFjYmVhODFiOGJhNDY2YTI4
MDkzOGNhLi5jN2M1YWMzMTk3NjViM2U1YzM1NzY3MzlhMzRjYmIwYzk1MmU0NDBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU3Miw2ICs1NzIsOSBAQCBib29sIENTU1Byb3Bl
cnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHVuc2lnbmVkIHByb3BlcnR5SUQpCiAjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgorCisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEdyaWRDb2x1bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6
CiAjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUNsYW1wOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRMb2dpY2FsV2lkdGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCmluZGV4IGRlNDUyMzBjN2VmZjFjN2M4YWY5NzllMTY3OWI4NGE1MzhhZWJlMDUu
LmNjMDFjMjEwODBmYzZjYzgwZTE2NTdlNWQxZjQ1YTI5MGNmYWYzODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0zNzUsNiArMzc1LDggQEAgei1pbmRleAogI2lm
IGRlZmluZWQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJiYgRU5BQkxFX0NTU19HUklEX0xBWU9V
VAogLXdlYmtpdC1ncmlkLWNvbHVtbnMKIC13ZWJraXQtZ3JpZC1yb3dzCistd2Via2l0LWdyaWQt
Y29sdW1uCistd2Via2l0LWdyaWQtcm93CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCkgJiYgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUCiAtd2Via2l0LWRhc2hi
b2FyZC1yZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAz
MTcxM2FkODE5NTA1MjUzYjA2MGY5OGZiY2EyZDQ5ZjU1ZmM5ZjQ3Li40YmM2YzlmYjNjNjNhYTlm
YWNkYzA3NTUwMDAyYTdkNmM2YTNiNmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCkBAIC0yOTUxLDYgKzI5NTEsMjIgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRy
YWNrTGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzLCBDU1NTdHkK
IAogICAgIHJldHVybiBmYWxzZTsKIH0KKworCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkUG9zaXRp
b24oQ1NTVmFsdWUqIHZhbHVlLCBMZW5ndGgmIHBvc2l0aW9uLCBDU1NTdHlsZVNlbGVjdG9yKiBz
ZWxlY3RvcikKK3sKKyAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGFjY2VwdDogPGludGVnZXI+IHwg
J2F1dG8nCisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocHJpbWl0aXZlVmFs
dWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSk7CisgICAgcG9zaXRpb24uc2V0
VmFsdWUocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVlKCkpOworICAgIHJldHVybiB0cnVlOwor
fQogI2VuZGlmCiAKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQs
IENTU1ZhbHVlICp2YWx1ZSkKQEAgLTM5MzUsNiArMzk1MSwyMSBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIG1f
c3R5bGUtPnNldEdyaWRSb3dzKGxlbmd0aHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46IHsKKyAgICAgICAgTGVuZ3RoIGNv
bHVtbjsKKyAgICAgICAgaWYgKCFjcmVhdGVHcmlkUG9zaXRpb24odmFsdWUsIGNvbHVtbiwgdGhp
cykpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEdyaWRDb2x1bW4o
Y29sdW1uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZFJvdzogeworICAgICAgICBMZW5ndGggcm93OworICAgICAgICBpZiAoIWNyZWF0ZUdy
aWRQb3NpdGlvbih2YWx1ZSwgcm93LCB0aGlzKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgbV9zdHlsZS0+c2V0R3JpZFJvdyhyb3cpOworICAgICAgICByZXR1cm47CisgICAgfQogI2Vu
ZGlmCiAKICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgQ1NT
U3R5bGVBcHBseVByb3BlcnR5IGxvb2t1cCB0YWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDllZDA1ZmQ4MTI3MTZlNmQ1MDA5NjJm
MjdiZjg1Njc3YjAwZjcwYTEuLmE3ZjIwMGU5OWYxYjMyOThiZjk4OThlZDEwYjk4NDUwZjU5YTEz
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtMTM1LDYgKzEzNSw3IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0
eWxlKGJvb2wpCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQuaW5pdCgpOworICAgIHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWRJdGVtLmluaXQoKTsKICNlbmRpZgogICAgIHJhcmVJ
bmhlcml0ZWREYXRhLmluaXQoKTsKICAgICBpbmhlcml0ZWQuaW5pdCgpOwpAQCAtNDI0LDcgKzQy
NSw4IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHls
ZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgIH0KICNlbmRpZgogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9ncmlkLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLmdldCgp
KQorICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKSAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKQorICAgICAgICAgICAgJiYgcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0uZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX2dyaWRJdGVtLmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlm
ZmVyZW5jZUxheW91dDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ1YWI4ZjRlNjljOGFjMWM2YjNlZTVlZWFkMzVlM2M3YzZl
YWQ3NmYuLjg3YzZkNDA5ZTFlZDVjYmQxNjJiZDRkMzAwMzFjYWIwMDlkYzY2YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03Nyw2ICs3Nyw3
IEBACiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogI2luY2x1ZGUgIlN0eWxlR3JpZERh
dGEuaCIKKyNpbmNsdWRlICJTdHlsZUdyaWRJdGVtRGF0YS5oIgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREFTSEJPQVJEX1NVUFBPUlQpCkBAIC04MTQsNiArODE1LDkgQEAgcHVibGljOgogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgY29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRDb2x1
bW5zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlk
Q29sdW1uczsgfQogICAgIGNvbnN0IFZlY3RvcjxMZW5ndGg+JiBncmlkUm93cygpIGNvbnN0IHsg
cmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZFJvd3M7IH0KKworICAg
IGNvbnN0IExlbmd0aCYgZ3JpZEl0ZW1Db2x1bW4oKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS0+bV9ncmlkQ29sdW1uOyB9CisgICAgY29uc3QgTGVuZ3Ro
JiBncmlkSXRlbVJvdygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dy
aWRJdGVtLT5tX2dyaWRSb3c7IH0KICNlbmRpZgogCiAgICAgY29uc3QgU2hhZG93RGF0YSogYm94
U2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYm94U2hhZG93
LmdldCgpOyB9CkBAIC0xMjM5LDYgKzEyNDMsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKICAgICB2b2lkIHNldEdyaWRDb2x1bW5zKGNvbnN0IFZlY3RvcjxMZW5ndGg+
JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3Jp
ZCwgbV9ncmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRSb3dzKGNvbnN0
IFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlkUm93cywgbGVuZ3Rocyk7IH0KKworICAgIHZvaWQgc2V0
R3JpZENvbHVtbihjb25zdCBMZW5ndGgmIGNvbHVtblBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZENvbHVtbiwgY29sdW1u
UG9zaXRpb24pOyB9CisgICAgdm9pZCBzZXRHcmlkUm93KGNvbnN0IExlbmd0aCYgcm93UG9zaXRp
b24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwg
bV9ncmlkUm93LCByb3dQb3NpdGlvbik7IH0KICNlbmRpZgogCiAgICAgdm9pZCBzZXRNYXJxdWVl
SW5jcmVtZW50KGNvbnN0IExlbmd0aCYgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX21hcnF1ZWUsIGluY3JlbWVudCwgZik7IH0KQEAgLTE2MzQsNiArMTY0MSwx
MCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3Jp
ZENvbHVtbnMoKSB7IHJldHVybiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQogICAgIHN0YXRp
YyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBpbml0aWFsR3JpZFRy
YWNrVmFsdWUoKTsgfQorCisgICAgLy8gJ2F1dG8nIGlzIHRoZSBkZWZhdWx0LgorICAgIHN0YXRp
YyBMZW5ndGggaW5pdGlhbEdyaWRDb2x1bW4oKSB7IHJldHVybiBMZW5ndGgoKTsgfQorICAgIHN0
YXRpYyBMZW5ndGggaW5pdGlhbEdyaWRSb3coKSB7IHJldHVybiBMZW5ndGgoKTsgfQogI2VuZGlm
CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWFsTGluZUdyaWQoKSB7IHJl
dHVybiBudWxsQXRvbTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUzNmRjNzM3OTEzMTNjOWJmOWE4
NmQ0MjFlYmYwYmQzYTg4M2VlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqICBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiAgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0eWxl
R3JpZEl0ZW1EYXRhLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHlsZUdyaWRJdGVt
RGF0YTo6U3R5bGVHcmlkSXRlbURhdGEoKQorICAgIDogbV9ncmlkQ29sdW1uKFJlbmRlclN0eWxl
Ojppbml0aWFsR3JpZENvbHVtbigpKQorICAgICwgbV9ncmlkUm93KFJlbmRlclN0eWxlOjppbml0
aWFsR3JpZFJvdygpKQoreworfQorCitTdHlsZUdyaWRJdGVtRGF0YTo6U3R5bGVHcmlkSXRlbURh
dGEoY29uc3QgU3R5bGVHcmlkSXRlbURhdGEmIG8pCisgICAgOiBSZWZDb3VudGVkPFN0eWxlR3Jp
ZEl0ZW1EYXRhPigpCisgICAgLCBtX2dyaWRDb2x1bW4oby5tX2dyaWRDb2x1bW4pCisgICAgLCBt
X2dyaWRSb3coby5tX2dyaWRSb3cpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJmNDBj
YmUzZWZlZTVhYjRmOWQ1YzE4NmQ5YmI0NDRhZWE2NWQwOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oCkBAIC0wLDAg
KzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiAg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqICBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
ICBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqICBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgU3R5bGVHcmlkSXRlbURh
dGFfaAorI2RlZmluZSBTdHlsZUdyaWRJdGVtRGF0YV9oCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURf
TEFZT1VUKQorCisjaW5jbHVkZSAiTGVuZ3RoLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHlsZUdyaWRJdGVtRGF0YSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFN0eWxlR3JpZEl0ZW1EYXRhPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3R5bGVHcmlkSXRlbURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTdHlsZUdyaWRJdGVtRGF0YSk7IH0KKyAgICBQYXNzUmVmUHRyPFN0eWxlR3JpZEl0ZW1EYXRh
PiBjb3B5KCkgY29uc3QgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlR3JpZEl0ZW1EYXRhKCp0
aGlzKSk7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYg
bykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2dyaWRDb2x1bW4gPT0gby5tX2dyaWRD
b2x1bW4gJiYgbV9ncmlkUm93ID09IG8ubV9ncmlkUm93OworICAgIH0KKworICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYgbykgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAhKCp0aGlzID09IG8pOworICAgIH0KKworICAgIC8vIEZJWE1FOiBGb3IgdGhlIG1v
bWVudCwgd2Ugb25seSBzdXBwb3J0IGEgc3Vic2V0IG9mIHRoZSBncmFtbWFyIHdoaWNoIGNvcnJl
c3BvbmQgdG86CisgICAgLy8gJ2F1dG8nIHwgPGxlbmd0aD4KKyAgICAvLyBXaGVuIHdlIGFkZCBt
b3JlIG9mIHRoZSBzeW50YXgsIHdlIHdpbGwgbmVlZCBhIGRlZGljYXRlZCBHcmlkUG9zaXRpb24g
Y2xhc3MuCisgICAgTGVuZ3RoIG1fZ3JpZENvbHVtbjsKKyAgICBMZW5ndGggbV9ncmlkUm93Owor
Citwcml2YXRlOgorICAgIFN0eWxlR3JpZEl0ZW1EYXRhKCk7CisgICAgU3R5bGVHcmlkSXRlbURh
dGEoY29uc3QgU3R5bGVHcmlkSXRlbURhdGEmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfTEFZT1VUX0dSSUQpCisKKyNlbmRpZiAvLyBTdHls
ZUdyaWRJdGVtRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggM2RjMzRmMDIxYWNk
YzBkMTM5ZGJiM2I5MWViYTE2NjdkOTM4Njc2NS4uNTI5ZmM0ZWI4MTIxMDk0MzBmOWM5NDljYTU5
OTVjNTAxMWI4ZmFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtOTgsNiArOTgsNyBA
QCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNv
bnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKICAgICAsIG1fZ3JpZChvLm1fZ3JpZCkKKyAgICAsIG1fZ3JpZEl0ZW0oby5tX2dyaWRJ
dGVtKQogI2VuZGlmCiAgICAgLCBtX2NvbnRlbnQoby5tX2NvbnRlbnQgPyBvLm1fY29udGVudC0+
Y2xvbmUoKSA6IG51bGxwdHIpCiAgICAgLCBtX2NvdW50ZXJEaXJlY3RpdmVzKG8ubV9jb3VudGVy
RGlyZWN0aXZlcyA/IGNsb25lKCpvLm1fY291bnRlckRpcmVjdGl2ZXMpIDogbnVsbHB0cikKQEAg
LTE2NSw2ICsxNjYsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogI2VuZGlmCiAjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKICAgICAgICAgJiYgbV9ncmlkID09IG8ubV9ncmlkCisgICAg
ICAgICYmIG1fZ3JpZEl0ZW0gPT0gby5tX2dyaWRJdGVtCiAjZW5kaWYKICAgICAgICAgJiYgY29u
dGVudERhdGFFcXVpdmFsZW50KG8pCiAgICAgICAgICYmIGNvdW50ZXJEYXRhRXF1aXZhbGVudChv
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggM2UyYzRhMTA3MzJmOGJhNzZjMWZmNThlZDlhZmZh
YzMyNzhmNWQ4My4uZTk1YzU1YjYwNjhiNTFiZjM4ZjYzODU0N2M4NTgzZmRhYmNkNjg0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIFN0eWxlRmlsdGVyRGF0
YTsKIGNsYXNzIFN0eWxlRmxleGlibGVCb3hEYXRhOwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCiBjbGFzcyBTdHlsZUdyaWREYXRhOworY2xhc3MgU3R5bGVHcmlkSXRlbURhdGE7CiAjZW5k
aWYKIGNsYXNzIFN0eWxlTWFycXVlZURhdGE7CiBjbGFzcyBTdHlsZU11bHRpQ29sRGF0YTsKQEAg
LTExOSw2ICsxMjAsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQog
ICAgIERhdGFSZWY8U3R5bGVHcmlkRGF0YT4gbV9ncmlkOworICAgIERhdGFSZWY8U3R5bGVHcmlk
SXRlbURhdGE+IG1fZ3JpZEl0ZW07CiAjZW5kaWYKIAogICAgIE93blB0cjxDb250ZW50RGF0YT4g
bV9jb250ZW50OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGViNzAzNGI3MTRjMWRmN2IxNjg5Njc0ZDU0NjJmZTU3ODM2ZGY0
ZWYuLjQ4MWYyNDg0MWE5YTBkZWYyMjg4ZDMwZWFhY2ZhZTZmZjMyNmI2MTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wMi0yMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgbGltaXRlZCBwYXJzaW5nIG9mIC13ZWJraXQt
Y29sdW1uIGFuZCAtd2Via2l0LXJvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzkxNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93
LWdldC1zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQt
c2V0LmpzOiBBZGRlZC4KKwogMjAxMi0wMi0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFtDb252ZXJ0U2NyaXB0U3RyaW5nXSBmcm9tIEZp
bGVSZWFkZXJTeW5jLmlkbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctZ2V0LXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGI5MTI1NmI4M2UyM2VjN2YxYzVhZWZiOGQwMzJiODUy
ZjVkY2ZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctZ2V0LXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
NiBAQAorVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgZ3JpZC1jb2x1bW4gYW5kIGdyaWQt
cm93IHdvcmtzIGFzIGV4cGVjdGVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitU
ZXN0IGdldHRpbmcgfGRpc3BsYXl8IHNldCB0aHJvdWdoIENTUworUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVt
bicpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIGlzICdhdXRvJworUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTAnCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
Z3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXJvdycpIGlzICcxNScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhO
ZWdhdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
JykgaXMgJy0xMCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhOZWdhdGl2ZUlu
dGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJy0xNScK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhBdXRvRWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkSXRlbVdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKKworVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZQor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKKwor
VGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlkLXJvdyB0aHJvdWdo
IEpTCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnNjYnCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW4nKSBpcyAnLTU1JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJy00MCcKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWNvbHVtbicpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJ2F1dG8nCisKK1Rlc3Qg
c2V0dGluZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgYmFjayB0byAnYXV0bycgdGhyb3VnaCBK
UworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1uJykgaXMgJzE4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1l
bnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJzY2JworUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1n
ZXQtc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0t
Y29sdW1uLXJvdy1nZXQtc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE3NGQ4MGFmNjg5NmZmY2Q4MDFk
MjMyYjQ4ZGZhYzU1MTIzODc1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbApAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZ3Jp
ZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyIHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxMDsK
KyAgICAtd2Via2l0LWdyaWQtcm93OiAxNTsKK30KKy5ncmlkSXRlbVdpdGhOZWdhdGl2ZUludGVn
ZXIgeworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IC0xMDsKKyAgICAtd2Via2l0LWdyaWQtcm93
OiAtMTU7Cit9CisuZ3JpZEl0ZW1XaXRoQXV0byB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjog
YXV0bzsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8IS0tIFRoZSBmaXJzdCBoYXMgbm8gcHJvcGVydGllcyBzZXQgb24gaXQuIC0tPgor
PGRpdiBpZD0iZ3JpZEVsZW1lbnQiPjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZEl0ZW1XaXRoUG9z
aXRpdmVJbnRlZ2VyIiBpZD0iZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyIj48L2Rpdj4KKzxk
aXYgY2xhc3M9ImdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciIgaWQ9ImdyaWRJdGVtV2l0aE5l
Z2F0aXZlSW50ZWdlciI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkSXRlbVdpdGhBdXRvIiBpZD0i
Z3JpZEl0ZW1XaXRoQXV0b0VsZW1lbnQiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9n
cmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNl
cy9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGI3NmJkYjY2MDk1MTUzYTdkY2FhNjA3M2M3ZWI3ZDU2Mzg1YTIxMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9n
cmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzCkBAIC0wLDAgKzEsNTcgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1y
b3cgd29ya3MgYXMgZXhwZWN0ZWQnKTsKKworZGVidWcoIlRlc3QgZ2V0dGluZyB8ZGlzcGxheXwg
c2V0IHRocm91Z2ggQ1NTIik7Cit2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JpZEVsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIidhdXRv
JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7CisKK3ZhciBncmlkSXRl
bVdpdGhQb3NpdGl2ZUludGVnZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEl0ZW1X
aXRoUG9zaXRpdmVJbnRlZ2VyIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRl
bVdpdGhQb3NpdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1uJykiLCAiJzEwJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1X
aXRoUG9zaXRpdmVJbnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
dycpIiwgIicxNSciKTsKKwordmFyIGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJncmlkSXRlbVdpdGhOZWdhdGl2ZUludGVnZXIiKTsKK3Nob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInLTEwJyIpOworc2hvdWxk
QmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJbnRlZ2VyLCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIictMTUnIik7CisKK3ZhciBncmlk
SXRlbVdpdGhBdXRvRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkSXRlbVdp
dGhBdXRvRWxlbWVudCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRo
QXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1uJyki
LCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhBdXRv
RWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0
byciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFsdWUiKTsKK3Zh
ciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGVsZW1lbnQpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0byci
KTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7CisKK2RlYnVnKCIiKTsKK2RlYnVn
KCJUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgZ3JpZC1jb2x1bW4gYW5kIGdyaWQtcm93IHRocm91
Z2ggSlMiKTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICIxOCI7CitlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiNjYiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICIn
MTgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIic2NiciKTsKKworZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICItNTUiOworZWxlbWVudC5z
dHlsZS53ZWJraXRHcmlkUm93ID0gIi00MCI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIict
NTUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIictNDAnIik7CisKK2VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSAiYXV0byI7CitlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiYXV0byI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwg
IidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0byciKTsKKworZGVidWcoIiIp
OworZGVidWcoIlRlc3Qgc2V0dGluZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgYmFjayB0byAn
YXV0bycgdGhyb3VnaCBKUyIpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0gIjE4
IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICI2NiI7CitzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbicpIiwgIicxOCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJzY2JyIpOworZWxlbWVu
dC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0gImF1dG8iOworZWxlbWVudC5zdHlsZS53ZWJraXRH
cmlkUm93ID0gImF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0byciKTsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128530</attachid>
            <date>2012-02-23 12:16:51 -0800</date>
            <delta_ts>2012-02-23 18:17:41 -0800</delta_ts>
            <desc>Fully working patch.</desc>
            <filename>bug-79151-20120223121649.patch</filename>
            <type>text/plain</type>
            <size>35784</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFmZDJhODEyOTVkNzg5
NTE1YTJjZDM2MzVmMmZiNDRhZjkxNDI3YS4uZmFlMTRjNDRlOGQ1NzI2YWE2ZTkyY2QzMzViZGQw
NTFlZWQwYzRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTAyLTIzICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBsaW1pdGVkIHBhcnNpbmcgb2YgLXdlYmtpdC1ncmlkLWNvbHVtbiBhbmQgLXdlYmtpdC1ncmlk
LXJvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0Lmh0bWwK
KworICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBncmFtbWFy
OgorCisgICAgICAgIC13ZWJraXQtZ3JpZC17cm93fGNvbHVtbn0gOj0gPGludGVnZXI+IHwgJ2F1
dG8nCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgdGhlIG5ldyBmaWxl
cyB0byBvdXIgYnVpbGQgc3lzdGVtcy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkUG9zaXRpb24p
OiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IHRyYW5zbGF0ZWQgZ3JhbW1hcgorICAgICAg
ICAodGhpcyBmdW5jdGlvbiB3aWxsIGJlIG1vcmUgdXNlZnVsIG9uY2Ugd2UgaW1wbGVtZW50IG1v
cmUgb2YgdGhlIGdyYW1tYXIpLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KToKKyAgICAgICAgQWRkZWQgaGFuZGxpbmcgZm9yIHRoZSBuZXcgcHJvcGVydGllcy4K
KworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgQWxsb3cgb25seSAnYXV0bycgb3IgPGludGVnZXI+
LgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgZ3JpZC1jb2x1bSBhbmQg
Z3JpZC1yb3cgYXJlIG5vdCBpbmhlcml0ZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbjoKKyAgICAgICAgQWRkZWQgdGhlIDIgbmV3IHByb3BlcnRpZXMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OlJlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpk
aWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg6IEFkZGVkLgorICAgICAgICAo
U3R5bGVHcmlkSXRlbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkSXRlbURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6Y29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3IhPSk6CisgICAgICAgIEltcGxl
bWVudGVkIHRoZSBtaW5pbXVtIHdvcmtpbmcgY2xhc3MuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6Cisg
ICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgQWRkZWQgU3R5bGVH
cmlkSXRlbURhdGEgdG8gdGhlIGNsYXNzIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuCisKIDIw
MTItMDItMjMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW0NNYWtlXSBBZGQgV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUyBtYWNy
bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwYWVlMjA4NGE2NTg2NjlmOWIwNGY0NDkwZDgwM2Nk
MGY5N2E1NTIzLi5hMmJjNzYzZjRiNWE4Zjc4MTQzYjk3YjdjN2QxZWEwZDQwM2FmZDE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM2Niw2ICsxMzY2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkRGF0YS5jcHAKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEu
Y3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5
bGVNdWx0aUNvbERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmYWE0
NGUzNDUxYjkyNTA5YjE2MmQxZTk5ZTBhMzk0ZmI3OWY4MzU1Li42ODgzNDExYmY4MjQyYjA5NDQ4
NWE1ODM4ZTk4OGE4MTgzMDY4NDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTM2ODIsNiArMzY4Miw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
SW5oZXJpdGVkRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUluaGVyaXRlZERhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5Y2NlMDM1YzljNDA3YjUyYjQ2Yzhi
YWVlNjUzNzYzNGRhNTMzNmRkLi4yYjkxMDlmY2Y3NGQ0N2JjMjZkNDgxNDU4YTA5MDVlNWQ1NWY1
ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEyODgsNiArMTI4OCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR3JpZERhdGEuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEu
Y3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcCBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5
bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlOGZlMGM2Y2Iz
YjkxNjQ5MTZjZWVmNmM0ZjIyY2U0NWQ2Yzc4MDE3Li5jNDU3OWJjY2VkMzAwYmI4YjFhMmVlODkw
YjQzYzNkMzVhMmI3NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MzgsNiArNTM4LDcgQEAKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaCcsCisgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUltYWdlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHls
ZUluaGVyaXRlZERhdGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFy
cXVlZURhdGEuaCcsCkBAIC00NTM2LDYgKzQ1MzcsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkSXRlbURhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5
bGVJbmhlcml0ZWREYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxl
TWFycXVlZURhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0
aUNvbERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMWU3YzZmMDYwMWJmZDAxNzY4N2RjZDY3ZDM4NzFkMzU5ODFhMTU4MS4uZmVh
N2M3Mzk0OTcyZjI4MjFmYzc5ZmFiYzI1ZGViY2YxMWYxMWM2ZCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzNDk5LDYgKzQzNDk5LDYyIEBA
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcc3R5bGVcU3R5bGVHcmlkSXRlbURhdGEuY3BwIgorCQkJCQk+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxl
R3JpZEl0ZW1EYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVJbWFnZS5oIgogCQkJCQk+CiAJCQkJ
PC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDZhMzEzMjdiOWM3NzRkZTEzMzExNTA1ZjA3YTAxYTE2NjFhMDM0YzguLjNj
MTk3NGYyNmQ1MzljMWViMDM0NDJiZjhlMWY3NzVkMTIxY2Y4NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MjUsNiArMzUy
NSw4IEBACiAJCUExMEJCNThCMTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQkI1ODkxNDg0
RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggKi87IH07CiAJCUExMERDNzZBMTQ3NDdC
QUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdy
aWREYXRhLmNwcCAqLzsgfTsKIAkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTExMERCOUIxNEY1REY3NzAwQTAz
QjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTEwREI5QTE0RjVERjc3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRl
bURhdGEuaCAqLzsgfTsKKwkJQTExMERCOUQxNEY1REY4NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0
ZW1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMTBEQjlDMTRGNURGODcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5jcHAgKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEyMEFDQTQxM0Y5
OThDQTAwRkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMTEzRjk5ODQ2MDBGRTRBQzcgLyogTGF5
b3V0UmVwYWludGVyLmNwcCAqLzsgfTsKIAkJQTEyNTM4RDQxM0Y5QjYwQTAwMDI0NzU0IC8qIExh
eW91dFJlcGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEyMEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMzZBMDBDMTEz
NERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTM2QTAwQTEx
MzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3Bw
ICovOyB9OwpAQCAtMTA0MTIsNiArMTA0MTQsOCBAQAogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4
N0EgLyogUmVuZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3Njgx
NDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVHcmlkRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUdy
aWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjkxNDc0N0JB
QjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU3R5bGVHcmlkRGF0YS5oOyBwYXRoID0gc3R5bGUvU3R5bGVHcmlkRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTEwREI5QTE0RjVERjc3MDBBMDNCOTMgLyogU3R5
bGVHcmlkSXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVH
cmlkSXRlbURhdGEuaDsgcGF0aCA9IHN0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMTBEQjlDMTRGNURGODcwMEEwM0I5MyAvKiBTdHlsZUdy
aWRJdGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHls
ZUdyaWRJdGVtRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBM
YXlvdXRSZXBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0
UmVwYWludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMjBBQ0ExMTNGOTk4
NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGF5b3V0UmVwYWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTEzNkEwMEExMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE5NTMxLDYgKzE5NTM1LDggQEAKIAkJQkM4QzhGQUEwRERDRDJGMjAw
QjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlBMTEwREI5QzE0RjVERjg3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuY3Bw
ICovLAorCQkJCUExMTBEQjlBMTRGNURGNzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5o
ICovLAogCQkJCUJDNUVCNUUwMEU4MUJFODcwMEIyNTk2NSAvKiBCb3JkZXJEYXRhLmggKi8sCiAJ
CQkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRlclZhbHVlLmggKi8sCiAJCQkJQkM1
RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNlZEJvcmRlclZhbHVlLmggKi8sCkBAIC0y
NDMzOCw2ICsyNDM0NCw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1
ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBa
ZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUI0OURCOEYxNEY0NkU4QjAwMjI5OUQ5IC8q
IElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMTBEQjlCMTRGNURGNzcwMEEwM0I5
MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzI4OCw2ICsyNzI5
NSw3IEBACiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVk
aXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTExMERCOUQxNEY1REY4NzAwQTAzQjkz
IC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAwNGY3MmM4
NmUxMjcwZjQ2NDNhY2ViNmJjMTViODE2ODk3NmQzMjY5Li5mNTIxOGQ2NTJmNjI4NDljYzg5YTU4
YWZkOTFjYmVlNGNkNjQ0NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjMyLDYgKzIzMiw5IEBAIHN0YXRpYyBjb25z
dCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9V
VCkKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zLAogICAgIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZFJvd3MsCisKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW4sCisgICAgQ1NT
UHJvcGVydHlXZWJraXRHcmlkUm93LAogI2VuZGlmCiAgICAgQ1NTUHJvcGVydHlXZWJraXRIaWdo
bGlnaHQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRIeXBoZW5hdGVDaGFyYWN0ZXIsCkBAIC05MTMs
NiArOTE2LDE1IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFj
a0xpc3QoY29uc3QgVmVjdG9yPExlbmd0aD4mIHRyYWNrTGVuCiAgICAgICAgIGxpc3QtPmFwcGVu
ZCh2YWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tMZW5ndGhzW2ldLCBzdHlsZSwgY3NzVmFs
dWVQb29sKSk7CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQorCitzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkUG9zaXRpb24oY29uc3QgTGVuZ3RoJiBwb3NpdGlv
biwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkK
K3sKKyAgICBpZiAocG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworCisgICAgQVNTRVJUKHBv
c2l0aW9uLmlzRml4ZWQoKSk7CisgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUo
cG9zaXRpb24udmFsdWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworfQogI2Vu
ZGlmCiAKIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXREZWxheVZhbHVlKGNvbnN0IEFu
aW1hdGlvbkxpc3QqIGFuaW1MaXN0LCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKQEAgLTE2
NDgsNiArMTY2MCwxMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdy
aWRUcmFja0xpc3Qoc3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wp
OwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46
CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JHcmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJdGVt
Q29sdW1uKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0R3JpZFJvdzoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRQb3Np
dGlvbihzdHlsZS0+Z3JpZEl0ZW1Sb3coKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAj
ZW5kaWYKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKICAgICAgICAgICAgIGlmIChy
ZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwM2Y5MWIzZDczOTUxZmFm
M2Y3MmVhY2ZjNDA2OWY4MWM4ZDQxODI2Li42ZmVlNWY0NTIxNWIyOTcyNTcwMzM0Mjc4YWUxMTVj
MzBmNDFiMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTg4Miw2ICsxODgyLDEx
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczoKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0R3JpZFJvd3M6CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRUcmFja0xpc3Qo
cHJvcElkLCBpbXBvcnRhbnQpOworCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1
bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIs
IG1fc3RyaWN0KTsKKyAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TWFyZ2luQ29sbGFwc2U6IHsKICAgICAgICAgY29uc3QgaW50IHByb3BlcnRpZXNbMl0g
PSB7IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlQ29sbGFwc2UsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5LmNwcAppbmRleCBmZDg1ZTliYWVlNmU2Y2MxMDQ4NDRjZmM0NzQ4YmE1Yjc2Nzhi
ZmJmLi4wMWU3MDc3YmY2NTFmMDU1MTgyOGFmNTY1NTdiY2Y0YmNkY2Q0N2ZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU3Myw2ICs1NzMsOSBAQCBib29sIENTU1Byb3BlcnR5
Ojppc0luaGVyaXRlZFByb3BlcnR5KHVuc2lnbmVkIHByb3BlcnR5SUQpCiAjaWYgRU5BQkxFKENT
U19HUklEX0xBWU9VVCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgorCisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEdyaWRDb2x1bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CiAj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUNsYW1wOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRMb2dpY2FsV2lkdGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCmluZGV4IDlhZmRhMzdhNzM5ZTVjYzM5MTcwMWE4MGNiZTM0YTkxODI3ZjU3OTUuLjQx
Mzk0NDY2YjljNmU2OWUyMDAxZWY5M2QyMDNkZTAzMzBmMDI2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0zNzYsNiArMzc2LDggQEAgei1pbmRleAogI2lmIGRl
ZmluZWQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJiYgRU5BQkxFX0NTU19HUklEX0xBWU9VVAog
LXdlYmtpdC1ncmlkLWNvbHVtbnMKIC13ZWJraXQtZ3JpZC1yb3dzCistd2Via2l0LWdyaWQtY29s
dW1uCistd2Via2l0LWdyaWQtcm93CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9EQVNIQk9B
UkRfU1VQUE9SVCkgJiYgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUCiAtd2Via2l0LWRhc2hib2Fy
ZC1yZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBiMTcy
YzQ3MzM0MThmM2ZkOGEzMTZjNDM2YjcxNjE3N2Q0NGZiZDYxLi5lNzA3NzI4MTRkMGY5ZTJkMTIw
ZDM5NGI2MjM5Njk4NGQzYThhZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCkBAIC0yOTUyLDYgKzI5NTIsMjIgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNr
TGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzLCBDU1NTdHkKIAog
ICAgIHJldHVybiBmYWxzZTsKIH0KKworCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkUG9zaXRpb24o
Q1NTVmFsdWUqIHZhbHVlLCBMZW5ndGgmIHBvc2l0aW9uLCBDU1NTdHlsZVNlbGVjdG9yKiBzZWxl
Y3RvcikKK3sKKyAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGFjY2VwdDogPGludGVnZXI+IHwgJ2F1
dG8nCisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSk7CisgICAgcG9zaXRpb24uc2V0VmFs
dWUocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVlKCkpOworICAgIHJldHVybiB0cnVlOworfQog
I2VuZGlmCiAKIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENT
U1ZhbHVlICp2YWx1ZSkKQEAgLTM4MDQsNiArMzgyMCwyMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIG1fc3R5
bGUtPnNldEdyaWRSb3dzKGxlbmd0aHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46IHsKKyAgICAgICAgTGVuZ3RoIGNvbHVt
bjsKKyAgICAgICAgaWYgKCFjcmVhdGVHcmlkUG9zaXRpb24odmFsdWUsIGNvbHVtbiwgdGhpcykp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEdyaWRJdGVtQ29sdW1u
KGNvbHVtbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRSb3c6IHsKKyAgICAgICAgTGVuZ3RoIHJvdzsKKyAgICAgICAgaWYgKCFjcmVhdGVH
cmlkUG9zaXRpb24odmFsdWUsIHJvdywgdGhpcykpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fc3R5bGUtPnNldEdyaWRJdGVtUm93KHJvdyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAjZW5kaWYKIAogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGltcGxlbWVudGVkIGluIHRo
ZSBDU1NTdHlsZUFwcGx5UHJvcGVydHkgbG9va3VwIHRhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYzYyYjNiMTk4Y2EyM2Y0Mjli
ZjE5MzY2MWQyODIzNmYzNDU3N2I5My4uMTQ1OTUxZDNhZDNmYjhlOGY4NDRjMjJmNDI5OGZkZGYz
ZWIxNmYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC0xMzUsNiArMTM1LDcgQEAgQUxXQVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVu
ZGVyU3R5bGUoYm9vbCkKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAg
cmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZC5pbml0KCk7CisgICAgcmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0uaW5pdCgpOwogI2VuZGlmCiAgICAg
cmFyZUluaGVyaXRlZERhdGEuaW5pdCgpOwogICAgIGluaGVyaXRlZC5pbml0KCk7CkBAIC00MjQs
NyArNDI1LDggQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRl
clN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgfQogI2VuZGlmCiAj
aWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKLSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2dyaWQuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQu
Z2V0KCkpCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLmdldCgpICE9
IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLmdldCgpCisgICAgICAgICAgICAm
JiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS5nZXQoKSAhPSBvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0uZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gU3R5
bGVEaWZmZXJlbmNlTGF5b3V0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNjQ3ZDNlOWZjMjY5YmI1NDY3Nzk2MGNlNzFmMmE1
YjQ3YTFlMDI0Ny4uNGU5NDczMDI4Zjc2OGM0MDk0MzRhOWM1YmU3Y2U2Nzg3NWM5ZWM3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTc3LDYg
Kzc3LDcgQEAKIAogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAjaW5jbHVkZSAiU3R5bGVH
cmlkRGF0YS5oIgorI2luY2x1ZGUgIlN0eWxlR3JpZEl0ZW1EYXRhLmgiCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTgxNCw2ICs4MTUsOSBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBjb25zdCBWZWN0b3I8TGVuZ3RoPiYgZ3Jp
ZENvbHVtbnMoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5t
X2dyaWRDb2x1bW5zOyB9CiAgICAgY29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRSb3dzKCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkUm93czsgfQor
CisgICAgY29uc3QgTGVuZ3RoJiBncmlkSXRlbUNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJdGVtLT5tX2dyaWRDb2x1bW47IH0KKyAgICBjb25zdCBM
ZW5ndGgmIGdyaWRJdGVtUm93KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fZ3JpZEl0ZW0tPm1fZ3JpZFJvdzsgfQogI2VuZGlmCiAKICAgICBjb25zdCBTaGFkb3dEYXRh
KiBib3hTaGFkb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ib3hT
aGFkb3cuZ2V0KCk7IH0KQEAgLTEyNDAsNiArMTI0NCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKQogICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPExl
bmd0aD4mIGxlbmd0aHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
bV9ncmlkLCBtX2dyaWRDb2x1bW5zLCBsZW5ndGhzKTsgfQogICAgIHZvaWQgc2V0R3JpZFJvd3Mo
Y29uc3QgVmVjdG9yPExlbmd0aD4mIGxlbmd0aHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVk
RGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRSb3dzLCBsZW5ndGhzKTsgfQorCisgICAgdm9p
ZCBzZXRHcmlkSXRlbUNvbHVtbihjb25zdCBMZW5ndGgmIGNvbHVtblBvc2l0aW9uKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZENvbHVt
biwgY29sdW1uUG9zaXRpb24pOyB9CisgICAgdm9pZCBzZXRHcmlkSXRlbVJvdyhjb25zdCBMZW5n
dGgmIHJvd1Bvc2l0aW9uKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZ3JpZEl0ZW0sIG1fZ3JpZFJvdywgcm93UG9zaXRpb24pOyB9CiAjZW5kaWYKIAogICAgIHZv
aWQgc2V0TWFycXVlZUluY3JlbWVudChjb25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZBUihyYXJlTm9u
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYpOyB9CkBAIC0x
NjM2LDYgKzE2NDMsMTAgQEAgcHVibGljOgogICAgIH0KICAgICBzdGF0aWMgVmVjdG9yPExlbmd0
aD4gaW5pdGlhbEdyaWRDb2x1bW5zKCkgeyByZXR1cm4gaW5pdGlhbEdyaWRUcmFja1ZhbHVlKCk7
IH0KICAgICBzdGF0aWMgVmVjdG9yPExlbmd0aD4gaW5pdGlhbEdyaWRSb3dzKCkgeyByZXR1cm4g
aW5pdGlhbEdyaWRUcmFja1ZhbHVlKCk7IH0KKworICAgIC8vICdhdXRvJyBpcyB0aGUgZGVmYXVs
dC4KKyAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxHcmlkSXRlbUNvbHVtbigpIHsgcmV0dXJuIExl
bmd0aCgpOyB9CisgICAgc3RhdGljIExlbmd0aCBpbml0aWFsR3JpZEl0ZW1Sb3coKSB7IHJldHVy
biBMZW5ndGgoKTsgfQogI2VuZGlmCiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBp
bml0aWFsTGluZUdyaWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWVlOTU3NzY5MjQ1M2ZkOGViMjc0NGM4YzQzMjI4NDFjMTAwNTBiNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAK
QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqICBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqICBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiAgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlN0eWxlR3JpZEl0ZW1EYXRhLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0dS
SURfTEFZT1VUKQorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitTdHlsZUdyaWRJdGVtRGF0YTo6U3R5bGVHcmlkSXRlbURhdGEoKQorICAgIDogbV9n
cmlkQ29sdW1uKFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEl0ZW1Db2x1bW4oKSkKKyAgICAsIG1f
Z3JpZFJvdyhSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRJdGVtUm93KCkpCit7Cit9CisKK1N0eWxl
R3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYg
bykKKyAgICA6IFJlZkNvdW50ZWQ8U3R5bGVHcmlkSXRlbURhdGE+KCkKKyAgICAsIG1fZ3JpZENv
bHVtbihvLm1fZ3JpZENvbHVtbikKKyAgICAsIG1fZ3JpZFJvdyhvLm1fZ3JpZFJvdykKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
R3JpZEl0ZW1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlk
SXRlbURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmY0MGNiZTNlZmVlNWFiNGY5ZDVjMTg2ZDliYjQ0NGFl
YTY1ZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlR3JpZEl0ZW1EYXRhLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
ICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqICBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiAgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqICBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg
Ki8KKworI2lmbmRlZiBTdHlsZUdyaWRJdGVtRGF0YV9oCisjZGVmaW5lIFN0eWxlR3JpZEl0ZW1E
YXRhX2gKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNsdWRlICJMZW5ndGgu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFN0eWxlR3JpZEl0ZW1EYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVHcmlkSXRlbURh
dGE+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZUdyaWRJdGVtRGF0YT4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlR3JpZEl0ZW1EYXRhKTsgfQorICAg
IFBhc3NSZWZQdHI8U3R5bGVHcmlkSXRlbURhdGE+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9w
dFJlZihuZXcgU3R5bGVHcmlkSXRlbURhdGEoKnRoaXMpKTsgfQorCisgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0eWxlR3JpZEl0ZW1EYXRhJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fZ3JpZENvbHVtbiA9PSBvLm1fZ3JpZENvbHVtbiAmJiBtX2dyaWRSb3cgPT0gby5tX2dy
aWRSb3c7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxlR3JpZEl0ZW1E
YXRhJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAg
fQorCisgICAgLy8gRklYTUU6IEZvciB0aGUgbW9tZW50LCB3ZSBvbmx5IHN1cHBvcnQgYSBzdWJz
ZXQgb2YgdGhlIGdyYW1tYXIgd2hpY2ggY29ycmVzcG9uZCB0bzoKKyAgICAvLyAnYXV0bycgfCA8
bGVuZ3RoPgorICAgIC8vIFdoZW4gd2UgYWRkIG1vcmUgb2YgdGhlIHN5bnRheCwgd2Ugd2lsbCBu
ZWVkIGEgZGVkaWNhdGVkIEdyaWRQb3NpdGlvbiBjbGFzcy4KKyAgICBMZW5ndGggbV9ncmlkQ29s
dW1uOworICAgIExlbmd0aCBtX2dyaWRSb3c7CisKK3ByaXZhdGU6CisgICAgU3R5bGVHcmlkSXRl
bURhdGEoKTsKKyAgICBTdHlsZUdyaWRJdGVtRGF0YShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19M
QVlPVVRfR1JJRCkKKworI2VuZGlmIC8vIFN0eWxlR3JpZEl0ZW1EYXRhX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAppbmRleCAzZGMzNGYwMjFhY2RjMGQxMzlkYmIzYjkxZWJhMTY2N2Q5Mzg2NzY1
Li41MjlmYzRlYjgxMjEwOTQzMGY5Yzk0OWNhNTk5NWM1MDExYjhmYWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwCkBAIC05OCw2ICs5OCw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICwgbV9ncmlkKG8ubV9ncmlk
KQorICAgICwgbV9ncmlkSXRlbShvLm1fZ3JpZEl0ZW0pCiAjZW5kaWYKICAgICAsIG1fY29udGVu
dChvLm1fY29udGVudCA/IG8ubV9jb250ZW50LT5jbG9uZSgpIDogbnVsbHB0cikKICAgICAsIG1f
Y291bnRlckRpcmVjdGl2ZXMoby5tX2NvdW50ZXJEaXJlY3RpdmVzID8gY2xvbmUoKm8ubV9jb3Vu
dGVyRGlyZWN0aXZlcykgOiBudWxscHRyKQpAQCAtMTY1LDYgKzE2Niw3IEBAIGJvb2wgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhJiBvKSBjCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAg
ICAmJiBtX2dyaWQgPT0gby5tX2dyaWQKKyAgICAgICAgJiYgbV9ncmlkSXRlbSA9PSBvLm1fZ3Jp
ZEl0ZW0KICNlbmRpZgogICAgICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAg
ICAgJiYgY291bnRlckRhdGFFcXVpdmFsZW50KG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAz
ZTJjNGExMDczMmY4YmE3NmMxZmY1OGVkOWFmZmFjMzI3OGY1ZDgzLi5lOTVjNTViNjA2OGI1MWJm
MzhmNjM4NTQ3Yzg1ODNmZGFiY2Q2ODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTQ4LDYg
KzQ4LDcgQEAgY2xhc3MgU3R5bGVGaWx0ZXJEYXRhOwogY2xhc3MgU3R5bGVGbGV4aWJsZUJveERh
dGE7CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIGNsYXNzIFN0eWxlR3JpZERhdGE7Citj
bGFzcyBTdHlsZUdyaWRJdGVtRGF0YTsKICNlbmRpZgogY2xhc3MgU3R5bGVNYXJxdWVlRGF0YTsK
IGNsYXNzIFN0eWxlTXVsdGlDb2xEYXRhOwpAQCAtMTE5LDYgKzEyMCw3IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgRGF0YVJlZjxTdHlsZUdyaWREYXRhPiBt
X2dyaWQ7CisgICAgRGF0YVJlZjxTdHlsZUdyaWRJdGVtRGF0YT4gbV9ncmlkSXRlbTsKICNlbmRp
ZgogCiAgICAgT3duUHRyPENvbnRlbnREYXRhPiBtX2NvbnRlbnQ7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2E1OTA5YWY1
YjhmYjU3NjFiZjNhMTNjMmUzNTdlZTRjZjI5MjE0Mi4uMTQwY2IxYzFiOGRiNTAzZjU2YTFlNTNl
MDZmZmQwMjI0ZWE1MzJkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTIzICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBsaW1pdGVkIHBhcnNpbmcgb2YgLXdlYmtpdC1ncmlkLWNvbHVtbiBhbmQgLXdlYmtpdC1ncmlk
LXJvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29s
dW1uLXJvdy1nZXQtc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5
b3V0L3Jlc291cmNlcy9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzOiBBZGRlZC4KKwog
MjAxMi0wMi0yMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4t
cm93LWdldC1zZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwYjkxMjU2YjgzZTIzZWM3ZjFj
NWFlZmI4ZDAzMmI4NTJmNWRjZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM2IEBACitUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNv
bHVtbiBhbmQgZ3JpZC1yb3cgd29ya3MgYXMgZXhwZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1Rlc3QgZ2V0dGluZyB8ZGlzcGxheXwgc2V0IHRocm91Z2ggQ1NTCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJ2F1dG8n
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyLCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICcxMCcKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJzE1JworUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW4nKSBpcyAnLTEwJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVt
V2l0aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1y
b3cnKSBpcyAnLTE1JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aEF1dG9FbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICdhdXRv
JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIGlzICdhdXRvJworCitUZXN0IHRoZSBp
bml0aWFsIHZhbHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycp
IGlzICdhdXRvJworCitUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgZ3JpZC1jb2x1bW4gYW5kIGdy
aWQtcm93IHRocm91Z2ggSlMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICcxOCcKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJv
dycpIGlzICc2NicKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICctNTUnCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBp
cyAnLTQwJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAn
YXV0bycKKworVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlkLXJvdyBiYWNrIHRvICdh
dXRvJyB0aHJvdWdoIEpTCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTgnCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cn
KSBpcyAnNjYnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIGlz
ICdhdXRvJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTc0ZDgw
YWY2ODk2ZmZjZDgwMWQyMzJiNDhkZmFjNTUxMjM4NzUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctZ2V0LXNl
dC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKy5ncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIgeworICAgIC13ZWJraXQtZ3Jp
ZC1jb2x1bW46IDEwOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE1OworfQorLmdyaWRJdGVtV2l0
aE5lZ2F0aXZlSW50ZWdlciB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogLTEwOworICAgIC13
ZWJraXQtZ3JpZC1yb3c6IC0xNTsKK30KKy5ncmlkSXRlbVdpdGhBdXRvIHsKKyAgICAtd2Via2l0
LWdyaWQtY29sdW1uOiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87Cit9Cis8L3N0
eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwhLS0gVGhlIGZpcnN0IGhhcyBubyBwcm9wZXJ0aWVzIHNl
dCBvbiBpdC4gLS0+Cis8ZGl2IGlkPSJncmlkRWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJn
cmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIiIGlkPSJncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVn
ZXIiPjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJbnRlZ2VyIiBpZD0i
Z3JpZEl0ZW1XaXRoTmVnYXRpdmVJbnRlZ2VyIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWRJdGVt
V2l0aEF1dG8iIGlkPSJncmlkSXRlbVdpdGhBdXRvRWxlbWVudCI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1pdGVtLWNvbHVtbi1yb3ct
Z2V0LXNldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjc2YmRiNjYwOTUxNTNhN2RjYWE2MDczYzdlYjdkNTYz
ODVhMjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuanMKQEAgLTAsMCArMSw1
NyBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBzZXR0aW5nIGFuZCBnZXR0aW5nIGdyaWQtY29s
dW1uIGFuZCBncmlkLXJvdyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0
aW5nIHxkaXNwbGF5fCBzZXQgdGhyb3VnaCBDU1MiKTsKK3ZhciBncmlkRWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJncmlkRWxlbWVudCIpOworc2hvdWxkQmUoImdldENvbXB1dGVk
U3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29s
dW1uJykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0byciKTsK
KwordmFyIGdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInMTAnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93JykiLCAiJzE1JyIpOworCit2YXIgZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJ
bnRlZ2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50
ZWdlciIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJ
bnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIict
MTAnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhOZWdhdGl2ZUlu
dGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJy0xNSci
KTsKKwordmFyIGdyaWRJdGVtV2l0aEF1dG9FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImdyaWRJdGVtV2l0aEF1dG9FbGVtZW50Iik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShncmlkSXRlbVdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1jb2x1bW4nKSIsICInYXV0byciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdy
aWRJdGVtV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvdycpIiwgIidhdXRvJyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGUgaW5pdGlh
bCB2YWx1ZSIpOwordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
K2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitzaG91bGRCZSgiZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVt
bicpIiwgIidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0byciKTsKKworZGVi
dWcoIiIpOworZGVidWcoIlRlc3QgZ2V0dGluZyBhbmQgc2V0dGluZyBncmlkLWNvbHVtbiBhbmQg
Z3JpZC1yb3cgdGhyb3VnaCBKUyIpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0g
IjE4IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICI2NiI7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbicpIiwgIicxOCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJzY2JyIpOworCitl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0gIi01
NSI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiLTQwIjsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1uJykiLCAiJy01NSciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJy00MCciKTsKKwor
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICJh
dXRvIjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICJhdXRvIjsKK3Nob3VsZEJlKCJn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtY29sdW1uJykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIidhdXRvJyIp
OworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlk
LXJvdyBiYWNrIHRvICdhdXRvJyB0aHJvdWdoIEpTIik7CitlbGVtZW50LnN0eWxlLndlYmtpdEdy
aWRDb2x1bW4gPSAiMTgiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93ID0gIjY2IjsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1uJykiLCAiJzE4JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICIn
NjYnIik7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSAiYXV0byI7CitlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiYXV0byI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwg
IidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0byciKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128625</attachid>
            <date>2012-02-23 18:17:44 -0800</date>
            <delta_ts>2012-02-24 12:47:19 -0800</delta_ts>
            <desc>Updated patch: fixed the Mac build.</desc>
            <filename>bug-79151-20120223181743.patch</filename>
            <type>text/plain</type>
            <size>36194</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEyMWQyMzBjNWZkNzg1
NWM3MmQzODIzNzMwNDE4ODc1MDFmNjMwMC4uOWY2NTYyZWY3MGRmZmYzMTQxODZjMGMwMmM5ZDQ2
NDZiYmEyMWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTAyLTIzICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBsaW1pdGVkIHBhcnNpbmcgb2YgLXdlYmtpdC1ncmlkLWNvbHVtbiBhbmQgLXdlYmtpdC1ncmlk
LXJvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0Lmh0bWwK
KworICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBncmFtbWFy
OgorCisgICAgICAgIC13ZWJraXQtZ3JpZC17cm93fGNvbHVtbn0gOj0gPGludGVnZXI+IHwgJ2F1
dG8nCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgdGhlIG5ldyBmaWxl
cyB0byBvdXIgYnVpbGQgc3lzdGVtcy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkUG9zaXRpb24p
OiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IHRyYW5zbGF0ZWQgZ3JhbW1hcgorICAgICAg
ICAodGhpcyBmdW5jdGlvbiB3aWxsIGJlIG1vcmUgdXNlZnVsIG9uY2Ugd2UgaW1wbGVtZW50IG1v
cmUgb2YgdGhlIGdyYW1tYXIpLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KToKKyAgICAgICAgQWRkZWQgaGFuZGxpbmcgZm9yIHRoZSBuZXcgcHJvcGVydGllcy4K
KworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgQWxsb3cgb25seSAnYXV0bycgb3IgPGludGVnZXI+
LgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgZ3JpZC1jb2x1bSBhbmQg
Z3JpZC1yb3cgYXJlIG5vdCBpbmhlcml0ZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbjoKKyAgICAgICAgQWRkZWQgdGhlIDIgbmV3IHByb3BlcnRpZXMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OlJlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpk
aWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg6IEFkZGVkLgorICAgICAgICAo
U3R5bGVHcmlkSXRlbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkSXRlbURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6Y29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3IhPSk6CisgICAgICAgIEltcGxl
bWVudGVkIHRoZSBtaW5pbXVtIHdvcmtpbmcgY2xhc3MuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6Cisg
ICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgQWRkZWQgU3R5bGVH
cmlkSXRlbURhdGEgdG8gdGhlIGNsYXNzIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuCisKIDIw
MTItMDItMjMgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAg
VGhpcyB0ZXN0IGNoZWNrcyBzZWxlY3QgYXR0cmlidXRlIG9mIGNvbnRlbnQgZWxlbWVudCBpcyB2
YWxpZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGFlZTIwODRhNjU4NjY5ZjliMDRmNDQ5MGQ4
MDNjZDBmOTdhNTUyMy4uYTJiYzc2M2Y0YjVhOGY3ODE0M2I5N2I3YzdkMWVhMGQ0MDNhZmQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNjYsNiArMTM2Niw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwCiAgICAgcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1E
YXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlTXVsdGlDb2xEYXRhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZmFhNDRlMzQ1MWI5MjUwOWIxNjJkMWU5OWUwYTM5NGZiNzlmODM1NS4uNjg4MzQxMWJmODI0MmIw
OTQ0ODVhNTgzOGU5ODhhODE4MzA2ODQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0zNjgyLDYgKzM2ODIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUltYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUluaGVyaXRlZERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVJbmhlcml0ZWREYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOWNjZTAzNWM5YzQwN2I1MmI0
NmM4YmFlZTY1Mzc2MzRkYTUzMzZkZC4uMmI5MTA5ZmNmNzRkNDdiYzI2ZDQ4MTQ1OGEwOTA1ZTVk
NTVmNWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMjg4LDYgKzEyODgsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdyaWREYXRhLmNwcCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1E
YXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAgXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZU1hcnF1ZWVEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWRkZjkx
NWY0ZWFjMDA0ZWVlNjg1ODJhMjgyMTczMzViYjNjYTU2Mi4uMzZmZmI5ZmVmNGIyMWJiYWMzZTcz
MTVjNDA2MmNkNzE4ZWE2ZjE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTM4LDYgKzUzOCw3IEBA
CiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgnLAorICAgICAgICAgICAg
J3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUv
U3R5bGVJbmhlcml0ZWREYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHls
ZU1hcnF1ZWVEYXRhLmgnLApAQCAtNDUzNSw2ICs0NTM2LDcgQEAKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9T
dHlsZU1hcnF1ZWVEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxl
TXVsdGlDb2xEYXRhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDFlN2M2ZjA2MDFiZmQwMTc2ODdkY2Q2N2QzODcxZDM1OTgxYTE1ODEu
LmZlYTdjNzM5NDk3MmYyODIxZmM3OWZhYmMyNWRlYmNmMTFmMTFjNmQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MzQ5OSw2ICs0MzQ5OSw2
MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlR3JpZEl0ZW1EYXRhLmNwcCIKKwkJCQkJPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxT
dHlsZUdyaWRJdGVtRGF0YS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlSW1hZ2UuaCIKIAkJCQkJPgog
CQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2YTMxMzI3YjljNzc0ZGUxMzMxMTUwNWYwN2EwMWExNjYxYTAzNGM4
Li5kMjQzNzM3ZTdjYjIxOTYzNjliZmExNmQ0OTVjNjM4ZjE1OGNiZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTI1LDYg
KzM1MjUsOCBAQAogCQlBMTBCQjU4QjE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEJCNTg5
MTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oICovOyB9OwogCQlBMTBEQzc2QTE0
NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5
bGVHcmlkRGF0YS5jcHAgKi87IH07CiAJCUExMERDNzZCMTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHls
ZUdyaWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTBEQzc2OTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExMTBEQjlEMTRGNURGODcw
MEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTEwREI5QzE0RjVERjg3MDBBMDNCOTMgLyogU3R5bGVH
cmlkSXRlbURhdGEuY3BwICovOyB9OworCQlBMTEwREI5QjE0RjVERjc3MDBBMDNCOTMgLyogU3R5
bGVHcmlkSXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMTBEQjlBMTRGNURGNzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMjBBQ0E0
MTNGOTk4Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyMEFDQTExM0Y5OTg0NjAwRkU0QUM3IC8q
IExheW91dFJlcGFpbnRlci5jcHAgKi87IH07CiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAv
KiBMYXlvdXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTM2QTAw
QzExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzNkEw
MEExMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmNwcCAqLzsgfTsKQEAgLTEwNDEyLDYgKzEwNDE0LDggQEAKIAkJQTEwQkI1ODkxNDg0RTNCMzAw
QjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERD
NzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlR3JpZERhdGEuY3BwOyBwYXRoID0gc3R5bGUvU3R5
bGVHcmlkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERDNzY5MTQ3
NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0eWxlR3JpZERhdGEuaDsgcGF0aCA9IHN0eWxlL1N0eWxlR3JpZERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTExMERCOUExNEY1REY3NzAwQTAzQjkzIC8q
IFN0eWxlR3JpZEl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0
eWxlR3JpZEl0ZW1EYXRhLmg7IHBhdGggPSBzdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTEwREI5QzE0RjVERjg3MDBBMDNCOTMgLyogU3R5
bGVHcmlkSXRlbURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
U3R5bGVHcmlkSXRlbURhdGEuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcg
LyogTGF5b3V0UmVwYWludGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExh
eW91dFJlcGFpbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTIwQUNBMTEz
Rjk5ODQ2MDBGRTRBQzcgLyogTGF5b3V0UmVwYWludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dFJlcGFpbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMzZBMDBBMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTUzMSw2ICsxOTUzNSw4IEBACiAJCUJDOEM4RkFBMEREQ0Qy
RjIwMEI1OTJGNCAvKiBzdHlsZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQTExMERCOUMxNEY1REY4NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRh
LmNwcCAqLywKKwkJCQlBMTEwREI5QTE0RjVERjc3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURh
dGEuaCAqLywKIAkJCQlCQzVFQjVFMDBFODFCRTg3MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oICov
LAogCQkJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovLAogCQkJ
CUJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovLApA
QCAtMjQzMzgsNiArMjQzNDQsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBY
U1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0Ug
LyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUVCNDlEQjhGMTRGNDZFOEIwMDIyOTlE
OSAvKiBJREJUcmFjaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTEwREI5QjE0RjVERjc3MDBB
MDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjcyODgsNiAr
MjcyOTUsNyBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhT
U0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENF
IC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExMTBEQjlEMTRGNURGODcwMEEw
M0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMDRm
NzJjODZlMTI3MGY0NjQzYWNlYjZiYzE1YjgxNjg5NzZkMzI2OS4uNDI4YTQ1ODAzY2I3YWMzNWUz
ODA4Njg5ZjIxNzY0MTcyYzI1YjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTIzMiw2ICsyMzIsOSBAQCBzdGF0aWMg
Y29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1tdID0gewogI2lmIEVOQUJMRShDU1NfR1JJRF9M
QVlPVVQpCiAgICAgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1ucywKICAgICBDU1NQcm9wZXJ0
eVdlYmtpdEdyaWRSb3dzLAorCisgICAgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uLAorICAg
IENTU1Byb3BlcnR5V2Via2l0R3JpZFJvdywKICNlbmRpZgogICAgIENTU1Byb3BlcnR5V2Via2l0
SGlnaGxpZ2h0LAogICAgIENTU1Byb3BlcnR5V2Via2l0SHlwaGVuYXRlQ2hhcmFjdGVyLApAQCAt
OTEzLDYgKzkxNiwxNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlk
VHJhY2tMaXN0KGNvbnN0IFZlY3RvcjxMZW5ndGg+JiB0cmFja0xlbgogICAgICAgICBsaXN0LT5h
cHBlbmQodmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKHRyYWNrTGVuZ3Roc1tpXSwgc3R5bGUsIGNz
c1ZhbHVlUG9vbCkpOwogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KKworc3RhdGljIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFBvc2l0aW9uKGNvbnN0IExlbmd0aCYgcG9z
aXRpb24sIENTU1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQoreworICAgIGlmIChwb3NpdGlvbi5p
c0F1dG8oKSkKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7CisKKyAgICBBU1NFUlQocG9zaXRpb24uaXNGaXhlZCgpKTsKKyAg
ICByZXR1cm4gY3NzVmFsdWVQb29sLT5jcmVhdGVWYWx1ZShwb3NpdGlvbi52YWx1ZSgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7Cit9CiAjZW5kaWYKIAogc3RhdGljIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGdldERlbGF5VmFsdWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5pbUxpc3Qs
IENTU1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQpAQCAtMTY0OCw2ICsxNjYwLDExIEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlD
U1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93
czogewogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrTGlzdChzdHlsZS0+Z3Jp
ZFJvd3MoKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgIH0KKworICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbjoKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckdyaWRQb3NpdGlvbihzdHlsZS0+Z3JpZEl0ZW1Db2x1bW4oKSwgY3NzVmFsdWVQb29s
KTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAgICAgICAgICBy
ZXR1cm4gdmFsdWVGb3JHcmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJdGVtUm93KCksIGNzc1ZhbHVl
UG9vbCk7CiAjZW5kaWYKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUhlaWdodDoKICAgICAgICAg
ICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwM2Y5MWIz
ZDczOTUxZmFmM2Y3MmVhY2ZjNDA2OWY4MWM4ZDQxODI2Li42ZmVlNWY0NTIxNWIyOTcyNTcwMzM0
Mjc4YWUxMTVjMzBmNDFiMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTg4Miw2
ICsxODgyLDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczoKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRU
cmFja0xpc3QocHJvcElkLCBpbXBvcnRhbnQpOworCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEdyaWRDb2x1bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAgICAg
IHZhbGlkUHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbGlkVW5pdCh2YWx1ZSwg
RkludGVnZXIsIG1fc3RyaWN0KTsKKyAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0TWFyZ2luQ29sbGFwc2U6IHsKICAgICAgICAgY29uc3QgaW50IHByb3Bl
cnRpZXNbMl0gPSB7IENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQmVmb3JlQ29sbGFwc2UsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRleCBmZDg1ZTliYWVlNmU2Y2MxMDQ4NDRjZmM0NzQ4
YmE1Yjc2NzhiZmJmLi4wMWU3MDc3YmY2NTFmMDU1MTgyOGFmNTY1NTdiY2Y0YmNkY2Q0N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTU3Myw2ICs1NzMsOSBAQCBib29sIENT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHVuc2lnbmVkIHByb3BlcnR5SUQpCiAjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENv
bHVtbnM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgorCisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdy
aWRSb3c6CiAjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUNsYW1wOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMb2dpY2FsV2lkdGg6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluCmluZGV4IDlhZmRhMzdhNzM5ZTVjYzM5MTcwMWE4MGNiZTM0YTkxODI3
ZjU3OTUuLjQxMzk0NDY2YjljNmU2OWUyMDAxZWY5M2QyMDNkZTAzMzBmMDI2MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0zNzYsNiArMzc2LDggQEAgei1pbmRl
eAogI2lmIGRlZmluZWQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJiYgRU5BQkxFX0NTU19HUklE
X0xBWU9VVAogLXdlYmtpdC1ncmlkLWNvbHVtbnMKIC13ZWJraXQtZ3JpZC1yb3dzCistd2Via2l0
LWdyaWQtY29sdW1uCistd2Via2l0LWdyaWQtcm93CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJiYgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUCiAtd2Via2l0
LWRhc2hib2FyZC1yZWdpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCBiMTcyYzQ3MzM0MThmM2ZkOGEzMTZjNDM2YjcxNjE3N2Q0NGZiZDYxLi44MTlmZDQ5OTIz
ZTM3OWI3YTc0MWM2OTBiNTI3MmI3YjUyNDk1Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCkBAIC0yOTUyLDYgKzI5NTIsMjIgQEAgc3RhdGljIGJvb2wgY3JlYXRl
R3JpZFRyYWNrTGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxMZW5ndGg+JiBsZW5ndGhzLCBD
U1NTdHkKIAogICAgIHJldHVybiBmYWxzZTsKIH0KKworCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlk
UG9zaXRpb24oQ1NTVmFsdWUqIHZhbHVlLCBMZW5ndGgmIHBvc2l0aW9uKQoreworICAgIC8vIEZv
ciBub3csIHdlIG9ubHkgYWNjZXB0OiA8aW50ZWdlcj4gfCAnYXV0bycKKyAgICBpZiAoIXZhbHVl
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odmFsdWUpOworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZUF1dG8pCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgQVNTRVJUKHByaW1pdGl2ZVZh
bHVlLT5pc051bWJlcigpKTsKKyAgICBwb3NpdGlvbi5zZXRWYWx1ZShwcmltaXRpdmVWYWx1ZS0+
Z2V0SW50VmFsdWUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAjZW5kaWYKIAogdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQpAQCAt
MzgwNCw2ICszODIwLDIxIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShp
bnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgbV9zdHlsZS0+c2V0R3JpZFJvd3MobGVu
Z3Rocyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZENvbHVtbjogeworICAgICAgICBMZW5ndGggY29sdW1uOworICAgICAgICBpZiAoIWNy
ZWF0ZUdyaWRQb3NpdGlvbih2YWx1ZSwgY29sdW1uKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgbV9zdHlsZS0+c2V0R3JpZEl0ZW1Db2x1bW4oY29sdW1uKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvdzogeworICAgICAgICBM
ZW5ndGggcm93OworICAgICAgICBpZiAoIWNyZWF0ZUdyaWRQb3NpdGlvbih2YWx1ZSwgcm93KSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0R3JpZEl0ZW1Sb3cocm93
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICNlbmRpZgogCiAgICAgLy8gVGhlc2UgcHJvcGVy
dGllcyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIENTU1N0eWxlQXBwbHlQcm9wZXJ0eSBsb29rdXAg
dGFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAppbmRleCBjNjJiM2IxOThjYTIzZjQyOWJmMTkzNjYxZDI4MjM2ZjM0NTc3YjkzLi4xNDU5NTFk
M2FkM2ZiOGU4Zjg0NGMyMmY0Mjk4ZmRkZjNlYjE2ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEzNSw2ICsxMzUsNyBAQCBBTFdB
WVNfSU5MSU5FIFJlbmRlclN0eWxlOjpSZW5kZXJTdHlsZShib29sKQogI2VuZGlmCiAjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
bV9ncmlkLmluaXQoKTsKKyAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlk
SXRlbS5pbml0KCk7CiAjZW5kaWYKICAgICByYXJlSW5oZXJpdGVkRGF0YS5pbml0KCk7CiAgICAg
aW5oZXJpdGVkLmluaXQoKTsKQEAgLTQyNCw3ICs0MjUsOCBAQCBTdHlsZURpZmZlcmVuY2UgUmVu
ZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdl
ZENvbgogICAgICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotICAg
ICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKSAhPSBvdGhlci0+cmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKSkKKyAgICAgICAgaWYgKHJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX2dyaWQuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2dyaWQuZ2V0KCkKKyAgICAgICAgICAgICYmIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJ
dGVtLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS5nZXQo
KSkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA2NDdk
M2U5ZmMyNjliYjU0Njc3OTYwY2U3MWYyYTViNDdhMWUwMjQ3Li40ZTk0NzMwMjhmNzY4YzQwOTQz
NGE5YzViZTdjZTY3ODc1YzllYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtNzcsNiArNzcsNyBAQAogCiAjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKICNpbmNsdWRlICJTdHlsZUdyaWREYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVHcmlk
SXRlbURhdGEuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAt
ODE0LDYgKzgxNSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAg
IGNvbnN0IFZlY3RvcjxMZW5ndGg+JiBncmlkQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZENvbHVtbnM7IH0KICAgICBjb25zdCBWZWN0
b3I8TGVuZ3RoPiYgZ3JpZFJvd3MoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9CisKKyAgICBjb25zdCBMZW5ndGgmIGdyaWRJdGVtQ29s
dW1uKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1f
Z3JpZENvbHVtbjsgfQorICAgIGNvbnN0IExlbmd0aCYgZ3JpZEl0ZW1Sb3coKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS0+bV9ncmlkUm93OyB9CiAjZW5k
aWYKIAogICAgIGNvbnN0IFNoYWRvd0RhdGEqIGJveFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2JveFNoYWRvdy5nZXQoKTsgfQpAQCAtMTI0MCw2ICsxMjQ0
LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgdm9pZCBzZXRH
cmlkQ29sdW1ucyhjb25zdCBWZWN0b3I8TGVuZ3RoPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZENvbHVtbnMsIGxlbmd0aHMp
OyB9CiAgICAgdm9pZCBzZXRHcmlkUm93cyhjb25zdCBWZWN0b3I8TGVuZ3RoPiYgbGVuZ3Rocykg
eyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJv
d3MsIGxlbmd0aHMpOyB9CisKKyAgICB2b2lkIHNldEdyaWRJdGVtQ29sdW1uKGNvbnN0IExlbmd0
aCYgY29sdW1uUG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9ncmlkSXRlbSwgbV9ncmlkQ29sdW1uLCBjb2x1bW5Qb3NpdGlvbik7IH0KKyAgICB2b2lk
IHNldEdyaWRJdGVtUm93KGNvbnN0IExlbmd0aCYgcm93UG9zaXRpb24pIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkUm93LCByb3dQb3Np
dGlvbik7IH0KICNlbmRpZgogCiAgICAgdm9pZCBzZXRNYXJxdWVlSW5jcmVtZW50KGNvbnN0IExl
bmd0aCYgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1
ZWUsIGluY3JlbWVudCwgZik7IH0KQEAgLTE2MzYsNiArMTY0MywxMCBAQCBwdWJsaWM6CiAgICAg
fQogICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBpbml0aWFsR3JpZENvbHVtbnMoKSB7IHJldHVy
biBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQogICAgIHN0YXRpYyBWZWN0b3I8TGVuZ3RoPiBp
bml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBpbml0aWFsR3JpZFRyYWNrVmFsdWUoKTsgfQorCisg
ICAgLy8gJ2F1dG8nIGlzIHRoZSBkZWZhdWx0LgorICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbEdy
aWRJdGVtQ29sdW1uKCkgeyByZXR1cm4gTGVuZ3RoKCk7IH0KKyAgICBzdGF0aWMgTGVuZ3RoIGlu
aXRpYWxHcmlkSXRlbVJvdygpIHsgcmV0dXJuIExlbmd0aCgpOyB9CiAjZW5kaWYKIAogICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYWxMaW5lR3JpZCgpIHsgcmV0dXJuIG51bGxB
dG9tOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkSXRlbURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3Jp
ZEl0ZW1EYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjMzYzExZDIxNzUzYTFjZDc5NDdlN2ZlNzY5Y2Rj
NGJiNGNmNmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTdHlsZUdyaWRJdGVtRGF0YS5oIgorCisjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKKworI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworU3R5bGVHcmlkSXRlbURhdGE6OlN0eWxlR3JpZEl0ZW1EYXRhKCkKKyAgICA6IG1fZ3Jp
ZENvbHVtbihSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRJdGVtQ29sdW1uKCkpCisgICAgLCBtX2dy
aWRSb3coUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkSXRlbVJvdygpKQoreworfQorCitTdHlsZUdy
aWRJdGVtRGF0YTo6U3R5bGVHcmlkSXRlbURhdGEoY29uc3QgU3R5bGVHcmlkSXRlbURhdGEmIG8p
CisgICAgOiBSZWZDb3VudGVkPFN0eWxlR3JpZEl0ZW1EYXRhPigpCisgICAgLCBtX2dyaWRDb2x1
bW4oby5tX2dyaWRDb2x1bW4pCisgICAgLCBtX2dyaWRSb3coby5tX2dyaWRSb3cpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdy
aWRJdGVtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0
ZW1EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYzMDZiNDdiMWM4YjUyYjJjZWQzY2NjYWUxZWYzZDNjYmJl
NjU3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUdyaWRJdGVtRGF0YS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0eWxlR3JpZEl0ZW1E
YXRhX2gKKyNkZWZpbmUgU3R5bGVHcmlkSXRlbURhdGFfaAorCisjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKKworI2luY2x1ZGUgIkxlbmd0aC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3R5bGVHcmlkSXRlbURhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxTdHlsZUdyaWRJdGVtRGF0YT4geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0eWxlR3JpZEl0ZW1EYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU3R5bGVHcmlkSXRlbURhdGEpOyB9CisgICAgUGFzc1JlZlB0cjxTdHlsZUdyaWRJdGVtRGF0
YT4gY29weSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUdyaWRJdGVtRGF0YSgq
dGhpcykpOyB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVHcmlkSXRlbURhdGEm
IG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9ncmlkQ29sdW1uID09IG8ubV9ncmlk
Q29sdW1uICYmIG1fZ3JpZFJvdyA9PSBvLm1fZ3JpZFJvdzsKKyAgICB9CisKKyAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgU3R5bGVHcmlkSXRlbURhdGEmIG8pIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogRm9yIHRoZSBt
b21lbnQsIHdlIG9ubHkgc3VwcG9ydCBhIHN1YnNldCBvZiB0aGUgZ3JhbW1hciB3aGljaCBjb3Jy
ZXNwb25kIHRvOgorICAgIC8vICdhdXRvJyB8IDxsZW5ndGg+CisgICAgLy8gV2hlbiB3ZSBhZGQg
bW9yZSBvZiB0aGUgc3ludGF4LCB3ZSB3aWxsIG5lZWQgYSBkZWRpY2F0ZWQgR3JpZFBvc2l0aW9u
IGNsYXNzLgorICAgIExlbmd0aCBtX2dyaWRDb2x1bW47CisgICAgTGVuZ3RoIG1fZ3JpZFJvdzsK
KworcHJpdmF0ZToKKyAgICBTdHlsZUdyaWRJdGVtRGF0YSgpOworICAgIFN0eWxlR3JpZEl0ZW1E
YXRhKGNvbnN0IFN0eWxlR3JpZEl0ZW1EYXRhJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0xBWU9VVF9HUklEKQorCisjZW5kaWYgLy8gU3R5
bGVHcmlkSXRlbURhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDNkYzM0ZjAyMWFj
ZGMwZDEzOWRiYjNiOTFlYmExNjY3ZDkzODY3NjUuLjUyOWZjNGViODEyMTA5NDMwZjljOTQ5Y2E1
OTk1YzUwMTFiOGZhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTk4LDYgKzk4LDcg
QEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShj
b25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWQKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfR1JJRF9M
QVlPVVQpCiAgICAgLCBtX2dyaWQoby5tX2dyaWQpCisgICAgLCBtX2dyaWRJdGVtKG8ubV9ncmlk
SXRlbSkKICNlbmRpZgogICAgICwgbV9jb250ZW50KG8ubV9jb250ZW50ID8gby5tX2NvbnRlbnQt
PmNsb25lKCkgOiBudWxscHRyKQogICAgICwgbV9jb3VudGVyRGlyZWN0aXZlcyhvLm1fY291bnRl
ckRpcmVjdGl2ZXMgPyBjbG9uZSgqby5tX2NvdW50ZXJEaXJlY3RpdmVzKSA6IG51bGxwdHIpCkBA
IC0xNjUsNiArMTY2LDcgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICNlbmRpZgogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgICAgICYmIG1fZ3JpZCA9PSBvLm1fZ3JpZAorICAg
ICAgICAmJiBtX2dyaWRJdGVtID09IG8ubV9ncmlkSXRlbQogI2VuZGlmCiAgICAgICAgICYmIGNv
bnRlbnREYXRhRXF1aXZhbGVudChvKQogICAgICAgICAmJiBjb3VudGVyRGF0YUVxdWl2YWxlbnQo
bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDNlMmM0YTEwNzMyZjhiYTc2YzFmZjU4ZWQ5YWZm
YWMzMjc4ZjVkODMuLmU5NWM1NWI2MDY4YjUxYmYzOGY2Mzg1NDdjODU4M2ZkYWJjZDY4NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBTdHlsZUZpbHRlckRh
dGE7CiBjbGFzcyBTdHlsZUZsZXhpYmxlQm94RGF0YTsKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZ
T1VUKQogY2xhc3MgU3R5bGVHcmlkRGF0YTsKK2NsYXNzIFN0eWxlR3JpZEl0ZW1EYXRhOwogI2Vu
ZGlmCiBjbGFzcyBTdHlsZU1hcnF1ZWVEYXRhOwogY2xhc3MgU3R5bGVNdWx0aUNvbERhdGE7CkBA
IC0xMTksNiArMTIwLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
ICAgICBEYXRhUmVmPFN0eWxlR3JpZERhdGE+IG1fZ3JpZDsKKyAgICBEYXRhUmVmPFN0eWxlR3Jp
ZEl0ZW1EYXRhPiBtX2dyaWRJdGVtOwogI2VuZGlmCiAKICAgICBPd25QdHI8Q29udGVudERhdGE+
IG1fY29udGVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4MzgzODUxNDZmZGE2YTgxYjVhMzcyZTcxOWY0ZTY1ZDNmNWVk
NzgxLi5kOTI1OWJmZmUyYjM5YjJjZGNlODI0NzRmOTIyZGViMmEzOTQ2MjU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMDItMjMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IGxpbWl0ZWQgcGFyc2luZyBvZiAtd2Via2l0
LWdyaWQtY29sdW1uIGFuZCAtd2Via2l0LWdyaWQtcm93CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LWNvbHVtbi1yb3ctZ2V0LXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1
bW4tcm93LWdldC1zZXQuanM6IEFkZGVkLgorCiAyMDEyLTAyLTIzICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFRoaXMgdGVzdCBjaGVja3Mgc2VsZWN0IGF0
dHJpYnV0ZSBvZiBjb250ZW50IGVsZW1lbnQgaXMgdmFsaWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1j
b2x1bW4tcm93LWdldC1zZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1Nzk0NjZkZDQzZjBi
ZWI2YmEyOTc5NDQ0YjAxY2VlM2ZmYjhiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBn
cmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgd29ya3MgYXMgZXhwZWN0ZWQKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1Rlc3QgZ2V0dGluZyAtd2Via2l0LWdyaWQtY29sdW1uIGFuZCAt
d2Via2l0LWdyaWQtcm93IHNldCB0aHJvdWdoIENTUworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdy
aWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlz
ICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVy
dHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTAnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEl0
ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvdycpIGlzICcxNScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhOZWdhdGl2
ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1uJykgaXMg
Jy0xMCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhOZWdhdGl2ZUludGVnZXIs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJy0xNScKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShncmlkSXRlbVdpdGhBdXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKKworVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZQorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKKworVGVzdCBn
ZXR0aW5nIGFuZCBzZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlkLXJvdyB0aHJvdWdoIEpTCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTgnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnNjYnCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3Jp
ZC1jb2x1bW4nKSBpcyAnLTU1JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJy00MCcKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbicpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJ2F1dG8nCisKK1Rlc3Qgc2V0dGlu
ZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgYmFjayB0byAnYXV0bycgdGhyb3VnaCBKUworUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1uJykgaXMgJzE4JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJzY2JworUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnYXV0bycKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1u
LXJvdy1nZXQtc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE3NGQ4MGFmNjg5NmZmY2Q4MDFkMjMyYjQ4
ZGZhYzU1MTIzODc1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbApAQCAtMCwwICsxLDI5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuZ3JpZEl0ZW1X
aXRoUG9zaXRpdmVJbnRlZ2VyIHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxMDsKKyAgICAt
d2Via2l0LWdyaWQtcm93OiAxNTsKK30KKy5ncmlkSXRlbVdpdGhOZWdhdGl2ZUludGVnZXIgewor
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IC0xMDsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAtMTU7
Cit9CisuZ3JpZEl0ZW1XaXRoQXV0byB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsK
KyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8IS0tIFRoZSBmaXJzdCBoYXMgbm8gcHJvcGVydGllcyBzZXQgb24gaXQuIC0tPgorPGRpdiBp
ZD0iZ3JpZEVsZW1lbnQiPjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJ
bnRlZ2VyIiBpZD0iZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyIj48L2Rpdj4KKzxkaXYgY2xh
c3M9ImdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciIgaWQ9ImdyaWRJdGVtV2l0aE5lZ2F0aXZl
SW50ZWdlciI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkSXRlbVdpdGhBdXRvIiBpZD0iZ3JpZEl0
ZW1XaXRoQXV0b0VsZW1lbnQiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ncmlkLWl0
ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlk
LWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuanMKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjJkNzA5Y2NjZmU0MDhiYjRkYWUwMmY4NDczZGJhZWE4ZGY3NGNkOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWl0
ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzCkBAIC0wLDAgKzEsNTcgQEAKK2Rlc2NyaXB0aW9uKCdU
ZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgd29y
a3MgYXMgZXhwZWN0ZWQnKTsKKworZGVidWcoIlRlc3QgZ2V0dGluZyAtd2Via2l0LWdyaWQtY29s
dW1uIGFuZCAtd2Via2l0LWdyaWQtcm93IHNldCB0aHJvdWdoIENTUyIpOwordmFyIGdyaWRFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRFbGVtZW50Iik7CitzaG91bGRCZSgi
Z2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0byciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRFbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwg
IidhdXRvJyIpOworCit2YXIgZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciIpOworc2hvdWxkQmUo
ImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyLCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIicxMCciKTsKK3Nob3VsZEJlKCJn
ZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aFBvc2l0aXZlSW50ZWdlciwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInMTUnIik7CisKK3ZhciBncmlkSXRlbVdp
dGhOZWdhdGl2ZUludGVnZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEl0ZW1XaXRo
TmVnYXRpdmVJbnRlZ2VyIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdp
dGhOZWdhdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29s
dW1uJykiLCAiJy0xMCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0
aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cn
KSIsICInLTE1JyIpOworCit2YXIgZ3JpZEl0ZW1XaXRoQXV0b0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZ3JpZEl0ZW1XaXRoQXV0b0VsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1
dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0
IHRoZSBpbml0aWFsIHZhbHVlIik7Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK3Nob3VsZEJl
KCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtY29sdW1uJykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIidhdXRv
JyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIGdyaWQt
Y29sdW1uIGFuZCBncmlkLXJvdyB0aHJvdWdoIEpTIik7CitlbGVtZW50LnN0eWxlLndlYmtpdEdy
aWRDb2x1bW4gPSAiMTgiOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93ID0gIjY2IjsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1uJykiLCAiJzE4JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICIn
NjYnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRD
b2x1bW4gPSAiLTU1IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICItNDAiOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInLTU1JyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICIn
LTQwJyIpOworCitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
Q29sdW1uID0gImF1dG8iOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93ID0gImF1dG8iOwor
c2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0byciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRl
ZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93Jyki
LCAiJ2F1dG8nIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHNldHRpbmcgZ3JpZC1jb2x1
bW4gYW5kIGdyaWQtcm93IGJhY2sgdG8gJ2F1dG8nIHRocm91Z2ggSlMiKTsKK2VsZW1lbnQuc3R5
bGUud2Via2l0R3JpZENvbHVtbiA9ICIxOCI7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRSb3cg
PSAiNjYiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInMTgnIik7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvdycpIiwgIic2NiciKTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICJhdXRv
IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICJhdXRvIjsKK3Nob3VsZEJlKCJnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
Y29sdW1uJykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIidhdXRvJyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128786</attachid>
            <date>2012-02-24 12:47:23 -0800</date>
            <delta_ts>2012-02-24 14:14:31 -0800</delta_ts>
            <desc>Rebaselined XCode file.</desc>
            <filename>bug-79151-20120224124722.patch</filename>
            <type>text/plain</type>
            <size>36343</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4ODI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjQyOTZiYTkzYmYxMmRm
NzMwOGU0MmRjMGExYTZkYWYxZjljMTY2OS4uZWMyMTVlZTUxZjBiYWIzMDIzNDNiMDAzYzM0Mzhl
YjBjZjgwMGVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTAyLTI0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVu
dCBsaW1pdGVkIHBhcnNpbmcgb2YgLXdlYmtpdC1ncmlkLWNvbHVtbiBhbmQgLXdlYmtpdC1ncmlk
LXJvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkx
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0Lmh0bWwK
KworICAgICAgICBUaGlzIGNoYW5nZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBncmFtbWFy
OgorCisgICAgICAgIC13ZWJraXQtZ3JpZC17cm93fGNvbHVtbn0gOj0gPGludGVnZXI+IHwgJ2F1
dG8nCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgdGhlIG5ldyBmaWxl
cyB0byBvdXIgYnVpbGQgc3lzdGVtcy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JHcmlkUG9zaXRpb24p
OiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IHRyYW5zbGF0ZWQgZ3JhbW1hcgorICAgICAg
ICAodGhpcyBmdW5jdGlvbiB3aWxsIGJlIG1vcmUgdXNlZnVsIG9uY2Ugd2UgaW1wbGVtZW50IG1v
cmUgb2YgdGhlIGdyYW1tYXIpLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KToKKyAgICAgICAgQWRkZWQgaGFuZGxpbmcgZm9yIHRoZSBuZXcgcHJvcGVydGllcy4K
KworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgQWxsb3cgb25seSAnYXV0bycgb3IgPGludGVnZXI+
LgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgZ3JpZC1jb2x1bSBhbmQg
Z3JpZC1yb3cgYXJlIG5vdCBpbmhlcml0ZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbjoKKyAgICAgICAgQWRkZWQgdGhlIDIgbmV3IHByb3BlcnRpZXMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OlJlbmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpk
aWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg6IEFkZGVkLgorICAgICAgICAo
U3R5bGVHcmlkSXRlbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkSXRlbURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6Y29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6b3BlcmF0b3IhPSk6CisgICAgICAgIEltcGxl
bWVudGVkIHRoZSBtaW5pbXVtIHdvcmtpbmcgY2xhc3MuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6Cisg
ICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgQWRkZWQgU3R5bGVH
cmlkSXRlbURhdGEgdG8gdGhlIGNsYXNzIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuCisKIDIw
MTItMDItMjQgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBV
c2UgeGNydW4gdG8gZmluZCBjb21waWxlciBwYXRocyBmb3IgR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzIGJ1aWxkIHBoYXNlIHNjcmlwdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5MGVmYzZkYmE1
ZDA2NTk4YmNiODhmYTE3ZjU3ZTNjYjU2MDBmMTFkLi42MTc2MzBiZTg1ODI2NmQ5NjdkYzA2NGM1
MDI2ZDIxYjQ3Y2ViYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM2OSw2ICsxMzY5LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxl
Qm94RGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAK
ICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKKyAgICByZW5kZXJpbmcvc3R5
bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJp
dGVkRGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5jcHAKICAg
ICByZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCAyZTgzNTc4MzE0ZjQyZjgyNjM1YTVjZmZiZmUwZDYxZjUxN2M2MGRh
Li44YWI3MWZjZmRkODliZjFkNDAyMDM4MzVkNDczNmIxMjQ3YTVhOGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2ODgsNiArMzY4OCw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuaCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBh
NjlmMjZhOTJkNThiN2YxMzhhZmY5ODFjMjUwMGVhMzg4YjBlM2Q2Li4zODI2Njk2ZjU5NWFhNDVm
OGUyMWMxMjQyNWM3NGRlM2YzOWMxNTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEyOTAsNiArMTI5MCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0
YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5
bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhl
cml0ZWREYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBiZjFlODk2NTEyMWMzZDQzMDZlNjMzNWUxZDk4NWM2NWJmZTc4YTVmLi45NDNl
ZDA0M2U0MTA5OTU1NDkxY2ZjZWZkMjA1MTgyY2FiMDBiMjliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC01MzgsNiArNTM4LDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4
aWJsZUJveERhdGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEu
aCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmgnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCcsCkBAIC00NTQ2LDYgKzQ1NDcsNyBAQAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwJywKKyAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTkxMDZjMGU1NjBhNTExYzI0M2VlYTVl
NjgwZmMxYTJjMzM4MmIyYi4uNGVkNzk1MGFmODgwMjMzMzA0OGI1NzljNzRhNTBkYTA4MWU4ZTkw
MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTQzNTA3LDYgKzQzNTA3LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVHcmlkSXRlbURhdGEuY3Bw
IgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXHN0eWxlXFN0eWxlR3JpZEl0ZW1EYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVJ
bWFnZS5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ0MDExZmJjNjM4ZDBjMWI0NzViYmE2
NmRiN2I2NmVhYWNlZTllY2UuLjU5NmIwMmM1MDQ1YjM4ZjBjZjI4NTBmYjA5MDgwMDE0YWRkNmJi
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTM1MjcsNiArMzUyNyw4IEBACiAJCUExMEJCNThCMTQ4NEUzQjMwMEIyRTg3QSAv
KiBSZW5kZXJTVkdTaGFwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggKi87
IH07CiAJCUExMERDNzZBMTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY4MTQ3NDdC
QUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNwcCAqLzsgfTsKIAkJQTEwREM3NkIxNDc0N0JB
QjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWRE
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QTExMERCOUQxNEY1REY4NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTBEQjlDMTRGNURGODcw
MEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5jcHAgKi87IH07CisJCUExMTBEQjlCMTRGNURG
NzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExMERCOUExNEY1REY3NzAwQTAzQjkzIC8qIFN0eWxl
R3JpZEl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTEyMEFDQTQxM0Y5OThDQTAwRkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMTEz
Rjk5ODQ2MDBGRTRBQzcgLyogTGF5b3V0UmVwYWludGVyLmNwcCAqLzsgfTsKIAkJQTEyNTM4RDQx
M0Y5QjYwQTAwMDI0NzU0IC8qIExheW91dFJlcGFpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyMEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExh
eW91dFJlcGFpbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUExMzZBMDBDMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTM2QTAwQTExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuY3BwICovOyB9OwpAQCAtMTA0MTYsNiArMTA0MTgsOCBAQAogCQlB
MTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVHcmlkRGF0YS5jcHA7
IHBhdGggPSBzdHlsZS9TdHlsZUdyaWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVHcmlkRGF0YS5oOyBwYXRoID0gc3R5bGUv
U3R5bGVHcmlkRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTEwREI5QTE0
RjVERjc3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gU3R5bGVHcmlkSXRlbURhdGEuaDsgcGF0aCA9IHN0eWxlL1N0eWxlR3Jp
ZEl0ZW1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMTBEQjlDMTRGNURG
ODcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBTdHlsZUdyaWRJdGVtRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9TdHls
ZUdyaWRJdGVtRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMjBBQ0Ew
MTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0UmVwYWludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExMjBBQ0ExMTNGOTk4NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVwYWludGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzNkEwMEExMTM0REJEMjAwQ0M4RDUwIC8q
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NTQ0LDYgKzE5NTQ4LDggQEAK
IAkJQkM4QzhGQUEwRERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMTEwREI5QzE0RjVERjg3MDBBMDNCOTMgLyog
U3R5bGVHcmlkSXRlbURhdGEuY3BwICovLAorCQkJCUExMTBEQjlBMTRGNURGNzcwMEEwM0I5MyAv
KiBTdHlsZUdyaWRJdGVtRGF0YS5oICovLAogCQkJCUJDNUVCNUUwMEU4MUJFODcwMEIyNTk2NSAv
KiBCb3JkZXJEYXRhLmggKi8sCiAJCQkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1IC8qIEJvcmRl
clZhbHVlLmggKi8sCiAJCQkJQkM1RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENvbGxhcHNlZEJv
cmRlclZhbHVlLmggKi8sCkBAIC0yMzg0MCw2ICsyMzg0Niw3IEBACiAJCQkJNTMxNzYxMjMxM0M1
MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0VGNDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEu
aCBpbiBIZWFkZXJzICovLAorCQkJCUExMTBEQjlCMTRGNURGNzcwMEEwM0I5MyAvKiBTdHlsZUdy
aWRJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzQ0YwRTY3M0RBMTAwMUMxMjg3
IC8qIFN0eWxlSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MzA0MEU4MkYxRTYwMEU3
Rjk3NSAvKiBTdHlsZUluaGVyaXRlZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNzJB
MEU4MURFODEwMEIyNTk2NSAvKiBTdHlsZU1hcnF1ZWVEYXRhLmggaW4gSGVhZGVycyAqLywKQEAg
LTI3MzA0LDYgKzI3MzExLDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNM
VFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMx
MzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1
MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMTEwREI5RDE0
RjVERjg3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDA0ZjcyYzg2ZTEyNzBmNDY0M2FjZWI2YmMxNWI4MTY4OTc2ZDMyNjkuLjQyOGE0NTgw
M2NiN2FjMzVlMzgwODY4OWYyMTc2NDE3MmMyNWIxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMzIsNiArMjMyLDkg
QEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9IHsKICNpZiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKQogICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnMsCiAgICAg
Q1NTUHJvcGVydHlXZWJraXRHcmlkUm93cywKKworICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZENv
bHVtbiwKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3csCiAjZW5kaWYKICAgICBDU1NQcm9w
ZXJ0eVdlYmtpdEhpZ2hsaWdodCwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbmF0ZUNoYXJh
Y3RlciwKQEAgLTkxMyw2ICs5MTYsMTUgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZh
bHVlRm9yR3JpZFRyYWNrTGlzdChjb25zdCBWZWN0b3I8TGVuZ3RoPiYgdHJhY2tMZW4KICAgICAg
ICAgbGlzdC0+YXBwZW5kKHZhbHVlRm9yR3JpZFRyYWNrQnJlYWR0aCh0cmFja0xlbmd0aHNbaV0s
IHN0eWxlLCBjc3NWYWx1ZVBvb2wpKTsKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CisK
K3N0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRQb3NpdGlvbihjb25zdCBM
ZW5ndGgmIHBvc2l0aW9uLCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKK3sKKyAgICBpZiAo
cG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOworCisgICAgQVNTRVJUKHBvc2l0aW9uLmlzRml4
ZWQoKSk7CisgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUocG9zaXRpb24udmFs
dWUoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworfQogI2VuZGlmCiAKIHN0YXRp
YyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXREZWxheVZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3Qq
IGFuaW1MaXN0LCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKQEAgLTE2NDgsNiArMTY2MCwx
MSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246Omdl
dFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZFJvd3M6IHsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFja0xpc3Qo
c3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICB9
CisKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWVGb3JHcmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJdGVtQ29sdW1uKCksIGNz
c1ZhbHVlUG9vbCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93OgorICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFBvc2l0aW9uKHN0eWxlLT5ncmlkSXRlbVJvdygp
LCBjc3NWYWx1ZVBvb2wpOwogI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlIZWlnaHQ6
CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggNTJhODA0MThkZGVkMjU5MzdkMTFmYmFlNTVmMDc5NjM1MTVjNDYyNy4uMjc3YTI4MjNjZWEz
MDY2NWRhNmNjM2IzMmQ0ZmIwNDQwNDA5N2U3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTE4ODIsNiArMTg4MiwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVt
bnM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgogICAgICAgICByZXR1cm4g
cGFyc2VHcmlkVHJhY2tMaXN0KHByb3BJZCwgaW1wb3J0YW50KTsKKworICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRHcmlkQ29sdW1uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93
OgorICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IGlkID09IENTU1ZhbHVlQXV0byB8fCB2YWxpZFVu
aXQodmFsdWUsIEZJbnRlZ2VyLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkNvbGxhcHNlOiB7CiAgICAgICAgIGNvbnN0
IGludCBwcm9wZXJ0aWVzWzJdID0geyBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpbkJlZm9yZUNvbGxh
cHNlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggZmQ4NWU5YmFlZTZlNmNjMTA0
ODQ0Y2ZjNDc0OGJhNWI3Njc4YmZiZi4uMDFlNzA3N2JmNjUxZjA1NTE4MjhhZjU2NTU3YmNmNGJj
ZGNkNDdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC01NzMsNiArNTczLDkg
QEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSh1bnNpZ25lZCBwcm9wZXJ0
eUlEKQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRDb2x1bW5zOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93czoKKwor
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRHcmlkUm93OgogI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVD
bGFtcDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TG9naWNhbFdpZHRoOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCA5YWZkYTM3YTczOWU1Y2MzOTE3MDFhODBj
YmUzNGE5MTgyN2Y1Nzk1Li40MTM5NDQ2NmI5YzZlNjllMjAwMWVmOTNkMjAzZGUwMzMwZjAyNjJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMzc2LDYgKzM3Niw4
IEBAIHotaW5kZXgKICNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICYmIEVOQUJM
RV9DU1NfR1JJRF9MQVlPVVQKIC13ZWJraXQtZ3JpZC1jb2x1bW5zCiAtd2Via2l0LWdyaWQtcm93
cworLXdlYmtpdC1ncmlkLWNvbHVtbgorLXdlYmtpdC1ncmlkLXJvdwogI2VuZGlmCiAjaWYgZGVm
aW5lZChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICYmIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VAogLXdlYmtpdC1kYXNoYm9hcmQtcmVnaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKaW5kZXggYjE3MmM0NzMzNDE4ZjNmZDhhMzE2YzQzNmI3MTYxNzdkNDRmYmQ2MS4u
ODE5ZmQ0OTkyM2UzNzliN2E3NDFjNjkwYjUyNzJiN2I1MjQ5NWNkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMjk1Miw2ICsyOTUyLDIyIEBAIHN0YXRpYyBi
b29sIGNyZWF0ZUdyaWRUcmFja0xpc3QoQ1NTVmFsdWUqIHZhbHVlLCBWZWN0b3I8TGVuZ3RoPiYg
bGVuZ3RocywgQ1NTU3R5CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CisKKworc3RhdGljIGJvb2wg
Y3JlYXRlR3JpZFBvc2l0aW9uKENTU1ZhbHVlKiB2YWx1ZSwgTGVuZ3RoJiBwb3NpdGlvbikKK3sK
KyAgICAvLyBGb3Igbm93LCB3ZSBvbmx5IGFjY2VwdDogPGludGVnZXI+IHwgJ2F1dG8nCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEFTU0VSVChw
cmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSk7CisgICAgcG9zaXRpb24uc2V0VmFsdWUocHJpbWl0
aXZlVmFsdWUtPmdldEludFZhbHVlKCkpOworICAgIHJldHVybiB0cnVlOworfQogI2VuZGlmCiAK
IHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2
YWx1ZSkKQEAgLTM4MDQsNiArMzgyMCwyMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgIG1fc3R5bGUtPnNldEdy
aWRSb3dzKGxlbmd0aHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW46IHsKKyAgICAgICAgTGVuZ3RoIGNvbHVtbjsKKyAgICAg
ICAgaWYgKCFjcmVhdGVHcmlkUG9zaXRpb24odmFsdWUsIGNvbHVtbikpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEdyaWRJdGVtQ29sdW1uKGNvbHVtbik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6IHsK
KyAgICAgICAgTGVuZ3RoIHJvdzsKKyAgICAgICAgaWYgKCFjcmVhdGVHcmlkUG9zaXRpb24odmFs
dWUsIHJvdykpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3R5bGUtPnNldEdyaWRJ
dGVtUm93KHJvdyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjZW5kaWYKIAogICAgIC8vIFRo
ZXNlIHByb3BlcnRpZXMgYXJlIGltcGxlbWVudGVkIGluIHRoZSBDU1NTdHlsZUFwcGx5UHJvcGVy
dHkgbG9va3VwIHRhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggYzYyYjNiMTk4Y2EyM2Y0MjliZjE5MzY2MWQyODIzNmYzNDU3N2I5
My4uMTQ1OTUxZDNhZDNmYjhlOGY4NDRjMjJmNDI5OGZkZGYzZWIxNmYwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xMzUsNiArMTM1
LDcgQEAgQUxXQVlTX0lOTElORSBSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUoYm9vbCkKICNlbmRp
ZgogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fZ3JpZC5pbml0KCk7CisgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fZ3JpZEl0ZW0uaW5pdCgpOwogI2VuZGlmCiAgICAgcmFyZUluaGVyaXRlZERhdGEuaW5p
dCgpOwogICAgIGluaGVyaXRlZC5pbml0KCk7CkBAIC00MjQsNyArNDI1LDggQEAgU3R5bGVEaWZm
ZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWdu
ZWQmIGNoYW5nZWRDb24KICAgICAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKLSAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQuZ2V0KCkgIT0g
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQuZ2V0KCkpCisgICAgICAgIGlmIChy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ncmlkLmdldCgpCisgICAgICAgICAgICAmJiByYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9ncmlkSXRlbS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3Jp
ZEl0ZW0uZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlTGF5b3V0Owog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
aW5kZXggNjQ3ZDNlOWZjMjY5YmI1NDY3Nzk2MGNlNzFmMmE1YjQ3YTFlMDI0Ny4uNGU5NDczMDI4
Zjc2OGM0MDk0MzRhOWM1YmU3Y2U2Nzg3NWM5ZWM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTc3LDYgKzc3LDcgQEAKIAogI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCiAjaW5jbHVkZSAiU3R5bGVHcmlkRGF0YS5oIgorI2luY2x1ZGUg
IlN0eWxlR3JpZEl0ZW1EYXRhLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKQEAgLTgxNCw2ICs4MTUsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKICAgICBjb25zdCBWZWN0b3I8TGVuZ3RoPiYgZ3JpZENvbHVtbnMoKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRDb2x1bW5zOyB9CiAgICAg
Y29uc3QgVmVjdG9yPExlbmd0aD4mIGdyaWRSb3dzKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkUm93czsgfQorCisgICAgY29uc3QgTGVuZ3RoJiBn
cmlkSXRlbUNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dy
aWRJdGVtLT5tX2dyaWRDb2x1bW47IH0KKyAgICBjb25zdCBMZW5ndGgmIGdyaWRJdGVtUm93KCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZFJv
dzsgfQogI2VuZGlmCiAKICAgICBjb25zdCBTaGFkb3dEYXRhKiBib3hTaGFkb3coKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ib3hTaGFkb3cuZ2V0KCk7IH0KQEAgLTEy
NDAsNiArMTI0NCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAg
IHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPExlbmd0aD4mIGxlbmd0aHMpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRDb2x1bW5z
LCBsZW5ndGhzKTsgfQogICAgIHZvaWQgc2V0R3JpZFJvd3MoY29uc3QgVmVjdG9yPExlbmd0aD4m
IGxlbmd0aHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlk
LCBtX2dyaWRSb3dzLCBsZW5ndGhzKTsgfQorCisgICAgdm9pZCBzZXRHcmlkSXRlbUNvbHVtbihj
b25zdCBMZW5ndGgmIGNvbHVtblBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERh
dGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZENvbHVtbiwgY29sdW1uUG9zaXRpb24pOyB9
CisgICAgdm9pZCBzZXRHcmlkSXRlbVJvdyhjb25zdCBMZW5ndGgmIHJvd1Bvc2l0aW9uKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZFJv
dywgcm93UG9zaXRpb24pOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0TWFycXVlZUluY3JlbWVu
dChjb25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYpOyB9CkBAIC0xNjM2LDYgKzE2NDMsMTAgQEAgcHVi
bGljOgogICAgIH0KICAgICBzdGF0aWMgVmVjdG9yPExlbmd0aD4gaW5pdGlhbEdyaWRDb2x1bW5z
KCkgeyByZXR1cm4gaW5pdGlhbEdyaWRUcmFja1ZhbHVlKCk7IH0KICAgICBzdGF0aWMgVmVjdG9y
PExlbmd0aD4gaW5pdGlhbEdyaWRSb3dzKCkgeyByZXR1cm4gaW5pdGlhbEdyaWRUcmFja1ZhbHVl
KCk7IH0KKworICAgIC8vICdhdXRvJyBpcyB0aGUgZGVmYXVsdC4KKyAgICBzdGF0aWMgTGVuZ3Ro
IGluaXRpYWxHcmlkSXRlbUNvbHVtbigpIHsgcmV0dXJuIExlbmd0aCgpOyB9CisgICAgc3RhdGlj
IExlbmd0aCBpbml0aWFsR3JpZEl0ZW1Sb3coKSB7IHJldHVybiBMZW5ndGgoKTsgfQogI2VuZGlm
CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWFsTGluZUdyaWQoKSB7IHJl
dHVybiBudWxsQXRvbTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYzM2MxMWQyMTc1M2ExY2Q3OTQ3
ZTdmZTc2OWNkYzRiYjRjZjZkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3R5bGVHcmlkSXRlbURhdGEuaCIKKworI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1N0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSgpCisg
ICAgOiBtX2dyaWRDb2x1bW4oUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkSXRlbUNvbHVtbigpKQor
ICAgICwgbV9ncmlkUm93KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEl0ZW1Sb3coKSkKK3sKK30K
KworU3R5bGVHcmlkSXRlbURhdGE6OlN0eWxlR3JpZEl0ZW1EYXRhKGNvbnN0IFN0eWxlR3JpZEl0
ZW1EYXRhJiBvKQorICAgIDogUmVmQ291bnRlZDxTdHlsZUdyaWRJdGVtRGF0YT4oKQorICAgICwg
bV9ncmlkQ29sdW1uKG8ubV9ncmlkQ29sdW1uKQorICAgICwgbV9ncmlkUm93KG8ubV9ncmlkUm93
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NT
X0dSSURfTEFZT1VUKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVHcmlkSXRlbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUdyaWRJdGVtRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MzA2YjQ3YjFjOGI1MmIyY2VkM2NjY2Fl
MWVmM2QzY2JiZTY1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHls
ZUdyaWRJdGVtRGF0YV9oCisjZGVmaW5lIFN0eWxlR3JpZEl0ZW1EYXRhX2gKKworI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNsdWRlICJMZW5ndGguaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0eWxlR3JpZEl0ZW1E
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVHcmlkSXRlbURhdGE+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZUdyaWRJdGVtRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFN0eWxlR3JpZEl0ZW1EYXRhKTsgfQorICAgIFBhc3NSZWZQdHI8U3R5bGVH
cmlkSXRlbURhdGE+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVHcmlk
SXRlbURhdGEoKnRoaXMpKTsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0eWxlR3Jp
ZEl0ZW1EYXRhJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZ3JpZENvbHVtbiA9
PSBvLm1fZ3JpZENvbHVtbiAmJiBtX2dyaWRSb3cgPT0gby5tX2dyaWRSb3c7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxlR3JpZEl0ZW1EYXRhJiBvKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CisgICAgfQorCisgICAgLy8gRklYTUU6
IEZvciB0aGUgbW9tZW50LCB3ZSBvbmx5IHN1cHBvcnQgYSBzdWJzZXQgb2YgdGhlIGdyYW1tYXIg
d2hpY2ggY29ycmVzcG9uZCB0bzoKKyAgICAvLyAnYXV0bycgfCA8bGVuZ3RoPgorICAgIC8vIFdo
ZW4gd2UgYWRkIG1vcmUgb2YgdGhlIHN5bnRheCwgd2Ugd2lsbCBuZWVkIGEgZGVkaWNhdGVkIEdy
aWRQb3NpdGlvbiBjbGFzcy4KKyAgICBMZW5ndGggbV9ncmlkQ29sdW1uOworICAgIExlbmd0aCBt
X2dyaWRSb3c7CisKK3ByaXZhdGU6CisgICAgU3R5bGVHcmlkSXRlbURhdGEoKTsKKyAgICBTdHls
ZUdyaWRJdGVtRGF0YShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19MQVlPVVRfR1JJRCkKKworI2Vu
ZGlmIC8vIFN0eWxlR3JpZEl0ZW1EYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAz
ZGMzNGYwMjFhY2RjMGQxMzlkYmIzYjkxZWJhMTY2N2Q5Mzg2NzY1Li41MjlmYzRlYjgxMjEwOTQz
MGY5Yzk0OWNhNTk5NWM1MDExYjhmYWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC05
OCw2ICs5OCw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAjZW5kaWYKICNpZiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKQogICAgICwgbV9ncmlkKG8ubV9ncmlkKQorICAgICwgbV9ncmlkSXRl
bShvLm1fZ3JpZEl0ZW0pCiAjZW5kaWYKICAgICAsIG1fY29udGVudChvLm1fY29udGVudCA/IG8u
bV9jb250ZW50LT5jbG9uZSgpIDogbnVsbHB0cikKICAgICAsIG1fY291bnRlckRpcmVjdGl2ZXMo
by5tX2NvdW50ZXJEaXJlY3RpdmVzID8gY2xvbmUoKm8ubV9jb3VudGVyRGlyZWN0aXZlcykgOiBu
dWxscHRyKQpAQCAtMTY1LDYgKzE2Niw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAjZW5k
aWYKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICAmJiBtX2dyaWQgPT0gby5t
X2dyaWQKKyAgICAgICAgJiYgbV9ncmlkSXRlbSA9PSBvLm1fZ3JpZEl0ZW0KICNlbmRpZgogICAg
ICAgICAmJiBjb250ZW50RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYgY291bnRlckRhdGFF
cXVpdmFsZW50KG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCAzZTJjNGExMDczMmY4YmE3NmMx
ZmY1OGVkOWFmZmFjMzI3OGY1ZDgzLi5lOTVjNTViNjA2OGI1MWJmMzhmNjM4NTQ3Yzg1ODNmZGFi
Y2Q2ODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgU3R5
bGVGaWx0ZXJEYXRhOwogY2xhc3MgU3R5bGVGbGV4aWJsZUJveERhdGE7CiAjaWYgRU5BQkxFKENT
U19HUklEX0xBWU9VVCkKIGNsYXNzIFN0eWxlR3JpZERhdGE7CitjbGFzcyBTdHlsZUdyaWRJdGVt
RGF0YTsKICNlbmRpZgogY2xhc3MgU3R5bGVNYXJxdWVlRGF0YTsKIGNsYXNzIFN0eWxlTXVsdGlD
b2xEYXRhOwpAQCAtMTE5LDYgKzEyMCw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCiAgICAgRGF0YVJlZjxTdHlsZUdyaWREYXRhPiBtX2dyaWQ7CisgICAgRGF0YVJl
ZjxTdHlsZUdyaWRJdGVtRGF0YT4gbV9ncmlkSXRlbTsKICNlbmRpZgogCiAgICAgT3duUHRyPENv
bnRlbnREYXRhPiBtX2NvbnRlbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTBkNjcxZmY3MzBkYzcxZTE5MmE3N2FjY2Q3
MDU1YTgxMGY5ZDkyMS4uMDZiMDIwNGNmMWMxOTU0MjI4NWYwZjY2YjZjYmYyMGNiNjVjMGY3OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAyLTI0ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNo
YWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsaW1pdGVkIHBhcnNpbmcg
b2YgLXdlYmtpdC1ncmlkLWNvbHVtbiBhbmQgLXdlYmtpdC1ncmlkLXJvdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxNTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlk
LWl0ZW0tY29sdW1uLXJvdy1nZXQtc2V0LmpzOiBBZGRlZC4KKwogMjAxMi0wMi0yNCAgUGhpbGlw
IFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzcHVyaW91cyBtYWMt
c3BlY2lmaWMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctZ2V0LXNldC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU3OTQ2NmRkNDNmMGJlYjZiYTI5Nzk0NDRiMDFjZWUzZmZi
OGJhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYg
QEAKK1Rlc3QgdGhhdCBzZXR0aW5nIGFuZCBnZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlkLXJv
dyB3b3JrcyBhcyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVz
dCBnZXR0aW5nIC13ZWJraXQtZ3JpZC1jb2x1bW4gYW5kIC13ZWJraXQtZ3JpZC1yb3cgc2V0IHRo
cm91Z2ggQ1NTCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
cm93JykgaXMgJ2F1dG8nCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoUG9zaXRp
dmVJbnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlz
ICcxMCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykgaXMgJzE1JworUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnLTEwJworUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnLTE1JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJ
dGVtV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNv
bHVtbicpIGlzICdhdXRvJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aEF1dG9F
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIGlzICdhdXRv
JworCitUZXN0IHRoZSBpbml0aWFsIHZhbHVlCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXJvdycpIGlzICdhdXRvJworCitUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgZ3Jp
ZC1jb2x1bW4gYW5kIGdyaWQtcm93IHRocm91Z2ggSlMKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICcx
OCcKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLXJvdycpIGlzICc2NicKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIGlzICctNTUnCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3cnKSBpcyAnLTQwJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1uJykgaXMgJ2F1dG8nCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1yb3cnKSBpcyAnYXV0bycKKworVGVzdCBzZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlk
LXJvdyBiYWNrIHRvICdhdXRvJyB0aHJvdWdoIEpTCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMTgn
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1yb3cnKSBpcyAnNjYnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnYXV0bycKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLXJvdycpIGlzICdhdXRvJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMTc0ZDgwYWY2ODk2ZmZjZDgwMWQyMzJiNDhkZmFjNTUxMjM4NzUxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNv
bHVtbi1yb3ctZ2V0LXNldC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5ncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIgewor
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDEwOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE1Owor
fQorLmdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciB7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVt
bjogLTEwOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IC0xNTsKK30KKy5ncmlkSXRlbVdpdGhBdXRv
IHsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1yb3c6
IGF1dG87Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwhLS0gVGhlIGZpcnN0IGhhcyBu
byBwcm9wZXJ0aWVzIHNldCBvbiBpdC4gLS0+Cis8ZGl2IGlkPSJncmlkRWxlbWVudCI+PC9kaXY+
Cis8ZGl2IGNsYXNzPSJncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIiIGlkPSJncmlkSXRlbVdp
dGhQb3NpdGl2ZUludGVnZXIiPjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZEl0ZW1XaXRoTmVnYXRp
dmVJbnRlZ2VyIiBpZD0iZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJbnRlZ2VyIj48L2Rpdj4KKzxkaXYg
Y2xhc3M9ImdyaWRJdGVtV2l0aEF1dG8iIGlkPSJncmlkSXRlbVdpdGhBdXRvRWxlbWVudCI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1z
ZXQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1p
dGVtLWNvbHVtbi1yb3ctZ2V0LXNldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQ3MDljY2NmZTQwOGJiNGRh
ZTAyZjg0NzNkYmFlYThkZjc0Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtaXRlbS1jb2x1bW4tcm93LWdldC1zZXQu
anMKQEAgLTAsMCArMSw1NyBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBzZXR0aW5nIGFuZCBn
ZXR0aW5nIGdyaWQtY29sdW1uIGFuZCBncmlkLXJvdyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitk
ZWJ1ZygiVGVzdCBnZXR0aW5nIC13ZWJraXQtZ3JpZC1jb2x1bW4gYW5kIC13ZWJraXQtZ3JpZC1y
b3cgc2V0IHRocm91Z2ggQ1NTIik7Cit2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZ3JpZEVsZW1lbnQiKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRF
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwgIidh
dXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7CisKK3ZhciBncmlk
SXRlbVdpdGhQb3NpdGl2ZUludGVnZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEl0
ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlk
SXRlbVdpdGhQb3NpdGl2ZUludGVnZXIsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtY29sdW1uJykiLCAiJzEwJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0
ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LXJvdycpIiwgIicxNSciKTsKKwordmFyIGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkSXRlbVdpdGhOZWdhdGl2ZUludGVnZXIiKTsKK3No
b3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aE5lZ2F0aXZlSW50ZWdlciwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInLTEwJyIpOworc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoTmVnYXRpdmVJbnRlZ2VyLCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIictMTUnIik7CisKK3ZhciBn
cmlkSXRlbVdpdGhBdXRvRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkSXRl
bVdpdGhBdXRvRWxlbWVudCIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1X
aXRoQXV0b0VsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1u
JykiLCAiJ2F1dG8nIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhB
dXRvRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICIn
YXV0byciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFsdWUiKTsK
K3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxl
bWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0
byciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7CisKK2RlYnVnKCIiKTsKK2Rl
YnVnKCJUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcgZ3JpZC1jb2x1bW4gYW5kIGdyaWQtcm93IHRo
cm91Z2ggSlMiKTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICIxOCI7CitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiNjYiOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIs
ICInMTgnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIic2NiciKTsKKworZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChl
bGVtZW50KTsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZENvbHVtbiA9ICItNTUiOworZWxlbWVu
dC5zdHlsZS53ZWJraXRHcmlkUm93ID0gIi00MCI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicpIiwg
IictNTUnIik7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdycpIiwgIictNDAnIik7CisKK2VsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CitlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRDb2x1bW4gPSAiYXV0byI7CitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRSb3cgPSAiYXV0byI7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbicp
IiwgIidhdXRvJyIpOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSIsICInYXV0byciKTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3Qgc2V0dGluZyBncmlkLWNvbHVtbiBhbmQgZ3JpZC1yb3cgYmFjayB0
byAnYXV0bycgdGhyb3VnaCBKUyIpOworZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0g
IjE4IjsKK2VsZW1lbnQuc3R5bGUud2Via2l0R3JpZFJvdyA9ICI2NiI7CitzaG91bGRCZSgiZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWNvbHVtbicpIiwgIicxOCciKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJzY2JyIpOworZWxl
bWVudC5zdHlsZS53ZWJraXRHcmlkQ29sdW1uID0gImF1dG8iOworZWxlbWVudC5zdHlsZS53ZWJr
aXRHcmlkUm93ID0gImF1dG8iOworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInYXV0byciKTsK
K3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93JykiLCAiJ2F1dG8nIik7Cg==
</data>
<flag name="review"
          id="131272"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>