<?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>115836</bug_id>
          
          <creation_ts>2013-05-08 17:27:59 -0700</creation_ts>
          <short_desc>Require use of AudioBus::create() to avoid ref-counting issues</short_desc>
          <delta_ts>2013-05-09 09:12:27 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>pnormand</cc>
    
    <cc>rego+ews</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xingnan.wang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>886538</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-05-08 17:27:59 -0700</bug_when>
    <thetext>Require use of AudioBus::create() to avoid ref-counting issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886539</commentid>
    <comment_count>1</comment_count>
      <attachid>201119</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-05-08 17:34:08 -0700</bug_when>
    <thetext>Created attachment 201119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886546</commentid>
    <comment_count>2</comment_count>
      <attachid>201121</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-05-08 17:48:21 -0700</bug_when>
    <thetext>Created attachment 201121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886559</commentid>
    <comment_count>3</comment_count>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2013-05-08 18:23:32 -0700</bug_when>
    <thetext>Thanks Chris, I should have helped back port the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886752</commentid>
    <comment_count>4</comment_count>
      <attachid>201121</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-09 06:36:43 -0700</bug_when>
    <thetext>Comment on attachment 201121
Patch

r=me, thank you for porting this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886908</commentid>
    <comment_count>5</comment_count>
      <attachid>201121</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-09 09:12:25 -0700</bug_when>
    <thetext>Comment on attachment 201121
Patch

Clearing flags on attachment: 201121

Committed r149817: &lt;http://trac.webkit.org/changeset/149817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886909</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-09 09:12:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201119</attachid>
            <date>2013-05-08 17:34:08 -0700</date>
            <delta_ts>2013-05-08 17:48:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115836-20130508173312.patch</filename>
            <type>text/plain</type>
            <size>37943</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjAzMzc0YzNkNTc5
M2M3YzMyYzhlOThhNmJkNmM5YWZlMzUyNC4uNjJmOTI1OWIwODkxMzIxN2I5MDdjYjQ0ODkxMjQy
MTAxMDBmMTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTA1LTA4ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVxdWlyZSB1c2Ugb2Yg
QXVkaW9CdXM6OmNyZWF0ZSgpIHRvIGF2b2lkIHJlZi1jb3VudGluZyBpc3N1ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTgzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgYSBjb3Vw
bGUgb2YgcGxhY2VzIHN0aWxsIGVtYmVkZGluZyByYXcgQXVkaW9CdXMgb2JqZWN0cyBhcworICAg
ICAgICBtZW1iZXIgdmFyaWFibGVzIG9yIGxvY2FsIHZhcmlhYmxlcyBjYXVzaW5nIHJlZi1jb3Vu
dGluZyBwcm9ibGVtcworICAgICAgICBub3cgdGhhdCBBdWRpb0J1cyBpcyByZWYtY291bnRlZC4g
IE1ha2UgQXVkaW9CdXMgY29uc3RydWN0b3IgcHJpdmF0ZQorICAgICAgICB0byBlbmZvcmNlIHVz
ZSBvZiBBdWRpb0J1czo6Y3JlYXRlKCkuCisKKyAgICAgICAgQWRhcHRlZCBmcm9tIEJsaW5rIHBh
dGNoOgorICAgICAgICBodHRwczovL2Nocm9taXVtY29kZXJldmlldy5hcHBzcG90LmNvbS8xNDYy
ODAwOC8KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Ob2RlOjpMb2NhbEF1ZGlvSW5w
dXRQcm92aWRlcjo6TG9jYWxBdWRpb0lucHV0UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkxvY2FsQXVkaW9JbnB1dFByb3ZpZGVyOjpzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkxvY2FsQXVkaW9JbnB1dFByb3Zp
ZGVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAoTG9jYWxBdWRpb0lucHV0UHJvdmlkZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OkF1ZGlvTm9kZUlucHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9O
b2RlT3V0cHV0OjpBdWRpb05vZGVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
T3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZp
bmFsVmFsdWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6TWVkaWFT
dHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmg6CisgICAg
ICAgIChTY3JpcHRQcm9jZXNzb3JOb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OkF1ZGlvQnVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0ZUJ5TWl4aW5nVG9Nb25vKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oOgorICAgICAgICAoQXVkaW9CdXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRklGTy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZJ
Rk86OkF1ZGlvRklGTyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZJRk86OmNvbnN1bWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GSUZPOjpwdXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0ZJRk8uaDoKKyAgICAgICAgKEF1ZGlvRklGTyk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQXVkaW9QdWxsRklGTy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1B1bGxG
SUZPOjpBdWRpb1B1bGxGSUZPKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHVsbEZJRk86OmZp
bGxCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaDoKKyAg
ICAgICAgKEF1ZGlvUHVsbEZJRk8pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVz
YW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyOjpBdWRpb1Jlc2Ft
cGxlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Jlc2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5l
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2Ft
cGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW5jUmVzYW1wbGVyOjpjb25zdW1lU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmg6
CisgICAgICAgIChBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uSU9TOjpBdWRpb0Rlc3RpbmF0aW9uSU9TKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvRGVzdGluYXRpb25JT1M6OnJlbmRlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuaDoKKyAgICAgICAgKEF1ZGlvRGVzdGluYXRpb25J
T1MpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25NYWM6OkF1ZGlvRGVzdGluYXRp
b25NYWMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6cmVuZGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oOgorICAg
ICAgICAoQXVkaW9EZXN0aW5hdGlvbk1hYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvRmlsZVJlYWRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFk
ZXI6OmNyZWF0ZUJ1cyk6CisKIDIwMTMtMDUtMDggIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCwgQXBwbGVXaW4gcG9ydC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaAppbmRleCBkNDQzMTAxYjgwYjQ1MjliY2YyNzc3ODE2M2IwYjBhM2Q2MzE5MTBl
Li5iMTZmYTY0MGNlZGM2NTQwY2Y5ZTdkMGQ0NTEwNTRlNjg1ODI3ZTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5o
CkBAIC02NywyNyArNjcsMjcgQEAgcHJvdGVjdGVkOgogICAgIGNsYXNzIExvY2FsQXVkaW9JbnB1
dFByb3ZpZGVyIDogcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKICAg
ICAgICAgTG9jYWxBdWRpb0lucHV0UHJvdmlkZXIoKQotICAgICAgICAgICAgOiBtX3NvdXJjZUJ1
cygyLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpIC8vIEZJWE1FOiBoYW5kbGUg
bm9uLXN0ZXJlbyBsb2NhbCBpbnB1dC4KKyAgICAgICAgICAgIDogbV9zb3VyY2VCdXMoQXVkaW9C
dXM6OmNyZWF0ZSgyLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKSAvLyBGSVhN
RTogaGFuZGxlIG5vbi1zdGVyZW8gbG9jYWwgaW5wdXQuCiAgICAgICAgIHsKICAgICAgICAgfQog
CiAgICAgICAgIHZvaWQgc2V0KEF1ZGlvQnVzKiBidXMpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChidXMpCi0gICAgICAgICAgICAgICAgbV9zb3VyY2VCdXMuY29weUZyb20oKmJ1cyk7Cisg
ICAgICAgICAgICAgICAgbV9zb3VyY2VCdXMtPmNvcHlGcm9tKCpidXMpOwogICAgICAgICB9CiAK
ICAgICAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICAgICAgdmlydHVhbCB2b2lkIHBy
b3ZpZGVJbnB1dChBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKICAgICAgICAgewotICAgICAgICAgICAgYm9vbCBpc0dvb2QgPSBkZXN0aW5hdGlvbkJ1cyAm
JiBkZXN0aW5hdGlvbkJ1cy0+bGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXMgJiYgbV9zb3VyY2VC
dXMubGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXM7CisgICAgICAgICAgICBib29sIGlzR29vZCA9
IGRlc3RpbmF0aW9uQnVzICYmIGRlc3RpbmF0aW9uQnVzLT5sZW5ndGgoKSA9PSBudW1iZXJPZkZy
YW1lcyAmJiBtX3NvdXJjZUJ1cy0+bGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXM7CiAgICAgICAg
ICAgICBBU1NFUlQoaXNHb29kKTsKICAgICAgICAgICAgIGlmIChpc0dvb2QpCi0gICAgICAgICAg
ICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKG1fc291cmNlQnVzKTsKKyAgICAgICAgICAg
ICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKm1fc291cmNlQnVzKTsKICAgICAgICAgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgQXVkaW9CdXMgbV9zb3VyY2VCdXM7CisgICAgICAgIFJl
ZlB0cjxBdWRpb0J1cz4gbV9zb3VyY2VCdXM7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgZG91Ymxl
IHRhaWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAppbmRleCBmYzMwYjdi
M2I4NmFlZTIzN2Q3YzJiMmQ3ZWI2OGYyMGUyNTQ3ZmMyLi41MjEzNjUwM2JkZmI5NGRkNmJjZjZk
Y2VjNmRkN2M5NjhhNTc1NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtNDIsNyArNDIsNyBAQCBBdWRpb05vZGVJbnB1
dDo6QXVkaW9Ob2RlSW5wdXQoQXVkaW9Ob2RlKiBub2RlKQogICAgICwgbV9ub2RlKG5vZGUpCiB7
CiAgICAgLy8gU2V0IHRvIG1vbm8gYnkgZGVmYXVsdC4KLSAgICBtX2ludGVybmFsU3VtbWluZ0J1
cyA9IGFkb3B0UmVmKG5ldyBBdWRpb0J1cygxLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5G
cmFtZXMpKTsKKyAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwg
QXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKIH0KIAogdm9pZCBBdWRpb05vZGVJ
bnB1dDo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKQEAgLTE0NCw3ICsxNDQsNyBA
QCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJl
ck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+bnVtYmVyT2ZDaGFubmVs
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IGFkb3B0
UmVmKG5ldyBBdWRpb0J1cyhudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lcykpOworICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0gQXVkaW9CdXM6
OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJ
bkZyYW1lcyk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlT3V0cHV0LmNwcAppbmRleCBiYmU1NTg0OWFmMzE3N2RmNTIwNTNlMzkxZTI3YzVkY2ZkNmE0
ZDZmLi5mOWE0NTE2Zjk4MjQ3Y2QwZGQxMjZjYWM0ODJjZGVmYTk5MjY4YjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCkBA
IC00Nyw3ICs0Nyw3IEBAIEF1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KEF1ZGlvTm9k
ZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKIHsKICAgICBBU1NFUlQobnVtYmVy
T2ZDaGFubmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSk7CiAKLSAg
ICBtX2ludGVybmFsQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMs
IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykpOworICAgIG1faW50ZXJuYWxCdXMg
PSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vzc2lu
Z1NpemVJbkZyYW1lcyk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpzZXROdW1iZXJPZkNo
YW5uZWxzKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQg
QXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSBtX2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1faW50ZXJuYWxCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobnVtYmVy
T2ZDaGFubmVscygpLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKTsKKyAgICBt
X2ludGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzKCksIEF1ZGlv
Tm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0
Ojp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmNwcAppbmRleCBkZTMzN2JiMGE3ZjRiZDlhNzdjMWQwNWFlNDJhMTVh
YzAyYTYyODViLi4yYmU1MDM5MWU4MjljNmExNjk5YzVkYWJkZmM0NmZjZmEwNDk1MDY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTEz
Niw4ICsxMzYsOCBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0
KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBibwogCiAgICAgLy8gTm93IHN1bSBh
bGwgb2YgdGhlIGF1ZGlvLXJhdGUgY29ubmVjdGlvbnMgdG9nZXRoZXIgKHVuaXR5LWdhaW4gc3Vt
bWluZyBqdW5jdGlvbikuCiAgICAgLy8gTm90ZSB0aGF0IGNvbm5lY3Rpb25zIHdvdWxkIG5vcm1h
bGx5IGJlIG1vbm8sIGJ1dCB3ZSBtaXggZG93biB0byBtb25vIGlmIG5lY2Vzc2FyeS4KLSAgICBB
dWRpb0J1cyBzdW1taW5nQnVzKDEsIG51bWJlck9mVmFsdWVzLCBmYWxzZSk7Ci0gICAgc3VtbWlu
Z0J1cy5zZXRDaGFubmVsTWVtb3J5KDAsIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMpOworICAgIFJl
ZlB0cjxBdWRpb0J1cz4gc3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgbnVtYmVyT2ZW
YWx1ZXMsIGZhbHNlKTsKKyAgICBzdW1taW5nQnVzLT5zZXRDaGFubmVsTWVtb3J5KDAsIHZhbHVl
cywgbnVtYmVyT2ZWYWx1ZXMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJl
ck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsgKytpKSB7CiAgICAgICAgIEF1ZGlvTm9kZU91dHB1
dCogb3V0cHV0ID0gcmVuZGVyaW5nT3V0cHV0KGkpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQg
QXVkaW9QYXJhbTo6Y2FsY3VsYXRlRmluYWxWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQg
bnVtYmVyT2ZWYWx1ZXMsIGJvCiAgICAgICAgIEF1ZGlvQnVzKiBjb25uZWN0aW9uQnVzID0gb3V0
cHV0LT5wdWxsKDAsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CiAKICAgICAg
ICAgLy8gU3VtLCB3aXRoIHVuaXR5LWdhaW4uCi0gICAgICAgIHN1bW1pbmdCdXMuc3VtRnJvbSgq
Y29ubmVjdGlvbkJ1cyk7CisgICAgICAgIHN1bW1pbmdCdXMtPnN1bUZyb20oKmNvbm5lY3Rpb25C
dXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q29udm9sdmVyTm9kZS5jcHAKaW5kZXggNTM3NTRhZDNkYThiN2NiMTQwZWU3MjRmYTQwOTA3Njcw
ZTczMTJhMi4uMDExMDBiZTI3Mjg3OTYwOWQ0OWVkODM4MjBiOTYxNTMwZWQyZmE0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBA
IC0xMzIsMTUgKzEzMiwxNSBAQCB2b2lkIENvbnZvbHZlck5vZGU6OnNldEJ1ZmZlcihBdWRpb0J1
ZmZlciogYnVmZmVyKQogCiAgICAgLy8gV3JhcCB0aGUgQXVkaW9CdWZmZXIgYnkgYW4gQXVkaW9C
dXMuIEl0J3MgYW4gZWZmaWNpZW50IHBvaW50ZXIgc2V0IGFuZCBub3QgYSBtZW1jcHkoKS4KICAg
ICAvLyBUaGlzIG1lbW9yeSBpcyBzaW1wbHkgdXNlZCBpbiB0aGUgUmV2ZXJiIGNvbnN0cnVjdG9y
IGFuZCBubyByZWZlcmVuY2UgdG8gaXQgaXMga2VwdCBmb3IgbGF0ZXIgdXNlIGluIHRoYXQgY2xh
c3MuCi0gICAgQXVkaW9CdXMgYnVmZmVyQnVzKG51bWJlck9mQ2hhbm5lbHMsIGJ1ZmZlckxlbmd0
aCwgZmFsc2UpOworICAgIFJlZlB0cjxBdWRpb0J1cz4gYnVmZmVyQnVzID0gQXVkaW9CdXM6OmNy
ZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBidWZmZXJMZW5ndGgsIGZhbHNlKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKQotICAgICAgICBidWZmZXJC
dXMuc2V0Q2hhbm5lbE1lbW9yeShpLCBidWZmZXItPmdldENoYW5uZWxEYXRhKGkpLT5kYXRhKCks
IGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIGJ1ZmZlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCBi
dWZmZXItPmdldENoYW5uZWxEYXRhKGkpLT5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7CiAKLSAgICBi
dWZmZXJCdXMuc2V0U2FtcGxlUmF0ZShidWZmZXItPnNhbXBsZVJhdGUoKSk7CisgICAgYnVmZmVy
QnVzLT5zZXRTYW1wbGVSYXRlKGJ1ZmZlci0+c2FtcGxlUmF0ZSgpKTsKIAogICAgIC8vIENyZWF0
ZSB0aGUgcmV2ZXJiIHdpdGggdGhlIGdpdmVuIGltcHVsc2UgcmVzcG9uc2UuCiAgICAgYm9vbCB1
c2VCYWNrZ3JvdW5kVGhyZWFkcyA9ICFjb250ZXh0KCktPmlzT2ZmbGluZUNvbnRleHQoKTsKLSAg
ICBPd25QdHI8UmV2ZXJiPiByZXZlcmIgPSBhZG9wdFB0cihuZXcgUmV2ZXJiKCZidWZmZXJCdXMs
IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcywgTWF4RkZUU2l6ZSwgMiwgdXNlQmFj
a2dyb3VuZFRocmVhZHMsIG1fbm9ybWFsaXplKSk7CisgICAgT3duUHRyPFJldmVyYj4gcmV2ZXJi
ID0gYWRvcHRQdHIobmV3IFJldmVyYihidWZmZXJCdXMuZ2V0KCksIEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lcywgTWF4RkZUU2l6ZSwgMiwgdXNlQmFja2dyb3VuZFRocmVhZHMsIG1f
bm9ybWFsaXplKSk7CiAKICAgICB7CiAgICAgICAgIC8vIFN5bmNocm9uaXplIHdpdGggcHJvY2Vz
cygpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggMTBiZjg0MTkz
OTQ3MThiNmQ1ZWNjYzQ0NWE4NzczNDg4N2IwYmQ5ZS4uMzYxM2RiZTllYTNiMzYyNTU4N2NlYTgy
ODZkZDNlNGVjM2MzOGM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZT4gTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlCiAKIE1lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUoQXVk
aW9Db250ZXh0KiBjb250ZXh0LCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscykKICAgICA6IEF1ZGlv
QmFzaWNJbnNwZWN0b3JOb2RlKGNvbnRleHQsIGNvbnRleHQtPnNhbXBsZVJhdGUoKSwgbnVtYmVy
T2ZDaGFubmVscykKLSAgICAsIG1fbWl4QnVzKG51bWJlck9mQ2hhbm5lbHMsIFByb2Nlc3NpbmdT
aXplSW5GcmFtZXMpCisgICAgLCBtX21peEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hh
bm5lbHMsIFByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVU
eXBlTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uKTsKIApAQCAtNzMsOCArNzMsOCBAQCBNZWRp
YVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZSgpCiAKIHZvaWQgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cHJvY2Vzcyhz
aXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgbV9taXhCdXMuY29weUZyb20oKmlucHV0KDAp
LT5idXMoKSk7Ci0gICAgbV9zb3VyY2UtPmNvbnN1bWVBdWRpbygmbV9taXhCdXMsIG51bWJlck9m
RnJhbWVzKTsKKyAgICBtX21peEJ1cy0+Y29weUZyb20oKmlucHV0KDApLT5idXMoKSk7CisgICAg
bV9zb3VyY2UtPmNvbnN1bWVBdWRpbyhtX21peEJ1cy5nZXQoKSwgbnVtYmVyT2ZGcmFtZXMpOwog
fQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc2V0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggNGE5YTI3NjVlOGFiMDQ5ZWU0YzU0NjA4
NjVlZGUxYmNkNTY1NWY5Mi4uMTdiYmQ4Mjc5MDM4MjFjZTk1NjE2MzYzMzExOTU5MzAyNzZlNjZl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gbV9zdHJlYW07CiAgICAgUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlPiBtX3NvdXJjZTsKLSAgICBBdWRpb0J1cyBtX21peEJ1czsKKyAg
ICBSZWZQdHI8QXVkaW9CdXM+IG1fbWl4QnVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGQ0ZWRhM2U0ZDgzNDRlMmU2ZjI2
MmM2M2RhOTMxMGEzZGVlYTcwMjguLjQzNzE3ZGRlYWI0ZGYxMmExMzhmNmRlZWM4M2M2NDVhOGIx
MzM5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUo
QXVkaW9Db250ZXh0KiBjb250ZXh0LAogICAgICwgbV9yZW5kZXJUaHJlYWQoMCkKICAgICAsIG1f
c3RhcnRlZFJlbmRlcmluZyhmYWxzZSkKIHsKLSAgICBtX3JlbmRlckJ1cyA9IGFkb3B0UmVmKG5l
dyBBdWRpb0J1cyhyZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5lbHMoKSwgcmVuZGVyUXVhbnR1
bVNpemUpKTsKKyAgICBtX3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUocmVuZGVyVGFyZ2V0
LT5udW1iZXJPZkNoYW5uZWxzKCksIHJlbmRlclF1YW50dW1TaXplKTsKIH0KIAogT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlOjp+T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwCmluZGV4IDM2MGFhMTdkNmI3ZDA5OWRmZGY4ZDkyNjI5NDUzMjE1ZWQxZTVmODAuLmI0
MDQyZGRkZTc3ZGM4NjEwOTZhN2UxMWViZDdkNGJmZGU3ZjI4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApA
QCAtNzksNyArNzksNyBAQCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2Rl
KEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZQogICAgICwgbV9pc1JlcXVl
c3RPdXRzdGFuZGluZyhmYWxzZSkKICAgICAsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzKG51bWJl
ck9mSW5wdXRDaGFubmVscykKICAgICAsIG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyhudW1iZXJP
Zk91dHB1dENoYW5uZWxzKQotICAgICwgbV9pbnRlcm5hbElucHV0QnVzKG51bWJlck9mSW5wdXRD
aGFubmVscywgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzLCBmYWxzZSkKKyAgICAs
IG1faW50ZXJuYWxJbnB1dEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVs
cywgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzLCBmYWxzZSkpCiB7CiAgICAgLy8g
UmVnYXJkbGVzcyBvZiB0aGUgYWxsb3dlZCBidWZmZXIgc2l6ZXMsIHdlIHN0aWxsIG5lZWQgdG8g
cHJvY2VzcyBhdCB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIEF1ZGlvTm9kZS4KICAgICBpZiAobV9i
dWZmZXJTaXplIDwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKQpAQCAtMTU0LDEx
ICsxNTQsMTEgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZlciA9IG1fb3V0cHV0QnVm
ZmVyc1tkb3VibGVCdWZmZXJJbmRleF0uZ2V0KCk7CiAKICAgICAvLyBDaGVjayB0aGUgY29uc2lz
dGVuY3kgb2YgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzLgotICAgIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscyA9IG1faW50ZXJuYWxJbnB1dEJ1cy5udW1iZXJPZkNoYW5uZWxzKCk7Cisg
ICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gbV9pbnRlcm5hbElucHV0QnVzLT5u
dW1iZXJPZkNoYW5uZWxzKCk7CiAgICAgYm9vbCBidWZmZXJzQXJlR29vZCA9IG91dHB1dEJ1ZmZl
ciAmJiBidWZmZXJTaXplKCkgPT0gb3V0cHV0QnVmZmVyLT5sZW5ndGgoKSAmJiBtX2J1ZmZlclJl
YWRXcml0ZUluZGV4ICsgZnJhbWVzVG9Qcm9jZXNzIDw9IGJ1ZmZlclNpemUoKTsKIAogICAgIC8v
IElmIHRoZSBudW1iZXIgb2YgaW5wdXQgY2hhbm5lbHMgaXMgemVybywgaXQncyBvayB0byBoYXZl
IGlucHV0QnVmZmVyID0gMC4KLSAgICBpZiAobV9pbnRlcm5hbElucHV0QnVzLm51bWJlck9mQ2hh
bm5lbHMoKSkKKyAgICBpZiAobV9pbnRlcm5hbElucHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkp
CiAgICAgICAgIGJ1ZmZlcnNBcmVHb29kID0gYnVmZmVyc0FyZUdvb2QgJiYgaW5wdXRCdWZmZXIg
JiYgYnVmZmVyU2l6ZSgpID09IGlucHV0QnVmZmVyLT5sZW5ndGgoKTsKIAogICAgIEFTU0VSVChi
dWZmZXJzQXJlR29vZCk7CkBAIC0xNzksMTAgKzE3OSwxMCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nv
ck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mSW5wdXRDaGFubmVsczsgaSsr
KQotICAgICAgICBtX2ludGVybmFsSW5wdXRCdXMuc2V0Q2hhbm5lbE1lbW9yeShpLCBpbnB1dEJ1
ZmZlci0+Z2V0Q2hhbm5lbERhdGEoaSktPmRhdGEoKSArIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXgs
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIG1faW50ZXJuYWxJbnB1dEJ1cy0+c2V0Q2hhbm5l
bE1lbW9yeShpLCBpbnB1dEJ1ZmZlci0+Z2V0Q2hhbm5lbERhdGEoaSktPmRhdGEoKSArIG1fYnVm
ZmVyUmVhZFdyaXRlSW5kZXgsIGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICBpZiAobnVtYmVyT2ZJ
bnB1dENoYW5uZWxzKQotICAgICAgICBtX2ludGVybmFsSW5wdXRCdXMuY29weUZyb20oKmlucHV0
QnVzKTsKKyAgICAgICAgbV9pbnRlcm5hbElucHV0QnVzLT5jb3B5RnJvbSgqaW5wdXRCdXMpOwog
CiAgICAgLy8gQ29weSBmcm9tIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHRoZSBvdXRwdXQuIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dENoYW5uZWxzOyArK2kpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5oCmluZGV4IDAyZWIzMjczNzI3N2ExM2JlNjNjYTE2NzgzN2FhYjEwNDgzOTU1YzkuLjIx
YTljZGE2YzdlOTUyOWRkOWMwN2MzNDBkZDU4MWIzOGE1N2Q4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mSW5wdXRDaGFu
bmVsczsKICAgICB1bnNpZ25lZCBtX251bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAKLSAgICBBdWRp
b0J1cyBtX2ludGVybmFsSW5wdXRCdXM7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBtX2ludGVybmFs
SW5wdXRCdXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKaW5kZXggMzJmODMwNWE1YTI2MDIxZDA5NTRmNzYz
ZGM5Y2M5MGVkNTc1NDJmMy4uMjM1ODk2NjA3YjA1MWNlM2U5ZWI1OThmOTIwNjhmNzk0MTFlYzRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtNDgs
MTYgKzQ4LDIxIEBAIHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOwogCiBjb25zdCB1bnNpZ25l
ZCBNYXhCdXNDaGFubmVscyA9IDMyOwogCitQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6
Y3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxs
b2NhdGUpCit7CisgICAgQVNTRVJUKG51bWJlck9mQ2hhbm5lbHMgPD0gTWF4QnVzQ2hhbm5lbHMp
OworICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gTWF4QnVzQ2hhbm5lbHMpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb0J1cyhudW1iZXJPZkNoYW5u
ZWxzLCBsZW5ndGgsIGFsbG9jYXRlKSk7Cit9CisKIEF1ZGlvQnVzOjpBdWRpb0J1cyh1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlKQogICAgIDog
bV9sZW5ndGgobGVuZ3RoKQogICAgICwgbV9idXNHYWluKDEpCiAgICAgLCBtX2lzRmlyc3RUaW1l
KHRydWUpCiAgICAgLCBtX3NhbXBsZVJhdGUoMCkKIHsKLSAgICBBU1NFUlQobnVtYmVyT2ZDaGFu
bmVscyA8PSBNYXhCdXNDaGFubmVscyk7Ci0gICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgPiBNYXhC
dXNDaGFubmVscykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9jaGFubmVscy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KG51bWJlck9mQ2hhbm5lbHMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsraSkgewpAQCAtMTc3LDcgKzE4Miw3IEBAIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UoY29uc3QgQXVk
aW9CdXMqIHNvdXJjZUJ1ZmZlCiAKICAgICBzaXplX3QgcmFuZ2VMZW5ndGggPSBlbmRGcmFtZSAt
IHN0YXJ0RnJhbWU7CiAKLSAgICBSZWZQdHI8QXVkaW9CdXM+IGF1ZGlvQnVzID0gYWRvcHRSZWYo
bmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMsIHJhbmdlTGVuZ3RoKSk7CisgICAgUmVmUHRy
PEF1ZGlvQnVzPiBhdWRpb0J1cyA9IGNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCByYW5nZUxlbmd0
aCk7CiAgICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUoc291cmNlQnVmZmVyLT5zYW1wbGVSYXRl
KCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsr
aSkKQEAgLTU0Myw3ICs1NDgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3Jl
YXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cgogICAgIH0KIAog
ICAgIGlmIChzb3VyY2VCdXMtPmlzU2lsZW50KCkpIHsKLSAgICAgICAgUmVmUHRyPEF1ZGlvQnVz
PiBzaWxlbnRCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobnVtYmVyT2ZTb3VyY2VDaGFubmVs
cywgc291cmNlQnVzLT5sZW5ndGgoKSAvIHNhbXBsZVJhdGVSYXRpbykpOworICAgICAgICBSZWZQ
dHI8QXVkaW9CdXM+IHNpbGVudEJ1cyA9IGNyZWF0ZShudW1iZXJPZlNvdXJjZUNoYW5uZWxzLCBz
b3VyY2VCdXMtPmxlbmd0aCgpIC8gc2FtcGxlUmF0ZVJhdGlvKTsKICAgICAgICAgc2lsZW50QnVz
LT5zZXRTYW1wbGVSYXRlKG5ld1NhbXBsZVJhdGUpOwogICAgICAgICByZXR1cm4gc2lsZW50QnVz
OwogICAgIH0KQEAgLTU2NSw3ICs1NzAsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1
czo6Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cgogCiAg
ICAgLy8gQ3JlYXRlIGRlc3RpbmF0aW9uIGJ1cyB3aXRoIHNhbWUgbnVtYmVyIG9mIGNoYW5uZWxz
LgogICAgIHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IHJlc2FtcGxlclNv
dXJjZUJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOwotICAgIFJlZlB0cjxBdWRpb0J1cz4gZGVzdGlu
YXRpb25CdXMoYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVs
cywgZGVzdGluYXRpb25MZW5ndGgpKSk7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBkZXN0aW5hdGlv
bkJ1cyA9IGNyZWF0ZShudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMsIGRlc3RpbmF0aW9uTGVu
Z3RoKTsKIAogICAgIC8vIFNhbXBsZS1yYXRlIGNvbnZlcnQgZWFjaCBjaGFubmVsLgogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHM7ICsraSkg
ewpAQCAtNTg0LDcgKzU4OSw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVh
dGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyCiBQYXNzUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMq
IHNvdXJjZUJ1cykKIHsKICAgICBpZiAoc291cmNlQnVzLT5pc1NpbGVudCgpKQotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKDEsIHNvdXJjZUJ1cy0+bGVuZ3RoKCkpKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZSgxLCBzb3VyY2VCdXMtPmxlbmd0aCgpKTsKIAogICAgIHN3aXRj
aCAoc291cmNlQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICBjYXNlIDE6CkBAIC01OTMs
NyArNTk4LDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ5TWl4aW5n
VG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMpCiAgICAgY2FzZSAyOgogICAgICAgICB7
CiAgICAgICAgICAgICB1bnNpZ25lZCBuID0gc291cmNlQnVzLT5sZW5ndGgoKTsKLSAgICAgICAg
ICAgIFJlZlB0cjxBdWRpb0J1cz4gZGVzdGluYXRpb25CdXMoYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KDEsIG4pKSk7CisgICAgICAgICAgICBSZWZQdHI8QXVkaW9CdXM+IGRlc3RpbmF0aW9uQnVzID0g
Y3JlYXRlKDEsIG4pOwogCiAgICAgICAgICAgICBjb25zdCBmbG9hdCogc291cmNlTCA9IHNvdXJj
ZUJ1cy0+Y2hhbm5lbCgwKS0+ZGF0YSgpOwogICAgICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJj
ZVIgPSBzb3VyY2VCdXMtPmNoYW5uZWwoMSktPmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0J1cy5oCmluZGV4IGEwZGIzMjMyZDM0NjZlYmJmYmViNTU2MzAxODZkZWE0
MzZlYjAxODMuLjAxYTk5NmNkYzNmNjQ4YjI0MDJjYTA2NjRhYzAzMzAyYjg3YjQ1ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaApAQCAtNjYsNyArNjYsNyBAQCBw
dWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGluaXRp
YWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2Uu
CiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNl
IHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFnZS4K
ICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBoYXMg
dG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1
cyBpcyB1c2VhYmxlLi4uCi0gICAgQXVkaW9CdXModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
c2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNo
YW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KICAgICB2b2lkIHNl
dENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6
ZV90IGxlbmd0aCk7CkBAIC0xNDksNiArMTQ5LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IEF1ZGlvQnVzKCkgeyB9OwogCisgICAgQXVkaW9CdXModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSk7CisKICAgICB2b2lkIHNwZWFrZXJzQ29w
eUZyb20oY29uc3QgQXVkaW9CdXMmKTsKICAgICB2b2lkIGRpc2NyZXRlQ29weUZyb20oY29uc3Qg
QXVkaW9CdXMmKTsKICAgICB2b2lkIHNwZWFrZXJzU3VtRnJvbShjb25zdCBBdWRpb0J1cyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9GSUZPLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRklGTy5jcHAKaW5kZXggMjE4ODEz
ZjRmMzViNDQ2YmEzYjAxMGNkMWMyZWY5ZDMzNDliZjVjZC4uNWZjN2VjYWM1NDYxYTY2M2ZjNjQy
ODhmZjQ1NjVlM2UxNDliZWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9GSUZPLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0ZJRk8uY3BwCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1
ZGlvRklGTzo6QXVkaW9GSUZPKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBmaWZv
TGVuZ3RoKQotICAgIDogbV9maWZvQXVkaW9CdXMobnVtYmVyT2ZDaGFubmVscywgZmlmb0xlbmd0
aCkKKyAgICA6IG1fZmlmb0F1ZGlvQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVs
cywgZmlmb0xlbmd0aCkpCiAgICAgLCBtX2ZpZm9MZW5ndGgoZmlmb0xlbmd0aCkKICAgICAsIG1f
ZnJhbWVzSW5GaWZvKDApCiAgICAgLCBtX3JlYWRJbmRleCgwKQpAQCAtNTYsMTEgKzU2LDExIEBA
IHZvaWQgQXVkaW9GSUZPOjpjb25zdW1lKEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZy
YW1lc1RvQ29uc3VtZSkKICAgICBzaXplX3QgcGFydDJMZW5ndGg7CiAgICAgZmluZFdyYXBMZW5n
dGhzKG1fcmVhZEluZGV4LCBmcmFtZXNUb0NvbnN1bWUsIHBhcnQxTGVuZ3RoLCBwYXJ0Mkxlbmd0
aCk7CiAKLSAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLm51bWJl
ck9mQ2hhbm5lbHMoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlv
QnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7CiAKICAgICBmb3IgKHNpemVfdCBjaGFubmVsSW5kZXgg
PSAwOyBjaGFubmVsSW5kZXggPCBudW1iZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewog
ICAgICAgICBmbG9hdCogZGVzdGluYXRpb25EYXRhID0gZGVzdGluYXRpb24tPmNoYW5uZWwoY2hh
bm5lbEluZGV4KS0+bXV0YWJsZURhdGEoKTsKLSAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZURh
dGEgPSBtX2ZpZm9BdWRpb0J1cy5jaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKTsKKyAgICAg
ICAgY29uc3QgZmxvYXQqIHNvdXJjZURhdGEgPSBtX2ZpZm9BdWRpb0J1cy0+Y2hhbm5lbChjaGFu
bmVsSW5kZXgpLT5kYXRhKCk7CiAKICAgICAgICAgYm9vbCBpc0NvcHlHb29kID0gKChtX3JlYWRJ
bmRleCA8IG1fZmlmb0xlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChtX3Jl
YWRJbmRleCArIHBhcnQxTGVuZ3RoKSA8PSBtX2ZpZm9MZW5ndGgKQEAgLTkzLDEwICs5MywxMCBA
QCB2b2lkIEF1ZGlvRklGTzo6cHVzaChjb25zdCBBdWRpb0J1cyogc291cmNlQnVzKQogICAgIHNp
emVfdCBwYXJ0Mkxlbmd0aDsKICAgICBmaW5kV3JhcExlbmd0aHMobV93cml0ZUluZGV4LCBzb3Vy
Y2VMZW5ndGgsIHBhcnQxTGVuZ3RoLCBwYXJ0Mkxlbmd0aCk7CiAKLSAgICBzaXplX3QgbnVtYmVy
T2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICBzaXpl
X3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7
CiAKICAgICBmb3IgKHNpemVfdCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBudW1i
ZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewotICAgICAgICBmbG9hdCogZGVzdGluYXRp
b24gPSBtX2ZpZm9BdWRpb0J1cy5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVEYXRhKCk7
CisgICAgICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9IG1fZmlmb0F1ZGlvQnVzLT5jaGFubmVsKGNo
YW5uZWxJbmRleCktPm11dGFibGVEYXRhKCk7CiAgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2Ug
PSBzb3VyY2VCdXMtPmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+ZGF0YSgpOwogCiAgICAgICAgIGJv
b2wgaXNDb3B5R29vZCA9ICgobV93cml0ZUluZGV4IDwgbV9maWZvTGVuZ3RoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9GSUZPLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJRk8uaAppbmRleCBmNTI2ZjIyZTYwYTY0YzZjZmJk
MTMxOWYzNDUyYjZlYzg5NDgwMGVjLi4zM2JlZDVhYjZmNzY0NzY4NGEwMjk1NDgwMzgwYmE1MmNi
OGI5OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJ
Rk8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJRk8uaApAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluZFdyYXBMZW5ndGhzKHNpemVfdCBp
bmRleCwgc2l6ZV90IHByb3ZpZGVyU2l6ZSwgc2l6ZV90JiBwYXJ0MUxlbmd0aCwgc2l6ZV90JiBw
YXJ0Mkxlbmd0aCk7CiAgICAgCiAgICAgLy8gVGhlIEZJRk8gaXRzZWxmLiBJbiByZWFsaXR5LCB0
aGUgRklGTyBpcyBhIGNpcmN1bGFyIGJ1ZmZlci4KLSAgICBBdWRpb0J1cyBtX2ZpZm9BdWRpb0J1
czsKKyAgICBSZWZQdHI8QXVkaW9CdXM+IG1fZmlmb0F1ZGlvQnVzOwogCiAgICAgLy8gVGhlIHRv
dGFsIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgRklGTy4KICAgICBzaXplX3QgbV9maWZvTGVuZ3Ro
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9QdWxsRklG
Ty5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcApp
bmRleCAyNjExNTY3MDlmNThkODg3NzI5MTZhYTg1YjczMGUxYjIzMWI2NGQxLi41NTQ1YmRlODhk
MmZmN2M5ODFjZWM3ZWZmNGI5NWQzNDBjMWFmYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcApAQCAtMzgsNyArMzgsNyBAQCBBdWRpb1B1
bGxGSUZPOjpBdWRpb1B1bGxGSUZPKEF1ZGlvU291cmNlUHJvdmlkZXImIGF1ZGlvUHJvdmlkZXIs
IHVuc2lnbmVkIG51bWJlcgogICAgIDogbV9wcm92aWRlcihhdWRpb1Byb3ZpZGVyKQogICAgICwg
bV9maWZvKG51bWJlck9mQ2hhbm5lbHMsIGZpZm9MZW5ndGgpCiAgICAgLCBtX3Byb3ZpZGVyU2l6
ZShwcm92aWRlclNpemUpCi0gICAgLCBtX3RlbXBCdXMobnVtYmVyT2ZDaGFubmVscywgcHJvdmlk
ZXJTaXplKQorICAgICwgbV90ZW1wQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVs
cywgcHJvdmlkZXJTaXplKSkKIHsKIH0KIApAQCAtNjIsOSArNjIsOSBAQCB2b2lkIEF1ZGlvUHVs
bEZJRk86OmZpbGxCdWZmZXIoc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgIHNpemVfdCBmcmFt
ZXNQcm92aWRlZCA9IDA7CiAKICAgICB3aGlsZSAoZnJhbWVzUHJvdmlkZWQgPCBudW1iZXJPZkZy
YW1lcykgewotICAgICAgICBtX3Byb3ZpZGVyLnByb3ZpZGVJbnB1dCgmbV90ZW1wQnVzLCBtX3By
b3ZpZGVyU2l6ZSk7CisgICAgICAgIG1fcHJvdmlkZXIucHJvdmlkZUlucHV0KG1fdGVtcEJ1cy5n
ZXQoKSwgbV9wcm92aWRlclNpemUpOwogCi0gICAgICAgIG1fZmlmby5wdXNoKCZtX3RlbXBCdXMp
OworICAgICAgICBtX2ZpZm8ucHVzaChtX3RlbXBCdXMuZ2V0KCkpOwogCiAgICAgICAgIGZyYW1l
c1Byb3ZpZGVkICs9IG1fcHJvdmlkZXJTaXplOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaAppbmRleCAzMzI2OWFlMjhjMmZhNzdkMGM1ZjYw
ZjJhYWI2MzVlZjU5YjA2NTQwLi40YTY5YmVjOTRkMWU4ZjAxMjcwOTEyYzExZGNhNTdiYTA0Zjgw
MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxG
SUZPLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9QdWxsRklGTy5o
CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgaW50IG1fcHJvdmlkZXJT
aXplOwogCiAgICAgLy8gVGVtcG9yYXJ5IHdvcmtzcGFjZSB0byBob2xkIHRoZSBkYXRhIGZyb20g
dGhlIHByb3ZpZGVyLgotICAgIEF1ZGlvQnVzIG1fdGVtcEJ1czsKKyAgICBSZWZQdHI8QXVkaW9C
dXM+IG1fdGVtcEJ1czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcAppbmRleCBjMzIzODJk
MTFkOGViZGM1NmI0OGRiYmQ4ODRjMmRkMTUxODNkODBlLi5mMDQxZTMyOWJkNjA4NmFlYjA0ODgx
MmU5YmYzOTJlYWQxYTJiMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Jlc2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9SZXNhbXBsZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIEF1ZGlvUmVzYW1wbGVyOjpB
dWRpb1Jlc2FtcGxlcigpCiAgICAgOiBtX3JhdGUoMS4wKQogewogICAgIG1fa2VybmVscy5hcHBl
bmQoYWRvcHRQdHIobmV3IEF1ZGlvUmVzYW1wbGVyS2VybmVsKHRoaXMpKSk7Ci0gICAgbV9zb3Vy
Y2VCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMoMSwgMCwgZmFsc2UpKTsKKyAgICBtX3NvdXJj
ZUJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgMCwgZmFsc2UpOwogfQogCiBBdWRpb1Jlc2FtcGxl
cjo6QXVkaW9SZXNhbXBsZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKQEAgLTUxLDcgKzUx
LDcgQEAgQXVkaW9SZXNhbXBsZXI6OkF1ZGlvUmVzYW1wbGVyKHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsr
aSkKICAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChhZG9wdFB0cihuZXcgQXVkaW9SZXNhbXBsZXJL
ZXJuZWwodGhpcykpKTsKIAotICAgIG1fc291cmNlQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKSk7CisgICAgbV9zb3VyY2VCdXMgPSBBdWRpb0J1
czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKTsKIH0KIAogdm9pZCBBdWRpb1Jl
c2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5lbHModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBBdWRpb1Jlc2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5lbHModW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscykKICAgICAgICAgbV9rZXJuZWxzLnJlc2l6ZShudW1iZXJP
ZkNoYW5uZWxzKTsKIAogICAgIC8vIFJlY29uZmlndXJlIG91ciBzb3VyY2UgYnVzIHRvIHRoZSBu
ZXcgY2hhbm5lbCBzaXplLgotICAgIG1fc291cmNlQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKSk7CisgICAgbV9zb3VyY2VCdXMgPSBBdWRpb0J1
czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKTsKIH0KIAogdm9pZCBBdWRpb1Jl
c2FtcGxlcjo6cHJvY2VzcyhBdWRpb1NvdXJjZVByb3ZpZGVyKiBwcm92aWRlciwgQXVkaW9CdXMq
IGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAKaW5k
ZXggZmM1MTQxMzBiZTNlMzViMGNhMzdjMWExZDk4NzhjMjE0N2YyZjMzNy4uY2Y0NmQ4ZTk5OWU0
ZTVlZTgyMDAzZGQ0MmUyNTAxNjI4ODM5M2ViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCkBAIC02NCw3ICs2
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRm9yIHN1YnNlcXVlbnQgY2hhbm5lbHMsIHdlIGNh
biBqdXN0IGRpc2ggb3V0IHRoZSBjaGFubmVsIGRhdGEgZnJvbSB0aGF0IChzdG9yZWQgaW4gbV9t
dWx0aUNoYW5uZWxCdXMpLgogICAgICAgICBpZiAoIW1fY3VycmVudENoYW5uZWwpIHsKICAgICAg
ICAgICAgIG1fZnJhbWVzVG9Qcm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwotICAgICAgICAgICAg
bV9tdWx0aUNoYW5uZWxCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobV9udW1iZXJPZkNoYW5u
ZWxzLCBmcmFtZXNUb1Byb2Nlc3MpKTsKKyAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsQnVzID0g
QXVkaW9CdXM6OmNyZWF0ZShtX251bWJlck9mQ2hhbm5lbHMsIGZyYW1lc1RvUHJvY2Vzcyk7CiAg
ICAgICAgICAgICBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLT5wcm92aWRlSW5wdXQobV9tdWx0aUNo
YW5uZWxCdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAKaW5kZXggZGUxOTViMzNiZTliNzUyYzYwYTE1
YjQwMjhiMTdjYzQ3NjFjM2NiMS4uNzljNDIzN2M2N2U5OTA0NDhhM2QwNjgwOTI1YjA1MGM1MTY2
ZmZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmIuY3BwCkBAIC0xMzIs
NyArMTMyLDcgQEAgdm9pZCBSZXZlcmI6OmluaXRpYWxpemUoQXVkaW9CdXMqIGltcHVsc2VSZXNw
b25zZUJ1ZmZlciwgc2l6ZV90IHJlbmRlclNsaWNlU2l6ZSwKICAgICAvLyBGb3IgIlRydWUiIHN0
ZXJlbyBwcm9jZXNzaW5nIHdlIGFsbG9jYXRlIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBhdm9pZCBy
ZXBlYXRlZGx5IGFsbG9jYXRpbmcgaXQgaW4gdGhlIHByb2Nlc3MoKSBtZXRob2QuCiAgICAgLy8g
SXQgY2FuIGJlIGJhZCB0byBhbGxvY2F0ZSBtZW1vcnkgaW4gYSByZWFsLXRpbWUgdGhyZWFkLgog
ICAgIGlmIChudW1SZXNwb25zZUNoYW5uZWxzID09IDQpCi0gICAgICAgIG1fdGVtcEJ1ZmZlciA9
IGFkb3B0UmVmKG5ldyBBdWRpb0J1cygyLCBNYXhGcmFtZVNpemUpKTsKKyAgICAgICAgbV90ZW1w
QnVmZmVyID0gQXVkaW9CdXM6OmNyZWF0ZSgyLCBNYXhGcmFtZVNpemUpOwogfQogCiB2b2lkIFJl
dmVyYjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCmluZGV4IDFlZTY5MmM3YzlmMzgxM2EzMDY4
MDQ5Zjg3Y2ZlNGFjMDJmMWRhZjIuLjM1ZWYzYmE4NjNjNjdlMjc2ZjNhYjVmNDNiNWU1NjkzMmQx
MjRhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNh
bXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBs
ZXIuY3BwCkBAIC0xMzQsMTIgKzEzNCwxMiBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OmNvbnN1bWVT
b3VyY2UoZmxvYXQqIGJ1ZmZlciwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICAvLyBXcmFwIHRoZSBwcm92aWRlZCBidWZmZXIgYnkgYW4g
QXVkaW9CdXMgZm9yIHVzZSBieSB0aGUgc291cmNlIHByb3ZpZGVyLgotICAgIEF1ZGlvQnVzIGJ1
cygxLCBudW1iZXJPZlNvdXJjZUZyYW1lcywgZmFsc2UpOworICAgIFJlZlB0cjxBdWRpb0J1cz4g
YnVzID0gQXVkaW9CdXM6OmNyZWF0ZSgxLCBudW1iZXJPZlNvdXJjZUZyYW1lcywgZmFsc2UpOwog
CiAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gbWFrZSB0aGUgZm9sbG93aW5nIGNvbnN0LWNv
cnJlY3Q6Ci0gICAgYnVzLnNldENoYW5uZWxNZW1vcnkoMCwgYnVmZmVyLCBudW1iZXJPZlNvdXJj
ZUZyYW1lcyk7CisgICAgYnVzLT5zZXRDaGFubmVsTWVtb3J5KDAsIGJ1ZmZlciwgbnVtYmVyT2ZT
b3VyY2VGcmFtZXMpOwogICAgIAotICAgIG1fc291cmNlUHJvdmlkZXItPnByb3ZpZGVJbnB1dCgm
YnVzLCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CisgICAgbV9zb3VyY2VQcm92aWRlci0+cHJvdmlk
ZUlucHV0KGJ1cy5nZXQoKSwgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpOwogfQogCiBuYW1lc3BhY2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IGM2NzQ0Njkw
NTA4N2U2MTM4Y2M4MDZmMzM5OWRmZmZlMWExNmUxMDEuLmNjZjA0NTA3MmJlMGI5NzQ3ZDhiN2Nm
NmI4N2MyYmViYjM4NWE2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgb25HU3RyZWFtZXJXYXZwYXJzZVBh
ZEFkZGVkQ2FsbGJhY2soR3N0RWxlbWVudCosIEdzdFBhZCogcGFkLCBBdWRpb0QKIAogQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2Fs
bGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIDogbV9jYWxsYmFjayhjYWxs
YmFjaykKLSAgICAsIG1fcmVuZGVyQnVzKDIsIGZyYW1lc1RvUHVsbCwgZmFsc2UpCisgICAgLCBt
X3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRlKDIsIGZyYW1lc1RvUHVsbCwgZmFsc2UpKQogICAg
ICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsK
QEAgLTkxLDcgKzkxLDcgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5h
dGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogCiAgICAgR3N0RWxlbWVu
dCogd2Via2l0QXVkaW9TcmMgPSByZWludGVycHJldF9jYXN0PEdzdEVsZW1lbnQqPihnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmF0
ZSIsIHNhbXBsZVJhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1cyIsICZtX3JlbmRlckJ1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYnVzIiwgbV9yZW5kZXJCdXMuZ2V0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZy
YW1lcyIsIGZyYW1lc1RvUHVsbCwgTlVMTCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuaAppbmRleCAxM2JlMTRmY2I4YmMxNjYzN2NlY2JmZTNhNTkxZWM5ZWJhNGJlNTAz
Li45ZGM5YTliZWFkNmQ0ODQzYjhjNzgxYzc3OGM0OWQ2N2RhYjg2MGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUg
IkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dzdEVsZW1lbnQgR3N0RWxlbWVudDsKIHR5
cGVkZWYgc3RydWN0IF9Hc3RQYWQgR3N0UGFkOwpAQCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwotICAgIEF1ZGlvQnVz
IG1fcmVuZGVyQnVzOworICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9yZW5kZXJCdXM7CiAKICAgICBm
bG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmNw
cAppbmRleCBhMDZjZjhiMTg3YjA4Y2EwM2JhYWNjYjI5MjE2ZjIxN2MzYzA1MzFhLi4zNGIyODhj
MjJhMTZiNzVmZGIzOTRlZWJiYTY2ZjJlZGNlOTVlZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuY3BwCkBA
IC0xMDEsNyArMTAxLDcgQEAgdW5zaWduZWQgbG9uZyBBdWRpb0Rlc3RpbmF0aW9uOjptYXhDaGFu
bmVsQ291bnQoKQogQXVkaW9EZXN0aW5hdGlvbklPUzo6QXVkaW9EZXN0aW5hdGlvbklPUyhBdWRp
b0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBkb3VibGUgc2FtcGxlUmF0ZSkKICAgICA6IG1fb3V0cHV0
VW5pdCgwKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKLSAgICAsIG1fcmVuZGVyQnVzKDIs
IGtSZW5kZXJCdWZmZXJTaXplLCBmYWxzZSkKKyAgICAsIG1fcmVuZGVyQnVzKEF1ZGlvQnVzOjpj
cmVhdGUoMiwga1JlbmRlckJ1ZmZlclNpemUsIGZhbHNlKSkKICAgICAsIG1fc2FtcGxlUmF0ZShz
YW1wbGVSYXRlKQogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiAgICAgLCBtX2ludGVycnVwdGVk
T25QbGF5YmFjayhmYWxzZSkKQEAgLTIzNSw5ICsyMzUsOSBAQCBPU1N0YXR1cyBBdWRpb0Rlc3Rp
bmF0aW9uSU9TOjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3Qq
IGlvRAogICAgICAgICAgICAgVUludDMyIGJ5dGVzUGVyRnJhbWUgPSBidWZmZXJzW2ldLm1EYXRh
Qnl0ZVNpemUgLyBudW1iZXJPZkZyYW1lczsKICAgICAgICAgICAgIFVJbnQzMiBieXRlT2Zmc2V0
ID0gZnJhbWVPZmZzZXQgKiBieXRlc1BlckZyYW1lOwogICAgICAgICAgICAgZmxvYXQqIG1lbW9y
eSA9IChmbG9hdCopKChjaGFyKilidWZmZXJzW2ldLm1EYXRhICsgYnl0ZU9mZnNldCk7Ci0gICAg
ICAgICAgICBtX3JlbmRlckJ1cy5zZXRDaGFubmVsTWVtb3J5KGksIG1lbW9yeSwgcmVtYWluaW5n
RnJhbWVzKTsKKyAgICAgICAgICAgIG1fcmVuZGVyQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIG1l
bW9yeSwgcmVtYWluaW5nRnJhbWVzKTsKICAgICAgICAgfQotICAgICAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCAmbV9yZW5kZXJCdXMsIHJlbWFpbmluZ0ZyYW1lcyk7CisgICAgICAgIG1fY2FsbGJh
Y2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCByZW1haW5pbmdGcmFtZXMpOwogICAgIH0K
IAogICAgIHJldHVybiBub0VycjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5oCmluZGV4IDMxZjQ3YTc4YzE4MjlmOTU3
OWQwNzZkMjRkMWRkZTU1NzljMTAwMDAuLmYwZWVlY2ExOTc4NmMyODRhZTYzNGI5YzdlYTkxNzI5
ZDQ5MzM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9B
dWRpb0Rlc3RpbmF0aW9uSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkF1
ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJBdWRpb1Nlc3Npb25MaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjUsNyArNjYsNyBAQCBwcml2YXRlOgogCiAgICAg
QXVkaW9Vbml0IG1fb3V0cHV0VW5pdDsKICAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7
Ci0gICAgQXVkaW9CdXMgbV9yZW5kZXJCdXM7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBtX3JlbmRl
ckJ1czsKIAogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3Rp
bmF0aW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rl
c3RpbmF0aW9uTWFjLmNwcAppbmRleCBmY2U0MTFiYTAyNWQ4MDIwNDZkYjgzNWE2MzY3MDU1MGNm
MjZmYjZhLi5hMWE1NGMzODMyZjI2YmY4NGM0MjhkYmQwMmNlOGRhMDk0ZjE2Yjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGlu
YXRpb25NYWMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHVuc2lnbmVkIGxvbmcgQXVkaW9EZXN0aW5h
dGlvbjo6bWF4Q2hhbm5lbENvdW50KCkKIEF1ZGlvRGVzdGluYXRpb25NYWM6OkF1ZGlvRGVzdGlu
YXRpb25NYWMoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKICAg
ICA6IG1fb3V0cHV0VW5pdCgwKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKLSAgICAsIG1f
cmVuZGVyQnVzKDIsIGtCdWZmZXJTaXplLCBmYWxzZSkKKyAgICAsIG1fcmVuZGVyQnVzKEF1ZGlv
QnVzOjpjcmVhdGUoMiwga0J1ZmZlclNpemUsIGZhbHNlKSkKICAgICAsIG1fc2FtcGxlUmF0ZShz
YW1wbGVSYXRlKQogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiB7CkBAIC0xNzUsMTUgKzE3NSwx
NSBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25NYWM6OnN0b3AoKQogT1NTdGF0dXMgQXVkaW9EZXN0
aW5hdGlvbk1hYzo6cmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0
KiBpb0RhdGEpCiB7CiAgICAgQXVkaW9CdWZmZXIqIGJ1ZmZlcnMgPSBpb0RhdGEtPm1CdWZmZXJz
OwotICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMCwgKGZsb2F0KilidWZmZXJzWzBd
Lm1EYXRhLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9yZW5kZXJCdXMuc2V0Q2hhbm5lbE1lbW9y
eSgxLCAoZmxvYXQqKWJ1ZmZlcnNbMV0ubURhdGEsIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3Jl
bmRlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeSgwLCAoZmxvYXQqKWJ1ZmZlcnNbMF0ubURhdGEsIG51
bWJlck9mRnJhbWVzKTsKKyAgICBtX3JlbmRlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeSgxLCAoZmxv
YXQqKWJ1ZmZlcnNbMV0ubURhdGEsIG51bWJlck9mRnJhbWVzKTsKIAogICAgIC8vIEZJWE1FOiBB
ZGQgc3VwcG9ydCBmb3IgbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KLSAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCAmbV9yZW5kZXJCdXMsIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2NhbGxiYWNrLnJl
bmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgbnVtYmVyT2ZGcmFtZXMpOwogCiAgICAgLy8gQ2xh
bXAgdmFsdWVzIGF0IDBkYiAoaS5lLiwgWy0xLjAsIDEuMF0pCi0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fcmVuZGVyQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7Ci0gICAgICAg
IEF1ZGlvQ2hhbm5lbCogY2hhbm5lbCA9IG1fcmVuZGVyQnVzLmNoYW5uZWwoaSk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcmVuZGVyQnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7ICsr
aSkgeworICAgICAgICBBdWRpb0NoYW5uZWwqIGNoYW5uZWwgPSBtX3JlbmRlckJ1cy0+Y2hhbm5l
bChpKTsKICAgICAgICAgVmVjdG9yTWF0aDo6dmNsaXAoY2hhbm5lbC0+ZGF0YSgpLCAxLCAma0xv
d1RocmVzaG9sZCwgJmtIaWdoVGhyZXNob2xkLCBjaGFubmVsLT5tdXRhYmxlRGF0YSgpLCAxLCBu
dW1iZXJPZkZyYW1lcyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAppbmRleCAxZjAxMDhmNjM3OTkx
YTNiZjYyYjFlZjAyZmQ1YjBhZDVlZGY0NTk2Li4wNjJjOTY5ZTY5ZjY5ZDI4YmI1OGVjYmRjMWE2
ZTFmNWUzZGNiNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlIDxB
dWRpb1VuaXQvQXVkaW9Vbml0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIEF1ZGlvVW5p
dCBtX291dHB1dFVuaXQ7CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwotICAgIEF1
ZGlvQnVzIG1fcmVuZGVyQnVzOworICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9yZW5kZXJCdXM7CiAK
ICAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVSZWFkZXJNYWMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1h
Yy5jcHAKaW5kZXggYjI4YjY2NDZkNWFjNzM2MjkwYmMzODZiZTEwNjg1MjgxNjA4ZGE2My4uZWQy
ZWQ1NWE5ZTI5MGI3ODE2ZjZjM2U0YTIxZmJhNzc5YTI4N2Y3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAK
QEAgLTE3OCw3ICsxNzgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6
OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogICAgIHNpemVfdCBi
dXNDaGFubmVsQ291bnQgPSBtaXhUb01vbm8gPyAxIDogbnVtYmVyT2ZDaGFubmVsczsKIAogICAg
IC8vIENyZWF0ZSBBdWRpb0J1cyB3aGVyZSB3ZSdsbCBwdXQgdGhlIFBDTSBhdWRpbyBkYXRhCi0g
ICAgUmVmUHRyPEF1ZGlvQnVzPiBhdWRpb0J1cyA9IGFkb3B0UmVmKG5ldyBBdWRpb0J1cyhidXND
aGFubmVsQ291bnQsIG51bWJlck9mRnJhbWVzKSk7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBhdWRp
b0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVzQ2hhbm5lbENvdW50LCBudW1iZXJPZkZyYW1lcyk7
CiAgICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUobmFycm93UHJlY2lzaW9uVG9GbG9hdChtX2Ns
aWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUpKTsgLy8gc2F2ZSBmb3IgbGF0ZXIKIAogICAgIC8v
IE9ubHkgYWxsb2NhdGVkIGluIHRoZSBtaXhUb01vbm8gY2FzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201121</attachid>
            <date>2013-05-08 17:48:21 -0700</date>
            <delta_ts>2013-05-09 09:12:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115836-20130508174725.patch</filename>
            <type>text/plain</type>
            <size>38921</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjAzMzc0YzNkNTc5
M2M3YzMyYzhlOThhNmJkNmM5YWZlMzUyNC4uZWI0YjY3N2E2NjMxZTVmZGEzODgyNDdiZmQxNGU2
NWY1NTAwYmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEzLTA1LTA4ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVxdWlyZSB1c2Ugb2Yg
QXVkaW9CdXM6OmNyZWF0ZSgpIHRvIGF2b2lkIHJlZi1jb3VudGluZyBpc3N1ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTgzNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIHdlcmUgYSBjb3Vw
bGUgb2YgcGxhY2VzIHN0aWxsIGVtYmVkZGluZyByYXcgQXVkaW9CdXMgb2JqZWN0cyBhcworICAg
ICAgICBtZW1iZXIgdmFyaWFibGVzIG9yIGxvY2FsIHZhcmlhYmxlcyBjYXVzaW5nIHJlZi1jb3Vu
dGluZyBwcm9ibGVtcworICAgICAgICBub3cgdGhhdCBBdWRpb0J1cyBpcyByZWYtY291bnRlZC4g
IE1ha2UgQXVkaW9CdXMgY29uc3RydWN0b3IgcHJpdmF0ZQorICAgICAgICB0byBlbmZvcmNlIHVz
ZSBvZiBBdWRpb0J1czo6Y3JlYXRlKCkuCisKKyAgICAgICAgQWRhcHRlZCBmcm9tIEJsaW5rIHBh
dGNoOgorICAgICAgICBodHRwczovL2Nocm9taXVtY29kZXJldmlldy5hcHBzcG90LmNvbS8xNDYy
ODAwOC8KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Ob2RlOjpMb2NhbEF1ZGlvSW5w
dXRQcm92aWRlcjo6TG9jYWxBdWRpb0lucHV0UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkxvY2FsQXVkaW9JbnB1dFByb3ZpZGVyOjpzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkxvY2FsQXVkaW9JbnB1dFByb3Zp
ZGVyOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAoTG9jYWxBdWRpb0lucHV0UHJvdmlkZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OkF1ZGlvTm9kZUlucHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9O
b2RlT3V0cHV0OjpBdWRpb05vZGVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2Rl
T3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZp
bmFsVmFsdWVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udm9sdmVyTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6TWVkaWFT
dHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nv
ck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2Vzcyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmg6CisgICAg
ICAgIChTY3JpcHRQcm9jZXNzb3JOb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRp
b0J1cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OkF1ZGlvQnVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0ZUJ5U2FtcGxlUmF0ZUNvbnZlcnRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNyZWF0ZUJ5TWl4aW5nVG9Nb25vKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oOgorICAgICAgICAoQXVkaW9CdXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRklGTy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZJ
Rk86OkF1ZGlvRklGTyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZJRk86OmNvbnN1bWUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9GSUZPOjpwdXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0ZJRk8uaDoKKyAgICAgICAgKEF1ZGlvRklGTyk6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vQXVkaW9QdWxsRklGTy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1B1bGxG
SUZPOjpBdWRpb1B1bGxGSUZPKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUHVsbEZJRk86OmZp
bGxCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaDoKKyAg
ICAgICAgKEF1ZGlvUHVsbEZJRk8pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVz
YW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUmVzYW1wbGVyOjpBdWRpb1Jlc2Ft
cGxlcik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Jlc2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5l
bHMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJldmVyYjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2Ft
cGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW5jUmVzYW1wbGVyOjpjb25zdW1lU291cmNl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmg6
CisgICAgICAgIChBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0Rlc3RpbmF0aW9uSU9TOjpBdWRpb0Rlc3RpbmF0aW9uSU9TKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvRGVzdGluYXRpb25JT1M6OnJlbmRlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuaDoKKyAgICAgICAgKEF1ZGlvRGVzdGluYXRpb25J
T1MpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25NYWM6OkF1ZGlvRGVzdGluYXRp
b25NYWMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6cmVuZGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oOgorICAg
ICAgICAoQXVkaW9EZXN0aW5hdGlvbk1hYyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvRmlsZVJlYWRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFk
ZXI6OmNyZWF0ZUJ1cyk6CisKIDIwMTMtMDUtMDggIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCwgQXBwbGVXaW4gcG9ydC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaAppbmRleCBkNDQzMTAxYjgwYjQ1MjliY2YyNzc3ODE2M2IwYjBhM2Q2MzE5MTBl
Li5iMTZmYTY0MGNlZGM2NTQwY2Y5ZTdkMGQ0NTEwNTRlNjg1ODI3ZTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5o
CkBAIC02NywyNyArNjcsMjcgQEAgcHJvdGVjdGVkOgogICAgIGNsYXNzIExvY2FsQXVkaW9JbnB1
dFByb3ZpZGVyIDogcHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKICAg
ICAgICAgTG9jYWxBdWRpb0lucHV0UHJvdmlkZXIoKQotICAgICAgICAgICAgOiBtX3NvdXJjZUJ1
cygyLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpIC8vIEZJWE1FOiBoYW5kbGUg
bm9uLXN0ZXJlbyBsb2NhbCBpbnB1dC4KKyAgICAgICAgICAgIDogbV9zb3VyY2VCdXMoQXVkaW9C
dXM6OmNyZWF0ZSgyLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKSAvLyBGSVhN
RTogaGFuZGxlIG5vbi1zdGVyZW8gbG9jYWwgaW5wdXQuCiAgICAgICAgIHsKICAgICAgICAgfQog
CiAgICAgICAgIHZvaWQgc2V0KEF1ZGlvQnVzKiBidXMpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChidXMpCi0gICAgICAgICAgICAgICAgbV9zb3VyY2VCdXMuY29weUZyb20oKmJ1cyk7Cisg
ICAgICAgICAgICAgICAgbV9zb3VyY2VCdXMtPmNvcHlGcm9tKCpidXMpOwogICAgICAgICB9CiAK
ICAgICAgICAgLy8gQXVkaW9Tb3VyY2VQcm92aWRlci4KICAgICAgICAgdmlydHVhbCB2b2lkIHBy
b3ZpZGVJbnB1dChBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1l
cykKICAgICAgICAgewotICAgICAgICAgICAgYm9vbCBpc0dvb2QgPSBkZXN0aW5hdGlvbkJ1cyAm
JiBkZXN0aW5hdGlvbkJ1cy0+bGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXMgJiYgbV9zb3VyY2VC
dXMubGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXM7CisgICAgICAgICAgICBib29sIGlzR29vZCA9
IGRlc3RpbmF0aW9uQnVzICYmIGRlc3RpbmF0aW9uQnVzLT5sZW5ndGgoKSA9PSBudW1iZXJPZkZy
YW1lcyAmJiBtX3NvdXJjZUJ1cy0+bGVuZ3RoKCkgPT0gbnVtYmVyT2ZGcmFtZXM7CiAgICAgICAg
ICAgICBBU1NFUlQoaXNHb29kKTsKICAgICAgICAgICAgIGlmIChpc0dvb2QpCi0gICAgICAgICAg
ICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKG1fc291cmNlQnVzKTsKKyAgICAgICAgICAg
ICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKm1fc291cmNlQnVzKTsKICAgICAgICAgfQog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgQXVkaW9CdXMgbV9zb3VyY2VCdXM7CisgICAgICAgIFJl
ZlB0cjxBdWRpb0J1cz4gbV9zb3VyY2VCdXM7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgZG91Ymxl
IHRhaWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAppbmRleCBmYzMwYjdi
M2I4NmFlZTIzN2Q3YzJiMmQ3ZWI2OGYyMGUyNTQ3ZmMyLi41MjEzNjUwM2JkZmI5NGRkNmJjZjZk
Y2VjNmRkN2M5NjhhNTc1NjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtNDIsNyArNDIsNyBAQCBBdWRpb05vZGVJbnB1
dDo6QXVkaW9Ob2RlSW5wdXQoQXVkaW9Ob2RlKiBub2RlKQogICAgICwgbV9ub2RlKG5vZGUpCiB7
CiAgICAgLy8gU2V0IHRvIG1vbm8gYnkgZGVmYXVsdC4KLSAgICBtX2ludGVybmFsU3VtbWluZ0J1
cyA9IGFkb3B0UmVmKG5ldyBBdWRpb0J1cygxLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5G
cmFtZXMpKTsKKyAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwg
QXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKTsKIH0KIAogdm9pZCBBdWRpb05vZGVJ
bnB1dDo6Y29ubmVjdChBdWRpb05vZGVPdXRwdXQqIG91dHB1dCkKQEAgLTE0NCw3ICsxNDQsNyBA
QCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJl
ck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+bnVtYmVyT2ZDaGFubmVs
cygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IGFkb3B0
UmVmKG5ldyBBdWRpb0J1cyhudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lcykpOworICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0gQXVkaW9CdXM6
OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJ
bkZyYW1lcyk7CiB9CiAKIHVuc2lnbmVkIEF1ZGlvTm9kZUlucHV0OjpudW1iZXJPZkNoYW5uZWxz
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlT3V0cHV0LmNwcAppbmRleCBiYmU1NTg0OWFmMzE3N2RmNTIwNTNlMzkxZTI3YzVkY2ZkNmE0
ZDZmLi5mOWE0NTE2Zjk4MjQ3Y2QwZGQxMjZjYWM0ODJjZGVmYTk5MjY4YjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCkBA
IC00Nyw3ICs0Nyw3IEBAIEF1ZGlvTm9kZU91dHB1dDo6QXVkaW9Ob2RlT3V0cHV0KEF1ZGlvTm9k
ZSogbm9kZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKIHsKICAgICBBU1NFUlQobnVtYmVy
T2ZDaGFubmVscyA8PSBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSk7CiAKLSAg
ICBtX2ludGVybmFsQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMs
IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcykpOworICAgIG1faW50ZXJuYWxCdXMg
PSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIEF1ZGlvTm9kZTo6UHJvY2Vzc2lu
Z1NpemVJbkZyYW1lcyk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0OjpzZXROdW1iZXJPZkNo
YW5uZWxzKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQg
QXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9mQ2hh
bm5lbHMoKSA9PSBtX2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1faW50ZXJuYWxCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobnVtYmVy
T2ZDaGFubmVscygpLCBBdWRpb05vZGU6OlByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKTsKKyAgICBt
X2ludGVybmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzKCksIEF1ZGlv
Tm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CiB9CiAKIHZvaWQgQXVkaW9Ob2RlT3V0cHV0
Ojp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmNwcAppbmRleCBkZTMzN2JiMGE3ZjRiZDlhNzdjMWQwNWFlNDJhMTVh
YzAyYTYyODViLi4yYmU1MDM5MWU4MjljNmExNjk5YzVkYWJkZmM0NmZjZmEwNDk1MDY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTEz
Niw4ICsxMzYsOCBAQCB2b2lkIEF1ZGlvUGFyYW06OmNhbGN1bGF0ZUZpbmFsVmFsdWVzKGZsb2F0
KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBibwogCiAgICAgLy8gTm93IHN1bSBh
bGwgb2YgdGhlIGF1ZGlvLXJhdGUgY29ubmVjdGlvbnMgdG9nZXRoZXIgKHVuaXR5LWdhaW4gc3Vt
bWluZyBqdW5jdGlvbikuCiAgICAgLy8gTm90ZSB0aGF0IGNvbm5lY3Rpb25zIHdvdWxkIG5vcm1h
bGx5IGJlIG1vbm8sIGJ1dCB3ZSBtaXggZG93biB0byBtb25vIGlmIG5lY2Vzc2FyeS4KLSAgICBB
dWRpb0J1cyBzdW1taW5nQnVzKDEsIG51bWJlck9mVmFsdWVzLCBmYWxzZSk7Ci0gICAgc3VtbWlu
Z0J1cy5zZXRDaGFubmVsTWVtb3J5KDAsIHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMpOworICAgIFJl
ZlB0cjxBdWRpb0J1cz4gc3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgbnVtYmVyT2ZW
YWx1ZXMsIGZhbHNlKTsKKyAgICBzdW1taW5nQnVzLT5zZXRDaGFubmVsTWVtb3J5KDAsIHZhbHVl
cywgbnVtYmVyT2ZWYWx1ZXMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJl
ck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsgKytpKSB7CiAgICAgICAgIEF1ZGlvTm9kZU91dHB1
dCogb3V0cHV0ID0gcmVuZGVyaW5nT3V0cHV0KGkpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQg
QXVkaW9QYXJhbTo6Y2FsY3VsYXRlRmluYWxWYWx1ZXMoZmxvYXQqIHZhbHVlcywgdW5zaWduZWQg
bnVtYmVyT2ZWYWx1ZXMsIGJvCiAgICAgICAgIEF1ZGlvQnVzKiBjb25uZWN0aW9uQnVzID0gb3V0
cHV0LT5wdWxsKDAsIEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcyk7CiAKICAgICAg
ICAgLy8gU3VtLCB3aXRoIHVuaXR5LWdhaW4uCi0gICAgICAgIHN1bW1pbmdCdXMuc3VtRnJvbSgq
Y29ubmVjdGlvbkJ1cyk7CisgICAgICAgIHN1bW1pbmdCdXMtPnN1bUZyb20oKmNvbm5lY3Rpb25C
dXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Db252b2x2ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q29udm9sdmVyTm9kZS5jcHAKaW5kZXggNTM3NTRhZDNkYThiN2NiMTQwZWU3MjRmYTQwOTA3Njcw
ZTczMTJhMi4uMDExMDBiZTI3Mjg3OTYwOWQ0OWVkODM4MjBiOTYxNTMwZWQyZmE0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBA
IC0xMzIsMTUgKzEzMiwxNSBAQCB2b2lkIENvbnZvbHZlck5vZGU6OnNldEJ1ZmZlcihBdWRpb0J1
ZmZlciogYnVmZmVyKQogCiAgICAgLy8gV3JhcCB0aGUgQXVkaW9CdWZmZXIgYnkgYW4gQXVkaW9C
dXMuIEl0J3MgYW4gZWZmaWNpZW50IHBvaW50ZXIgc2V0IGFuZCBub3QgYSBtZW1jcHkoKS4KICAg
ICAvLyBUaGlzIG1lbW9yeSBpcyBzaW1wbHkgdXNlZCBpbiB0aGUgUmV2ZXJiIGNvbnN0cnVjdG9y
IGFuZCBubyByZWZlcmVuY2UgdG8gaXQgaXMga2VwdCBmb3IgbGF0ZXIgdXNlIGluIHRoYXQgY2xh
c3MuCi0gICAgQXVkaW9CdXMgYnVmZmVyQnVzKG51bWJlck9mQ2hhbm5lbHMsIGJ1ZmZlckxlbmd0
aCwgZmFsc2UpOworICAgIFJlZlB0cjxBdWRpb0J1cz4gYnVmZmVyQnVzID0gQXVkaW9CdXM6OmNy
ZWF0ZShudW1iZXJPZkNoYW5uZWxzLCBidWZmZXJMZW5ndGgsIGZhbHNlKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKQotICAgICAgICBidWZmZXJC
dXMuc2V0Q2hhbm5lbE1lbW9yeShpLCBidWZmZXItPmdldENoYW5uZWxEYXRhKGkpLT5kYXRhKCks
IGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIGJ1ZmZlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCBi
dWZmZXItPmdldENoYW5uZWxEYXRhKGkpLT5kYXRhKCksIGJ1ZmZlckxlbmd0aCk7CiAKLSAgICBi
dWZmZXJCdXMuc2V0U2FtcGxlUmF0ZShidWZmZXItPnNhbXBsZVJhdGUoKSk7CisgICAgYnVmZmVy
QnVzLT5zZXRTYW1wbGVSYXRlKGJ1ZmZlci0+c2FtcGxlUmF0ZSgpKTsKIAogICAgIC8vIENyZWF0
ZSB0aGUgcmV2ZXJiIHdpdGggdGhlIGdpdmVuIGltcHVsc2UgcmVzcG9uc2UuCiAgICAgYm9vbCB1
c2VCYWNrZ3JvdW5kVGhyZWFkcyA9ICFjb250ZXh0KCktPmlzT2ZmbGluZUNvbnRleHQoKTsKLSAg
ICBPd25QdHI8UmV2ZXJiPiByZXZlcmIgPSBhZG9wdFB0cihuZXcgUmV2ZXJiKCZidWZmZXJCdXMs
IEF1ZGlvTm9kZTo6UHJvY2Vzc2luZ1NpemVJbkZyYW1lcywgTWF4RkZUU2l6ZSwgMiwgdXNlQmFj
a2dyb3VuZFRocmVhZHMsIG1fbm9ybWFsaXplKSk7CisgICAgT3duUHRyPFJldmVyYj4gcmV2ZXJi
ID0gYWRvcHRQdHIobmV3IFJldmVyYihidWZmZXJCdXMuZ2V0KCksIEF1ZGlvTm9kZTo6UHJvY2Vz
c2luZ1NpemVJbkZyYW1lcywgTWF4RkZUU2l6ZSwgMiwgdXNlQmFja2dyb3VuZFRocmVhZHMsIG1f
bm9ybWFsaXplKSk7CiAKICAgICB7CiAgICAgICAgIC8vIFN5bmNocm9uaXplIHdpdGggcHJvY2Vz
cygpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggMTBiZjg0MTkz
OTQ3MThiNmQ1ZWNjYzQ0NWE4NzczNDg4N2IwYmQ5ZS4uMzYxM2RiZTllYTNiMzYyNTU4N2NlYTgy
ODZkZDNlNGVjM2MzOGM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CkBAIC00NSw3ICs0NSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZT4gTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6Y3JlCiAKIE1lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGU6Ok1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUoQXVk
aW9Db250ZXh0KiBjb250ZXh0LCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscykKICAgICA6IEF1ZGlv
QmFzaWNJbnNwZWN0b3JOb2RlKGNvbnRleHQsIGNvbnRleHQtPnNhbXBsZVJhdGUoKSwgbnVtYmVy
T2ZDaGFubmVscykKLSAgICAsIG1fbWl4QnVzKG51bWJlck9mQ2hhbm5lbHMsIFByb2Nlc3NpbmdT
aXplSW5GcmFtZXMpCisgICAgLCBtX21peEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hh
bm5lbHMsIFByb2Nlc3NpbmdTaXplSW5GcmFtZXMpKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVU
eXBlTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uKTsKIApAQCAtNzMsOCArNzMsOCBAQCBNZWRp
YVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlOjp+TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZSgpCiAKIHZvaWQgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cHJvY2Vzcyhz
aXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgbV9taXhCdXMuY29weUZyb20oKmlucHV0KDAp
LT5idXMoKSk7Ci0gICAgbV9zb3VyY2UtPmNvbnN1bWVBdWRpbygmbV9taXhCdXMsIG51bWJlck9m
RnJhbWVzKTsKKyAgICBtX21peEJ1cy0+Y29weUZyb20oKmlucHV0KDApLT5idXMoKSk7CisgICAg
bV9zb3VyY2UtPmNvbnN1bWVBdWRpbyhtX21peEJ1cy5nZXQoKSwgbnVtYmVyT2ZGcmFtZXMpOwog
fQogCiB2b2lkIE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlc2V0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggNGE5YTI3NjVlOGFiMDQ5ZWU0YzU0NjA4
NjVlZGUxYmNkNTY1NWY5Mi4uMTdiYmQ4Mjc5MDM4MjFjZTk1NjE2MzYzMzExOTU5MzAyNzZlNjZl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gbV9zdHJlYW07CiAgICAgUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlPiBtX3NvdXJjZTsKLSAgICBBdWRpb0J1cyBtX21peEJ1czsKKyAg
ICBSZWZQdHI8QXVkaW9CdXM+IG1fbWl4QnVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IGQ0ZWRhM2U0ZDgzNDRlMmU2ZjI2
MmM2M2RhOTMxMGEzZGVlYTcwMjguLjQzNzE3ZGRlYWI0ZGYxMmExMzhmNmRlZWM4M2M2NDVhOGIx
MzM5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAg
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUo
QXVkaW9Db250ZXh0KiBjb250ZXh0LAogICAgICwgbV9yZW5kZXJUaHJlYWQoMCkKICAgICAsIG1f
c3RhcnRlZFJlbmRlcmluZyhmYWxzZSkKIHsKLSAgICBtX3JlbmRlckJ1cyA9IGFkb3B0UmVmKG5l
dyBBdWRpb0J1cyhyZW5kZXJUYXJnZXQtPm51bWJlck9mQ2hhbm5lbHMoKSwgcmVuZGVyUXVhbnR1
bVNpemUpKTsKKyAgICBtX3JlbmRlckJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUocmVuZGVyVGFyZ2V0
LT5udW1iZXJPZkNoYW5uZWxzKCksIHJlbmRlclF1YW50dW1TaXplKTsKIH0KIAogT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlOjp+T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwCmluZGV4IDM2MGFhMTdkNmI3ZDA5OWRmZGY4ZDkyNjI5NDUzMjE1ZWQxZTVmODAuLmI0
MDQyZGRkZTc3ZGM4NjEwOTZhN2UxMWViZDdkNGJmZGU3ZjI4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApA
QCAtNzksNyArNzksNyBAQCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2Rl
KEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZQogICAgICwgbV9pc1JlcXVl
c3RPdXRzdGFuZGluZyhmYWxzZSkKICAgICAsIG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzKG51bWJl
ck9mSW5wdXRDaGFubmVscykKICAgICAsIG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyhudW1iZXJP
Zk91dHB1dENoYW5uZWxzKQotICAgICwgbV9pbnRlcm5hbElucHV0QnVzKG51bWJlck9mSW5wdXRD
aGFubmVscywgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzLCBmYWxzZSkKKyAgICAs
IG1faW50ZXJuYWxJbnB1dEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mSW5wdXRDaGFubmVs
cywgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzLCBmYWxzZSkpCiB7CiAgICAgLy8g
UmVnYXJkbGVzcyBvZiB0aGUgYWxsb3dlZCBidWZmZXIgc2l6ZXMsIHdlIHN0aWxsIG5lZWQgdG8g
cHJvY2VzcyBhdCB0aGUgZ3JhbnVsYXJpdHkgb2YgdGhlIEF1ZGlvTm9kZS4KICAgICBpZiAobV9i
dWZmZXJTaXplIDwgQXVkaW9Ob2RlOjpQcm9jZXNzaW5nU2l6ZUluRnJhbWVzKQpAQCAtMTU0LDEx
ICsxNTQsMTEgQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZlciA9IG1fb3V0cHV0QnVm
ZmVyc1tkb3VibGVCdWZmZXJJbmRleF0uZ2V0KCk7CiAKICAgICAvLyBDaGVjayB0aGUgY29uc2lz
dGVuY3kgb2YgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzLgotICAgIHVuc2lnbmVkIG51bWJlck9m
SW5wdXRDaGFubmVscyA9IG1faW50ZXJuYWxJbnB1dEJ1cy5udW1iZXJPZkNoYW5uZWxzKCk7Cisg
ICAgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzID0gbV9pbnRlcm5hbElucHV0QnVzLT5u
dW1iZXJPZkNoYW5uZWxzKCk7CiAgICAgYm9vbCBidWZmZXJzQXJlR29vZCA9IG91dHB1dEJ1ZmZl
ciAmJiBidWZmZXJTaXplKCkgPT0gb3V0cHV0QnVmZmVyLT5sZW5ndGgoKSAmJiBtX2J1ZmZlclJl
YWRXcml0ZUluZGV4ICsgZnJhbWVzVG9Qcm9jZXNzIDw9IGJ1ZmZlclNpemUoKTsKIAogICAgIC8v
IElmIHRoZSBudW1iZXIgb2YgaW5wdXQgY2hhbm5lbHMgaXMgemVybywgaXQncyBvayB0byBoYXZl
IGlucHV0QnVmZmVyID0gMC4KLSAgICBpZiAobV9pbnRlcm5hbElucHV0QnVzLm51bWJlck9mQ2hh
bm5lbHMoKSkKKyAgICBpZiAobV9pbnRlcm5hbElucHV0QnVzLT5udW1iZXJPZkNoYW5uZWxzKCkp
CiAgICAgICAgIGJ1ZmZlcnNBcmVHb29kID0gYnVmZmVyc0FyZUdvb2QgJiYgaW5wdXRCdWZmZXIg
JiYgYnVmZmVyU2l6ZSgpID09IGlucHV0QnVmZmVyLT5sZW5ndGgoKTsKIAogICAgIEFTU0VSVChi
dWZmZXJzQXJlR29vZCk7CkBAIC0xNzksMTAgKzE3OSwxMCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nv
ck5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mSW5wdXRDaGFubmVsczsgaSsr
KQotICAgICAgICBtX2ludGVybmFsSW5wdXRCdXMuc2V0Q2hhbm5lbE1lbW9yeShpLCBpbnB1dEJ1
ZmZlci0+Z2V0Q2hhbm5lbERhdGEoaSktPmRhdGEoKSArIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXgs
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIG1faW50ZXJuYWxJbnB1dEJ1cy0+c2V0Q2hhbm5l
bE1lbW9yeShpLCBpbnB1dEJ1ZmZlci0+Z2V0Q2hhbm5lbERhdGEoaSktPmRhdGEoKSArIG1fYnVm
ZmVyUmVhZFdyaXRlSW5kZXgsIGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICBpZiAobnVtYmVyT2ZJ
bnB1dENoYW5uZWxzKQotICAgICAgICBtX2ludGVybmFsSW5wdXRCdXMuY29weUZyb20oKmlucHV0
QnVzKTsKKyAgICAgICAgbV9pbnRlcm5hbElucHV0QnVzLT5jb3B5RnJvbSgqaW5wdXRCdXMpOwog
CiAgICAgLy8gQ29weSBmcm9tIHRoZSBvdXRwdXQgYnVmZmVyIHRvIHRoZSBvdXRwdXQuIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZk91dHB1dENoYW5uZWxzOyArK2kpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5oCmluZGV4IDAyZWIzMjczNzI3N2ExM2JlNjNjYTE2NzgzN2FhYjEwNDgzOTU1YzkuLjIx
YTljZGE2YzdlOTUyOWRkOWMwN2MzNDBkZDU4MWIzOGE1N2Q4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mSW5wdXRDaGFu
bmVsczsKICAgICB1bnNpZ25lZCBtX251bWJlck9mT3V0cHV0Q2hhbm5lbHM7CiAKLSAgICBBdWRp
b0J1cyBtX2ludGVybmFsSW5wdXRCdXM7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBtX2ludGVybmFs
SW5wdXRCdXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKaW5kZXggMzJmODMwNWE1YTI2MDIxZDA5NTRmNzYz
ZGM5Y2M5MGVkNTc1NDJmMy4uMjM1ODk2NjA3YjA1MWNlM2U5ZWI1OThmOTIwNjhmNzk0MTFlYzRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtNDgs
MTYgKzQ4LDIxIEBAIHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOwogCiBjb25zdCB1bnNpZ25l
ZCBNYXhCdXNDaGFubmVscyA9IDMyOwogCitQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6
Y3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxs
b2NhdGUpCit7CisgICAgQVNTRVJUKG51bWJlck9mQ2hhbm5lbHMgPD0gTWF4QnVzQ2hhbm5lbHMp
OworICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gTWF4QnVzQ2hhbm5lbHMpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb0J1cyhudW1iZXJPZkNoYW5u
ZWxzLCBsZW5ndGgsIGFsbG9jYXRlKSk7Cit9CisKIEF1ZGlvQnVzOjpBdWRpb0J1cyh1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlKQogICAgIDog
bV9sZW5ndGgobGVuZ3RoKQogICAgICwgbV9idXNHYWluKDEpCiAgICAgLCBtX2lzRmlyc3RUaW1l
KHRydWUpCiAgICAgLCBtX3NhbXBsZVJhdGUoMCkKIHsKLSAgICBBU1NFUlQobnVtYmVyT2ZDaGFu
bmVscyA8PSBNYXhCdXNDaGFubmVscyk7Ci0gICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgPiBNYXhC
dXNDaGFubmVscykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9jaGFubmVscy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KG51bWJlck9mQ2hhbm5lbHMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsraSkgewpAQCAtMTc3LDcgKzE4Miw3IEBAIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVhdGVCdWZmZXJGcm9tUmFuZ2UoY29uc3QgQXVk
aW9CdXMqIHNvdXJjZUJ1ZmZlCiAKICAgICBzaXplX3QgcmFuZ2VMZW5ndGggPSBlbmRGcmFtZSAt
IHN0YXJ0RnJhbWU7CiAKLSAgICBSZWZQdHI8QXVkaW9CdXM+IGF1ZGlvQnVzID0gYWRvcHRSZWYo
bmV3IEF1ZGlvQnVzKG51bWJlck9mQ2hhbm5lbHMsIHJhbmdlTGVuZ3RoKSk7CisgICAgUmVmUHRy
PEF1ZGlvQnVzPiBhdWRpb0J1cyA9IGNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCByYW5nZUxlbmd0
aCk7CiAgICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUoc291cmNlQnVmZmVyLT5zYW1wbGVSYXRl
KCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsr
aSkKQEAgLTU0Myw3ICs1NDgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3Jl
YXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cgogICAgIH0KIAog
ICAgIGlmIChzb3VyY2VCdXMtPmlzU2lsZW50KCkpIHsKLSAgICAgICAgUmVmUHRyPEF1ZGlvQnVz
PiBzaWxlbnRCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobnVtYmVyT2ZTb3VyY2VDaGFubmVs
cywgc291cmNlQnVzLT5sZW5ndGgoKSAvIHNhbXBsZVJhdGVSYXRpbykpOworICAgICAgICBSZWZQ
dHI8QXVkaW9CdXM+IHNpbGVudEJ1cyA9IGNyZWF0ZShudW1iZXJPZlNvdXJjZUNoYW5uZWxzLCBz
b3VyY2VCdXMtPmxlbmd0aCgpIC8gc2FtcGxlUmF0ZVJhdGlvKTsKICAgICAgICAgc2lsZW50QnVz
LT5zZXRTYW1wbGVSYXRlKG5ld1NhbXBsZVJhdGUpOwogICAgICAgICByZXR1cm4gc2lsZW50QnVz
OwogICAgIH0KQEAgLTU2NSw3ICs1NzAsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1
czo6Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cgogCiAg
ICAgLy8gQ3JlYXRlIGRlc3RpbmF0aW9uIGJ1cyB3aXRoIHNhbWUgbnVtYmVyIG9mIGNoYW5uZWxz
LgogICAgIHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IHJlc2FtcGxlclNv
dXJjZUJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOwotICAgIFJlZlB0cjxBdWRpb0J1cz4gZGVzdGlu
YXRpb25CdXMoYWRvcHRSZWYobmV3IEF1ZGlvQnVzKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVs
cywgZGVzdGluYXRpb25MZW5ndGgpKSk7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBkZXN0aW5hdGlv
bkJ1cyA9IGNyZWF0ZShudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMsIGRlc3RpbmF0aW9uTGVu
Z3RoKTsKIAogICAgIC8vIFNhbXBsZS1yYXRlIGNvbnZlcnQgZWFjaCBjaGFubmVsLgogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHM7ICsraSkg
ewpAQCAtNTg0LDcgKzU4OSw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpjcmVh
dGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVzKiBzb3VyCiBQYXNzUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0J1czo6Y3JlYXRlQnlNaXhpbmdUb01vbm8oY29uc3QgQXVkaW9CdXMq
IHNvdXJjZUJ1cykKIHsKICAgICBpZiAoc291cmNlQnVzLT5pc1NpbGVudCgpKQotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEF1ZGlvQnVzKDEsIHNvdXJjZUJ1cy0+bGVuZ3RoKCkpKTsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZSgxLCBzb3VyY2VCdXMtPmxlbmd0aCgpKTsKIAogICAgIHN3aXRj
aCAoc291cmNlQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpIHsKICAgICBjYXNlIDE6CkBAIC01OTMs
NyArNTk4LDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ5TWl4aW5n
VG9Nb25vKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2VCdXMpCiAgICAgY2FzZSAyOgogICAgICAgICB7
CiAgICAgICAgICAgICB1bnNpZ25lZCBuID0gc291cmNlQnVzLT5sZW5ndGgoKTsKLSAgICAgICAg
ICAgIFJlZlB0cjxBdWRpb0J1cz4gZGVzdGluYXRpb25CdXMoYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KDEsIG4pKSk7CisgICAgICAgICAgICBSZWZQdHI8QXVkaW9CdXM+IGRlc3RpbmF0aW9uQnVzID0g
Y3JlYXRlKDEsIG4pOwogCiAgICAgICAgICAgICBjb25zdCBmbG9hdCogc291cmNlTCA9IHNvdXJj
ZUJ1cy0+Y2hhbm5lbCgwKS0+ZGF0YSgpOwogICAgICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJj
ZVIgPSBzb3VyY2VCdXMtPmNoYW5uZWwoMSktPmRhdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0J1cy5oCmluZGV4IGEwZGIzMjMyZDM0NjZlYmJmYmViNTU2MzAxODZkZWE0
MzZlYjAxODMuLjAxYTk5NmNkYzNmNjQ4YjI0MDJjYTA2NjRhYzAzMzAyYjg3YjQ1ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaApAQCAtNjYsNyArNjYsNyBAQCBw
dWJsaWM6CiAgICAgLy8gYWxsb2NhdGUgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIGluaXRp
YWxseSBoYXZlIHRoZSBBdWRpb0NoYW5uZWxzIGNyZWF0ZWQgd2l0aCBtYW5hZ2VkIHN0b3JhZ2Uu
CiAgICAgLy8gTm9ybWFsIHVzYWdlIGlzIHRvIHBhc3MgdHJ1ZSBoZXJlLCBpbiB3aGljaCBjYXNl
IHRoZSBBdWRpb0NoYW5uZWxzIHdpbGwgbWVtb3J5LW1hbmFnZSB0aGVpciBvd24gc3RvcmFnZS4K
ICAgICAvLyBJZiBhbGxvY2F0ZSBpcyBmYWxzZSB0aGVuIHNldENoYW5uZWxNZW1vcnkoKSBoYXMg
dG8gYmUgY2FsbGVkIGxhdGVyIG9uIGZvciBlYWNoIGNoYW5uZWwgYmVmb3JlIHRoZSBBdWRpb0J1
cyBpcyB1c2VhYmxlLi4uCi0gICAgQXVkaW9CdXModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
c2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxl
bmd0aCwgYm9vbCBhbGxvY2F0ZSA9IHRydWUpOwogCiAgICAgLy8gVGVsbHMgdGhlIGdpdmVuIGNo
YW5uZWwgdG8gdXNlIGFuIGV4dGVybmFsbHkgYWxsb2NhdGVkIGJ1ZmZlci4KICAgICB2b2lkIHNl
dENoYW5uZWxNZW1vcnkodW5zaWduZWQgY2hhbm5lbEluZGV4LCBmbG9hdCogc3RvcmFnZSwgc2l6
ZV90IGxlbmd0aCk7CkBAIC0xNDksNiArMTQ5LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAg
IEF1ZGlvQnVzKCkgeyB9OwogCisgICAgQXVkaW9CdXModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSk7CisKICAgICB2b2lkIHNwZWFrZXJzQ29w
eUZyb20oY29uc3QgQXVkaW9CdXMmKTsKICAgICB2b2lkIGRpc2NyZXRlQ29weUZyb20oY29uc3Qg
QXVkaW9CdXMmKTsKICAgICB2b2lkIHNwZWFrZXJzU3VtRnJvbShjb25zdCBBdWRpb0J1cyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9GSUZPLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRklGTy5jcHAKaW5kZXggMjE4ODEz
ZjRmMzViNDQ2YmEzYjAxMGNkMWMyZWY5ZDMzNDliZjVjZC4uNWZjN2VjYWM1NDYxYTY2M2ZjNjQy
ODhmZjQ1NjVlM2UxNDliZWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9GSUZPLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0ZJRk8uY3BwCkBAIC0zNSw3ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEF1
ZGlvRklGTzo6QXVkaW9GSUZPKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBmaWZv
TGVuZ3RoKQotICAgIDogbV9maWZvQXVkaW9CdXMobnVtYmVyT2ZDaGFubmVscywgZmlmb0xlbmd0
aCkKKyAgICA6IG1fZmlmb0F1ZGlvQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVs
cywgZmlmb0xlbmd0aCkpCiAgICAgLCBtX2ZpZm9MZW5ndGgoZmlmb0xlbmd0aCkKICAgICAsIG1f
ZnJhbWVzSW5GaWZvKDApCiAgICAgLCBtX3JlYWRJbmRleCgwKQpAQCAtNTYsMTEgKzU2LDExIEBA
IHZvaWQgQXVkaW9GSUZPOjpjb25zdW1lKEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZy
YW1lc1RvQ29uc3VtZSkKICAgICBzaXplX3QgcGFydDJMZW5ndGg7CiAgICAgZmluZFdyYXBMZW5n
dGhzKG1fcmVhZEluZGV4LCBmcmFtZXNUb0NvbnN1bWUsIHBhcnQxTGVuZ3RoLCBwYXJ0Mkxlbmd0
aCk7CiAKLSAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLm51bWJl
ck9mQ2hhbm5lbHMoKTsKKyAgICBzaXplX3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlv
QnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7CiAKICAgICBmb3IgKHNpemVfdCBjaGFubmVsSW5kZXgg
PSAwOyBjaGFubmVsSW5kZXggPCBudW1iZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewog
ICAgICAgICBmbG9hdCogZGVzdGluYXRpb25EYXRhID0gZGVzdGluYXRpb24tPmNoYW5uZWwoY2hh
bm5lbEluZGV4KS0+bXV0YWJsZURhdGEoKTsKLSAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZURh
dGEgPSBtX2ZpZm9BdWRpb0J1cy5jaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKTsKKyAgICAg
ICAgY29uc3QgZmxvYXQqIHNvdXJjZURhdGEgPSBtX2ZpZm9BdWRpb0J1cy0+Y2hhbm5lbChjaGFu
bmVsSW5kZXgpLT5kYXRhKCk7CiAKICAgICAgICAgYm9vbCBpc0NvcHlHb29kID0gKChtX3JlYWRJ
bmRleCA8IG1fZmlmb0xlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChtX3Jl
YWRJbmRleCArIHBhcnQxTGVuZ3RoKSA8PSBtX2ZpZm9MZW5ndGgKQEAgLTkzLDEwICs5MywxMCBA
QCB2b2lkIEF1ZGlvRklGTzo6cHVzaChjb25zdCBBdWRpb0J1cyogc291cmNlQnVzKQogICAgIHNp
emVfdCBwYXJ0Mkxlbmd0aDsKICAgICBmaW5kV3JhcExlbmd0aHMobV93cml0ZUluZGV4LCBzb3Vy
Y2VMZW5ndGgsIHBhcnQxTGVuZ3RoLCBwYXJ0Mkxlbmd0aCk7CiAKLSAgICBzaXplX3QgbnVtYmVy
T2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICBzaXpl
X3QgbnVtYmVyT2ZDaGFubmVscyA9IG1fZmlmb0F1ZGlvQnVzLT5udW1iZXJPZkNoYW5uZWxzKCk7
CiAKICAgICBmb3IgKHNpemVfdCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBudW1i
ZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewotICAgICAgICBmbG9hdCogZGVzdGluYXRp
b24gPSBtX2ZpZm9BdWRpb0J1cy5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVEYXRhKCk7
CisgICAgICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9IG1fZmlmb0F1ZGlvQnVzLT5jaGFubmVsKGNo
YW5uZWxJbmRleCktPm11dGFibGVEYXRhKCk7CiAgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2Ug
PSBzb3VyY2VCdXMtPmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+ZGF0YSgpOwogCiAgICAgICAgIGJv
b2wgaXNDb3B5R29vZCA9ICgobV93cml0ZUluZGV4IDwgbV9maWZvTGVuZ3RoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9GSUZPLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJRk8uaAppbmRleCBmNTI2ZjIyZTYwYTY0YzZjZmJk
MTMxOWYzNDUyYjZlYzg5NDgwMGVjLi4zM2JlZDVhYjZmNzY0NzY4NGEwMjk1NDgwMzgwYmE1MmNi
OGI5OGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJ
Rk8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZJRk8uaApAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluZFdyYXBMZW5ndGhzKHNpemVfdCBp
bmRleCwgc2l6ZV90IHByb3ZpZGVyU2l6ZSwgc2l6ZV90JiBwYXJ0MUxlbmd0aCwgc2l6ZV90JiBw
YXJ0Mkxlbmd0aCk7CiAgICAgCiAgICAgLy8gVGhlIEZJRk8gaXRzZWxmLiBJbiByZWFsaXR5LCB0
aGUgRklGTyBpcyBhIGNpcmN1bGFyIGJ1ZmZlci4KLSAgICBBdWRpb0J1cyBtX2ZpZm9BdWRpb0J1
czsKKyAgICBSZWZQdHI8QXVkaW9CdXM+IG1fZmlmb0F1ZGlvQnVzOwogCiAgICAgLy8gVGhlIHRv
dGFsIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgRklGTy4KICAgICBzaXplX3QgbV9maWZvTGVuZ3Ro
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9QdWxsRklG
Ty5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcApp
bmRleCAyNjExNTY3MDlmNThkODg3NzI5MTZhYTg1YjczMGUxYjIzMWI2NGQxLi41NTQ1YmRlODhk
MmZmN2M5ODFjZWM3ZWZmNGI5NWQzNDBjMWFmYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxGSUZPLmNwcApAQCAtMzgsNyArMzgsNyBAQCBBdWRpb1B1
bGxGSUZPOjpBdWRpb1B1bGxGSUZPKEF1ZGlvU291cmNlUHJvdmlkZXImIGF1ZGlvUHJvdmlkZXIs
IHVuc2lnbmVkIG51bWJlcgogICAgIDogbV9wcm92aWRlcihhdWRpb1Byb3ZpZGVyKQogICAgICwg
bV9maWZvKG51bWJlck9mQ2hhbm5lbHMsIGZpZm9MZW5ndGgpCiAgICAgLCBtX3Byb3ZpZGVyU2l6
ZShwcm92aWRlclNpemUpCi0gICAgLCBtX3RlbXBCdXMobnVtYmVyT2ZDaGFubmVscywgcHJvdmlk
ZXJTaXplKQorICAgICwgbV90ZW1wQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVs
cywgcHJvdmlkZXJTaXplKSkKIHsKIH0KIApAQCAtNjIsOSArNjIsOSBAQCB2b2lkIEF1ZGlvUHVs
bEZJRk86OmZpbGxCdWZmZXIoc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgIHNpemVfdCBmcmFt
ZXNQcm92aWRlZCA9IDA7CiAKICAgICB3aGlsZSAoZnJhbWVzUHJvdmlkZWQgPCBudW1iZXJPZkZy
YW1lcykgewotICAgICAgICBtX3Byb3ZpZGVyLnByb3ZpZGVJbnB1dCgmbV90ZW1wQnVzLCBtX3By
b3ZpZGVyU2l6ZSk7CisgICAgICAgIG1fcHJvdmlkZXIucHJvdmlkZUlucHV0KG1fdGVtcEJ1cy5n
ZXQoKSwgbV9wcm92aWRlclNpemUpOwogCi0gICAgICAgIG1fZmlmby5wdXNoKCZtX3RlbXBCdXMp
OworICAgICAgICBtX2ZpZm8ucHVzaChtX3RlbXBCdXMuZ2V0KCkpOwogCiAgICAgICAgIGZyYW1l
c1Byb3ZpZGVkICs9IG1fcHJvdmlkZXJTaXplOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvUHVsbEZJRk8uaAppbmRleCAzMzI2OWFlMjhjMmZhNzdkMGM1ZjYw
ZjJhYWI2MzVlZjU5YjA2NTQwLi40YTY5YmVjOTRkMWU4ZjAxMjcwOTEyYzExZGNhNTdiYTA0Zjgw
MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1B1bGxG
SUZPLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9QdWxsRklGTy5o
CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgaW50IG1fcHJvdmlkZXJT
aXplOwogCiAgICAgLy8gVGVtcG9yYXJ5IHdvcmtzcGFjZSB0byBob2xkIHRoZSBkYXRhIGZyb20g
dGhlIHByb3ZpZGVyLgotICAgIEF1ZGlvQnVzIG1fdGVtcEJ1czsKKyAgICBSZWZQdHI8QXVkaW9C
dXM+IG1fdGVtcEJ1czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyLmNwcAppbmRleCBjMzIzODJk
MTFkOGViZGM1NmI0OGRiYmQ4ODRjMmRkMTUxODNkODBlLi5mMDQxZTMyOWJkNjA4NmFlYjA0ODgx
MmU5YmYzOTJlYWQxYTJiMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Jlc2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9SZXNhbXBsZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIEF1ZGlvUmVzYW1wbGVyOjpB
dWRpb1Jlc2FtcGxlcigpCiAgICAgOiBtX3JhdGUoMS4wKQogewogICAgIG1fa2VybmVscy5hcHBl
bmQoYWRvcHRQdHIobmV3IEF1ZGlvUmVzYW1wbGVyS2VybmVsKHRoaXMpKSk7Ci0gICAgbV9zb3Vy
Y2VCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMoMSwgMCwgZmFsc2UpKTsKKyAgICBtX3NvdXJj
ZUJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoMSwgMCwgZmFsc2UpOwogfQogCiBBdWRpb1Jlc2FtcGxl
cjo6QXVkaW9SZXNhbXBsZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKQEAgLTUxLDcgKzUx
LDcgQEAgQXVkaW9SZXNhbXBsZXI6OkF1ZGlvUmVzYW1wbGVyKHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsr
aSkKICAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChhZG9wdFB0cihuZXcgQXVkaW9SZXNhbXBsZXJL
ZXJuZWwodGhpcykpKTsKIAotICAgIG1fc291cmNlQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKSk7CisgICAgbV9zb3VyY2VCdXMgPSBBdWRpb0J1
czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKTsKIH0KIAogdm9pZCBBdWRpb1Jl
c2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5lbHModW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscykKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBBdWRpb1Jlc2FtcGxlcjo6Y29uZmlndXJlQ2hhbm5lbHModW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscykKICAgICAgICAgbV9rZXJuZWxzLnJlc2l6ZShudW1iZXJP
ZkNoYW5uZWxzKTsKIAogICAgIC8vIFJlY29uZmlndXJlIG91ciBzb3VyY2UgYnVzIHRvIHRoZSBu
ZXcgY2hhbm5lbCBzaXplLgotICAgIG1fc291cmNlQnVzID0gYWRvcHRSZWYobmV3IEF1ZGlvQnVz
KG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKSk7CisgICAgbV9zb3VyY2VCdXMgPSBBdWRpb0J1
czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIDAsIGZhbHNlKTsKIH0KIAogdm9pZCBBdWRpb1Jl
c2FtcGxlcjo6cHJvY2VzcyhBdWRpb1NvdXJjZVByb3ZpZGVyKiBwcm92aWRlciwgQXVkaW9CdXMq
IGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAKaW5k
ZXggZmM1MTQxMzBiZTNlMzViMGNhMzdjMWExZDk4NzhjMjE0N2YyZjMzNy4uY2Y0NmQ4ZTk5OWU0
ZTVlZTgyMDAzZGQ0MmUyNTAxNjI4ODM5M2ViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCkBAIC02NCw3ICs2
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRm9yIHN1YnNlcXVlbnQgY2hhbm5lbHMsIHdlIGNh
biBqdXN0IGRpc2ggb3V0IHRoZSBjaGFubmVsIGRhdGEgZnJvbSB0aGF0IChzdG9yZWQgaW4gbV9t
dWx0aUNoYW5uZWxCdXMpLgogICAgICAgICBpZiAoIW1fY3VycmVudENoYW5uZWwpIHsKICAgICAg
ICAgICAgIG1fZnJhbWVzVG9Qcm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwotICAgICAgICAgICAg
bV9tdWx0aUNoYW5uZWxCdXMgPSBhZG9wdFJlZihuZXcgQXVkaW9CdXMobV9udW1iZXJPZkNoYW5u
ZWxzLCBmcmFtZXNUb1Byb2Nlc3MpKTsKKyAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsQnVzID0g
QXVkaW9CdXM6OmNyZWF0ZShtX251bWJlck9mQ2hhbm5lbHMsIGZyYW1lc1RvUHJvY2Vzcyk7CiAg
ICAgICAgICAgICBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLT5wcm92aWRlSW5wdXQobV9tdWx0aUNo
YW5uZWxCdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYi5jcHAKaW5kZXggZGUxOTViMzNiZTliNzUyYzYwYTE1
YjQwMjhiMTdjYzQ3NjFjM2NiMS4uNzljNDIzN2M2N2U5OTA0NDhhM2QwNjgwOTI1YjA1MGM1MTY2
ZmZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmIuY3BwCkBAIC0xMzIs
NyArMTMyLDcgQEAgdm9pZCBSZXZlcmI6OmluaXRpYWxpemUoQXVkaW9CdXMqIGltcHVsc2VSZXNw
b25zZUJ1ZmZlciwgc2l6ZV90IHJlbmRlclNsaWNlU2l6ZSwKICAgICAvLyBGb3IgIlRydWUiIHN0
ZXJlbyBwcm9jZXNzaW5nIHdlIGFsbG9jYXRlIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBhdm9pZCBy
ZXBlYXRlZGx5IGFsbG9jYXRpbmcgaXQgaW4gdGhlIHByb2Nlc3MoKSBtZXRob2QuCiAgICAgLy8g
SXQgY2FuIGJlIGJhZCB0byBhbGxvY2F0ZSBtZW1vcnkgaW4gYSByZWFsLXRpbWUgdGhyZWFkLgog
ICAgIGlmIChudW1SZXNwb25zZUNoYW5uZWxzID09IDQpCi0gICAgICAgIG1fdGVtcEJ1ZmZlciA9
IGFkb3B0UmVmKG5ldyBBdWRpb0J1cygyLCBNYXhGcmFtZVNpemUpKTsKKyAgICAgICAgbV90ZW1w
QnVmZmVyID0gQXVkaW9CdXM6OmNyZWF0ZSgyLCBNYXhGcmFtZVNpemUpOwogfQogCiB2b2lkIFJl
dmVyYjo6cHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCmluZGV4IDFlZTY5MmM3YzlmMzgxM2EzMDY4
MDQ5Zjg3Y2ZlNGFjMDJmMWRhZjIuLjM1ZWYzYmE4NjNjNjdlMjc2ZjNhYjVmNDNiNWU1NjkzMmQx
MjRhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNh
bXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBs
ZXIuY3BwCkBAIC0xMzQsMTIgKzEzNCwxMiBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OmNvbnN1bWVT
b3VyY2UoZmxvYXQqIGJ1ZmZlciwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICAvLyBXcmFwIHRoZSBwcm92aWRlZCBidWZmZXIgYnkgYW4g
QXVkaW9CdXMgZm9yIHVzZSBieSB0aGUgc291cmNlIHByb3ZpZGVyLgotICAgIEF1ZGlvQnVzIGJ1
cygxLCBudW1iZXJPZlNvdXJjZUZyYW1lcywgZmFsc2UpOworICAgIFJlZlB0cjxBdWRpb0J1cz4g
YnVzID0gQXVkaW9CdXM6OmNyZWF0ZSgxLCBudW1iZXJPZlNvdXJjZUZyYW1lcywgZmFsc2UpOwog
CiAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gbWFrZSB0aGUgZm9sbG93aW5nIGNvbnN0LWNv
cnJlY3Q6Ci0gICAgYnVzLnNldENoYW5uZWxNZW1vcnkoMCwgYnVmZmVyLCBudW1iZXJPZlNvdXJj
ZUZyYW1lcyk7CisgICAgYnVzLT5zZXRDaGFubmVsTWVtb3J5KDAsIGJ1ZmZlciwgbnVtYmVyT2ZT
b3VyY2VGcmFtZXMpOwogICAgIAotICAgIG1fc291cmNlUHJvdmlkZXItPnByb3ZpZGVJbnB1dCgm
YnVzLCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CisgICAgbV9zb3VyY2VQcm92aWRlci0+cHJvdmlk
ZUlucHV0KGJ1cy5nZXQoKSwgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpOwogfQogCiBuYW1lc3BhY2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwCmluZGV4IGM2NzQ0Njkw
NTA4N2U2MTM4Y2M4MDZmMzM5OWRmZmZlMWExNmUxMDEuLmNjZjA0NTA3MmJlMGI5NzQ3ZDhiN2Nm
NmI4N2MyYmViYjM4NWE2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1l
ci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgb25HU3RyZWFtZXJXYXZwYXJzZVBh
ZEFkZGVkQ2FsbGJhY2soR3N0RWxlbWVudCosIEdzdFBhZCogcGFkLCBBdWRpb0QKIAogQXVkaW9E
ZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2Fs
bGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRlKQogICAgIDogbV9jYWxsYmFjayhjYWxs
YmFjaykKLSAgICAsIG1fcmVuZGVyQnVzKDIsIGZyYW1lc1RvUHVsbCwgZmFsc2UpCisgICAgLCBt
X3JlbmRlckJ1cyhBdWRpb0J1czo6Y3JlYXRlKDIsIGZyYW1lc1RvUHVsbCwgZmFsc2UpKQogICAg
ICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsK
QEAgLTkxLDcgKzkxLDcgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5h
dGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogCiAgICAgR3N0RWxlbWVu
dCogd2Via2l0QXVkaW9TcmMgPSByZWludGVycHJldF9jYXN0PEdzdEVsZW1lbnQqPihnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfV0VCX0FVRElPX1NSQywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmF0
ZSIsIHNhbXBsZVJhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1cyIsICZtX3JlbmRlckJ1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiYnVzIiwgbV9yZW5kZXJCdXMuZ2V0KCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZy
YW1lcyIsIGZyYW1lc1RvUHVsbCwgTlVMTCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25H
U3RyZWFtZXIuaAppbmRleCAxM2JlMTRmY2I4YmMxNjYzN2NlY2JmZTNhNTkxZWM5ZWJhNGJlNTAz
Li45ZGM5YTliZWFkNmQ0ODQzYjhjNzgxYzc3OGM0OWQ2N2RhYjg2MGY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUg
IkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX0dzdEVsZW1lbnQgR3N0RWxlbWVudDsKIHR5
cGVkZWYgc3RydWN0IF9Hc3RQYWQgR3N0UGFkOwpAQCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwotICAgIEF1ZGlvQnVz
IG1fcmVuZGVyQnVzOworICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9yZW5kZXJCdXM7CiAKICAgICBm
bG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggM2JhMTBmZGU4YjUxODdiNTI5NTM3YzY1MDE0
MWU3YzBjYzA4NDVjZi4uY2I1ZjFiOGQzZWY1M2IzNWI4YWEzMzgzMTYxMDBiNGY5YzJmODk0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKQEAgLTQ2Nyw3ICs0Njcs
NyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9h
dCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogICAgICAgICByZXR1cm4gMDsKIAogICAgIHVu
c2lnbmVkIGNoYW5uZWxzID0gbWl4VG9Nb25vID8gMSA6IDI7Ci0gICAgUmVmUHRyPEF1ZGlvQnVz
PiBhdWRpb0J1cyA9IGFkb3B0UmVmKG5ldyBBdWRpb0J1cyhjaGFubmVscywgbV9jaGFubmVsU2l6
ZSwgdHJ1ZSkpOworICAgIFJlZlB0cjxBdWRpb0J1cz4gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3Jl
YXRlKGNoYW5uZWxzLCBtX2NoYW5uZWxTaXplLCB0cnVlKTsKICAgICBhdWRpb0J1cy0+c2V0U2Ft
cGxlUmF0ZShtX3NhbXBsZVJhdGUpOwogCiAgICAgY29weUdzdHJlYW1lckJ1ZmZlcnNUb0F1ZGlv
Q2hhbm5lbChtX2Zyb250TGVmdEJ1ZmZlcnMsIGF1ZGlvQnVzLT5jaGFubmVsKDApKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9u
SU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0
aW9uSU9TLmNwcAppbmRleCBhMDZjZjhiMTg3YjA4Y2EwM2JhYWNjYjI5MjE2ZjIxN2MzYzA1MzFh
Li4zNGIyODhjMjJhMTZiNzVmZGIzOTRlZWJiYTY2ZjJlZGNlOTVlZTAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25J
T1MuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdW5zaWduZWQgbG9uZyBBdWRpb0Rlc3RpbmF0aW9u
OjptYXhDaGFubmVsQ291bnQoKQogQXVkaW9EZXN0aW5hdGlvbklPUzo6QXVkaW9EZXN0aW5hdGlv
bklPUyhBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBkb3VibGUgc2FtcGxlUmF0ZSkKICAgICA6
IG1fb3V0cHV0VW5pdCgwKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKLSAgICAsIG1fcmVu
ZGVyQnVzKDIsIGtSZW5kZXJCdWZmZXJTaXplLCBmYWxzZSkKKyAgICAsIG1fcmVuZGVyQnVzKEF1
ZGlvQnVzOjpjcmVhdGUoMiwga1JlbmRlckJ1ZmZlclNpemUsIGZhbHNlKSkKICAgICAsIG1fc2Ft
cGxlUmF0ZShzYW1wbGVSYXRlKQogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiAgICAgLCBtX2lu
dGVycnVwdGVkT25QbGF5YmFjayhmYWxzZSkKQEAgLTIzNSw5ICsyMzUsOSBAQCBPU1N0YXR1cyBB
dWRpb0Rlc3RpbmF0aW9uSU9TOjpyZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1
ZmZlckxpc3QqIGlvRAogICAgICAgICAgICAgVUludDMyIGJ5dGVzUGVyRnJhbWUgPSBidWZmZXJz
W2ldLm1EYXRhQnl0ZVNpemUgLyBudW1iZXJPZkZyYW1lczsKICAgICAgICAgICAgIFVJbnQzMiBi
eXRlT2Zmc2V0ID0gZnJhbWVPZmZzZXQgKiBieXRlc1BlckZyYW1lOwogICAgICAgICAgICAgZmxv
YXQqIG1lbW9yeSA9IChmbG9hdCopKChjaGFyKilidWZmZXJzW2ldLm1EYXRhICsgYnl0ZU9mZnNl
dCk7Ci0gICAgICAgICAgICBtX3JlbmRlckJ1cy5zZXRDaGFubmVsTWVtb3J5KGksIG1lbW9yeSwg
cmVtYWluaW5nRnJhbWVzKTsKKyAgICAgICAgICAgIG1fcmVuZGVyQnVzLT5zZXRDaGFubmVsTWVt
b3J5KGksIG1lbW9yeSwgcmVtYWluaW5nRnJhbWVzKTsKICAgICAgICAgfQotICAgICAgICBtX2Nh
bGxiYWNrLnJlbmRlcigwLCAmbV9yZW5kZXJCdXMsIHJlbWFpbmluZ0ZyYW1lcyk7CisgICAgICAg
IG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLmdldCgpLCByZW1haW5pbmdGcmFtZXMp
OwogICAgIH0KIAogICAgIHJldHVybiBub0VycjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5oCmluZGV4IDMxZjQ3YTc4
YzE4MjlmOTU3OWQwNzZkMjRkMWRkZTU1NzljMTAwMDAuLmYwZWVlY2ExOTc4NmMyODRhZTYzNGI5
YzdlYTkxNzI5ZDQ5MzM0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2lvcy9BdWRpb0Rlc3RpbmF0aW9uSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJBdWRpb1Nlc3Npb25MaXN0ZW5l
ci5oIgogI2luY2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjUsNyArNjYsNyBAQCBwcml2YXRl
OgogCiAgICAgQXVkaW9Vbml0IG1fb3V0cHV0VW5pdDsKICAgICBBdWRpb0lPQ2FsbGJhY2smIG1f
Y2FsbGJhY2s7Ci0gICAgQXVkaW9CdXMgbV9yZW5kZXJCdXM7CisgICAgUmVmUHRyPEF1ZGlvQnVz
PiBtX3JlbmRlckJ1czsKIAogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lz
UGxheWluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAppbmRleCBmY2U0MTFiYTAyNWQ4MDIwNDZkYjgzNWE2
MzY3MDU1MGNmMjZmYjZhLi5hMWE1NGMzODMyZjI2YmY4NGM0MjhkYmQwMmNlOGRhMDk0ZjE2Yjk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0
aW5hdGlvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvRGVzdGluYXRpb25NYWMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHVuc2lnbmVkIGxvbmcgQXVk
aW9EZXN0aW5hdGlvbjo6bWF4Q2hhbm5lbENvdW50KCkKIEF1ZGlvRGVzdGluYXRpb25NYWM6OkF1
ZGlvRGVzdGluYXRpb25NYWMoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxl
UmF0ZSkKICAgICA6IG1fb3V0cHV0VW5pdCgwKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykK
LSAgICAsIG1fcmVuZGVyQnVzKDIsIGtCdWZmZXJTaXplLCBmYWxzZSkKKyAgICAsIG1fcmVuZGVy
QnVzKEF1ZGlvQnVzOjpjcmVhdGUoMiwga0J1ZmZlclNpemUsIGZhbHNlKSkKICAgICAsIG1fc2Ft
cGxlUmF0ZShzYW1wbGVSYXRlKQogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiB7CkBAIC0xNzUs
MTUgKzE3NSwxNSBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25NYWM6OnN0b3AoKQogT1NTdGF0dXMg
QXVkaW9EZXN0aW5hdGlvbk1hYzo6cmVuZGVyKFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9C
dWZmZXJMaXN0KiBpb0RhdGEpCiB7CiAgICAgQXVkaW9CdWZmZXIqIGJ1ZmZlcnMgPSBpb0RhdGEt
Pm1CdWZmZXJzOwotICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMCwgKGZsb2F0Kili
dWZmZXJzWzBdLm1EYXRhLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9yZW5kZXJCdXMuc2V0Q2hh
bm5lbE1lbW9yeSgxLCAoZmxvYXQqKWJ1ZmZlcnNbMV0ubURhdGEsIG51bWJlck9mRnJhbWVzKTsK
KyAgICBtX3JlbmRlckJ1cy0+c2V0Q2hhbm5lbE1lbW9yeSgwLCAoZmxvYXQqKWJ1ZmZlcnNbMF0u
bURhdGEsIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JlbmRlckJ1cy0+c2V0Q2hhbm5lbE1lbW9y
eSgxLCAoZmxvYXQqKWJ1ZmZlcnNbMV0ubURhdGEsIG51bWJlck9mRnJhbWVzKTsKIAogICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KLSAgICBtX2Nh
bGxiYWNrLnJlbmRlcigwLCAmbV9yZW5kZXJCdXMsIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2Nh
bGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5nZXQoKSwgbnVtYmVyT2ZGcmFtZXMpOwogCiAg
ICAgLy8gQ2xhbXAgdmFsdWVzIGF0IDBkYiAoaS5lLiwgWy0xLjAsIDEuMF0pCi0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fcmVuZGVyQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7
Ci0gICAgICAgIEF1ZGlvQ2hhbm5lbCogY2hhbm5lbCA9IG1fcmVuZGVyQnVzLmNoYW5uZWwoaSk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcmVuZGVyQnVzLT5udW1iZXJPZkNoYW5u
ZWxzKCk7ICsraSkgeworICAgICAgICBBdWRpb0NoYW5uZWwqIGNoYW5uZWwgPSBtX3JlbmRlckJ1
cy0+Y2hhbm5lbChpKTsKICAgICAgICAgVmVjdG9yTWF0aDo6dmNsaXAoY2hhbm5lbC0+ZGF0YSgp
LCAxLCAma0xvd1RocmVzaG9sZCwgJmtIaWdoVGhyZXNob2xkLCBjaGFubmVsLT5tdXRhYmxlRGF0
YSgpLCAxLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAppbmRleCAxZjAx
MDhmNjM3OTkxYTNiZjYyYjFlZjAyZmQ1YjBhZDVlZGY0NTk2Li4wNjJjOTY5ZTY5ZjY5ZDI4YmI1
OGVjYmRjMWE2ZTFmNWUzZGNiNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvRGVzdGluYXRpb24uaCIKICNp
bmNsdWRlIDxBdWRpb1VuaXQvQXVkaW9Vbml0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJpdmF0ZToKIAogICAg
IEF1ZGlvVW5pdCBtX291dHB1dFVuaXQ7CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNr
OwotICAgIEF1ZGlvQnVzIG1fcmVuZGVyQnVzOworICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9yZW5k
ZXJCdXM7CiAKICAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVS
ZWFkZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmls
ZVJlYWRlck1hYy5jcHAKaW5kZXggYjI4YjY2NDZkNWFjNzM2MjkwYmMzODZiZTEwNjg1MjgxNjA4
ZGE2My4uZWQyZWQ1NWE5ZTI5MGI3ODE2ZjZjM2U0YTIxZmJhNzc5YTI4N2Y3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRl
ck1hYy5jcHAKQEAgLTE3OCw3ICsxNzgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0Zp
bGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogICAg
IHNpemVfdCBidXNDaGFubmVsQ291bnQgPSBtaXhUb01vbm8gPyAxIDogbnVtYmVyT2ZDaGFubmVs
czsKIAogICAgIC8vIENyZWF0ZSBBdWRpb0J1cyB3aGVyZSB3ZSdsbCBwdXQgdGhlIFBDTSBhdWRp
byBkYXRhCi0gICAgUmVmUHRyPEF1ZGlvQnVzPiBhdWRpb0J1cyA9IGFkb3B0UmVmKG5ldyBBdWRp
b0J1cyhidXNDaGFubmVsQ291bnQsIG51bWJlck9mRnJhbWVzKSk7CisgICAgUmVmUHRyPEF1ZGlv
QnVzPiBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVzQ2hhbm5lbENvdW50LCBudW1iZXJP
ZkZyYW1lcyk7CiAgICAgYXVkaW9CdXMtPnNldFNhbXBsZVJhdGUobmFycm93UHJlY2lzaW9uVG9G
bG9hdChtX2NsaWVudERhdGFGb3JtYXQubVNhbXBsZVJhdGUpKTsgLy8gc2F2ZSBmb3IgbGF0ZXIK
IAogICAgIC8vIE9ubHkgYWxsb2NhdGVkIGluIHRoZSBtaXhUb01vbm8gY2FzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>