<?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>149168</bug_id>
          
          <creation_ts>2015-09-15 10:46:50 -0700</creation_ts>
          <short_desc>Make the Presentation API runtime enabled</short_desc>
          <delta_ts>2016-03-29 21:24:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126028</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 10:46:50 -0700</bug_when>
    <thetext>Make the Presentation API runtime enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126033</commentid>
    <comment_count>1</comment_count>
      <attachid>261211</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 10:49:20 -0700</bug_when>
    <thetext>Created attachment 261211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126038</commentid>
    <comment_count>2</comment_count>
      <attachid>261213</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 10:52:20 -0700</bug_when>
    <thetext>Created attachment 261213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173138</commentid>
    <comment_count>3</comment_count>
      <attachid>261213</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-10 10:18:36 -0800</bug_when>
    <thetext>Comment on attachment 261213
Patch

Looks like the patch needs to be rebased!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178958</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-29 21:24:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/25432741&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261211</attachid>
            <date>2015-09-15 10:49:20 -0700</date>
            <delta_ts>2015-09-15 10:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149168-20150915104909.patch</filename>
            <type>text/plain</type>
            <size>73863</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg2NmE3ZWE0YWZlMTBi
YWQzYjc0OTQyMmRjMTRiNTg0NGZjNmE3ZC4uZDA3MGViZmZlZjRjOTUwMmYwMDhiN2E5NWI3ZWYy
YzljZmYxNDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTA5LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdHViIGltcGxlbWVu
dGF0aW9uIG9mIFByZXNlbnRhdGlvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIGJhc2ljLCBidXQgbm9uLWZ1bmN0aW9uYWwsIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBQcmVzZW50YXRpb24KKyAgICAgICAgQVBJLiBXcmFwIHRoaXMgaW1w
bGVtZW50YXRpb24gaW4gI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKSBndWFyZHMsCisgICAg
ICAgIGJ1dCBsZWF2ZSB0aGUgZ3VhcmRzIGRpc2FibGVkLgorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVz
ZW50YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvclByZXNlbnRh
dGlvbjo6TmF2aWdhdG9yUHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRv
clByZXNlbnRhdGlvbjo6fk5hdmlnYXRvclByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0b3JQcmVzZW50YXRpb246OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdh
dG9yUHJlc2VudGF0aW9uOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uOjpQcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9u
Ojp+UHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbjo6ZGVmYXVs
dFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpzZXREZWZhdWx0UmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb246OmdldFNlc3Npb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpQcmVzZW50YXRpb246OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJlc2VudGF0aW9uOjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBNb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb24uaDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxl
cy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OlByZXNlbnRhdGlvbkF2YWlsYWJp
bGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6On5QcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5OjpzZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHk6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKToKKyAgICAgICAgKiBN
b2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnZhbHVlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6UHJlc2VudGF0aW9u
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2Vu
dGF0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0Ojpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25SZXF1ZXN0OjpyZWNvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxhYmlsaXR5
KToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQ
YWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uUmVxdWVzdDo6YWN0aXZl
RE9NT2JqZWN0TmFtZSk6CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0
aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb25SZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRp
b24vUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJl
c2VudGF0aW9uU2Vzc2lvbjo6ZGlzY29ubmVjdGVkU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJlc2VudGF0aW9uU2Vzc2lvbjo6cmVzdW1lZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZXNlbnRhdGlvblNlc3Npb246OmJsb2JUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRh
dGlvblNlc3Npb246OmFycmF5YnVmZmVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50
YXRpb25TZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vz
c2lvbjo6UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRp
b25TZXNzaW9uOjp+UHJlc2VudGF0aW9uU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQcmVz
ZW50YXRpb25TZXNzaW9uOjppZCk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNz
aW9uOjpzZXRCaW5hcnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Np
b246OnNldFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblNlc3Npb246OnNlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6Y2FuU3VzcGVuZEZvclBhZ2VDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50YXRpb25TZXNzaW9uOjphY3RpdmVET01PYmpl
Y3ROYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNz
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6c3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uU2Vzc2lvbjo6YmluYXJ5VHlwZSk6
CisgICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uU2Vzc2lvbi5pZGw6
IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFByZXNlbnRhdGlvbkFQSUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6cHJlc2Vu
dGF0aW9uQVBJRW5hYmxlZCk6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluOgorCiAyMDE1LTA5LTE0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdl
ZCBidWlsZCBmaXggYWZ0ZXIgcjE4OTc0NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggOTFjYzYyMjZhYTY3NzcyYzNiZTc4MmNlOGViZjQ2MzhkNzBjYzRkNS4uYWRmMTIwZDBjMDA5
NWRiMWU5NmY2YWE0Yjk0OTQyZWZjNDcxYmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC00MCw2ICs0MCw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9wbHVnaW5zIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9zcGVlY2ggXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9zdHJlYW1zIFwKQEAg
LTE2MSw2ICsxNjIsMTEgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyR2xvYmFsU2Nv
cGVOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHJl
c2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvcXVvdGEvTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJl
c2VudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWYzZWZkMGJiYTlkM2MxMTEwMzEzOTNhYjYxNzkz
YzIyMzk1Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVz
ZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvclByZXNlbnRhdGlv
bi5oIgorCisjaWYgRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVk
ZSAiUHJlc2VudGF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTmF2aWdhdG9yUHJl
c2VudGF0aW9uOjpOYXZpZ2F0b3JQcmVzZW50YXRpb24oRnJhbWUqIGZyYW1lKQorICAgIDogRE9N
V2luZG93UHJvcGVydHkoZnJhbWUpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbjo6fk5h
dmlnYXRvclByZXNlbnRhdGlvbigpCit7Cit9CisKK05hdmlnYXRvclByZXNlbnRhdGlvbiogTmF2
aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAgIE5h
dmlnYXRvclByZXNlbnRhdGlvbiogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5hdmlnYXRvclBy
ZXNlbnRhdGlvbio+KFN1cHBsZW1lbnQ8TmF2aWdhdG9yPjo6ZnJvbShuYXZpZ2F0b3IsIHN1cHBs
ZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXN1cHBsZW1lbnQpIHsKKyAgICAgICAgYXV0byBuZXdT
dXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxOYXZpZ2F0b3JQcmVzZW50YXRpb24+KG5hdmln
YXRvci0+ZnJhbWUoKSk7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdTdXBwbGVtZW50LmdldCgp
OworICAgICAgICBwcm92aWRlVG8obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6Om1v
dmUobmV3U3VwcGxlbWVudCkpOworICAgIH0KKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKwor
UHJlc2VudGF0aW9uKiBOYXZpZ2F0b3JQcmVzZW50YXRpb246OnByZXNlbnRhdGlvbihOYXZpZ2F0
b3IqIG5hdmlnYXRvcikKK3sKKyAgICByZXR1cm4gTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpmcm9t
KG5hdmlnYXRvciktPnByZXNlbnRhdGlvbigpOworfQorCitQcmVzZW50YXRpb24qIE5hdmlnYXRv
clByZXNlbnRhdGlvbjo6cHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcHJlc2Vu
dGF0aW9uICYmIGZyYW1lKCkpCisgICAgICAgIG1fcHJlc2VudGF0aW9uID0gUHJlc2VudGF0aW9u
OjpjcmVhdGUoKmZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIHJldHVybiBtX3ByZXNlbnRhdGlv
bi5nZXQoKTsKK30KKworY29uc3QgY2hhciogTmF2aWdhdG9yUHJlc2VudGF0aW9uOjpzdXBwbGVt
ZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJOYXZpZ2F0b3JQcmVzZW50YXRpb24iOworfQorCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjRmZGM0ODgyMDMwMDQ2N2FjYTk0Mzg3M2Y4MzFlMWNjYjgxMzIxOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05h
dmlnYXRvclByZXNlbnRhdGlvbi5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IE5hdmlnYXRvclByZXNlbnRhdGlvbl9oCisjZGVmaW5lIE5hdmlnYXRvclByZXNlbnRhdGlvbl9o
CisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1By
b3BlcnR5LmgiCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBQcmVzZW50YXRpb247CitjbGFzcyBOYXZpZ2F0b3I7CisKK2NsYXNzIE5h
dmlnYXRvclByZXNlbnRhdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4sIHB1Ymxp
YyBET01XaW5kb3dQcm9wZXJ0eSB7CitwdWJsaWM6CisgICAgTmF2aWdhdG9yUHJlc2VudGF0aW9u
KEZyYW1lKik7CisgICAgdmlydHVhbCB+TmF2aWdhdG9yUHJlc2VudGF0aW9uKCk7CisgICAgc3Rh
dGljIE5hdmlnYXRvclByZXNlbnRhdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKKworICAgIHN0YXRp
YyBQcmVzZW50YXRpb24qIHByZXNlbnRhdGlvbihOYXZpZ2F0b3IqKTsKKyAgICBQcmVzZW50YXRp
b24qIHByZXNlbnRhdGlvbigpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisgICAgbXV0YWJsZSBSZWZQdHI8UHJlc2VudGF0aW9u
PiBtX3ByZXNlbnRhdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNlbnRhdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRp
b24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE3ZWViMjU2MzYxZDA1OWI3MTlkMTBkMDYyZjU1NDI2NWE4MWQz
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlv
bi9OYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitb
IENvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkgXQorcGFydGlhbCBpbnRlcmZhY2UgTmF2aWdh
dG9yIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUHJlc2VudGF0aW9uIHByZXNlbnRhdGlvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2Vu
dGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWFkNzE0NzQzMjI2MTBiYTZlYzU4OGExMzY1YmU4OTg1
NDA0NWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uLmNwcApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvbi5oIgorCisjaWYgRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNpbmNsdWRlICJQcmVzZW50YXRpb25SZXF1ZXN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByZXNlbnRhdGlvbj4gUHJlc2VudGF0aW9uOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJl
c2VudGF0aW9uPiBwcmVzZW50YXRpb24oYWRvcHRSZWYobmV3IFByZXNlbnRhdGlvbihjb250ZXh0
KSkpOworICAgIHByZXNlbnRhdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHBy
ZXNlbnRhdGlvbi5yZWxlYXNlTm9uTnVsbCgpOworfQorCitQcmVzZW50YXRpb246OlByZXNlbnRh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KCZjb250ZXh0KQoreworfQorCitQcmVzZW50YXRpb246On5QcmVzZW50YXRpb24oKQorewor
fQorCitQcmVzZW50YXRpb25SZXF1ZXN0KiBQcmVzZW50YXRpb246OmRlZmF1bHRSZXF1ZXN0KGJv
b2wmIGlzTnVsbCkgY29uc3QKK3sKKyAgICBpc051bGwgPSBtX2RlZmF1bHRSZXF1ZXN0OworICAg
IHJldHVybiBtX2RlZmF1bHRSZXF1ZXN0LmdldCgpOworfQorCit2b2lkIFByZXNlbnRhdGlvbjo6
c2V0RGVmYXVsdFJlcXVlc3QoUHJlc2VudGF0aW9uUmVxdWVzdCogZGVmYXVsdFJlcXVlc3QpCit7
CisgICAgaWYgKGRlZmF1bHRSZXF1ZXN0ID09IG1fZGVmYXVsdFJlcXVlc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2RlZmF1bHRSZXF1ZXN0ID0gZGVmYXVsdFJlcXVlc3Q7Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uOjpnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICBwcm9taXNlLnJlamVjdChudWxs
cHRyKTsKK30KKwordm9pZCBQcmVzZW50YXRpb246OmdldFNlc3Npb25zKFByZXNlbnRhdGlvblNl
c3Npb25TZXF1ZW5jZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxlbWVu
dAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCitib29sIFByZXNlbnRhdGlvbjo6
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0Cit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IGNoYXIqIFByZXNlbnRhdGlvbjo6YWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJQcmVzZW50YXRpb24iOworfQor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjE1OGE2Y2QwOWE3YzY2N2I0YzljOGQ2YTVmZmVkNTU5NmI0NDI5OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5oCkBA
IC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvbl9oCisjZGVmaW5l
IFByZXNlbnRhdGlvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUHJlc2VudGF0
aW9uUmVxdWVzdDsKK2NsYXNzIFByZXNlbnRhdGlvblNlc3Npb247CisKK2NsYXNzIFByZXNlbnRh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPFByZXNlbnRhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb24oKTsKKworICAgIFByZXNlbnRhdGlvblJlcXVl
c3QqIGRlZmF1bHRSZXF1ZXN0KGJvb2wmIGlzTnVsbCkgY29uc3Q7CisgICAgdm9pZCBzZXREZWZh
dWx0UmVxdWVzdChQcmVzZW50YXRpb25SZXF1ZXN0Kik7CisKKyAgICB0eXBlZGVmIERPTVByb21p
c2U8UHJlc2VudGF0aW9uU2Vzc2lvbiYsIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNz
aW9uUHJvbWlzZTsKKyAgICB0eXBlZGVmIERPTVByb21pc2U8VmVjdG9yPFJlZlB0cjxQcmVzZW50
YXRpb25TZXNzaW9uPj4sIHN0ZDo6bnVsbHB0cl90PiBQcmVzZW50YXRpb25TZXNzaW9uU2VxdWVu
Y2VQcm9taXNlOworCisgICAgdm9pZCBnZXRTZXNzaW9uKFByZXNlbnRhdGlvblNlc3Npb25Qcm9t
aXNlJiYpOworICAgIHZvaWQgZ2V0U2Vzc2lvbnMoUHJlc2VudGF0aW9uU2Vzc2lvblNlcXVlbmNl
UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6cmVmOwor
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uPjo6ZGVyZWY7CisKK3ByaXZhdGU6Cisg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZl
bnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVzZW50YXRpb25F
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIHsgZGVyZWYoKTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50
YXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25S
ZXF1ZXN0PiBtX2RlZmF1bHRSZXF1ZXN0OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyYWY2ODhmZjI1
YTkyNWM5ZGU3ZTA5MGJmZWQ2ZWQzZTgwNWM2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJLAorICAg
IENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBBY3RpdmVE
T01PYmplY3QsCitdCitpbnRlcmZhY2UgUHJlc2VudGF0aW9uIDogRXZlbnRUYXJnZXQgeworICAg
IGF0dHJpYnV0ZSBQcmVzZW50YXRpb25SZXF1ZXN0PyBkZWZhdWx0UmVxdWVzdDsKKyAgICBQcm9t
aXNlIGdldFNlc3Npb24oKTsKKyAgICBQcm9taXNlIGdldFNlc3Npb25zKCk7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNlc3Npb25hdmFpbGFibGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlOTBkMDVkZWRkMmFlZjI5ZmQ0ZTVjYWNjNjY0
YTVlYzg0MTc2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJl
c2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50YXRpb25BdmFp
bGFiaWxpdHkuaCIKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+IFByZXNlbnRhdGlv
bkF2YWlsYWJpbGl0eTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7
CisgICAgUmVmUHRyPFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gcHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoY29udGV4dCkpKTsK
KyAgICBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHktPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBwcmVzZW50YXRpb25BdmFpbGFiaWxpdHkucmVsZWFzZU5vbk51bGwoKTsKK30KKworUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5OjpQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Ojp+UHJlc2VudGF0aW9uQXZhaWxhYmls
aXR5KCkKK3sKK30KKwordm9pZCBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk6OnNldFZhbHVlKGJv
b2wgdmFsdWUpCit7CisgICAgaWYgKG1fdmFsdWUgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsK
KyAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgLy8gVE9ETzogaW1wbGVtZW50Cit9CisKK2Jvb2wg
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QK
K3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3Qg
Y2hhciogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eSI7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNjEzMDM5YTUyMTQwZDVlMzMxNWQ2MGU5ZWRhZTdkMDk4OGYxZDdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24v
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5X2gKKyNkZWZpbmUgUHJlc2VudGF0aW9uQXZh
aWxhYmlsaXR5X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5s
aW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitwdWJsaWM6CisgICAgUmVmUHRyPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
KyAgICB2aXJ0dWFsIH5QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkoKTsKKworICAgIGJvb2wgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFBy
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eT46OmRlcmVmOworCitwcml2YXRlOgorICAgIC8vIEV2ZW50VGFy
Z2V0IGludGVyZmFjZQorICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVy
cmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9iamVjdCBBUEkuCisgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
Y2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgUHJlc2VudGF0
aW9uQXZhaWxhYmlsaXR5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2b2lkIHNldFZh
bHVlKGJvb2wpOworCisgICAgYm9vbCBtX3ZhbHVlIHsgZmFsc2UgfTsKK307CisKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0
eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25B
dmFpbGFiaWxpdHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjQ5N2IyMDAzY2QxNTYyZDY1ZTE0ZDA5N2Fi
MWE4YjA4ZmI4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSSwKKyAgICBDb25z
dHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQWN0aXZlRE9NT2Jq
ZWN0LAorXQorICAgIGludGVyZmFjZSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkgOiBFdmVudFRh
cmdldCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsdWU7CisgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbmNoYW5nZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI2ZTU1NTdlN2M5ODA2ZTdiZTc0YWE3YTYyZDFkMWY0YjkzNmE3NjcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlByZXNlbnRhdGlvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShQUkVT
RU5UQVRJT05fQVBJKQorCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBQcmVzZW50
YXRpb25SZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCit7CisgICAgVVJMIHVybCA9IGNvbnRleHQuY29tcGxldGVV
UkwodXJsU3RyaW5nKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIFJlZlB0cjxQcmVzZW50YXRpb25SZXF1ZXN0PiBwcmVzZW50YXRpb25SZXF1
ZXN0KGFkb3B0UmVmKG5ldyBQcmVzZW50YXRpb25SZXF1ZXN0KGNvbnRleHQsIFdURjo6bW92ZSh1
cmwpKSkpOworICAgIHByZXNlbnRhdGlvblJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiBwcmVzZW50YXRpb25SZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCk7Cit9CisKK1ByZXNl
bnRhdGlvblJlcXVlc3Q6OlByZXNlbnRhdGlvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVVJMJiYgdXJsKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQor
ICAgICwgbV91cmwodXJsKQoreworfQorCitQcmVzZW50YXRpb25SZXF1ZXN0Ojp+UHJlc2VudGF0
aW9uUmVxdWVzdCgpCit7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6c3RhcnQoUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIC8vIFRPRE86IGltcGxl
bWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCit2b2lkIFByZXNlbnRhdGlv
blJlcXVlc3Q6OnJlY29ubmVjdChjb25zdCBTdHJpbmcmLCBQcmVzZW50YXRpb25TZXNzaW9uUHJv
bWlzZSYmIHByb21pc2UpCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50CisgICAgcHJvbWlzZS5y
ZWplY3QobnVsbHB0cik7Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uUmVxdWVzdDo6Z2V0QXZhaWxh
YmlsaXR5KFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eVByb21pc2UmJiBwcm9taXNlKQoreworICAg
IC8vIFRPRE86IGltcGxlbWVudAorICAgIHByb21pc2UucmVqZWN0KG51bGxwdHIpOworfQorCiti
b29sIFByZXNlbnRhdGlvblJlcXVlc3Q6OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAor
eworICAgIC8vIFRPRE86IGltcGxlbWVudAorICAgIHJldHVybiB0cnVlOworfQorCitjb25zdCBj
aGFyKiBQcmVzZW50YXRpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIlByZXNlbnRhdGlvblJlcXVlc3QiOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjM5
NDg0ZWIwNTY5NmQ2YmI5OWUwYzg2ZDEzYmQ2ZDRjN2IzMGNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5o
CkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFByZXNlbnRhdGlvblJlcXVlc3Rf
aAorI2RlZmluZSBQcmVzZW50YXRpb25SZXF1ZXN0X2gKKworI2lmIEVOQUJMRShQUkVTRU5UQVRJ
T05fQVBJKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHk7CitjbGFz
cyBQcmVzZW50YXRpb25TZXNzaW9uOworCitjbGFzcyBQcmVzZW50YXRpb25SZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJlc2VudGF0aW9uUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmUHRyPFByZXNlbnRhdGlvblJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZpcnR1YWwgflByZXNlbnRhdGlvblJlcXVl
c3QoKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxQcmVzZW50YXRpb25TZXNzaW9uJiwgc3Rk
OjpudWxscHRyX3Q+IFByZXNlbnRhdGlvblNlc3Npb25Qcm9taXNlOworICAgIHR5cGVkZWYgRE9N
UHJvbWlzZTxQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkmLCBzdGQ6Om51bGxwdHJfdD4gUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZTsKKworICAgIHZvaWQgc3RhcnQoUHJlc2VudGF0aW9u
U2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCByZWNvbm5lY3QoY29uc3QgU3RyaW5nJiwgUHJl
c2VudGF0aW9uU2Vzc2lvblByb21pc2UmJik7CisgICAgdm9pZCBnZXRBdmFpbGFiaWxpdHkoUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFJlZkNvdW50ZWQ8
UHJlc2VudGF0aW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRh
dGlvblJlcXVlc3Q+OjpkZXJlZjsKKworcHJpdmF0ZToKKyAgICAvLyBFdmVudFRhcmdldCBpbnRl
cmZhY2UKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFByZXNlbnRhdGlvblJlcXVlc3RFdmVudFRhcmdldEludGVy
ZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUg
eyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYo
KTsgfQorCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSS4KKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TdXNwZW5kRm9y
UGFnZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBQcmVzZW50YXRpb25SZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJik7CisgICAgVVJMIG1fdXJsOworfTsKKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKFBSRVNFTlRBVElPTl9BUEkpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVz
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25S
ZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2NkNTdkZTcxOTc1NmU1ZjQ1ZmViMGM4OWFhMmI4NTU1
YzcyODFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50
YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdXJsKSwKKyAgICBDb25zdHJ1Y3RvckNhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQ29uZGl0aW9uYWw9UFJFU0VOVEFUSU9O
X0FQSSwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCisgICAgSlNHZW5lcmF0ZVRvSlNP
YmplY3QsCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJmYWNlIFByZXNlbnRhdGlvblJl
cXVlc3QgOiBFdmVudFRhcmdldCB7CisgICAgUHJvbWlzZSBzdGFydCgpOworICAgIFByb21pc2Ug
cmVjb25uZWN0KERPTVN0cmluZyBwcmVzZW50YXRpb25JZCk7CisgICAgUHJvbWlzZSBnZXRBdmFp
bGFiaWxpdHkoKTsKKworICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25zZXNzaW9uY29ubmVj
dDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9Q
cmVzZW50YXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0
aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NTFmOTlmNTgxOTAxYjNi
ZmFhZWMyNDA2OTI0NGE2ZTQ5MjI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmNwcApAQCAtMCwwICsx
LDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVzZW50
YXRpb25TZXNzaW9uLmgiCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0
IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9uU2Vzc2lvbjo6Y29ubmVjdGVkU3RhdGUoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvbm5lY3RlZCgiY29ubmVj
dGVkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgcmV0dXJuIGNv
bm5lY3RlZC5nZXQoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBQcmVzZW50YXRpb25TZXNz
aW9uOjpkaXNjb25uZWN0ZWRTdGF0ZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gZGlzY29ubmVjdGVkKCJkaXNjb25uZWN0ZWQiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gZGlzY29ubmVjdGVkLmdldCgpOworfQor
Citjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OnJlc3VtZWRTdGF0ZSgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gcmVzdW1lZCgicmVz
dW1lZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBy
ZXN1bWVkLmdldCgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Np
b246OmJsb2JUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5n
PiBibG9iKCJibG9iIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
cmV0dXJuIGJsb2IuZ2V0KCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgUHJlc2VudGF0aW9u
U2Vzc2lvbjo6YXJyYXlidWZmZXJUeXBlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
QXRvbWljU3RyaW5nPiBhcnJheWJ1ZmZlcigiYXJyYXlidWZmZXIiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICByZXR1cm4gYXJyYXlidWZmZXIuZ2V0KCk7Cit9CisK
K1JlZlB0cjxQcmVzZW50YXRpb25TZXNzaW9uPiBQcmVzZW50YXRpb25TZXNzaW9uOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBSZWZQdHI8UHJlc2VudGF0
aW9uU2Vzc2lvbj4gcHJlc2VudGF0aW9uU2Vzc2lvbihhZG9wdFJlZihuZXcgUHJlc2VudGF0aW9u
U2Vzc2lvbihjb250ZXh0KSkpOworICAgIHByZXNlbnRhdGlvblNlc3Npb24tPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiBwcmVzZW50YXRpb25TZXNzaW9uLnJlbGVhc2VOb25OdWxsKCk7
Cit9CisKK1ByZXNlbnRhdGlvblNlc3Npb246OlByZXNlbnRhdGlvblNlc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
K3sKK30KKworUHJlc2VudGF0aW9uU2Vzc2lvbjo6flByZXNlbnRhdGlvblNlc3Npb24oKQorewor
fQorCitjb25zdCBTdHJpbmcmIFByZXNlbnRhdGlvblNlc3Npb246OmlkKGJvb2wmIGlzTnVsbCkg
Y29uc3QKK3sKKyAgICBpc051bGwgPSBtX2lkLmlzTnVsbCgpOworICAgIHJldHVybiBtX2lkOwor
fQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNldEJpbmFyeVR5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlKQoreworICAgIGlmIChtX3R5cGUgPT0gdHlwZSkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2V0U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkK
K3sKKyAgICBpZiAobV9zdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3Rh
dGUgPSBzdGF0ZTsKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRp
b25TZXNzaW9uOjpjbG9zZSgpCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQg
UHJlc2VudGF0aW9uU2Vzc2lvbjo6c2VuZChjb25zdCBTdHJpbmcmKQoreworICAgIC8vIFRPRE86
IEltcGxlbWVudAorfQorCit2b2lkIFByZXNlbnRhdGlvblNlc3Npb246OnNlbmQoY29uc3QgQmxv
YiopCit7CisgICAgLy8gVE9ETzogSW1wbGVtZW50Cit9CisKK3ZvaWQgUHJlc2VudGF0aW9uU2Vz
c2lvbjo6c2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyKikKK3sKKyAgICAvLyBUT0RPOiBJbXBs
ZW1lbnQKK30KKwordm9pZCBQcmVzZW50YXRpb25TZXNzaW9uOjpzZW5kKGNvbnN0IEpTQzo6QXJy
YXlCdWZmZXJWaWV3KikKK3sKKyAgICAvLyBUT0RPOiBJbXBsZW1lbnQKK30KKworYm9vbCBQcmVz
ZW50YXRpb25TZXNzaW9uOjpjYW5TdXNwZW5kRm9yUGFnZUNhY2hlKCkgY29uc3QKK3sKKyAgICAv
LyBUT0RPOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3QgY2hhciogUHJl
c2VudGF0aW9uU2Vzc2lvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuICJQcmVzZW50YXRpb25SZXF1ZXN0IjsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFBS
RVNFTlRBVElPTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNl
bnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3By
ZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJjMDNmYTEwNGQx
ZDRkMmQ1MzEwYzcyMjBiNDk0YTU0OTg4ZGQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvblNlc3Npb24uaApAQCAtMCww
ICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQcmVzZW50YXRpb25TZXNzaW9uX2gKKyNkZWZp
bmUgUHJlc2VudGF0aW9uU2Vzc2lvbl9oCisKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkK
KworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Lmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgQXJyYXlCdWZmZXI7CitjbGFzcyBBcnJheUJ1ZmZlclZp
ZXc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmxvYjsKKworY2xhc3MgUHJl
c2VudGF0aW9uU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29ubmVjdGVkU3Rh
dGUoKTsKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXNjb25uZWN0ZWRTdGF0ZSgp
OworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHJlc3VtZWRTdGF0ZSgpOworCisgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYmxvYlR5cGUoKTsKKyAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBhcnJheWJ1ZmZlclR5cGUoKTsKKworICAgIFJlZlB0cjxQcmVzZW50YXRp
b25TZXNzaW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwg
flByZXNlbnRhdGlvblNlc3Npb24oKTsKKworICAgIGNvbnN0IFN0cmluZyYgaWQoYm9vbCYgaXNO
dWxsKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZTsgfQorCisgICAgdm9pZCBzZXRCaW5hcnlUeXBlKGNvbnN0IEF0b21pY1N0cmlu
ZyYpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYmluYXJ5VHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCisgICAgdm9pZCBjbG9zZSgpOworICAgIHZvaWQgc2VuZChjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHNlbmQoY29uc3QgQmxvYiopOworICAgIHZvaWQgc2VuZChjb25zdCBK
U0M6OkFycmF5QnVmZmVyKik7CisgICAgdm9pZCBzZW5kKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXJW
aWV3Kik7CisKKyAgICB1c2luZyBSZWZDb3VudGVkPFByZXNlbnRhdGlvblNlc3Npb24+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxQcmVzZW50YXRpb25TZXNzaW9uPjo6ZGVyZWY7CisKK3By
aXZhdGU6CisgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCisgICAgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQcmVz
ZW50YXRpb25TZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKworICAgIC8vIEFjdGl2ZURPTU9i
amVjdCBBUEkuCisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGJvb2wgY2FuU3VzcGVuZEZvclBhZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRl
OworCisgICAgUHJlc2VudGF0aW9uU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Cisg
ICAgdm9pZCBzZXRTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIFN0cmluZyBtX2lk
OworICAgIEF0b21pY1N0cmluZyBtX3N0YXRlOworICAgIEF0b21pY1N0cmluZyBtX3R5cGU7Cit9
OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRp
b25TZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNl
bnRhdGlvblNlc3Npb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYmY1ODYwOTE1ZDk1NjFhNzk4YWRiOTE2
YjYwNWJjMjlhOGIxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25TZXNzaW9uLmlkbApAQCAtMCwwICsxLDU0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworZW51bSBQcmVzZW50YXRpb25TZXNzaW9uU3RhdGUgeworICAgICJjb25uZWN0ZWQi
LAorICAgICJkaXNjb25uZWN0ZWQiLAorICAgICJyZXN1bWVkIgorfTsKKworZW51bSBCaW5hcnlU
eXBlIHsKKyAgICAiYmxvYiIsCisgICAgImFycmF5YnVmZmVyIgorfTsKKworWworICAgIENvbmRp
dGlvbmFsPVBSRVNFTlRBVElPTl9BUEksCisgICAgQWN0aXZlRE9NT2JqZWN0LAorXQoraW50ZXJm
YWNlIFByZXNlbnRhdGlvblNlc3Npb24gOiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZz8gaWQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFByZXNlbnRhdGlv
blNlc3Npb25TdGF0ZSBzdGF0ZTsKKyAgICB2b2lkIGNsb3NlKCk7CisgICAgYXR0cmlidXRlIEV2
ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOworCisgICAgLy8gQ29tbXVuaWNhdGlvbgorICAgIGF0
dHJpYnV0ZSBCaW5hcnlUeXBlIGJpbmFyeVR5cGU7CisgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbm1lc3NhZ2U7CisgICAgdm9pZCBzZW5kKERPTVN0cmluZyBtZXNzYWdlKTsKKyAgICB2b2lk
IHNlbmQoQmxvYiBkYXRhKTsKKyAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXIgZGF0YSk7CisgICAg
dm9pZCBzZW5kKEFycmF5QnVmZmVyVmlldyBkYXRhKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTRlYzg1YWRhZmVmMTEx
NTBlYmQzODY4ODZjM2VkYTQ4MzM3YWY1NC4uNDY5NGE1ZDhjZWY2OWE3ZTkyNzVmMTFkODcyMTNi
OGU2MTliZTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTc5OSw2ICs1Nzk5LDI2IEBACiAJCUNEMzM2RjY0MTdGQTBBNEQw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGLmggKi87IH07CiAJCUNEMzM2RjY3MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzMzZGNjUxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQ
cml2YXRlQVZGT2JqQy5jcHAgKi87IH07CiAJCUNEMzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMzM2RjY2MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUFWRk9iakMuaCAqLzsgfTsKKwkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QzNjM4OEQxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24u
Y3BwICovOyB9OworCQlDRDM2Mzg5MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qz
NjM4OEUxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsKKwkJ
Q0QzNjM4OTQxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5MjFC
QTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLzsgfTsKKwkJ
Q0QzNjM4OTUxQkEzNkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4OTMxQkEz
NkFEODAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2
Mzg5OTFCQTM2QUZDMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5NzFCQTM2QUZDMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi87IH07CisJCUNEMzYzODlBMUJBMzZB
RkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5ODFCQTM2QUZDMDA4N0UwN0QgLyogUHJl
c2VudGF0aW9uUmVxdWVzdC5oICovOyB9OworCQlDRDM2Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMzYzODlDMUJBMzZCMUUwMDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovOyB9
OworCQlDRDM2Mzg5RjFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2Mzg5RDFCQTM2QjFFMDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEE0MUJBMzg5QzYwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmlnYXRv
clByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNEMzYzOEE1MUJBMzg5QzYwMDg3RTA3RCAvKiBO
YXZpZ2F0b3JQcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50
YXRpb24uaCAqLzsgfTsKKwkJQ0QzNjM4QUUxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEE2MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJCUNE
MzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QTcxQkEzOTBENjAwODdFMDdE
IC8qIEpTUHJlc2VudGF0aW9uLmggKi87IH07CisJCUNEMzYzOEIwMUJBMzkwRDYwMDg3RTA3RCAv
KiBKU1ByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM2MzhBODFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwICovOyB9OworCQlDRDM2MzhCMTFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEE5MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1By
ZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5oICovOyB9OworCQlDRDM2MzhCMjFCQTM5MEQ2MDA4N0Uw
N0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEFBMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblJlcXVlc3QuY3BwICovOyB9OworCQlDRDM2MzhCMzFCQTM5MEQ2MDA4N0UwN0QgLyog
SlNQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25S
ZXF1ZXN0LmggKi87IH07CisJCUNEMzYzOEI0MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRh
dGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QzNjM4QUMxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5j
cHAgKi87IH07CisJCUNEMzYzOEI1MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNl
c3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLzsgfTsK
KwkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMzYzOEI2
MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgKi87IH07CisJ
CUNEMzYzOEI5MUJBMzkwRTMwMDg3RTA3RCAvKiBKU05hdmlnYXRvclByZXNlbnRhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzNjM4QjcxQkEz
OTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi87IH07CiAJCUNEMzdC
Mzk4MTVDMUI5NzEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzN0IzNzQxNUMxQTdFMTAw
NkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgKi87IH07CiAJCUNEM0E0OTVFMTdB
OUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDNBNDk1NTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFT
b3VyY2UuY3BwICovOyB9OwogCQlDRDNBNDk1RjE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEM0E0
OTU2MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5oICovOyB9OwpAQCAtMTM0NTYsNiAr
MTM0NzYsMzEgQEAKIAkJQ0QzMzZGNjMxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2
YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzM2RjY1MTdGQTBBQzYw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QzMzZGNjYxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0QzNjM4OEMxQkEzNkFBQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblNlc3Npb24uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFByZXNlbnRhdGlvblNlc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDM2Mzg4RDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb25TZXNzaW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OEUxQkEzNkFCNzAwODdFMDdEIC8q
IFByZXNlbnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHJlc2VudGF0aW9uU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
Mzg5MTFCQTM2QUNCMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODkzMUJB
MzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzODk2MUJBMzZBRUYwMDg3RTA3RCAvKiBQcmVzZW50
YXRpb25SZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQcmVzZW50YXRpb25SZXF1ZXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRh
dGlvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJl
c2VudGF0aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYz
ODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4OUIxQkEzNkIxNDAwODdFMDdEIC8qIFByZXNlbnRhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUHJlc2VudGF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QzNjM4OUMxQkEzNkIxRTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcmVzZW50YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDM2Mzg5RDFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByZXNlbnRhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMTFCQTM4OTkxMDA4N0UwN0QgLyog
TmF2aWdhdG9yUHJlc2VudGF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2MzhBMjFCQTM4OUM2MDA4N0UwN0Qg
LyogTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEEzMUJBMzg5QzYwMDg3RTA3RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yUHJlc2VudGF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE2MUJBMzkwRDYwMDg3
RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHBhdGggPSBKU1ByZXNlbnRhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1ByZXNl
bnRhdGlvbi5oOyBwYXRoID0gSlNQcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QzNjM4QTgxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QTkxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmg7IHBhdGggPSBKU1ByZXNl
bnRhdGlvbkF2YWlsYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDM2
MzhBQTFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHA7
IHBhdGggPSBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDM2MzhBQjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTUHJlc2VudGF0aW9uUmVxdWVz
dC5oOyBwYXRoID0gSlNQcmVzZW50YXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMzYzOEFDMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNQcmVzZW50YXRp
b25TZXNzaW9uLmNwcDsgcGF0aCA9IEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMzYzOEFEMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNl
bnRhdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNQcmVz
ZW50YXRpb25TZXNzaW9uLmg7IHBhdGggPSBKU1ByZXNlbnRhdGlvblNlc3Npb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcDsgcGF0aCA9IEpTTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QzNjM4QjcxQkEzOTBF
MzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmg7IHBhdGggPSBKU05hdmln
YXRvclByZXNlbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDM3QjM3
NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBE
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
M0E0OTU1MTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNTM1OCw2ICsxNTQwMyw3IEBACiAJCQkJMzM1MDNDOUMxMDE3OUE5QTAw
M0I0N0UxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFDMjI2MDIwREI2OUVBNzAwODlCNjY5
IC8qIE9mZmxpbmUgKi8sCiAJCQkJQTlEMjQ3RjkwRDc1N0U0MTAwRkRGOTU5IC8qIFBsdWdpbnMg
Ki8sCisJCQkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNlbnRhdGlvbiAqLywKIAkJ
CQk4OUY2MEIxNzE1N0Y2QTAyMDA3NUUxNTcgLyogUXVvdGEgKi8sCiAJCQkJQkM5ODU0NDYwQ0Qz
REE1RjAwMDY5QkMxIC8qIFJhbmdlcyAqLywKIAkJCQlBQTdGRUU5QjE2QTQ5MUExMDA0QzBDMzMg
LyogU3BlZWNoICovLApAQCAtMTg2ODksNiArMTg3MzUsNyBAQAogCQkJCUIxQTk0MkREMTVCNUNF
MjIwMEQ1MjVEMSAvKiBtZWRpYXNvdXJjZSAqLywKIAkJCQkwNzIyMUI0NjE3Q0VDMzI3MDA4NDhF
NTEgLyogbWVkaWFzdHJlYW0gKi8sCiAJCQkJMzMzRjcwM0QwRkI0OUMxNjAwOEUxMkE2IC8qIG5v
dGlmaWNhdGlvbnMgKi8sCisJCQkJQ0QzNjM4OEIxQkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRh
dGlvbiAqLywKIAkJCQkwNzJBRTFERTE4M0MwNTEzMDAwQTU5ODggLyogcGx1Z2lucyAqLywKIAkJ
CQk4OUY2MEIwODE1N0Y2ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCiAJCQkJQUEyQTVBQjcxNkE0
ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLywKQEAgLTIyMTk0LDYgKzIyMjQxLDQ1IEBACiAJCQlw
YXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0QzNjM4OEIx
QkEzNkE2RDAwODdFMDdEIC8qIHByZXNlbnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0QzNjM4QTIxQkEzODlDNjAwODdFMDdEIC8qIE5hdmln
YXRvclByZXNlbnRhdGlvbi5jcHAgKi8sCisJCQkJQ0QzNjM4QTMxQkEzODlDNjAwODdFMDdEIC8q
IE5hdmlnYXRvclByZXNlbnRhdGlvbi5oICovLAorCQkJCUNEMzYzOEExMUJBMzg5OTEwMDg3RTA3
RCAvKiBOYXZpZ2F0b3JQcmVzZW50YXRpb24uaWRsICovLAorCQkJCUNEMzYzODlDMUJBMzZCMUUw
MDg3RTA3RCAvKiBQcmVzZW50YXRpb24uY3BwICovLAorCQkJCUNEMzYzODlEMUJBMzZCMUUwMDg3
RTA3RCAvKiBQcmVzZW50YXRpb24uaCAqLywKKwkJCQlDRDM2Mzg5QjFCQTM2QjE0MDA4N0UwN0Qg
LyogUHJlc2VudGF0aW9uLmlkbCAqLywKKwkJCQlDRDM2Mzg5MjFCQTM2QUQ4MDA4N0UwN0QgLyog
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCAqLywKKwkJCQlDRDM2Mzg5MzFCQTM2QUQ4MDA4
N0UwN0QgLyogUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4OTExQkEz
NkFDQjAwODdFMDdEIC8qIFByZXNlbnRhdGlvbkF2YWlsYWJpbGl0eS5pZGwgKi8sCisJCQkJQ0Qz
NjM4OTcxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuY3BwICovLAorCQkJ
CUNEMzYzODk4MUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggKi8sCisJ
CQkJQ0QzNjM4OTYxQkEzNkFFRjAwODdFMDdEIC8qIFByZXNlbnRhdGlvblJlcXVlc3QuaWRsICov
LAorCQkJCUNEMzYzODhEMUJBMzZBQjcwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNzaW9uLmNw
cCAqLywKKwkJCQlDRDM2Mzg4RTFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lv
bi5oICovLAorCQkJCUNEMzYzODhDMUJBMzZBQUIwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25TZXNz
aW9uLmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gcHJlc2VudGF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJQ0QzNjM4QTAxQkEzNzRGQTAwODdFMDdEIC8qIFByZXNl
bnRhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Q0QzNjM4QjYxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdhdG9yUHJlc2VudGF0aW9uLmNwcCAq
LywKKwkJCQlDRDM2MzhCNzFCQTM5MEUzMDA4N0UwN0QgLyogSlNOYXZpZ2F0b3JQcmVzZW50YXRp
b24uaCAqLywKKwkJCQlDRDM2MzhBNjFCQTM5MEQ2MDA4N0UwN0QgLyogSlNQcmVzZW50YXRpb24u
Y3BwICovLAorCQkJCUNEMzYzOEE3MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbi5o
ICovLAorCQkJCUNEMzYzOEE4MUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvbkF2YWls
YWJpbGl0eS5jcHAgKi8sCisJCQkJQ0QzNjM4QTkxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2Vu
dGF0aW9uQXZhaWxhYmlsaXR5LmggKi8sCisJCQkJQ0QzNjM4QUExQkEzOTBENjAwODdFMDdEIC8q
IEpTUHJlc2VudGF0aW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJQ0QzNjM4QUIxQkEzOTBENjAwODdF
MDdEIC8qIEpTUHJlc2VudGF0aW9uUmVxdWVzdC5oICovLAorCQkJCUNEMzYzOEFDMUJBMzkwRDYw
MDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uY3BwICovLAorCQkJCUNEMzYzOEFEMUJB
MzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblNlc3Npb24uaCAqLywKKwkJCSk7CisJCQlu
YW1lID0gUHJlc2VudGF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
Q0Q2MUZFN0IxNzk0Q0EwMjAwNDEwMUVCIC8qIE1lZGlhU291cmNlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0MzgxLDYgKzI0NDY3LDcgQEAKIAkJCQlF
MUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTE2NEZBQTMxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0b0tleVJTQS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTEyNUY4NTYxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMzYzOEFGMUJBMzkwRDYwMDg3RTA3RCAvKiBK
U1ByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4NUExODJDMUFBNjAwRDg0
Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ1MTYsNiArMjQ2MDMsNyBAQAogCQkJCTMxRUFGOTdFMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIx
QTU5MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUZCMUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjkxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2aWdh
dG9yUHJlc2VudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1RDEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5QThGMUQ4
MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODA4LDYgKzI0ODk2LDcgQEAKIAkJCQk4NUU3
MTFEMTBBQzVENTM1MDA1MzI3MEYgLyogRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NzkzRUQzMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1NzkzRUQ1MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdl
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4OUYxQkEzNkIxRTAwODdF
MDdEIC8qIFByZXNlbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBQ0FGNEQwRTc5MUFB
RjAwODdEMTJCIC8qIERPTU1lc3NhZ2VQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFERURE
NTBFNzZCRDYwMDA0QTFBNUUgLyogRE9NTWVzc2FnZVBvcnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTlDNkU0RTQwRDc0NUUwNTAwNjQ0MkU5IC8qIERPTU1pbWVUeXBlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1OTQzLDYgKzI2MDMyLDcgQEAKIAkJCQlCRThFRjA0RDE3MUM5MDE0MDA5
QjQ4QzMgLyogSlNWaWRlb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwODIx
OEE0NjBDMzAwODA2NDdFIC8qIEpTVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIw
RDE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzOEIzMUJBMzkwRDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEODJEN0Y4MTNENEM4QkQwMDRFNDM3MiAvKiBKU1dhdmVT
aGFwZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0YzRDM2NDFBNjlCMTkwMDA1OUZDMkIg
LyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDk3LDYg
KzI2MTg3LDcgQEAKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZFOTlERDE4ODA3QTdEMDAy
NTY2NDggLyogTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEz
QUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MzYzODlBMUJBMzZBRkMwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3QTZEMUVDMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBB
OEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTI2LDYgKzI2NjE3LDcg
QEAKIAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNjU4NzQxODZGREU0QzAwOUMyNkU4IC8qIFJlbmRl
clB0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QzNjM4QjExQkEzOTBENjAwODdFMDdEIC8qIEpT
UHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzMTNERjFC
Njk4OEM1MDBGMkFBQkMgLyogTlNCdXR0b25DZWxsU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjY1NTUsNiArMjY2NDcsNyBAQAogCQkJCTQzNjcwOEM5MTJEOUNBNEIwMDA0NDIz
NCAvKiBSZW5kZXJTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIwMTUxMjU1RTRF
NjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1NEIw
MTcxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNEMzYzODk1MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENCMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5k
ZXJTVkdNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQURERjFBRDcxMjU3Q0Q5QTAw
MDNBNzU5IC8qIFJlbmRlclNWR1BhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEJCNTg1MTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzMz
LDYgKzI2ODI2LDcgQEAKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI4ODkwRjE2N0QzMDE2
MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzFDQkQxMTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlDRDM2MzhBNTFCQTM4OUM2MDA4N0UwN0QgLyogTmF2aWdhdG9yUHJlc2Vu
dGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY2MkYyNjE0REFGRUExMDA0MTU1NkMgLyog
U2Nyb2xsaW5nVGhyZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFBRERBNDE0REI0MDlGMDBB
RjY0QjMgLyogU2Nyb2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhDMDMxNjQ0
NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLApA
QCAtMjY4MTIsNiArMjY5MDYsNyBAQAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBBNDg0NDk5MENB
NDRDQjIwMEI3QkQ0OCAvKiBTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIzMDQz
QzcwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2Mzg5
MDFCQTM2QUI3MDA4N0UwN0QgLyogUHJlc2VudGF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzE5Niw2ICsyNzI5MSw3IEBACiAJCQkJQjJDM0RB
MzYwRDAwNkMxRDAwRUY2RjI2IC8qIFRleHRCcmVha0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkMzREEzODBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRl
eHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDM2MzhCNTFCQTM5MEQ2MDA4
N0UwN0QgLyogSlNQcmVzZW50YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdE
MDAxMjEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkMzREEzQTBEMDA2QzFEMDBFRjZGMjYgLyogVGV4dENvZGVjLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3OTgyLDYgKzI4MDc4LDcgQEAKIAkJCQlGRDMxNjAyNDEyQjAyNjc2
MDBDMUEzNTkgLyogQmlxdWFkRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQzU0
RjA0MTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE2MDI2MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1YWRQcm9jZXNzb3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OTkxQkEzNkFGQzAwODdFMDdEIC8qIFByZXNlbnRhdGlv
blJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg5OTQzMjkwQjQyMzM4ODAwRDdDODAy
IC8qIEJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3N0EzQTkwMTVFRkNFOUIw
MDU5RjVDNyAvKiBCaXRtYXBJbWFnZUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2Qzc4
MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5OTksNiAr
MjgwOTYsNyBAQAogCQkJCTkzMzA5RERBMDk5RTY0OTIwMDU2RTU4MSAvKiBCcmVha0Jsb2NrcXVv
dGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QjU5NzczMTEwODY1NkIwMDcxNTlF
OCAvKiBCcmlkZ2VKU0MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E0NTAzMkYxOERCNzE3MjAw
Mzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDM2
Mzg5RTFCQTM2QjFFMDA4N0UwN0QgLyogUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE1NjlDRjcwRDdFMkI4MjAwN0MzOTgzIC8qIGNfY2xhc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlDRjkwRDdFMkI4MjAwN0MzOTgzIC8qIGNfaW5zdGFuY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODQyNCw2ICsyODUyMiw3IEBACiAJCQkJODVERjgyMjIw
QUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNvbEVsZW1lbnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk4NURGODI3MTBBQTc4QjhCMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlRWxlbWVudC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MjI0MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1M
VGFibGVSb3dFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QTQxQkEzODlDNjAw
ODdFMDdEIC8qIE5hdmlnYXRvclByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NURGODIyNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMzBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTFRl
eHRBcmVhRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OTkyRUMxMEFBNTA2OTUwMEFD
MDc4NSAvKiBET01IVE1MVGl0bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yODY0NCw2
ICsyODc0Myw3IEBACiAJCQkJMDg1QjkyQkEwRUZERTczRDAwRTYxMjNDIC8qIEZvcm1EYXRhQnVp
bGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODEzNkQzOTA5NzNBOEU3MDBENzQ0NjMgLyog
Rm9ybURhdGFMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDY2MTJEMjZFMzgwMEU3
OTQxNSAvKiBGb3JtRGF0YVN0cmVhbUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYz
ODk0MUJBMzZBRDgwMDg3RTA3RCAvKiBQcmVzZW50YXRpb25BdmFpbGFiaWxpdHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTE0Qzc2NEYwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFt
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU2RDM3M0IwQURCQTVERTAwQTQ1NTREIC8qIEZv
cm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTg4NUI5NDExQjZGREE2MDAzMzgzQkIg
LyogRm9ybVN1Ym1pc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODc5NCw2ICsyODg5NCw3
IEBACiAJCQkJQThDRkY3QTUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThEMjIzRkQxNkI1MkU0RTAwMTU3Mjg4IC8qIEhUTUxSZXNv
dXJjZVByZWxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMyMjBBMTUyMDU3MDBC
MTJBNjggLyogSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjAxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3N0IzODc0MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVu
bmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MTM2OUQ5MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBI
VE1MU2VsZWN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNBNzBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTEw
OCw2ICsyOTIwOSw3IEBACiAJCQkJNTE4RjUwMDMxOTRDQUMzQTAwODFCQUFFIC8qIEpTR2FtZXBh
ZEJ1dHRvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTZDNjIyNTE5NTBFMkI5MDAzMzdFNzUg
LyogSlNHYW1lcGFkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MERBNjMwRTlDNDcw
MzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4
QjQxQkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgwREE2NTBFOUM0NzAzMDAwRDZGNzUgLyogSlNH
ZW9wb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkRBN0MxRTE4ODMyMkZDMDBDOTU0
QjUgLyogSlNHZXN0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTQ5Niw2ICsyOTU5
OCw3IEBACiAJCQkJQjJGQTNERDIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERDQwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkZBM0RENjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QjgxQkEzOTBFMzAwODdFMDdEIC8qIEpTTmF2
aWdhdG9yUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREQ4MEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkZBM0REQTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQYXRoU2VnTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0REQzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdQ
YXRoU2VnTW92ZXRvQWJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk1MTMsNiArMjk2MTYsNyBA
QAogCQkJCUIyRkEzREYwMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1JlbmRlcmluZ0ludGVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkZBM0RGMjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdT
Y3JpcHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyRkEzREY0MEFCNzVBNkYwMDBF
NUFDNCAvKiBKU1NWR1NldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4QUUx
QkEzOTBENjAwODdFMDdEIC8qIEpTUHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUIyRkEzREY2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0b3BFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyRkEzREY4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1N0cmluZ0xpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJGQTNERkEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZH
U3R5bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAzOTAsNiArMzA0OTQsNyBAQAog
CQkJCUY1NUIzREQzMTI1MUYxMkQwMDNFRjI2OSAvKiBTdWJtaXRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFMzdFRjJFMTMzOTIwODgwMEIyOTI1MCAvKiBT
dWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMzYzOEIyMUJBMzkw
RDYwMDg3RTA3RCAvKiBKU1ByZXNlbnRhdGlvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0U4RkFEQzQxOTlBOTVCMTAwNzE0OTY4IC8qIFN1YnJlc291cmNlTG9hZGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLywKIAkJCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyogU3VidGxlQ3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjJEODE4MEY5OTIwRUUwMDZBRTZCMiAvKiBT
dWRkZW5UZXJtaW5hdGlvbi5tbSBpbiBTb3VyY2VzICovLApAQCAtMzA3MjQsNiArMzA4MjksNyBA
QAogCQkJCTdBOTM4Njg1MThEQ0MxNDUwMEI4MjYzRCAvKiBWVFRTY2FubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUExNDgzMkIxMTg3RjYxRTEwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBBQUY3IC8qIERPTVBhdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QzNjM4OEYxQkEzNkFCNzAwODdFMDdEIC8qIFByZXNl
bnRhdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0ODMyQjMxODdGNjI5MTAw
REE2M0E2IC8qIFdBS0NsaXBWaWV3Lm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJCNTE4N0Y2
MkZDMDBEQTYzQTYgLyogV0FLUmVzcG9uZGVyLm0gaW4gU291cmNlcyAqLywKIAkJCQlBMTQ4MzJC
NzE4N0Y2MzZDMDBEQTYzQTYgLyogV0FLU2Nyb2xsVmlldy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKaW5kZXggYzg1NmJiMmUzOTc3YTk3YjdlZDQ2ZmJlN2RiOWQxZGY1
ZWUyOGM1MC4uZGUyOTk4ZjkxMDEwMWYyOWIwMjliMmZjYzg3MDgyZjZlOWYyMThkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xODAsNiArMTgwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKHNlbGVjdCkgXAogICAgIG1hY3JvKHNlbGVjdGlvbmNoYW5nZSkgXAogICAg
IG1hY3JvKHNlbGVjdHN0YXJ0KSBcCisgICAgbWFjcm8oc2Vzc2lvbmF2YWlsYWJsZSkgXAorICAg
IG1hY3JvKHNlc3Npb25jb25uZWN0KSBcCiAgICAgbWFjcm8oc2hvdykgXAogICAgIG1hY3JvKHNp
Z25hbGluZ3N0YXRlY2hhbmdlKSBcCiAgICAgbWFjcm8oc291bmRlbmQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IGFiNGZlZGJkNTcxYmUxNjM5MDNjY2Fk
YTIwNzQyNWQxNTU3NGNjMDQuLjA1YzAwMDIxMDliODNmZjI3NTIyYjFjYTNkZTg5ZDJkOWY5MWM5
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjQsNiAr
MjQsMTAgQEAgTWVzc2FnZVBvcnQKIE5vZGUKIE5vdGlmaWNhdGlvbiBjb25kaXRpb25hbD1OT1RJ
RklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJT05TCiBQZXJmb3JtYW5jZSBjb25kaXRpb25hbD1X
RUJfVElNSU5HCitQcmVzZW50YXRpb24gY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJl
c2VudGF0aW9uQXZhaWxhYmlsaXR5IGNvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkKK1ByZXNl
bnRhdGlvblJlcXVlc3QgY29uZGl0aW9uYWw9UFJFU0VOVEFUSU9OX0FQSQorUHJlc2VudGF0aW9u
U2Vzc2lvbiBjb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJCiBSVENEYXRhQ2hhbm5lbCBjb25k
aXRpb25hbD1NRURJQV9TVFJFQU0KIFJUQ0RUTUZTZW5kZXIgY29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNCiBSVENQZWVyQ29ubmVjdGlvbiBjb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261213</attachid>
            <date>2015-09-15 10:52:20 -0700</date>
            <delta_ts>2016-03-10 10:18:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149168-20150915105208.patch</filename>
            <type>text/plain</type>
            <size>17715</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3MGViZmZlZjRjOTUw
MmYwMDhiN2E5NWI3ZWYyYzljZmYxNDg3My4uODY0NWQ0ZDQ2Mzk3NDkxOWExYjE1MDNkZmRiMjNm
YTljNzhlMjcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTA5LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgdGhlIFByZXNlbnRh
dGlvbiBBUEkgcnVudGltZSBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDkxNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYXJrIHRoZSBQcmVzZW50YXRpb24gQVBJIGNsYXNzZXMgYXMgRW5h
YmxlZEF0UnVudGltZSBhbmQgYWRkIGEgcnVudGltZSBmZWF0dXJlIHNldHRpbmcgZm9yIHRoZW0u
CisKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQcmVzZW50YXRpb24u
aWRsOgorICAgICAgICAqIE1vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5Lmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50YXRpb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uUmVxdWVzdC5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uU2Vzc2lvbi5pZGw6CisgICAg
ICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRQcmVzZW50YXRpb25BUElFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnByZXNlbnRh
dGlvbkFQSUVuYWJsZWQpOgorCiAyMDE1LTA5LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIFByZXNlbnRhdGlv
biBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZjE4NjEyYjg3NDYwODVlNjkzMTU5MjkwODM5YWY5
ODFiNWUzNWFmLi44MzI1NzU1OTAwYzZjNDVjZDY1OWZlNjhmYThiNzVhNjk4ZTgyN2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTUtMDktMTUgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0aGUgUHJlc2VudGF0aW9uIEFQSSBy
dW50aW1lIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0OTE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIFdlYlByZWZlcmVuY2UgZm9yIGVuYWJsaW5nIHRoZSBQcmVzZW50YXRpb24g
QVBJLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBwcmVzZW50YXRpb25BUElFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IHNldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxNS0wOS0xNCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb2dyZXNz
IHRvd2FyZHMgQ01ha2Ugb24gTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE0ZDM4OGU2OTlkYTMzZGRjYjZj
NjRhODcwZWIxZWQzZjhhODgzY2IuLjM4MGY2Yjg5NjQ5MWFlMmU2MGUyMTAxZWQ0NjI0YmM4YjJm
YmVmNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxNS0wOS0xNSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBQcmVzZW50YXRpb24g
QVBJIHJ1bnRpbWUgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ5MTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgV0tQcmVmZXJlbmNlIGZvciBlbmFibGluZyB0aGUgUHJlc2VudGF0
aW9uIEFQSS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V0tQcmVmZXJlbmNlc1NldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQpOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc0dldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfcHJlc2Vu
dGF0aW9uQVBJRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRQcmVzZW50
YXRpb25BUElFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAx
NS0wOS0xNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnNv
bGlkYXRlIHRvdWNoIGV2ZW50IGNvZGUgZGVhbGluZyB3aXRoIGZvcmNlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9u
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL05hdmlnYXRvclByZXNl
bnRhdGlvbi5pZGwKaW5kZXggMTdlZWIyNTYzNjFkMDU5YjcxOWQxMGQwNjJmNTU0MjY1YTgxZDNh
OS4uYjBkYzBiNTIzNzZkMDJmNzcwZTdhODJjMGMzNmJiZDQyZjM3MzU3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vTmF2aWdhdG9yUHJlc2VudGF0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9OYXZpZ2F0b3JQ
cmVzZW50YXRpb24uaWRsCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci1bIENvbmRpdGlvbmFsPVBSRVNFTlRBVElPTl9BUEkgXQorWyBDb25kaXRpb25hbD1QUkVTRU5U
QVRJT05fQVBJLCBFbmFibGVkQXRSdW50aW1lPVByZXNlbnRhdGlvbkFQSSBdCiBwYXJ0aWFsIGlu
dGVyZmFjZSBOYXZpZ2F0b3IgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcmVzZW50YXRpb24g
cHJlc2VudGF0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJl
c2VudGF0aW9uL1ByZXNlbnRhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNl
bnRhdGlvbi9QcmVzZW50YXRpb24uaWRsCmluZGV4IDc5MmFmNjg4ZmYyNWE5MjVjOWRlN2UwOTBi
ZmVkNmVkM2U4MDVjNjMuLmU5ZWU2YWNjNGQ5ZGM4OWM4MDdkMjY0ZDUxZjMwMTRmMjYwNjIxZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRh
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2Vu
dGF0aW9uLmlkbApAQCAtMjcsNiArMjcsNyBAQAogICAgIENvbmRpdGlvbmFsPVBSRVNFTlRBVElP
Tl9BUEksCiAgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAog
ICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBFbmFibGVkQXRSdW50aW1lPVByZXNlbnRhdGlvbkFQ
SSwKIF0KIGludGVyZmFjZSBQcmVzZW50YXRpb24gOiBFdmVudFRhcmdldCB7CiAgICAgYXR0cmli
dXRlIFByZXNlbnRhdGlvblJlcXVlc3Q/IGRlZmF1bHRSZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxhYmlsaXR5
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlvbkF2
YWlsYWJpbGl0eS5pZGwKaW5kZXggNzIyNDk3YjIwMDNjZDE1NjJkNjVlMTRkMDk3YWIxYThiMDhm
YjgxYy4uMmE4NDUwMGM2ZmMxYjJkYjM1MzY0NTdhODRkNjdiZTY1NjEyYWM5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0aW9uQXZhaWxh
YmlsaXR5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVz
ZW50YXRpb25BdmFpbGFiaWxpdHkuaWRsCkBAIC0yNyw2ICsyNyw3IEBACiAgICAgQ29uZGl0aW9u
YWw9UFJFU0VOVEFUSU9OX0FQSSwKICAgICBDb25zdHJ1Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsCiAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9
UHJlc2VudGF0aW9uQVBJLAogXQogICAgIGludGVyZmFjZSBQcmVzZW50YXRpb25BdmFpbGFiaWxp
dHkgOiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmFsdWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ByZXNlbnRhdGlvbi9QcmVzZW50
YXRpb25SZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1By
ZXNlbnRhdGlvblJlcXVlc3QuaWRsCmluZGV4IDkzY2Q1N2RlNzE5NzU2ZTVmNDVmZWIwYzg5YWEy
Yjg1NTVjNzI4MWMuLjJiNDhlZmFmMDNiNjEzYjc5MWY4YTk5YjljZTU0YTkxMDg5NDU4MjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNlbnRhdGlv
blJlcXVlc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1By
ZXNlbnRhdGlvblJlcXVlc3QuaWRsCkBAIC0zMCw2ICszMCw3IEBACiAgICAgSlNHZW5lcmF0ZVRv
TmF0aXZlT2JqZWN0LAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgIEFjdGl2ZURPTU9i
amVjdCwKKyAgICBFbmFibGVkQXRSdW50aW1lPVByZXNlbnRhdGlvbkFQSSwKIF0KIGludGVyZmFj
ZSBQcmVzZW50YXRpb25SZXF1ZXN0IDogRXZlbnRUYXJnZXQgewogICAgIFByb21pc2Ugc3RhcnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJlc2VudGF0aW9uL1ByZXNl
bnRhdGlvblNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24v
UHJlc2VudGF0aW9uU2Vzc2lvbi5pZGwKaW5kZXggMWViZjU4NjA5MTVkOTU2MWE3OThhZGI5MTZi
NjA1YmMyOWE4YjE5Mi4uMGZkMTk4YmE0YzY4NWNkNzU4ZDZjNTFlZmZlMGIyZjU2NmFhMzViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24vUHJlc2VudGF0
aW9uU2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcmVzZW50YXRpb24v
UHJlc2VudGF0aW9uU2Vzc2lvbi5pZGwKQEAgLTM3LDYgKzM3LDcgQEAgZW51bSBCaW5hcnlUeXBl
IHsKIFsKICAgICBDb25kaXRpb25hbD1QUkVTRU5UQVRJT05fQVBJLAogICAgIEFjdGl2ZURPTU9i
amVjdCwKKyAgICBFbmFibGVkQXRSdW50aW1lPVByZXNlbnRhdGlvbkFQSSwKIF0KIGludGVyZmFj
ZSBQcmVzZW50YXRpb25TZXNzaW9uIDogRXZlbnRUYXJnZXQgewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmc/IGlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBiOWU2NDNmNjJkNGI2Nzhj
MGVhYTkxY2ZlN2EwZWUxY2M3YTZjZmZkLi44NzViMGNmYWQ3NGYwNGM2YjRjZTNiYjMyNTUzODgw
NGM0ZjE2MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjAxLDYgKzIwMSwxMSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBhbmltYXRpb25UcmlnZ2Vyc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Fy
ZUFuaW1hdGlvblRyaWdnZXJzRW5hYmxlZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUFJFU0VO
VEFUSU9OX0FQSSkKKyAgICB2b2lkIHNldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpIHsgbV9pc1ByZXNlbnRhdGlvbkFQSUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBi
b29sIHByZXNlbnRhdGlvbkFQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUHJlc2VudGF0
aW9uQVBJRW5hYmxlZDsgfQorI2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUnVu
dGltZUVuYWJsZWRGZWF0dXJlcyYgc2hhcmVkRmVhdHVyZXMoKTsKIAogcHJpdmF0ZToKQEAgLTI4
MCw2ICsyODUsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYXJlQW5pbWF0aW9uVHJpZ2dlcnNF
bmFibGVkOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUFJFU0VOVEFUSU9OX0FQSSkKKyAgICBib29s
IG1faXNQcmVzZW50YXRpb25BUElFbmFibGVkIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgZnJp
ZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAppbmRleCAwYzhkMWQ4NTYzOTcxMTczMjQ4N2Y4ZTYzNDlkNWI3Y2FhOWFmYTRj
Li4wYzlhNjZiMTVlYTUyMmYwMjU3NTczYjRmM2Y3NDY2M2E2MTMxOGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAg
LTE5NCwzICsxOTQsNCBAQAogCiAjZGVmaW5lIFdlYktpdEVuYWJsZUluaGVyaXRVUklRdWVyeUNv
bXBvbmVudFByZWZlcmVuY2VLZXkgQCJXZWJLaXRFbmFibGVJbmhlcml0VVJJUXVlcnlDb21wb25l
bnQiCiAjZGVmaW5lIFdlYktpdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseVByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkiCisjZGVmaW5lIFdlYktpdFBy
ZXNlbnRhdGlvbkFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UHJlc2VudGF0aW9uQVBJ
RW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmlu
ZGV4IDQ3N2ZkMjg2NzRkNDJiMDM4NWI4ZWMxYTRkODBjY2Q5MWFjNmYyZWUuLmY4YTk5MjY2NDM1
YTk2YjhkN2ZkMzA0N2JkZWE3NzI3MjgwOWYzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMjU5NCw2ICsyNTk0LDE2IEBAIHN0YXRpYyBOU1N0
cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZs
YWcgZm9yS2V5OldlYktpdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseVByZWZlcmVuY2VLZXld
OwogfQogCistIChCT09MKXByZXNlbnRhdGlvbkFQSUVuYWJsZWQKK3sKKyAgICByZXR1cm4gW3Nl
bGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRQcmVzZW50YXRpb25BUElFbmFibGVkUHJlZmVyZW5j
ZUtleV07Cit9CisKKy0gKHZvaWQpc2V0UHJlc2VudGF0aW9uQVBJRW5hYmxlZDooQk9PTCllbmFi
bGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRQcmVz
ZW50YXRpb25BUElFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGRlNDI3ZWMxODg0YjNl
ZTg1MzNlNTVmOWMxYzJjNmU3MjAyZTBlMzguLjgzNDVlOGMxZTUzODhkMzc5YjNjODZiMDkxZTQ2
ZjE5YzJmOWNhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaApAQCAtNDU0LDYgKzQ1NCw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2Vi
UHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0TWFya3VwRW5hYmxlZDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIG1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHByZXNlbnRhdGlvbkFQSUVuYWJsZWQ7CiAKICNpZiBUQVJHRVRf
T1NfSVBIT05FICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgODAwMDAKIC0g
KHZvaWQpX3NldEFsbG93Q29tcG9zaXRpbmdMYXllclZpc3VhbERlZ3JhZGF0aW9uOihCT09MKWZs
YWc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggOGY3OWUyNmNlNzhmZDFl
YmRhZjRmN2IwMWUyYjk5MGNiYjU3MzRkYS4uMjAxMjU4N2Q5OGUzNDQ5NWE2ZDIzYThkNzBlM2Jj
YmVmM2ZlMDUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjQ0MCw2
ICsyNDQwLDkgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmso
KQogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0R2FtZXBhZHNFbmFibGVkKFtwcmVmZXJlbmNlcyBnYW1lcGFkc0VuYWJs
ZWRdKTsKICNlbmRpZgorI2lmIEVOQUJMRShQUkVTRU5UQVRJT05fQVBJKQorICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0UHJlc2VudGF0aW9uQVBJRW5hYmxl
ZChbcHJlZmVyZW5jZXMgcHJlc2VudGF0aW9uQVBJRW5hYmxlZF0pOworI2VuZGlmCiAKICAgICBO
U1RpbWVJbnRlcnZhbCB0aW1lb3V0ID0gW3ByZWZlcmVuY2VzIGluY3JlbWVudGFsUmVuZGVyaW5n
U3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzXTsKICAgICBpZiAodGltZW91dCA+IDApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRl
eCAyZmFlNmUxZTViYjc3ZGU4NmM4OTdiNmI4ZDk4NDAzODNkODhjZDU4Li45NTEwMDJiNjhiY2Q5
ZTgyMjhkZTZkYzQwOTA5ZTJlMjAxMGRiNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTIwNyw2ICsyMDcsNyBAQAogICAg
IG1hY3JvKE5ld0Jsb2NrSW5zaWRlSW5saW5lTW9kZWxFbmFibGVkLCBuZXdCbG9ja0luc2lkZUlu
bGluZU1vZGVsRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhBbnRpYWxp
YXNlZEZvbnREaWxhdGlvbkVuYWJsZWQsIGFudGlhbGlhc2VkRm9udERpbGF0aW9uRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhIVFRQRXF1aXZFbmFibGVkLCBodHRwRXF1
aXZFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oUHJlc2VudGF0aW9uQVBJ
RW5hYmxlZCwgcHJlc2VudGF0aW9uQVBJRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKIAog
I2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBt
YWNybyhJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCwgaW5jcmVtZW50YWxS
ZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQsIERvdWJsZSwgZG91YmxlLCA1KSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggZTJi
ZGJlNmQxY2NhZjRkNzlkYjNjNjdmOTY1ZTJiM2U2ZTFmMDNhNS4uMWRiOGYwOGI1YjcyYTEzZDkz
Mjg5NjE5NTRhMjQ4ODIyZmNiYTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTM5NiwzICsxMzk2LDEzIEBAIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldEFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmFs
bG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dFByZXNlbnRhdGlvbkFQSUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFByZXNlbnRh
dGlvbkFQSUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFByZXNl
bnRhdGlvbkFQSUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+cHJlc2VudGF0aW9uQVBJRW5hYmxlZCgp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCA1Yjg3ZDEzZWJiZWZhYWViNjA3NmZiYmYzYTBkYTFl
MjYzYWFmM2Q1Li5kZWIwZDAxMzk1NGE2MWI3NTQwNjJiMjA2NjMxOTQ3NDFlOTdmMTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZlByaXZhdGUuaApAQCAtMzc5LDYgKzM3OSwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZl
cmVuY2VzR2V0TWV0YVJlZnJlc2hFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMp
OwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEhUVFBFcXVpdkVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCBib29sIFdL
UHJlZmVyZW5jZXNHZXRIVFRQRXF1aXZFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywg
Ym9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRQcmVzZW50YXRp
b25BUElFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOworCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDRjOGRhZTA5YmQxN2VkNGJlNmIwYmZlYjcz
Y2JiZDM5MzBiMjQ2MjUuLjA2NTUzN2I4NjM1OWIzODQ4NmYxMjAxZmUyNzU3YTE3N2VhNWYxM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW0KQEAgLTMzNyw2ICszMzcsMTYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8KICAg
ICBfcHJlZmVyZW5jZXMtPnNldEFudGlhbGlhc2VkRm9udERpbGF0aW9uRW5hYmxlZChhbnRpYWxp
YXNlZEZvbnREaWxhdGlvbkVuYWJsZWQpOwogfQogCistIChCT09MKV9wcmVzZW50YXRpb25BUElF
bmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+cHJlc2VudGF0aW9uQVBJRW5hYmxl
ZCgpOworfQorCistICh2b2lkKV9zZXRQcmVzZW50YXRpb25BUElFbmFibGVkOihCT09MKWVuYWJs
ZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQoZW5hYmxl
ZCk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRl
LmgKaW5kZXggNzM1ODRjYWMwYjIxNmExYjJlZTNlNzdkM2Y2NDBmNDExZTY5MGM5MS4uZWVhZmEz
MDFkNzcwN2ZhODNiOGZjNjE2OGU4ODM0YTE1YjUyMTA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApA
QCAtNzksNiArNzksNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2YVNj
cmlwdFJ1bnRpbWVGbGFncykgewogLy8gRklYTUU6IFRoaXMgcHJvcGVydHkgc2hvdWxkIG5vdCBo
YXZlIHRoZSB2ZXJiICJpcyIgaW4gaXQuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRPZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDopIEJPT0wgX29mZmxpbmVBcHBsaWNh
dGlvbkNhY2hlSXNFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVs
bFNjcmVlbkVuYWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVuRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBf
MTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmVzZW50YXRpb25B
UElFbmFibGVkOikgQk9PTCBfcHJlc2VudGF0aW9uQVBJRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBiZTUxZWI3NzQ3YzRkMTI0OTY2ZDE3YzY2
YzJlYzU0YWJjNjE0ZGMuLmQxNWIyZjk5ZmIyMzBiNDhiMDAwNmY5ZjJiNWI2MGY3ODUxZTdhOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTI4NzgsNiArMjg3OCwxMCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldFNlcnZpY2VDb250
cm9sc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpz
ZXJ2aWNlQ29udHJvbHNFbmFibGVkS2V5KCkpKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBSRVNF
TlRBVElPTl9BUEkpCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRQcmVzZW50YXRpb25BUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6cHJlc2VudGF0aW9uQVBJRW5hYmxlZEtleSgpKSk7CisjZW5kaWYKKwog
ICAgIGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCA9IHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6cGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVz
c2lvbkVuYWJsZWRLZXkoKSk7CiAgICAgaWYgKG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCAh
PSBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKSB7CiAgICAgICAgIG1fcHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZCA9IHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk1ZWM0MjAwNDNhNDZmZTAxZmJl
YWM0MjE0NjlmNjk3ZDRmZjUwMS4uNmI0M2JmMDE4OTMyYWViNDU2ODE2NThiYzRkZjJlYzY5ZTc0
ZjlmNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDE1LTA5LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIE1ha2UgdGhlIFByZXNlbnRhdGlvbiBBUEkgcnVudGltZSBlbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxNjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNldCB0
aGUgcHJlc2VudGF0aW9uQVBJRW5hYmxlZCBwcmVmZXJlbmNlIHRvIHRydWUgaW4gRFJUIGFuZCBX
S1RSLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAx
NS0wOS0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV0gQWxsb3cgdGVzdGluZyB3aXRoIHRoZSBzeXN0ZW0gbGFuZ3VhZ2UKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA4MTZkN2E0NDQ0Mzk1
OTczMjU3YjIyZTZmY2NiMmRmYzZiN2YzZjQ4Li5lYmE2MmMzOGIyZmM0Nzg1OTk3N2Q5YTk0OTg3
NDI4NTdlZjU5MTQxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC05ODAsNiArOTgwLDEwIEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNlcyBzZXRIaWRkZW5QYWdlRE9NVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZDpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldEhpZGRlblBhZ2VD
U1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZDpOT107CiAKKyNpZiBFTkFCTEUoUFJFU0VOVEFU
SU9OX0FQSSkKKyAgICBbcHJlZmVyZW5jZXMgc2V0UHJlc2VudGF0aW9uQVBJRW5hYmxlZDpZRVNd
OworI2VuZGlmCisKICAgICBbV2ViUHJlZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Np
b25dOwogICAgIFtXZWJQcmVmZXJlbmNlcyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9u
Q29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggY2NkMzRmMDMwMjg4MzFhODhkYjhjODYyZGRkMjI0MDdlMWNiYzM4Ni4uMTNmZmJk
OTEwOTE2YzVmMTMzOTlmMWZkZTcxZGRkOGZhMTc4YzNlYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTY2NSw2ICs2NjUsMTAgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgV0tQcmVm
ZXJlbmNlc1NldE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUocHJlZmVyZW5jZXMsIHRydWUpOwog
ICAgIFdLUHJlZmVyZW5jZXNTZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZShwcmVmZXJlbmNlcywgZmFsc2UpOwogCisjaWYgRU5BQkxFKFBSRVNFTlRBVElP
Tl9BUEkpCisgICAgV0tQcmVmZXJlbmNlc1NldFByZXNlbnRhdGlvbkFQSUVuYWJsZWQocHJlZmVy
ZW5jZXMsIHRydWUpOworI2VuZGlmCisKICAgICBXS0Nvb2tpZU1hbmFnZXJEZWxldGVBbGxDb29r
aWVzKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7CiAKICAgICBw
bGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKTsK
</data>
<flag name="review"
          id="286428"
          type_id="1"
          status="-"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>