<?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>190875</bug_id>
          
          <creation_ts>2018-10-24 09:14:22 -0700</creation_ts>
          <short_desc>Cure Windows Direct2D Backend of a nasty case of bitrot</short_desc>
          <delta_ts>2018-11-07 19:51:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>191411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471846</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 09:14:22 -0700</bug_when>
    <thetext>You can&apos;t build for the Windows Direct2D backend right now. This patch corrects the build failures, and gets things working again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471862</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-24 10:03:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/45523268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471870</commentid>
    <comment_count>2</comment_count>
      <attachid>353040</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 10:24:40 -0700</bug_when>
    <thetext>Created attachment 353040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471876</commentid>
    <comment_count>3</comment_count>
      <attachid>353042</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 10:45:16 -0700</bug_when>
    <thetext>Created attachment 353042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471878</commentid>
    <comment_count>4</comment_count>
      <attachid>353043</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 10:57:12 -0700</bug_when>
    <thetext>Created attachment 353043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471881</commentid>
    <comment_count>5</comment_count>
      <attachid>353044</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 11:06:15 -0700</bug_when>
    <thetext>Created attachment 353044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471883</commentid>
    <comment_count>6</comment_count>
      <attachid>353044</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-10-24 11:20:26 -0700</bug_when>
    <thetext>Comment on attachment 353044
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471886</commentid>
    <comment_count>7</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-10-24 11:22:23 -0700</bug_when>
    <thetext>Informal r+

Are we going to need a buildbot for this going forward? I can see this getting out of sync quick if we don&apos;t keep up with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471893</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-10-24 11:35:03 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #7)
&gt; Informal r+
&gt; 
&gt; Are we going to need a buildbot for this going forward? I can see this
&gt; getting out of sync quick if we don&apos;t keep up with this.

Yes. Probably not until it&apos;s a bit more full-featured, but as soon as the obvious issues from simple manual browsing are addressed, a buildbot will be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471902</commentid>
    <comment_count>9</comment_count>
      <attachid>353044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-24 11:46:47 -0700</bug_when>
    <thetext>Comment on attachment 353044
Patch

Clearing flags on attachment: 353044

Committed r237394: &lt;https://trac.webkit.org/changeset/237394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471903</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-24 11:46:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353040</attachid>
            <date>2018-10-24 10:24:40 -0700</date>
            <delta_ts>2018-10-24 10:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190875-20181024102435.patch</filename>
            <type>text/plain</type>
            <size>18657</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCShyZXZpc2lv
biAyMzcyMjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwko
d29ya2luZyBjb3B5KQpAQCAtMTIzOSw3ICsxMjM5LDcgQEAgc3RhdGljIHZvaWQgdGVzdE1hcmtp
bmdDb25zdHJhaW50c0FuZEhlYQogICAgIAogICAgIGRlYWRDb3VudCA9IDA7CiAgICAgZm9yIChp
ID0gMDsgaSA8IG51bVdlYWtSZWZzOyBpICs9IDIpIHsKLSAgICAgICAgYXNzZXJ0VHJ1ZShKU1dl
YWtHZXRPYmplY3Qod2Vha1JlZnNbaV0pLCAiTWFya2VkIG9iamVjdHMgc3RheWVkIGFsaXZlIik7
CisgICAgICAgIGFzc2VydFRydWUoKGJvb2wpSlNXZWFrR2V0T2JqZWN0KHdlYWtSZWZzW2ldKSwg
Ik1hcmtlZCBvYmplY3RzIHN0YXllZCBhbGl2ZSIpOwogICAgICAgICBpZiAoIUpTV2Vha0dldE9i
amVjdCh3ZWFrUmVmc1tpICsgMV0pKQogICAgICAgICAgICAgZGVhZENvdW50Kys7CiAgICAgfQpA
QCAtMjA1Miw3ICsyMDUyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAg
ICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uOwogICAgICAgICAgICAgSlNTdHJpbmdSZWYg
Y29kZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJyZXN1bHQgPSAwOyBQcm9taXNl
LnJlc29sdmUoNDIpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHJlc3VsdCA9IHZhbHVlOyB9KTsi
KTsKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIGZpbGUgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiIik7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKEpTRXZhbHVhdGVTY3JpcHQoY29u
dGV4dCwgY29kZSwgZ2xvYmFsT2JqZWN0LCBmaWxlLCAxLCAmZXhjZXB0aW9uKSwgIkFuIGV4Y2Vw
dGlvbiBzaG91bGQgbm90IGJlIHRocm93biIpOworICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgoYm9v
bClKU0V2YWx1YXRlU2NyaXB0KGNvbnRleHQsIGNvZGUsIGdsb2JhbE9iamVjdCwgZmlsZSwgMSwg
JmV4Y2VwdGlvbiksICJBbiBleGNlcHRpb24gc2hvdWxkIG5vdCBiZSB0aHJvd24iKTsKICAgICAg
ICAgICAgIEpTU3RyaW5nUmVsZWFzZShjb2RlKTsKICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFz
ZShmaWxlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM3Mzg4KQorKysgU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTggQEAKKzIwMTgtMTAt
MjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3VyZSBX
aW5kb3dzIERpcmVjdDJEIEJhY2tlbmQgb2YgYSBuYXN0eSBjYXNlIG9mIGJpdHJvdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODc1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTUyMzI2OD4KKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBEaXJlY3QyRCBiYWNrZW5kIGhhcyBkcmlm
dGVkIG91dCBvZiBkYXRlIHdpdGggdGhlIHJlc3Qgb2YgV2ViS2l0LgorICAgICAgICBUaGlzIHBh
dGNoIHVwZGF0ZXMgdGhpbmdzIHNvIHdlIGNhbiBnZXQgYSBydW5uYWJsZSBidWlsZC4KKyAgICAg
ICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNldFRhcmdldENvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6T3BlblR5cGVNYXRoRGF0YTo6T3BlblR5cGVNYXRoRGF0YSk6IE5lZWQgbm9uLWRlZmF1
bHQgY29uc3RydWN0b3IgdG8gbWFrZSBWaXN1YWwKKyAgICAgICAgU3R1ZGlvIGhhcHB5LgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFkaWVudERpcmVjdDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYWRpZW50OjpnZW5lcmF0ZUdyYWRpZW50KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwOiBVcGRhdGUgZm9y
IG5ldyBkaXNwbGF5IGxpc3QgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNldEFscGhhKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpk
cmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxpcHNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1BhdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OnBsYXRmb3JtRmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpjbGlwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xp
cE91dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBQYXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcEJvdW5kcyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFuc3BhcmVuY3lM
YXllcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmVuZFBsYXRmb3JtVHJh
bnNwYXJlbmN5TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRN
aXRlckxpbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xlYXJSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldExpbmVDYXApOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lRGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2luKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpyb3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpjb25jYXRDVE0pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRDVE0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpnZXRDVE0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0Ojpyb3VuZFRvRGV2aWNlUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0xpbmVzRm9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNldFVSTEZvclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpz
ZXRJc0NBTGF5ZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
aXNDQUxheWVyQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNldElzQWNjZWxlcmF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6aXNBY2NlbGVyYXRlZENvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNob3VsZEFudGlhbGlhcyk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hvdWxkU21vb3RoRm9udHMpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9w
ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRmls
bEVsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybVN0
cm9rZUVsbGlwc2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xh
eWVyRGlyZWN0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Y3JlYXRl
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ltYWdlQnVmZmVyRGF0YURpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVm
ZmVyRGF0YTo6cHV0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
QnVmZmVyRGF0YURpcmVjdDJELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0lt
YWdlQnVmZmVyRGlyZWN0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNy
ZWF0ZUNvbXBhdGlibGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6Oklt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEZWNvZGVy
RGlyZWN0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmJ5
dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJEaXJlY3QyRDo6ZW5jb2RlZERhdGFTdGF0dXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OnJlcGV0aXRpb25Db3VudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVPcmllbnRhdGlv
bkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6
OmZyYW1lRHVyYXRpb25BdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVj
b2RlckRpcmVjdDJEOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpmcmFtZUhhc0FscGhhQXRJbmRleCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJEaXJlY3QyRDo6Y3JlYXRlRnJh
bWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6
OnNldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmJ5dGVz
RGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJEaXJlY3QyRDo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXggY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZURlY29kZXJEaXJl
Y3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZURpcmVjdDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3RnJhbWVNYXRjaGluZ1NvdXJj
ZVNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9QYXR0ZXJuRGlyZWN0MkQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF0dGVybjo6Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuIGNv
bnN0KToKKwogMjAxOC0xMC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtQU09OXSBXaGVuIG5hdmlnYXRpbmcgYmFjayBhbmQgZm9ydGgsICdhYm91dDpibGFu
aycgc2hvd3MgdXAgaW4gdGhlIGJhY2svZm9yd2FyZCBsaXN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCShyZXZpc2lv
biAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZv
cm1EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA2IE1pY2hhZWwgRW1tZWwgbWlrZS5lbW1lbEBnbWFpbC5jb20KICAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0
IChDKSAyMDA3IFBpb25lZXIgUmVzZWFyY2ggQ2VudGVyIFVTQSwgSW5jLgpAQCAtNjMsNiArNjMs
MTAgQEAgaW50ZXJmYWNlIElEV3JpdGVGb250OwogaW50ZXJmYWNlIElEV3JpdGVGb250RmFjZTsK
ICNlbmRpZgogCisjaWYgVVNFKERJUkVDVDJEKQorI2luY2x1ZGUgPGR3cml0ZS5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRm9udERlc2NyaXB0aW9uOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAko
cmV2aXNpb24gMjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdo
dCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsMTAgKzQ4LDEw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXIKIH0KIAogI2lmIFVT
RShESVJFQ1QyRCkKLXN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwg
Y29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250ZXh0LCBmbG9hdCByZXNvbHV0aW9uU2Nh
bGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3N0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250ZXh0LCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgY29uc3QgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdykKIHsKICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1
dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCB0YXJnZXRDb250ZXh0LCBzdWNj
ZXNzKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdl
QnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwg
aG9zdFdpbmRvdywgdGFyZ2V0Q29udGV4dCwgc3VjY2VzcykpOwogICAgIGlmICghc3VjY2VzcykK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGJ1ZmZlcjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkocmV2aXNpb24g
MjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTY4LDcgKzY4LDcgQEAgcHVi
bGljOgogICAgIC8vIFdpbGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFp
bHVyZS4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1
dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2VTUkdCLCBjb25zdCBIb3N0V2lu
ZG93KiA9IG51bGxwdHIpOwogI2lmIFVTRShESVJFQ1QyRCkKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXpl
JiwgUmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2VTUkdCKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxv
YXRTaXplJiwgUmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9IENvbG9yU3BhY2VTUkdCLCBjb25zdCBIb3N0
V2luZG93KiA9IG51bGxwdHIpOwogI2VuZGlmCiAKICAgICAvLyBDcmVhdGUgYW4gaW1hZ2UgYnVm
ZmVyIGNvbXBhdGlibGUgd2l0aCB0aGUgY29udGV4dCwgd2l0aCBzdWl0YWJsZSByZXNvbHV0aW9u
IGZvciBkcmF3aW5nIGludG8gdGhlIGJ1ZmZlciBhbmQgdGhlbiBpbnRvIHRoaXMgY29udGV4dC4K
QEAgLTE3MCw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgIEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0
U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ0dDb2xvclNwYWNlUmVmLCBSZW5kZXJpbmdN
b2RlLCBjb25zdCBIb3N0V2luZG93KiwgYm9vbCYgc3VjY2Vzcyk7CiAgICAgUmV0YWluUHRyPENG
RGF0YVJlZj4gdG9DRkRhdGEoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgc3RkOjpvcHRpb25hbDxk
b3VibGU+IHF1YWxpdHksIFByZXNlcnZlUmVzb2x1dGlvbikgY29uc3Q7CiAjZWxpZiBVU0UoRElS
RUNUMkQpCi0gICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBHcmFwaGljc0NvbnRleHQq
LCBib29sJiBzdWNjZXNzKTsKKyAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGNvbnN0IEhvc3RX
aW5kb3cqLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sJiBzdWNjZXNzKTsKICNlbmRpZgog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VE
ZWNvZGVyLmgJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRGVjb2Rlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDYgKzc5LDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBbGxEYXRhUmVjZWl2ZWQoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpID0gMDsKIAorI2lmIFVT
RShESVJFQ1QyRCkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGFyZ2V0Q29udGV4dChJRDJEMVJlbmRl
clRhcmdldCopID0gMDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgSW1hZ2VEZWNvZGVyKCkg
PSBkZWZhdWx0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NiArMzYsMTAgQEAKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TeXN0
ZW1UcmFjaW5nLmg+CiAKKyNpZiBVU0UoRElSRUNUMkQpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJbWFnZVNvdXJjZTo6SW1h
Z2VTb3VyY2UoQml0bWFwSW1hZ2UqIGltYWdlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCkBAIC02
MzgsNyArNjQyLDcgQEAgSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6ZnJhbWVPcmllbgog
dm9pZCBJbWFnZVNvdXJjZTo6c2V0VGFyZ2V0Q29udGV4dChjb25zdCBHcmFwaGljc0NvbnRleHQq
IHRhcmdldENvbnRleHQpCiB7CiAgICAgaWYgKGlzRGVjb2RlckF2YWlsYWJsZSgpICYmIHRhcmdl
dENvbnRleHQpCi0gICAgICAgIG1fZGVjb2Rlci0+c2V0VGFyZ2V0Q29udGV4dCh0YXJnZXRDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSkKKyAgICAgICAgbV9kZWNvZGVyLT5zZXRUYXJnZXRDb250
ZXh0KHRhcmdldENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpKTsKIH0KICNlbmRpZgogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZU1hdGhE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcAkocmV2aXNpb24gMjM3MjIwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2Miw2ICsyNjIsMTAgQEAgT3BlblR5cGVNYXRoRGF0YTo6T3Bl
blR5cGVNYXRoRGF0YShjb25zdAogICAgIGlmICghaGJfb3RfbWF0aF9oYXNfZGF0YShoYl9mb250
X2dldF9mYWNlKG1fbWF0aEZvbnQuZ2V0KCkpKSkKICAgICAgICAgbV9tYXRoRm9udCA9IG51bGxw
dHI7CiB9CisjZWxpZiBVU0UoRElSRUNUMkQpCitPcGVuVHlwZU1hdGhEYXRhOjpPcGVuVHlwZU1h
dGhEYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGZvbnQpCit7Cit9CiAjZWxzZQogT3BlblR5
cGVNYXRoRGF0YTo6T3BlblR5cGVNYXRoRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJikgPSBk
ZWZhdWx0OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vSW1hZ2VCdWZmZXJEYXRhRGlyZWN0MkQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEYXRhRGlyZWN0MkQuaAkocmV2aXNp
b24gMjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdl
QnVmZmVyRGF0YURpcmVjdDJELmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsNiArMjMsOCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisjcHJhZ21hIG9uY2UKKwogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4Q2xhbXBlZEFy
cmF5Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VE
ZWNvZGVyRGlyZWN0MkQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaAkocmV2aXNpb24gMjM3MjIwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVjdDJE
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBNZWRp
YVR5cGU6OkltYWdlOyB9CiAKLSAgICBzdGF0aWMgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJt
aW5lUHJvcGVydGllcygpOworICAgIHNpemVfdCBieXRlc0RlY29kZWRUb0RldGVybWluZVByb3Bl
cnRpZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNv
bnN0IGZpbmFsOwogICAgIEVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzKCkgY29u
c3QgZmluYWw7CkBAIC02NiwxMiArNjYsMTIgQEAgcHVibGljOgogICAgIGJvb2wgZnJhbWVJc0Nv
bXBsZXRlQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogICAgIEltYWdlT3JpZW50YXRpb24g
ZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKIAotICAgIGZsb2F0
IGZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgU2Vjb25kcyBm
cmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZyYW1lQWxsb3dT
dWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICB1bnNpZ25lZCBmcmFt
ZUJ5dGVzQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVs
OjpEZWZhdWx0KSBjb25zdCBmaW5hbDsKIAotICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1l
SW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6
OkRlZmF1bHQsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgPSBEZWNvZGluZ09wdGlvbnMoRGVjb2Rp
bmdNb2RlOjpTeW5jaHJvbm91cykpIGNvbnN0IGZpbmFsOworICAgIE5hdGl2ZUltYWdlUHRyIGNy
ZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBs
aW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgPSBEZWNvZGluZ09wdGlv
bnMoRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cykpIGZpbmFsOwogCiAgICAgdm9pZCBzZXREYXRh
KFNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBmaW5hbDsKICAgICBib29sIGlz
QWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0FsbERhdGFSZWNlaXZl
ZDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1BhdHRlcm5E
aXJlY3QyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1BhdHRlcm5EaXJlY3QyRC5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9QYXR0ZXJuRGlyZWN0MkQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIElEMkQxQml0bWFwQnJ1c2gqIFBhdHRlcm46OmNyZWF0
ZVBsYXRmb3IKICAgICBicnVzaFByb3BlcnRpZXMudHJhbnNmb3JtID0gcGF0dGVyblRyYW5zZm9y
bTsKICAgICBicnVzaFByb3BlcnRpZXMub3BhY2l0eSA9IGFscGhhOwogCi0gICAgYXV0byBwYXR0
ZXJuSW1hZ2UgPSB0aWxlSW1hZ2UoKTsKKy8qICAgIGF1dG8gcGF0dGVybkltYWdlID0gdGlsZUlt
YWdlKCk7CiAKICAgICBhdXRvIHBsYXRmb3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCk7CiAgICAgUkVMRUFTRV9BU1NFUlQocGxhdGZvcm1Db250ZXh0KTsKQEAgLTU2LDcgKzU2
LDggQEAgSUQyRDFCaXRtYXBCcnVzaCogUGF0dGVybjo6Y3JlYXRlUGxhdGZvcgogICAgIElEMkQx
Qml0bWFwQnJ1c2gqIHBhdHRlcm5CcnVzaCA9IG51bGxwdHI7CiAgICAgSFJFU1VMVCBociA9IHBs
YXRmb3JtQ29udGV4dC0+Q3JlYXRlQml0bWFwQnJ1c2gocGF0dGVybkltYWdlLm5hdGl2ZUltYWdl
KCZjb250ZXh0KS5nZXQoKSwgJmJpdG1hcEJydXNoUHJvcGVydGllcywgJmJydXNoUHJvcGVydGll
cywgJnBhdHRlcm5CcnVzaCk7CiAgICAgQVNTRVJUKFNVQ0NFRURFRChocikpOwotICAgIHJldHVy
biBwYXR0ZXJuQnJ1c2g7CisgICAgcmV0dXJuIHBhdHRlcm5CcnVzaDsqLworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiB9CkluZGV4OiBTb3VyY2UvY21ha2UvT3B0aW9uc0FwcGxlV2luLmNtYWtl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zQXBwbGVXaW4uY21ha2UJKHJldmlz
aW9uIDIzNzIyMCkKKysrIFNvdXJjZS9jbWFrZS9PcHRpb25zQXBwbGVXaW4uY21ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTE2LDcgKzE2LDcgQEAgc2V0KFpMSUJfSU5DTFVERV9ESVJTICIke1dFQktJ
VF9MSUJSQVJJRQogc2V0KFpMSUJfTElCUkFSSUVTIHpkbGwke0RFQlVHX1NVRkZJWH0pCiAKICMg
VW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSB0byB0cnkgdGhlIERpcmVjdDJEIGJhY2tlbmQu
Ci0jIHNldChVU0VfRElSRUNUMkQgMSkKK3NldChVU0VfRElSRUNUMkQgMSkKIAogaWYgKCR7VVNF
X0RJUkVDVDJEfSkKICAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfRElSRUNUMkQgT04p
CkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXJSZXBsYWNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvTWluaUJyb3dzZXIvd2luL01pbmlCcm93c2VyUmVwbGFjZS5oCShyZXZp
c2lvbiAyMzcyMjApCisrKyBUb29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXJSZXBsYWNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogLy8gVGhpcyBmaWxlIGlzIHRv
IG1ha2UgaXQgZWFzaWVyIGZvciB1c2VycyB0byBtYW5hZ2UgY2hhbmdlcyB0byB0aGUgaW50ZXJu
YWxzIG9mIE1pbmlCcm93c2VyCiAKLXN0YXRpYyBjb25zdCB3Y2hhcl90KiBkZWZhdWx0SFRNTCA9
IEwiPHAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDBGRjAwXCI+VGVzdGluZzwvcD48aW1n
IGlkPVwid2Via2l0IGxvZ29cIiBzcmM9XCJodHRwOi8vd2Via2l0Lm9yZy9pbWFnZXMvaWNvbi1n
b2xkLnBuZ1wiIGFsdD1cIkZhY2VcIj48ZGl2IHN0eWxlPVwiYm9yZGVyOiBzb2xpZCBibHVlOyBi
YWNrZ3JvdW5kOiB3aGl0ZTtcIiBjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCI+ZGl2IHdpdGggYmx1
ZSBib3JkZXI8L2Rpdj48dWw+PGxpPmZvbzxsaT5iYXI8bGk+YmF6PC91bD4iOworc3RhdGljIGNv
bnN0IHdjaGFyX3QqIGRlZmF1bHRIVE1MID0gTCI8cCBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6
ICMwMEZGMDBcIj5UZXN0aW5nPC9wPjxpbWcgaWQ9XCJ3ZWJraXQgbG9nb1wiIHNyYz1cImh0dHBz
Oi8vd2Via2l0Lm9yZy93cC1jb250ZW50L3RoZW1lcy93ZWJraXQvaW1hZ2VzL3dlYmtpdC5zdmdc
IiBhbHQ9XCJXZWJLaXQgTG9nb1wiIGhlaWdodD1cIjUwXCIgd2lkdGg9XCI1MFwiPjxkaXYgc3R5
bGU9XCJib3JkZXI6IHNvbGlkIGJsdWU7IGJhY2tncm91bmQ6IHdoaXRlO1wiIGNvbnRlbnRlZGl0
YWJsZT1cInRydWVcIj5kaXYgd2l0aCBibHVlIGJvcmRlcjwvZGl2Pjx1bD48bGk+Zm9vPGxpPmJh
cjxsaT5iYXo8L3VsPiI7CiAKIHN0YXRpYyB2b2lkIHByb2Nlc3NDcmFzaFJlcG9ydChjb25zdCB3
Y2hhcl90KiBmaWxlTmFtZSkgeyA6Ok1lc3NhZ2VCb3goMCwgZmlsZU5hbWUsIEwiQ3Jhc2ggUmVw
b3J0IiwgTUJfT0spOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353042</attachid>
            <date>2018-10-24 10:45:16 -0700</date>
            <delta_ts>2018-10-24 10:57:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190875-20181024104511.patch</filename>
            <type>text/plain</type>
            <size>14757</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk4IEBACisyMDE4LTEwLTI0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEN1cmUgV2luZG93cyBEaXJl
Y3QyRCBCYWNrZW5kIG9mIGEgbmFzdHkgY2FzZSBvZiBiaXRyb3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDg3NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDU1MjMyNjg+CisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgRGlyZWN0MkQgYmFja2VuZCBoYXMgZHJpZnRlZCBvdXQgb2Yg
ZGF0ZSB3aXRoIHRoZSByZXN0IG9mIFdlYktpdC4KKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoaW5ncyBzbyB3ZSBjYW4gZ2V0IGEgcnVubmFibGUgYnVpbGQuCisgICAgICAgIAorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlOjpzZXRUYXJnZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5U
eXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERhdGEpOiBOZWVkIG5vbi1kZWZhdWx0IGNvbnN0cnVj
dG9yIHRvIG1ha2UgVmlzdWFsCisgICAgICAgIFN0dWRpbyBoYXBweS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhZGllbnREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFkaWVudDo6Z2VuZXJhdGVHcmFkaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDogVXBkYXRlIGZvciBuZXcgZGlzcGxh
eSBsaXN0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlOjpzZXRBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNhdmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZp
bGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0TGluZURhc2gpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm90YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm91bmRU
b0RldmljZVBpeGVscyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRVUkxG
b3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVy
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzQ0FMYXllckNv
bnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRJc0Fj
Y2VsZXJhdGVkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6Omlz
QWNjZWxlcmF0ZWRDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaG91bGRBbnRpYWxpYXMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNob3VsZFNtb290aEZvbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZpbGxFbGxpcHNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1TdHJva2VFbGxpcHNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZl
ckRhdGFEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1
dERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFE
aXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRp
YmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVjdDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRU
b0RldGVybWluZVByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmVuY29kZWREYXRhU3RhdHVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlRGVjb2RlckRpcmVjdDJEOjpyZXBldGl0aW9uQ291bnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpmcmFtZUR1cmF0
aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJEaXJlY3Qy
RDo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVIYXNBbHBoYUF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdElu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpzZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRUb0Rl
dGVybWluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0dGVybkRpcmVjdDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisKIDIw
MTgtMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbUFNP
Tl0gV2hlbiBuYXZpZ2F0aW5nIGJhY2sgYW5kIGZvcnRoLCAnYWJvdXQ6YmxhbmsnIHNob3dzIHVw
IGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gMjM3MjIwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBQ
aW9uZWVyIFJlc2VhcmNoIENlbnRlciBVU0EsIEluYy4KQEAgLTYzLDYgKzYzLDEwIEBAIGludGVy
ZmFjZSBJRFdyaXRlRm9udDsKIGludGVyZmFjZSBJRFdyaXRlRm9udEZhY2U7CiAjZW5kaWYKIAor
I2lmIFVTRShESVJFQ1QyRCkKKyNpbmNsdWRlIDxkd3JpdGUuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDIz
NzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDEwICs0OCwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyCiB9CiAKICNpZiBVU0UoRElSRUNUMkQp
Ci1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVy
OjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCiB7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgdGFyZ2V0Q29udGV4dCwgc3VjY2VzcykpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIGhvc3RXaW5kb3cs
IHRhcmdldENvbnRleHQsIHN1Y2Nlc3MpKTsKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBidWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDIzNzIyMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAv
LyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9
IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxs
cHRyKTsKICNpZiBVU0UoRElSRUNUMkQpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmlu
Z01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEs
IENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBu
dWxscHRyKTsKICNlbmRpZgogCiAgICAgLy8gQ3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRp
YmxlIHdpdGggdGhlIGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2lu
ZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4gaW50byB0aGlzIGNvbnRleHQuCkBAIC0xNzAsNyAr
MTcwLDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcGFjZVJlZiwgUmVuZGVyaW5nTW9kZSwgY29uc3Qg
SG9zdFdpbmRvdyosIGJvb2wmIHN1Y2Nlc3MpOwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHRv
Q0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0OwogI2VsaWYgVVNFKERJUkVDVDJEKQotICAg
IEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3Vj
Y2Vzcyk7CisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBIb3N0V2luZG93KiwgY29u
c3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3VjY2Vzcyk7CiAjZW5kaWYKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCShy
ZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw2ICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzQWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSA9IDA7CiAKKyNpZiBVU0UoRElSRUNUMkQp
CisgICAgdmlydHVhbCB2b2lkIHNldFRhcmdldENvbnRleHQoSUQyRDFSZW5kZXJUYXJnZXQqKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEltYWdlRGVjb2RlcigpID0gZGVmYXVsdDsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwCShyZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5o
PgogCisjaWYgVVNFKERJUkVDVDJEKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEJp
dG1hcEltYWdlKiBpbWFnZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQpAQCAtNjM4LDcgKzY0Miw3
IEBAIEltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6OmZyYW1lT3JpZW4KIHZvaWQgSW1hZ2VT
b3VyY2U6OnNldFRhcmdldENvbnRleHQoY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250
ZXh0KQogewogICAgIGlmIChpc0RlY29kZXJBdmFpbGFibGUoKSAmJiB0YXJnZXRDb250ZXh0KQot
ICAgICAgICBtX2RlY29kZXItPnNldFRhcmdldENvbnRleHQodGFyZ2V0Q29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCkpCisgICAgICAgIG1fZGVjb2Rlci0+c2V0VGFyZ2V0Q29udGV4dCh0YXJnZXRD
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVNYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjIsNiArMjYyLDEwIEBAIE9wZW5UeXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERh
dGEoY29uc3QKICAgICBpZiAoIWhiX290X21hdGhfaGFzX2RhdGEoaGJfZm9udF9nZXRfZmFjZSht
X21hdGhGb250LmdldCgpKSkpCiAgICAgICAgIG1fbWF0aEZvbnQgPSBudWxscHRyOwogfQorI2Vs
aWYgVVNFKERJUkVDVDJEKQorT3BlblR5cGVNYXRoRGF0YTo6T3BlblR5cGVNYXRoRGF0YShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBmb250KQoreworfQogI2Vsc2UKIE9wZW5UeXBlTWF0aERhdGE6
Ok9wZW5UeXBlTWF0aERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpID0gZGVmYXVsdDsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVm
ZmVyRGF0YURpcmVjdDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGF0YURpcmVjdDJELmgJKHJldmlzaW9uIDIzNzIyMCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFE
aXJlY3QyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDYgKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorI3ByYWdtYSBvbmNlCisKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVj
dDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ltYWdlRGVjb2RlckRpcmVjdDJELmgJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZURlY29kZXJEaXJlY3QyRC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNN
ZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUpIHsgcmV0dXJuIHR5cGUgPT0gTWVkaWFUeXBlOjpJbWFn
ZTsgfQogCi0gICAgc3RhdGljIHNpemVfdCBieXRlc0RlY29kZWRUb0RldGVybWluZVByb3BlcnRp
ZXMoKTsKKyAgICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29u
c3QgZmluYWw7CiAKICAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBmaW5hbDsK
ICAgICBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0YVN0YXR1cygpIGNvbnN0IGZpbmFsOwpA
QCAtNjYsMTIgKzY2LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGZyYW1lSXNDb21wbGV0ZUF0SW5k
ZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50
YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAKLSAgICBmbG9hdCBmcmFtZUR1cmF0
aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdB
dEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5k
ZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkg
Y29uc3QgZmluYWw7CiAKLSAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRl
eChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBj
b25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVjb2RpbmdPcHRpb25zKERlY29kaW5nTW9kZTo6U3lu
Y2hyb25vdXMpKSBjb25zdCBmaW5hbDsKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUlt
YWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpE
ZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVjb2RpbmdPcHRpb25zKERlY29kaW5n
TW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZm
ZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7CiAgICAgYm9vbCBpc0FsbERhdGFSZWNl
aXZlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNBbGxEYXRhUmVjZWl2ZWQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353043</attachid>
            <date>2018-10-24 10:57:12 -0700</date>
            <delta_ts>2018-10-24 11:06:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190875-20181024105707.patch</filename>
            <type>text/plain</type>
            <size>14757</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk4IEBACisyMDE4LTEwLTI0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEN1cmUgV2luZG93cyBEaXJl
Y3QyRCBCYWNrZW5kIG9mIGEgbmFzdHkgY2FzZSBvZiBiaXRyb3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDg3NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDU1MjMyNjg+CisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgRGlyZWN0MkQgYmFja2VuZCBoYXMgZHJpZnRlZCBvdXQgb2Yg
ZGF0ZSB3aXRoIHRoZSByZXN0IG9mIFdlYktpdC4KKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoaW5ncyBzbyB3ZSBjYW4gZ2V0IGEgcnVubmFibGUgYnVpbGQuCisgICAgICAgIAorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlOjpzZXRUYXJnZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5U
eXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERhdGEpOiBOZWVkIG5vbi1kZWZhdWx0IGNvbnN0cnVj
dG9yIHRvIG1ha2UgVmlzdWFsCisgICAgICAgIFN0dWRpbyBoYXBweS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhZGllbnREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFkaWVudDo6Z2VuZXJhdGVHcmFkaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDogVXBkYXRlIGZvciBuZXcgZGlzcGxh
eSBsaXN0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlOjpzZXRBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNhdmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZp
bGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0TGluZURhc2gpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm90YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm91bmRU
b0RldmljZVBpeGVscyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRVUkxG
b3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVy
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzQ0FMYXllckNv
bnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRJc0Fj
Y2VsZXJhdGVkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6Omlz
QWNjZWxlcmF0ZWRDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaG91bGRBbnRpYWxpYXMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNob3VsZFNtb290aEZvbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZpbGxFbGxpcHNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1TdHJva2VFbGxpcHNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZl
ckRhdGFEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1
dERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFE
aXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRp
YmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVjdDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRU
b0RldGVybWluZVByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmVuY29kZWREYXRhU3RhdHVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlRGVjb2RlckRpcmVjdDJEOjpyZXBldGl0aW9uQ291bnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpmcmFtZUR1cmF0
aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJEaXJlY3Qy
RDo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVIYXNBbHBoYUF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdElu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpzZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRUb0Rl
dGVybWluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0dGVybkRpcmVjdDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisKIDIw
MTgtMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbUFNP
Tl0gV2hlbiBuYXZpZ2F0aW5nIGJhY2sgYW5kIGZvcnRoLCAnYWJvdXQ6YmxhbmsnIHNob3dzIHVw
IGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gMjM3MjIwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBQ
aW9uZWVyIFJlc2VhcmNoIENlbnRlciBVU0EsIEluYy4KQEAgLTYzLDYgKzYzLDEwIEBAIGludGVy
ZmFjZSBJRFdyaXRlRm9udDsKIGludGVyZmFjZSBJRFdyaXRlRm9udEZhY2U7CiAjZW5kaWYKIAor
I2lmIFVTRShESVJFQ1QyRCkKKyNpbmNsdWRlIDxkd3JpdGUuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDIz
NzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDEwICs0OCwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyCiB9CiAKICNpZiBVU0UoRElSRUNUMkQp
Ci1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVy
OjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCiB7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgdGFyZ2V0Q29udGV4dCwgc3VjY2VzcykpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIGhvc3RXaW5kb3cs
IHRhcmdldENvbnRleHQsIHN1Y2Nlc3MpKTsKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBidWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDIzNzIyMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAv
LyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9
IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxs
cHRyKTsKICNpZiBVU0UoRElSRUNUMkQpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmlu
Z01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEs
IENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBu
dWxscHRyKTsKICNlbmRpZgogCiAgICAgLy8gQ3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRp
YmxlIHdpdGggdGhlIGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2lu
ZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4gaW50byB0aGlzIGNvbnRleHQuCkBAIC0xNzAsNyAr
MTcwLDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcGFjZVJlZiwgUmVuZGVyaW5nTW9kZSwgY29uc3Qg
SG9zdFdpbmRvdyosIGJvb2wmIHN1Y2Nlc3MpOwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHRv
Q0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0OwogI2VsaWYgVVNFKERJUkVDVDJEKQotICAg
IEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3Vj
Y2Vzcyk7CisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBIb3N0V2luZG93KiwgY29u
c3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3VjY2Vzcyk7CiAjZW5kaWYKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCShy
ZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw2ICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzQWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSA9IDA7CiAKKyNpZiBVU0UoRElSRUNUMkQp
CisgICAgdmlydHVhbCB2b2lkIHNldFRhcmdldENvbnRleHQoSUQyRDFSZW5kZXJUYXJnZXQqKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEltYWdlRGVjb2RlcigpID0gZGVmYXVsdDsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwCShyZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5o
PgogCisjaWYgVVNFKERJUkVDVDJEKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEJp
dG1hcEltYWdlKiBpbWFnZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQpAQCAtNjM4LDcgKzY0Miw3
IEBAIEltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6OmZyYW1lT3JpZW4KIHZvaWQgSW1hZ2VT
b3VyY2U6OnNldFRhcmdldENvbnRleHQoY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250
ZXh0KQogewogICAgIGlmIChpc0RlY29kZXJBdmFpbGFibGUoKSAmJiB0YXJnZXRDb250ZXh0KQot
ICAgICAgICBtX2RlY29kZXItPnNldFRhcmdldENvbnRleHQodGFyZ2V0Q29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCkpCisgICAgICAgIG1fZGVjb2Rlci0+c2V0VGFyZ2V0Q29udGV4dCh0YXJnZXRD
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVNYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjIsNiArMjYyLDEwIEBAIE9wZW5UeXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERh
dGEoY29uc3QKICAgICBpZiAoIWhiX290X21hdGhfaGFzX2RhdGEoaGJfZm9udF9nZXRfZmFjZSht
X21hdGhGb250LmdldCgpKSkpCiAgICAgICAgIG1fbWF0aEZvbnQgPSBudWxscHRyOwogfQorI2Vs
aWYgVVNFKERJUkVDVDJEKQorT3BlblR5cGVNYXRoRGF0YTo6T3BlblR5cGVNYXRoRGF0YShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBmb250KQoreworfQogI2Vsc2UKIE9wZW5UeXBlTWF0aERhdGE6
Ok9wZW5UeXBlTWF0aERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpID0gZGVmYXVsdDsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVm
ZmVyRGF0YURpcmVjdDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGF0YURpcmVjdDJELmgJKHJldmlzaW9uIDIzNzIyMCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFE
aXJlY3QyRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDYgKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorI3ByYWdtYSBvbmNlCisKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVj
dDJELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ltYWdlRGVjb2RlckRpcmVjdDJELmgJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZURlY29kZXJEaXJlY3QyRC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNN
ZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUpIHsgcmV0dXJuIHR5cGUgPT0gTWVkaWFUeXBlOjpJbWFn
ZTsgfQogCi0gICAgc3RhdGljIHNpemVfdCBieXRlc0RlY29kZWRUb0RldGVybWluZVByb3BlcnRp
ZXMoKTsKKyAgICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29u
c3QgZmluYWw7CiAKICAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBmaW5hbDsK
ICAgICBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0YVN0YXR1cygpIGNvbnN0IGZpbmFsOwpA
QCAtNjYsMTIgKzY2LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGZyYW1lSXNDb21wbGV0ZUF0SW5k
ZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50
YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAKLSAgICBmbG9hdCBmcmFtZUR1cmF0
aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdB
dEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5k
ZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkg
Y29uc3QgZmluYWw7CiAKLSAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRl
eChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBj
b25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVjb2RpbmdPcHRpb25zKERlY29kaW5nTW9kZTo6U3lu
Y2hyb25vdXMpKSBjb25zdCBmaW5hbDsKKyAgICBOYXRpdmVJbWFnZVB0ciBjcmVhdGVGcmFtZUlt
YWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpE
ZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVjb2RpbmdPcHRpb25zKERlY29kaW5n
TW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZm
ZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7CiAgICAgYm9vbCBpc0FsbERhdGFSZWNl
aXZlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNBbGxEYXRhUmVjZWl2ZWQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353044</attachid>
            <date>2018-10-24 11:06:15 -0700</date>
            <delta_ts>2018-10-24 11:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190875-20181024110609.patch</filename>
            <type>text/plain</type>
            <size>43057</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzM4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDk4IEBACisyMDE4LTEwLTI0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEN1cmUgV2luZG93cyBEaXJl
Y3QyRCBCYWNrZW5kIG9mIGEgbmFzdHkgY2FzZSBvZiBiaXRyb3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDg3NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDU1MjMyNjg+CisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgRGlyZWN0MkQgYmFja2VuZCBoYXMgZHJpZnRlZCBvdXQgb2Yg
ZGF0ZSB3aXRoIHRoZSByZXN0IG9mIFdlYktpdC4KKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVz
IHRoaW5ncyBzbyB3ZSBjYW4gZ2V0IGEgcnVubmFibGUgYnVpbGQuCisgICAgICAgIAorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlOjpzZXRUYXJnZXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9wZW5U
eXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERhdGEpOiBOZWVkIG5vbi1kZWZhdWx0IGNvbnN0cnVj
dG9yIHRvIG1ha2UgVmlzdWFsCisgICAgICAgIFN0dWRpbyBoYXBweS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhZGllbnREaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFkaWVudDo6Z2VuZXJhdGVHcmFkaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDogVXBkYXRlIGZvciBuZXcgZGlzcGxh
eSBsaXN0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlOjpzZXRBbHBoYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OnNhdmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZp
bGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwUGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpiZWdpblBsYXRmb3JtVHJhbnNwYXJlbmN5TGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjplbmRQbGF0Zm9ybVRyYW5zcGFyZW5jeUxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0TGluZURhc2gpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzZXRMaW5lSm9pbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm90YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6c2V0Q1RNKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
Z2V0Q1RNIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cm91bmRU
b0RldmljZVBpeGVscyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lc0ZvclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRVUkxG
b3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0SXNDQUxheWVy
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmlzQ0FMYXllckNv
bnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRJc0Fj
Y2VsZXJhdGVkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6Omlz
QWNjZWxlcmF0ZWRDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaG91bGRBbnRpYWxpYXMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNob3VsZFNtb290aEZvbnRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZpbGxFbGxpcHNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1TdHJva2VFbGxpcHNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NMYXllckRpcmVjdDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZl
ckRhdGFEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlckRhdGE6OnB1
dERhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFE
aXJlY3QyRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRp
cmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRp
YmxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVjdDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRU
b0RldGVybWluZVByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmVuY29kZWREYXRhU3RhdHVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlRGVjb2RlckRpcmVjdDJEOjpyZXBldGl0aW9uQ291bnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpmcmFtZUR1cmF0
aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJEaXJlY3Qy
RDo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVIYXNBbHBoYUF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdElu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpzZXREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckRpcmVjdDJEOjpieXRlc0RlY29kZWRUb0Rl
dGVybWluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEZWNvZGVyRGlyZWN0MkQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEaXJlY3QyRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0dGVybkRpcmVjdDJELmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhdHRlcm46OmNyZWF0ZVBsYXRmb3JtUGF0dGVybiBjb25zdCk6CisKIDIw
MTgtMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbUFNP
Tl0gV2hlbiBuYXZpZ2F0aW5nIGJhY2sgYW5kIGZvcnRoLCAnYWJvdXQ6YmxhbmsnIHNob3dzIHVw
IGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaAkocmV2aXNpb24gMjM3MjIwKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBQ
aW9uZWVyIFJlc2VhcmNoIENlbnRlciBVU0EsIEluYy4KQEAgLTYzLDYgKzYzLDEwIEBAIGludGVy
ZmFjZSBJRFdyaXRlRm9udDsKIGludGVyZmFjZSBJRFdyaXRlRm9udEZhY2U7CiAjZW5kaWYKIAor
I2lmIFVTRShESVJFQ1QyRCkKKyNpbmNsdWRlIDxkd3JpdGUuaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZvbnREZXNjcmlwdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAJKHJldmlzaW9uIDIz
NzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDEwICs0OCwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyCiB9CiAKICNpZiBVU0UoRElSRUNUMkQp
Ci1zdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyOjpjcmVhdGUoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNw
YWNlIGNvbG9yU3BhY2UpCitzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVy
OjpjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIGNvbnN0IEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3cpCiB7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgdGFyZ2V0Q29udGV4dCwgc3VjY2VzcykpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKG5ldyBJbWFnZUJ1ZmZlcihzaXpl
LCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIGhvc3RXaW5kb3cs
IHRhcmdldENvbnRleHQsIHN1Y2Nlc3MpKTsKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBidWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHJldmlzaW9uIDIzNzIyMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNy0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENvLiBMdGQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICAv
LyBXaWxsIHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9
IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxs
cHRyKTsKICNpZiBVU0UoRElSRUNUMkQpCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJlbmRlcmlu
Z01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEs
IENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYsIFJl
bmRlcmluZ01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGZsb2F0IHJlc29sdXRpb25TY2Fs
ZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlU1JHQiwgY29uc3QgSG9zdFdpbmRvdyogPSBu
dWxscHRyKTsKICNlbmRpZgogCiAgICAgLy8gQ3JlYXRlIGFuIGltYWdlIGJ1ZmZlciBjb21wYXRp
YmxlIHdpdGggdGhlIGNvbnRleHQsIHdpdGggc3VpdGFibGUgcmVzb2x1dGlvbiBmb3IgZHJhd2lu
ZyBpbnRvIHRoZSBidWZmZXIgYW5kIHRoZW4gaW50byB0aGlzIGNvbnRleHQuCkBAIC0xNzAsNyAr
MTcwLDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcGFjZVJlZiwgUmVuZGVyaW5nTW9kZSwgY29uc3Qg
SG9zdFdpbmRvdyosIGJvb2wmIHN1Y2Nlc3MpOwogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IHRv
Q0ZEYXRhKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBxdWFs
aXR5LCBQcmVzZXJ2ZVJlc29sdXRpb24pIGNvbnN0OwogI2VsaWYgVVNFKERJUkVDVDJEKQotICAg
IEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3Vj
Y2Vzcyk7CisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlv
blNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBIb3N0V2luZG93KiwgY29u
c3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCYgc3VjY2Vzcyk7CiAjZW5kaWYKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCShy
ZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw2ICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzQWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSA9IDA7CiAKKyNpZiBVU0UoRElSRUNUMkQp
CisgICAgdmlydHVhbCB2b2lkIHNldFRhcmdldENvbnRleHQoSUQyRDFSZW5kZXJUYXJnZXQqKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEltYWdlRGVjb2RlcigpID0gZGVmYXVsdDsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwCShyZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5o
PgogCisjaWYgVVNFKERJUkVDVDJEKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSW1hZ2VTb3VyY2U6OkltYWdlU291cmNlKEJp
dG1hcEltYWdlKiBpbWFnZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQpAQCAtNjM4LDcgKzY0Miw3
IEBAIEltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6OmZyYW1lT3JpZW4KIHZvaWQgSW1hZ2VT
b3VyY2U6OnNldFRhcmdldENvbnRleHQoY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250
ZXh0KQogewogICAgIGlmIChpc0RlY29kZXJBdmFpbGFibGUoKSAmJiB0YXJnZXRDb250ZXh0KQot
ICAgICAgICBtX2RlY29kZXItPnNldFRhcmdldENvbnRleHQodGFyZ2V0Q29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCkpCisgICAgICAgIG1fZGVjb2Rlci0+c2V0VGFyZ2V0Q29udGV4dCh0YXJnZXRD
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3Bl
blR5cGVNYXRoRGF0YS5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjIsNiArMjYyLDEwIEBAIE9wZW5UeXBlTWF0aERhdGE6Ok9wZW5UeXBlTWF0aERh
dGEoY29uc3QKICAgICBpZiAoIWhiX290X21hdGhfaGFzX2RhdGEoaGJfZm9udF9nZXRfZmFjZSht
X21hdGhGb250LmdldCgpKSkpCiAgICAgICAgIG1fbWF0aEZvbnQgPSBudWxscHRyOwogfQorI2Vs
aWYgVVNFKERJUkVDVDJEKQorT3BlblR5cGVNYXRoRGF0YTo6T3BlblR5cGVNYXRoRGF0YShjb25z
dCBGb250UGxhdGZvcm1EYXRhJiBmb250KQoreworfQogI2Vsc2UKIE9wZW5UeXBlTWF0aERhdGE6
Ok9wZW5UeXBlTWF0aERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpID0gZGVmYXVsdDsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYWRpZW50
RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFkaWVudERpcmVjdDJELmNwcAkocmV2aXNpb24gMjM3MjIwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYWRpZW50RGlyZWN0MkQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTgg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIEdyYWRpZW50OjpnZW5lcmF0ZUdyYWRpZW50
KElEMkQxUmVuCiAgICAgICAgICAgICBmbG9hdCByYWRpdXNYID0gZGF0YS5lbmRSYWRpdXMgKyBv
ZmZzZXQud2lkdGgoKTsKICAgICAgICAgICAgIGZsb2F0IHJhZGl1c1kgPSByYWRpdXNYIC8gZGF0
YS5hc3BlY3RSYXRpbzsKICAgICAgICAgICAgIGhyID0gcmVuZGVyVGFyZ2V0LT5DcmVhdGVSYWRp
YWxHcmFkaWVudEJydXNoKAotICAgICAgICAgICAgICAgIEQyRDE6OlJhZGlhbEdyYWRpZW50QnJ1
c2hQcm9wZXJ0aWVzKHAwKCksIEQyRDE6OlBvaW50MkYob2Zmc2V0LndpZHRoKCksIG9mZnNldC5o
ZWlnaHQoKSksIHJhZGl1c1gsIHJhZGl1c1kpLAorICAgICAgICAgICAgICAgIEQyRDE6OlJhZGlh
bEdyYWRpZW50QnJ1c2hQcm9wZXJ0aWVzKGRhdGEucG9pbnQwLCBEMkQxOjpQb2ludDJGKG9mZnNl
dC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpLCByYWRpdXNYLCByYWRpdXNZKSwKICAgICAgICAg
ICAgICAgICBEMkQxOjpCcnVzaFByb3BlcnRpZXMoKSwgZ3JhZGllbnRTdG9wQ29sbGVjdGlvbi5n
ZXQoKSwKICAgICAgICAgICAgICAgICAmcmFkaWFsR3JhZGllbnQpOwogICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoU1VDQ0VFREVEKGhyKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJl
Y3QyRC5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTc4
LDcgKzE3OCw3IEBAIGZsb2F0IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6Y3UKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSgpCiB7CiAgICAgQVNTRVJUKCFw
YWludGluZ0Rpc2FibGVkKCkpOwotICAgIEFTU0VSVCghaXNSZWNvcmRpbmcoKSk7CisgICAgQVNT
RVJUKCFtX2ltcGwpOwogCiAgICAgLy8gTm90ZTogRG8gbm90IHVzZSB0aGlzIGZ1bmN0aW9uIHdp
dGhpbiB0aGlzIGNsYXNzIGltcGxlbWVudGF0aW9uLCBzaW5jZSB3ZSB3YW50IHRvIGF2b2lkIHRo
ZSBleHRyYQogICAgIC8vIHNhdmUgb2YgdGhlIHNlY29uZGFyeSBjb250ZXh0IChpbiBHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGVEaXJlY3QyRC5oKS4KQEAgLTE4OCw3ICsxODgsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRmb3JtU3RhdGUoCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6cmVzdG9yZVBsYXRmb3JtU3RhdGUoKQogewogICAgIEFTU0VSVCghcGFpbnRpbmdEaXNh
YmxlZCgpKTsKLSAgICBBU1NFUlQoIWlzUmVjb3JkaW5nKCkpOworICAgIEFTU0VSVCghbV9pbXBs
KTsKIAogICAgIC8vIE5vdGU6IERvIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiB3aXRoaW4gdGhpcyBj
bGFzcyBpbXBsZW1lbnRhdGlvbiwgc2luY2Ugd2Ugd2FudCB0byBhdm9pZCB0aGUgZXh0cmEKICAg
ICAvLyByZXN0b3JlIG9mIHRoZSBzZWNvbmRhcnkgY29udGV4dCAoaW4gR3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlRGlyZWN0MkQuaCkuCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShjbwogICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1JlY29yZGluZygpKSB7CisgICAgaWYg
KG1faW1wbCkgewogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IERpc3BsYXlMaXN0UmVjb3Jk
ZXIgc3VwcG9ydCBmb3IgZHJhd05hdGl2ZUltYWdlLgogICAgICAgICAvLyBtX2Rpc3BsYXlMaXN0
UmVjb3JkZXItPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3Jj
UmVjdCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pOwogICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwpAQCAtNTUxLDggKzU1MSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVy
bihJbWFnZSYKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFwYXR0ZXJuVHJhbnNmb3Jt
LmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaXNSZWNvcmRpbmco
KSkgewotICAgICAgICBtX2Rpc3BsYXlMaXN0UmVjb3JkZXItPmRyYXdQYXR0ZXJuKGltYWdlLCBk
ZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwg
YmxlbmRNb2RlKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+ZHJhd1BhdHRl
cm4oaW1hZ2UsIGRlc3RSZWN0LCB0aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNw
YWNpbmcsIG9wLCBibGVuZE1vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02MTgs
OCArNjE4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsbwogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1Jl
Y29yZGluZygpKSB7Ci0gICAgICAgIG1fZGlzcGxheUxpc3RSZWNvcmRlci0+ZHJhd1JlY3QocmVj
dCwgYm9yZGVyVGhpY2tuZXNzKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+
ZHJhd1JlY3QocmVjdCwgYm9yZGVyVGhpY2tuZXNzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNzg5LDggKzc4OSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZShjb25z
dCBGbG8KICAgICBpZiAoc3Ryb2tlU3R5bGUoKSA9PSBOb1N0cm9rZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29y
ZGVyLT5kcmF3TGluZShwb2ludDEsIHBvaW50Mik7CisgICAgaWYgKG1faW1wbCkgeworICAgICAg
ICBtX2ltcGwtPmRyYXdMaW5lKHBvaW50MSwgcG9pbnQyKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtODQ3LDggKzg0Nyw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RWxsaXBz
ZShjb25zdAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChpc1JlY29yZGluZygpKSB7Ci0gICAgICAgIG1fZGlzcGxheUxpc3RSZWNvcmRlci0+
ZHJhd0VsbGlwc2UocmVjdCk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRy
YXdFbGxpcHNlKHJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04OTQsOCArODk0
LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdAogICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkgfHwgcGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChpc1JlY29yZGluZygpKSB7Ci0gICAgICAgIG1fZGlzcGxheUxpc3RSZWNvcmRlci0+
ZHJhd1BhdGgocGF0aCk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmRyYXdQ
YXRoKHBhdGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDAyLDggKzEwMDIsOCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0CiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSB8fCBwYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5maWxs
UGF0aChwYXRoKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+ZmlsbFBhdGgo
cGF0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwMjMsNyArMTAyMyw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aChjb25zdCBQYXQKICAgICAgICAgY29udGV4dC0+
U2V0VGFncygxLCBfX0xJTkVfXyk7CiAKICAgICAgICAgRmxvYXRSZWN0IGJvdW5kaW5nUmVjdCA9
IHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpOwotICAgICAgICBhdXRvIGRyYXdGdW5jdGlvbiA9IFt0
aGlzLCAmcGF0aF0oSUQyRDFSZW5kZXJUYXJnZXQqIHJlbmRlclRhcmdldCkgeworICAgICAgICBX
VEY6OkZ1bmN0aW9uPHZvaWQoSUQyRDFSZW5kZXJUYXJnZXQqKT4gZHJhd0Z1bmN0aW9uID0gW3Ro
aXMsICZwYXRoXShJRDJEMVJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0KSB7CiAgICAgICAgICAg
ICByZW5kZXJUYXJnZXQtPkZpbGxHZW9tZXRyeShwYXRoLnBsYXRmb3JtUGF0aCgpLCBtX3N0YXRl
LmZpbGxHcmFkaWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFkaWVudElmTmVjZXNzYXJ5KHJlbmRlclRh
cmdldCkpOwogICAgICAgICB9OwogCkBAIC0xMDU2LDggKzEwNTYsOCBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c3Ryb2tlUGF0aChjb25zdCBQCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8
fCBwYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5n
KCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5zdHJva2VQYXRoKHBhdGgpOwor
ICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5zdHJva2VQYXRoKHBhdGgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c3Ryb2tlUGF0aChjb25zdCBQCiAKICAgICAgICAgRDJEQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcigqbV9kYXRhKTsKICAgICAgICAgYXV0byBib3VuZGluZ1JlY3QgPSBwYXRo
LmZhc3RCb3VuZGluZ1JlY3QoKTsKLSAgICAgICAgYXV0byBkcmF3RnVuY3Rpb24gPSBbdGhpcywg
JnBhdGhdKElEMkQxUmVuZGVyVGFyZ2V0KiByZW5kZXJUYXJnZXQpIHsKKyAgICAgICAgV1RGOjpG
dW5jdGlvbjx2b2lkKElEMkQxUmVuZGVyVGFyZ2V0Kik+IGRyYXdGdW5jdGlvbiA9IFt0aGlzLCAm
cGF0aF0oSUQyRDFSZW5kZXJUYXJnZXQqIHJlbmRlclRhcmdldCkgewogICAgICAgICAgICAgcmVu
ZGVyVGFyZ2V0LT5EcmF3R2VvbWV0cnkocGF0aC5wbGF0Zm9ybVBhdGgoKSwgbV9zdGF0ZS5zdHJv
a2VHcmFkaWVudC0+Y3JlYXRlUGxhdGZvcm1HcmFkaWVudElmTmVjZXNzYXJ5KHJlbmRlclRhcmdl
dCkpOwogICAgICAgICB9OwogCkBAIC0xMTAxLDggKzExMDEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNw
bGF5TGlzdFJlY29yZGVyLT5maWxsUmVjdChyZWN0KTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAg
ICAgIG1faW1wbC0+ZmlsbFJlY3QocmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTExMTEsNyArMTExMSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBG
bG8KICAgICBpZiAobV9zdGF0ZS5maWxsR3JhZGllbnQpIHsKICAgICAgICAgY29udGV4dC0+U2V0
VGFncygxLCBfX0xJTkVfXyk7CiAgICAgICAgIEQyRENvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoKm1fZGF0YSk7Ci0gICAgICAgIGF1dG8gZHJhd0Z1bmN0aW9uID0gW3RoaXMsIHJlY3RdKElE
MkQxUmVuZGVyVGFyZ2V0KiByZW5kZXJUYXJnZXQpIHsKKyAgICAgICAgV1RGOjpGdW5jdGlvbjx2
b2lkKElEMkQxUmVuZGVyVGFyZ2V0Kik+IGRyYXdGdW5jdGlvbiA9IFt0aGlzLCByZWN0XShJRDJE
MVJlbmRlclRhcmdldCogcmVuZGVyVGFyZ2V0KSB7CiAgICAgICAgICAgICBjb25zdCBEMkQxX1JF
Q1RfRiBkMmRSZWN0ID0gcmVjdDsKICAgICAgICAgICAgIHJlbmRlclRhcmdldC0+RmlsbFJlY3Rh
bmdsZSgmZDJkUmVjdCwgbV9zdGF0ZS5maWxsR3JhZGllbnQtPmNyZWF0ZVBsYXRmb3JtR3JhZGll
bnRJZk5lY2Vzc2FyeShyZW5kZXJUYXJnZXQpKTsKICAgICAgICAgfTsKQEAgLTExNDgsOCArMTE0
OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8KICAgICBpZiAo
cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaXNSZWNvcmRp
bmcoKSkgewotICAgICAgICBtX2Rpc3BsYXlMaXN0UmVjb3JkZXItPmZpbGxSZWN0KHJlY3QsIGNv
bG9yKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+ZmlsbFJlY3QocmVjdCwg
Y29sb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTc2LDcgKzExNzYsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1GaWxsUm91bmRlCiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCFpc1JlY29yZGluZygp
KTsKKyAgICBBU1NFUlQoIW1faW1wbCk7CiAKICAgICBhdXRvIGNvbnRleHQgPSBwbGF0Zm9ybUNv
bnRleHQoKTsKIApAQCAtMTIxNyw4ICsxMjE3LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZp
bGxSZWN0V2l0aFJvdW5kZQogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChpc1JlY29yZGluZygpKSB7Ci0gICAgICAgIG1fZGlzcGxheUxpc3RS
ZWNvcmRlci0+ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUocmVjdCwgcm91bmRlZEhvbGVSZWN0LCBj
b2xvcik7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmZpbGxSZWN0V2l0aFJv
dW5kZWRIb2xlKHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgY29sb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMjY0LDggKzEyNjQsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xp
cChjb25zdCBGbG9hdFJlCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJl
Y29yZGVyLT5jbGlwKHJlY3QpOworICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5j
bGlwKHJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjc3LDggKzEyNzcsOCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dChjb25zdCBGbG9hCiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkp
IHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5jbGlwT3V0KHJlY3QpOworICAgIGlm
IChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5jbGlwT3V0KHJlY3QpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xMjkzLDggKzEyOTMsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
Y2xpcE91dChjb25zdCBQYXRoCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlz
dFJlY29yZGVyLT5jbGlwT3V0KHBhdGgpOworICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9p
bXBsLT5jbGlwT3V0KHBhdGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzE4LDgg
KzEzMTgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFBhdGgoY29uc3QgUGF0CiAgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVj
b3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5jbGlwUGF0aChwYXRo
LCBjbGlwUnVsZSk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPmNsaXBQYXRo
KHBhdGgsIGNsaXBSdWxlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM0MCw3ICsx
MzQwLDcgQEAgSW50UmVjdCBHcmFwaGljc0NvbnRleHQ6OmNsaXBCb3VuZHMoKSBjbwogICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKLSAgICBp
ZiAoaXNSZWNvcmRpbmcoKSkgeworICAgIGlmIChtX2ltcGwpIHsKICAgICAgICAgV1RGTG9nQWx3
YXlzKCJHZXR0aW5nIHRoZSBjbGlwIGJvdW5kcyBub3QgeWV0IHN1cHBvcnRlZCB3aXRoIGRpc3Bs
YXkgbGlzdHMiKTsKICAgICAgICAgcmV0dXJuIEludFJlY3QoLTIwNDgsIC0yMDQ4LCA0MDk2LCA0
MDk2KTsgLy8gRklYTUU6IGRpc3BsYXkgbGlzdHMuCiAgICAgfQpAQCAtMTM3NCw3ICsxMzc0LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmJlZ2luUGxhdGZvcm1UcmFucwogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghaXNSZWNvcmRp
bmcoKSk7CisgICAgQVNTRVJUKCFtX2ltcGwpOwogCiAgICAgc2F2ZSgpOwogCkBAIC0xNDIxLDcg
KzE0MjEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kUGxhdGZvcm1UcmFuc3BhCiAKICAg
ICBtX2RhdGEtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAKLSAgICBBU1NFUlQoIWlzUmVjb3Jk
aW5nKCkpOworICAgIEFTU0VSVCghbV9pbXBsKTsKIAogICAgIG1fc3RhdGUuYWxwaGEgPSBtX2Rh
dGEtPmN1cnJlbnRHbG9iYWxBbHBoYSgpOwogCkBAIC0xNDYxLDkgKzE0NjEsOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0TWl0ZXJMaW1pdChmbG9hCiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKKyAgICBp
ZiAobV9pbXBsKSB7CiAgICAgICAgIC8vIE1heWJlIHRoaXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhl
IHN0YXRlLgotICAgICAgICBtX2Rpc3BsYXlMaXN0UmVjb3JkZXItPnNldE1pdGVyTGltaXQobGlt
aXQpOworICAgICAgICBtX2ltcGwtPnNldE1pdGVyTGltaXQobGltaXQpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xNDc1LDggKzE0NzUsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
Y2xlYXJSZWN0KGNvbnN0IEZsCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlz
dFJlY29yZGVyLT5jbGVhclJlY3QocmVjdCk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBt
X2ltcGwtPmNsZWFyUmVjdChyZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUw
NCwxMyArMTUwNCwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdChjb25zdCBG
CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5zdHJva2VS
ZWN0KHJlY3QsIGxpbmVXaWR0aCk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwt
PnN0cm9rZVJlY3QocmVjdCwgbGluZVdpZHRoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGlmIChtX3N0YXRlLnN0cm9rZUdyYWRpZW50KSB7Ci0gICAgICAgIGF1dG8gZHJhd0Z1bmN0
aW9uID0gW3RoaXMsIHJlY3QsIGxpbmVXaWR0aF0oSUQyRDFSZW5kZXJUYXJnZXQqIHJlbmRlclRh
cmdldCkgeworICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoSUQyRDFSZW5kZXJUYXJnZXQqKT4g
ZHJhd0Z1bmN0aW9uID0gW3RoaXMsIHJlY3QsIGxpbmVXaWR0aF0oSUQyRDFSZW5kZXJUYXJnZXQq
IHJlbmRlclRhcmdldCkgewogICAgICAgICAgICAgcmVuZGVyVGFyZ2V0LT5TZXRUYWdzKDEsIF9f
TElORV9fKTsKICAgICAgICAgICAgIGNvbnN0IEQyRDFfUkVDVF9GIGQyZFJlY3QgPSByZWN0Owog
ICAgICAgICAgICAgcmVuZGVyVGFyZ2V0LT5EcmF3UmVjdGFuZ2xlKCZkMmRSZWN0LCBtX3N0YXRl
LnN0cm9rZUdyYWRpZW50LT5jcmVhdGVQbGF0Zm9ybUdyYWRpZW50SWZOZWNlc3NhcnkocmVuZGVy
VGFyZ2V0KSwgbGluZVdpZHRoLCBtX2RhdGEtPnN0cm9rZVN0eWxlKCkpOwpAQCAtMTUzOSw4ICsx
NTM5LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVDYXAoTGluZUNhcAogICAgIGlm
IChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1JlY29y
ZGluZygpKSB7Ci0gICAgICAgIG1fZGlzcGxheUxpc3RSZWNvcmRlci0+c2V0TGluZUNhcChjYXAp
OworICAgIGlmIChtX2ltcGwpIHsKKyAgICAgICAgbV9pbXBsLT5zZXRMaW5lQ2FwKGNhcCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE1NTIsOCArMTU1Miw4IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRMaW5lRGFzaChjb25zdAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1JlY29yZGluZygpKSB7Ci0gICAgICAgIG1f
ZGlzcGxheUxpc3RSZWNvcmRlci0+c2V0TGluZURhc2goZGFzaGVzLCBkYXNoT2Zmc2V0KTsKKyAg
ICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1wbC0+c2V0TGluZURhc2goZGFzaGVzLCBkYXNo
T2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTU3NCw4ICsxNTc0LDggQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2luKExpbmVKbwogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1JlY29yZGluZygpKSB7
Ci0gICAgICAgIG1fZGlzcGxheUxpc3RSZWNvcmRlci0+c2V0TGluZUpvaW4oam9pbik7CisgICAg
aWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPnNldExpbmVKb2luKGpvaW4pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNTkyLDggKzE1OTIsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2NhbGUoY29uc3QgRmxvYXRTCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNw
bGF5TGlzdFJlY29yZGVyLT5zY2FsZShzaXplKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAg
IG1faW1wbC0+c2NhbGUoc2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE2MDYs
OCArMTYwNiw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGUKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaXNS
ZWNvcmRpbmcoKSkgewotICAgICAgICBtX2Rpc3BsYXlMaXN0UmVjb3JkZXItPnJvdGF0ZShhbmds
ZSk7CisgICAgaWYgKG1faW1wbCkgeworICAgICAgICBtX2ltcGwtPnJvdGF0ZShhbmdsZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE2MjAsOCArMTYyMCw4IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaXNSZWNvcmRpbmcoKSkgewotICAgICAgICBt
X2Rpc3BsYXlMaXN0UmVjb3JkZXItPnRyYW5zbGF0ZSh4LCB5KTsKKyAgICBpZiAobV9pbXBsKSB7
CisgICAgICAgIG1faW1wbC0+dHJhbnNsYXRlKHgsIHkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xNjM0LDggKzE2MzQsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y29uY2F0Q1RN
KGNvbnN0IEFmCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKLSAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVy
LT5jb25jYXRDVE0odHJhbnNmb3JtKTsKKyAgICBpZiAobV9pbXBsKSB7CisgICAgICAgIG1faW1w
bC0+Y29uY2F0Q1RNKHRyYW5zZm9ybSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE2
NDgsNyArMTY0OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRDVE0oY29uc3QgQWZmaW4K
ICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
aXNSZWNvcmRpbmcoKSkgeworICAgIGlmIChtX2ltcGwpIHsKICAgICAgICAgV1RGTG9nQWx3YXlz
KCJHcmFwaGljc0NvbnRleHQ6OnNldENUTSgpIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcmVjb3Jk
aW5nIGNvbnRleHRzLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTY2Miw3ICsxNjYy
LDcgQEAgQWZmaW5lVHJhbnNmb3JtIEdyYXBoaWNzQ29udGV4dDo6Z2V0Q1RNKAogICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsKIAot
ICAgIGlmIChpc1JlY29yZGluZygpKSB7CisgICAgaWYgKG1faW1wbCkgewogICAgICAgICBXVEZM
b2dBbHdheXMoIkdyYXBoaWNzQ29udGV4dDo6Z2V0Q1RNKCkgaXMgbm90IHlldCBjb21wYXRpYmxl
IHdpdGggcmVjb3JkaW5nIGNvbnRleHRzLiIpOwogICAgICAgICByZXR1cm4gQWZmaW5lVHJhbnNm
b3JtKCk7CiAgICAgfQpAQCAtMTY3Nyw3ICsxNjc3LDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29u
dGV4dDo6cm91bmRUb0RldmljZQogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAg
IHJldHVybiByZWN0OwogCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpIHsKKyAgICBpZiAobV9pbXBs
KSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNl
UGl4ZWxzKCkgaXMgbm90IHlldCBjb21wYXRpYmxlIHdpdGggcmVjb3JkaW5nIGNvbnRleHRzLiIp
OwogICAgICAgICByZXR1cm4gcmVjdDsKICAgICB9CkBAIC0xNzAzLDggKzE3MDMsOCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChjCiAgICAgaWYgKCF3aWR0aHMuc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoaXNSZWNvcmRpbmcoKSkgewotICAgICAg
ICBtX2Rpc3BsYXlMaXN0UmVjb3JkZXItPmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHdpZHRocywg
cHJpbnRpbmcsIGRvdWJsZUxpbmVzLCBzdHJva2VUaGlja25lc3MoKSk7CisgICAgaWYgKG1faW1w
bCkgeworICAgICAgICBtX2ltcGwtPmRyYXdMaW5lc0ZvclRleHQocG9pbnQsIHdpZHRocywgcHJp
bnRpbmcsIGRvdWJsZUxpbmVzLCBzdHJva2VUaGlja25lc3MoKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTE3MTYsNyArMTcxNiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRV
UkxGb3JSZWN0KGNvbnMKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoaXNSZWNvcmRpbmcoKSkgeworICAgIGlmIChtX2ltcGwpIHsKICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJHcmFwaGljc0NvbnRleHQ6OnNldFVSTEZvclJlY3QoKSBpcyBub3Qg
eWV0IGNvbXBhdGlibGUgd2l0aCByZWNvcmRpbmcgY29udGV4dHMuIik7CiAgICAgICAgIHJldHVy
bjsgLy8gRklYTUUgZm9yIGRpc3BsYXkgbGlzdHMuCiAgICAgfQpAQCAtMTc1OSw3ICsxNzU5LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldElzQ0FMYXllckNvbnRleAogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1JlY29yZGluZygp
KQorICAgIGlmIChtX2ltcGwpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgcHJvYmFiYWx5IG5vdCBuZWVkZWQuCkBAIC0xNzcyLDcgKzE3NzIsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDo6aXNDQUxheWVyQ29udGV4dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIC8vIEZJWE1FCi0gICAgaWYgKGlzUmVjb3JkaW5nKCkpCisgICAgaWYgKG1faW1wbCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBwcm9iYWJh
bHkgbm90IG5lZWRlZC4KQEAgLTE3ODYsNyArMTc4Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRJc0FjY2VsZXJhdGVkQ28KICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUUKLSAg
ICBpZiAoaXNSZWNvcmRpbmcoKSkKKyAgICBpZiAobV9pbXBsKQogICAgICAgICByZXR1cm47CiAK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMTc5OCw3ICsxNzk4LDcgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQ6OmlzQWNjZWxlcmF0ZWRDb250ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBGSVhNRQotICAgIGlmIChpc1JlY29yZGluZygpKQorICAgIGlmIChtX2ltcGwpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgcHJvYmFiYWx5IG5v
dCBuZWVkZWQuCkBAIC0xODQxLDcgKzE4NDEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaG91bGRBCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKCFpc1JlY29yZGluZygpKTsKKyAgICBBU1NFUlQoIW1faW1wbCk7
CiAKICAgICBhdXRvIGFudGlhbGlhc01vZGUgPSBlbmFibGUgPyBEMkQxX0FOVElBTElBU19NT0RF
X1BFUl9QUklNSVRJVkUgOiBEMkQxX0FOVElBTElBU19NT0RFX0FMSUFTRUQ7CiAgICAgcGxhdGZv
cm1Db250ZXh0KCktPlNldEFudGlhbGlhc01vZGUoYW50aWFsaWFzTW9kZSk7CkBAIC0xODUyLDcg
KzE4NTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaG91bGRTCiAgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCFp
c1JlY29yZGluZygpKTsKKyAgICBBU1NFUlQoIW1faW1wbCk7CiAKICAgICBhdXRvIGZvbnRTbW9v
dGhpbmdNb2RlID0gZW5hYmxlID8gRDJEMV9URVhUX0FOVElBTElBU19NT0RFX0NMRUFSVFlQRSA6
IEQyRDFfVEVYVF9BTlRJQUxJQVNfTU9ERV9BTElBU0VEOwogICAgIHBsYXRmb3JtQ29udGV4dCgp
LT5TZXRUZXh0QW50aWFsaWFzTW9kZShmb250U21vb3RoaW5nTW9kZSk7CkBAIC0xODcyLDcgKzE4
NzIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1Db21wb3NpCiAgICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKCFpc1Jl
Y29yZGluZygpKTsKKyAgICBBU1NFUlQoIW1faW1wbCk7CiAKICAgICBEMkQxX0JMRU5EX01PREUg
dGFyZ2V0QmxlbmRNb2RlID0gRDJEMV9CTEVORF9NT0RFX1NDUkVFTjsKICAgICBEMkQxX0NPTVBP
U0lURV9NT0RFIHRhcmdldENvbXBvc2l0ZU1vZGUgPSBEMkQxX0NPTVBPU0lURV9NT0RFX1NPVVJD
RV9BVE9QOyAvLyA/Pz8KQEAgLTE5OTQsNyArMTk5NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpwbGF0Zm9ybUZpbGxFbGxpcHMKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBBU1NFUlQoIWlzUmVjb3JkaW5nKCkpOworICAgIEFTU0VSVCghbV9p
bXBsKTsKIAogICAgIGlmIChtX3N0YXRlLmZpbGxHcmFkaWVudCB8fCBtX3N0YXRlLmZpbGxQYXR0
ZXJuKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBmaWxsIGVsbGlw
c2VzIHdpdGggcGF0dGVybi9ncmFkaWVudCBicnVzaGVzIGluIEQyRC4KQEAgLTIwMTYsNyArMjAx
Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybVN0cm9rZUVsbGkKICAgICBpZiAo
cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIWlzUmVj
b3JkaW5nKCkpOworICAgIEFTU0VSVCghbV9pbXBsKTsKIAogICAgIGlmIChtX3N0YXRlLnN0cm9r
ZUdyYWRpZW50IHx8IG1fc3RhdGUuc3Ryb2tlUGF0dGVybikgewogICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGJlIGFibGUgdG8gc3Ryb2tlIGVsbGlwc2VzIHdpdGggcGF0dGVybi9ncmFkaWVu
dCBicnVzaGVzIGluIEQyRC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HcmFwaGljc0xheWVyRGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0xheWVyRGlyZWN0MkQuY3BwCShyZXZp
c2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3Jh
cGhpY3NMYXllckRpcmVjdDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxMCArNTMsOSBAQCBSZWY8
R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlCiAgICAgICAgIGxheWVyLT5pbml0
aWFsaXplKGxheWVyVHlwZSk7CiAgICAgICAgIHJldHVybiBsYXllcjsKICAgICB9Ci0gICAgCi0g
ICAgYXV0byBsYXllciA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NMYXllckNBKGxheWVyVHlwZSwg
Y2xpZW50KTsKLSAgICBsYXllci0+aW5pdGlhbGl6ZShsYXllclR5cGUpOwotICAgIHJldHVybiBs
YXllcjsKKworICAgIC8vIEZJWE1FOiBSZXR1cm4gYSByZWFsIERpcmVjdDJEIGdyYXBoaWNzIGxh
eWVyCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NMYXllckRpcmVjdDJEKGxheWVy
VHlwZSwgY2xpZW50KSk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJEaXJlY3QyRDo6R3JhcGhpY3NMYXll
ckRpcmVjdDJEKFR5cGUgbGF5ZXJUeXBlLCBHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEYXRh
RGlyZWN0MkQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJlY3QyRC5jcHAJKHJldmlzaW9uIDIzNzIyMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRhdGFEaXJl
Y3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSW1hZ2VCdWZmZXJE
YXRhOjpwdXREYXRhKGNvbnN0IFVpbnQKICAgICAgICAgICAgICAgICByb3dbYmFzZXggKyAyXSA9
IChzcmNSb3dzW2Jhc2V4ICsgMl0gKiBhbHBoYSArIDI1NCkgLyAyNTU7CiAgICAgICAgICAgICAg
ICAgcm93W2Jhc2V4ICsgM10gPSBhbHBoYTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihyb3cuZ2V0KCkgKyBiYXNleClbMF0g
PSByZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4oc3JjUm93cyArIGJhc2V4KVswXTsKKyAgICAg
ICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4ocm93LmdldCgpICsgYmFzZXgp
WzBdID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KHNyY1Jvd3MgKyBiYXNleClb
MF07CiAgICAgICAgIH0KIAogICAgICAgICBEMkQxX1JFQ1RfVSBkc3RSZWN0ID0gRDJEMTo6UmVj
dFUoZGVzdFBvaW50LngoKSwgZGVzdFBvaW50LnkoKSArIHksIGRlc3RQb2ludC54KCkgKyBzaXpl
LndpZHRoKCksIGRlc3RQb2ludC55KCkgKyB5ICsgMSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEYXRhRGlyZWN0MkQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEYXRh
RGlyZWN0MkQuaAkocmV2aXNpb24gMjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGF0YURpcmVjdDJELmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
NiArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjcHJhZ21hIG9uY2UKKwogI2luY2x1
ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQuY3BwCShy
ZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
SW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjIsNyArNjIsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyCiAgICAgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlID0gY29udGV4dC5yZW5kZXJpbmdNb2RlKCk7CiAgICAgSW50U2l6ZSBzY2Fs
ZWRTaXplID0gSW1hZ2VCdWZmZXI6OmNvbXBhdGlibGVCdWZmZXJTaXplKHNpemUsIGNvbnRleHQp
OwogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gYnVmZmVyKG5ldyBJbWFnZUJ1ZmZlcihzY2FsZWRTaXplLCAxLCBDb2xvclNwYWNlU1JH
QiwgcmVuZGVyaW5nTW9kZSwgJmNvbnRleHQsIHN1Y2Nlc3MpKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihuZXcgSW1hZ2VCdWZmZXIoc2NhbGVkU2l6ZSwgMSwgQ29s
b3JTcGFjZVNSR0IsIHJlbmRlcmluZ01vZGUsIG51bGxwdHIsICZjb250ZXh0LCBzdWNjZXNzKSk7
CiAKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNzIsNyAr
NzIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IEltYWdlQnVmZmVyCiAgICAgcmV0
dXJuIGJ1ZmZlcjsKIH0KIAotSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6
ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlIC8qY29sb3JTcGFjZSov
LCBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCogdGFy
Z2V0Q29udGV4dCwgYm9vbCYgc3VjY2VzcykKK0ltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSAvKmNv
bG9yU3BhY2UqLywgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBjb25zdCBIb3N0V2luZG93
KiwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250ZXh0LCBib29sJiBzdWNjZXNzKQog
ICAgIDogbV9sb2dpY2FsU2l6ZShzaXplKQogICAgICwgbV9yZXNvbHV0aW9uU2NhbGUocmVzb2x1
dGlvblNjYWxlKQogewpAQCAtMTE1LDggKzExNSw4IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZl
cihjb25zdCBGbG9hdFNpemUKICAgICBzdWNjZXNzID0gdHJ1ZTsKIH0KIAotSW1hZ2VCdWZmZXI6
OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2Rl
LCBib29sJiBzdWNjZXNzKQotICAgIDogSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBpbWFnZUNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIG51bGxwdHIsIHN1Y2Nlc3MpCitJbWFn
ZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0
aW9uU2NhbGUsIENvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlIHJlbmRl
cmluZ01vZGUsIGNvbnN0IEhvc3RXaW5kb3cqLCBib29sJiBzdWNjZXNzKQorICAgIDogSW1hZ2VC
dWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBpbWFnZUNvbG9yU3BhY2UsIHJlbmRlcmluZ01v
ZGUsIG51bGxwdHIsIG51bGxwdHIsIHN1Y2Nlc3MpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZURlY29kZXJEaXJlY3QyRC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2Rl
ckRpcmVjdDJELmNwcAkocmV2aXNpb24gMjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ltYWdlRGVjb2RlckRpcmVjdDJELmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
Niw3ICs1Niw3IEBAIElXSUNJbWFnaW5nRmFjdG9yeSogSW1hZ2VEZWNvZGVyRGlyZWN0MkQKICAg
ICByZXR1cm4gd2ljSW1hZ2luZ0ZhY3Rvcnk7CiB9CiAKLXNpemVfdCBJbWFnZURlY29kZXJEaXJl
Y3QyRDo6Ynl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkKK3NpemVfdCBJbWFnZURl
Y29kZXJEaXJlY3QyRDo6Ynl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29uc3QK
IHsKICAgICAvLyBTZXQgdG8gbWF0Y2ggdmFsdWUgdXNlZCBmb3IgQ29yZUdyYXBoaWNzLgogICAg
IHJldHVybiAxMzA4ODsKQEAgLTc1LDggKzc1LDExIEBAIGJvb2wgSW1hZ2VEZWNvZGVyRGlyZWN0
MkQ6OmlzU2l6ZUF2YWlsYWIKIAogRW5jb2RlZERhdGFTdGF0dXMgSW1hZ2VEZWNvZGVyRGlyZWN0
MkQ6OmVuY29kZWREYXRhU3RhdHVzKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsKKyAgICBpZiAoIW1fbmF0aXZl
RGVjb2RlcikKKyAgICAgICAgcmV0dXJuIEVuY29kZWREYXRhU3RhdHVzOjpFcnJvcjsKKworICAg
IC8vIEZJWE1FOiBIb29rIGludG8gV0lDIGRlY29kZXIgKGlmIGFzeW5jIGRlY29kZSBpcyBldmVu
IHBvc3NpYmxlKQorICAgIHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6Q29tcGxldGU7CiB9CiAK
IEludFNpemUgSW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OnNpemUoKSBjb25zdApAQCAtMTEyLDYgKzEx
NSwxMCBAQCBzaXplX3QgSW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmZyYW1lQ291bnQoCiAKIFJlcGV0
aXRpb25Db3VudCBJbWFnZURlY29kZXJEaXJlY3QyRDo6cmVwZXRpdGlvbkNvdW50KCkgY29uc3QK
IHsKKyAgICBpZiAoIW1fbmF0aXZlRGVjb2RlcikKKyAgICAgICAgcmV0dXJuIFJlcGV0aXRpb25D
b3VudE5vbmU7CisKKyAgICAvLyBGSVhNRTogSWRlbnRpZnkgaW1hZ2UgdHlwZSwgYW5kIGRldGVy
bWluZSBwcm9wZXIgcmVwZXRpdGlvbiBjb3VudC4KICAgICByZXR1cm4gUmVwZXRpdGlvbkNvdW50
Tm9uZTsKIH0KIApAQCAtMTUwLDI0ICsxNTcsNjQgQEAgYm9vbCBJbWFnZURlY29kZXJEaXJlY3Qy
RDo6ZnJhbWVJc0NvbXBsZQogCiBJbWFnZU9yaWVudGF0aW9uIEltYWdlRGVjb2RlckRpcmVjdDJE
OjpmcmFtZU9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIW1fbmF0aXZlRGVjb2RlcikKKyAgICAgICAgcmV0dXJu
IEltYWdlT3JpZW50YXRpb24oKTsKKworICAgIENPTVB0cjxJV0lDQml0bWFwRnJhbWVEZWNvZGU+
IGZyYW1lOworICAgIEhSRVNVTFQgaHIgPSBtX25hdGl2ZURlY29kZXItPkdldEZyYW1lKGluZGV4
LCAmZnJhbWUpOworICAgIGlmICghU1VDQ0VFREVEKGhyKSkKKyAgICAgICAgcmV0dXJuIEltYWdl
T3JpZW50YXRpb24oKTsKKworICAgIENPTVB0cjxJV0lDTWV0YWRhdGFRdWVyeVJlYWRlcj4gbWV0
YWRhdGE7CisgICAgaHIgPSBmcmFtZS0+R2V0TWV0YWRhdGFRdWVyeVJlYWRlcigmbWV0YWRhdGEp
OworICAgIGlmICghU1VDQ0VFREVEKGhyKSkKKyAgICAgICAgcmV0dXJuIEltYWdlT3JpZW50YXRp
b24oKTsKKworICAgIC8vIEZJWE1FOiBJZGVudGlmeSBpbWFnZSB0eXBlLCBhbmQgYXNrIHByb3Bl
ciBvcmllbnRhdGlvbi4KICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbigpOwogfQogCi1mbG9h
dCBJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4
KSBjb25zdAorU2Vjb25kcyBJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoc2l6ZV90IGluZGV4KSBjb25zdAogeworICAgIGlmICghbV9uYXRpdmVEZWNvZGVyKQorICAg
ICAgICByZXR1cm4gU2Vjb25kcygwKTsKKworICAgIENPTVB0cjxJV0lDQml0bWFwRnJhbWVEZWNv
ZGU+IGZyYW1lOworICAgIEhSRVNVTFQgaHIgPSBtX25hdGl2ZURlY29kZXItPkdldEZyYW1lKGlu
ZGV4LCAmZnJhbWUpOworICAgIGlmICghU1VDQ0VFREVEKGhyKSkKKyAgICAgICAgcmV0dXJuIFNl
Y29uZHMoMCk7CisKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBjb3JyZWN0IGltYWdlIGZvcm1h
dC1zcGVjaWZpYyBxdWVyeSBmb3IgZnJhbWUgZHVyYXRpb24gY2hlY2suCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gU2Vjb25kcygwKTsKIH0KIAotYm9v
bCBJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXpl
X3QpIGNvbnN0Citib29sIEltYWdlRGVjb2RlckRpcmVjdDJEOjpmcmFtZUFsbG93U3Vic2FtcGxp
bmdBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIHsKKyAgICBpZiAoIW1fbmF0aXZlRGVjb2Rl
cikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ09NUHRyPElXSUNCaXRtYXBGcmFtZURl
Y29kZT4gZnJhbWU7CisgICAgSFJFU1VMVCBociA9IG1fbmF0aXZlRGVjb2Rlci0+R2V0RnJhbWUo
aW5kZXgsICZmcmFtZSk7CisgICAgaWYgKCFTVUNDRUVERUQoaHIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAvLyBGSVhNRTogRmlndXJlIG91dCBjb3JyZWN0IGltYWdlIGZvcm1hdC1z
cGVjaWZpYyBxdWVyeSBmb3Igc3Vic2FtcGxpbmcgY2hlY2suCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBJbWFnZURlY29kZXJEaXJlY3QyRDo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogeworICAgIGlmICghbV9uYXRp
dmVEZWNvZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDT01QdHI8SVdJQ0JpdG1h
cEZyYW1lRGVjb2RlPiBmcmFtZTsKKyAgICBIUkVTVUxUIGhyID0gbV9uYXRpdmVEZWNvZGVyLT5H
ZXRGcmFtZShpbmRleCwgJmZyYW1lKTsKKyAgICBpZiAoIVNVQ0NFRURFRChocikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IGNvcnJlY3QgaW1hZ2Ug
Zm9ybWF0LXNwZWNpZmljIHF1ZXJ5IGZvciBhbHBoYSBjaGVjay4KICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTg2LDcgKzIzMyw3IEBAIHZvaWQgSW1hZ2VE
ZWNvZGVyRGlyZWN0MkQ6OnNldFRhcmdldENvbnQKICAgICBtX3JlbmRlclRhcmdldCA9IHJlbmRl
clRhcmdldDsKIH0KIAotTmF0aXZlSW1hZ2VQdHIgSW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmNyZWF0
ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1w
bGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKSBjb25zdAorTmF0aXZlSW1hZ2VQdHIg
SW1hZ2VEZWNvZGVyRGlyZWN0MkQ6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRl
eCwgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlv
bnMmKQogewogICAgIGlmICghbV9uYXRpdmVEZWNvZGVyIHx8ICFtX3JlbmRlclRhcmdldCkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yMzEsOSArMjc4LDEzIEBAIHZvaWQgSW1hZ2VEZWNv
ZGVyRGlyZWN0MkQ6OnNldERhdGEoU2hhcmUKICAgICBtX25hdGl2ZURlY29kZXIgPSBudWxscHRy
OwogCiAgICAgaHIgPSBzeXN0ZW1JbWFnaW5nRmFjdG9yeSgpLT5DcmVhdGVEZWNvZGVyRnJvbVN0
cmVhbShzdHJlYW0uZ2V0KCksIG51bGxwdHIsIFdJQ0RlY29kZU1ldGFkYXRhQ2FjaGVPbkRlbWFu
ZCwgJm1fbmF0aXZlRGVjb2Rlcik7Ci0gICAgQVNTRVJUKFNVQ0NFRURFRChocikpOwotfQorICAg
IGlmICghU1VDQ0VFREVEKGhyKSkgeworICAgICAgICBtX25hdGl2ZURlY29kZXIgPSBudWxscHRy
OworICAgICAgICByZXR1cm47CisgICAgfQogCisgICAgLy8gSW1hZ2Ugd2FzIHZhbGlkLgorfQog
fQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9J
bWFnZURlY29kZXJEaXJlY3QyRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9JbWFnZURlY29kZXJEaXJlY3QyRC5oCShyZXZpc2lvbiAyMzcyMjAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEZWNvZGVyRGly
ZWN0MkQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09
IE1lZGlhVHlwZTo6SW1hZ2U7IH0KIAotICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNEZWNvZGVkVG9E
ZXRlcm1pbmVQcm9wZXJ0aWVzKCk7CisgICAgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5l
UHJvcGVydGllcygpIGNvbnN0IGZpbmFsOwogCiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9u
KCkgY29uc3QgZmluYWw7CiAgICAgRW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0dXMo
KSBjb25zdCBmaW5hbDsKQEAgLTY2LDEyICs2NiwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBmcmFt
ZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgSW1hZ2VPcmllbnRh
dGlvbiBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogCi0gICAg
ZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBTZWNv
bmRzIGZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBm
cmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZnJhbWVB
bGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogICAgIHVuc2lnbmVk
IGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOwogCi0gICAgTmF0aXZlSW1hZ2VQdHIgY3JlYXRl
RnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiA9IERlY29kaW5nT3B0aW9ucyhE
ZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzKSkgY29uc3QgZmluYWw7CisgICAgTmF0aXZlSW1hZ2VQ
dHIgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vi
c2FtcGxpbmdMZXZlbDo6RGVmYXVsdCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJiA9IERlY29kaW5n
T3B0aW9ucyhEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzKSkgZmluYWw7CiAKICAgICB2b2lkIHNl
dERhdGEoU2hhcmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOwogICAgIGJv
b2wgaXNBbGxEYXRhUmVjZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJl
Y2VpdmVkOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1h
Z2VEaXJlY3QyRC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ltYWdlRGlyZWN0MkQuY3BwCShyZXZpc2lvbiAyMzcyMjApCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VEaXJlY3QyRC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE4
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0
Y2hpbmdTb3VyYwogICAgICAgICBpZiAoaW1hZ2UgJiYgY2xhbXBUbzxzaXplX3Q+KGltYWdlU2l6
ZS5oZWlnaHQpID09IHN0YXRpY19jYXN0PHNpemVfdD4oc3JjU2l6ZS5oZWlnaHQoKSkgJiYgY2xh
bXBUbzxzaXplX3Q+KGltYWdlU2l6ZS53aWR0aCkgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzcmNT
aXplLndpZHRoKCkpKSB7CiAgICAgICAgICAgICBzaXplX3QgY3VycmVudEZyYW1lID0gbV9jdXJy
ZW50RnJhbWU7CiAgICAgICAgICAgICBtX2N1cnJlbnRGcmFtZSA9IGk7Ci0gICAgICAgICAgICBk
cmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVjdCgwLjBmLCAwLjBmLCBzcmNTaXplLndpZHRoKCks
IHNyY1NpemUuaGVpZ2h0KCkpLCBjb21wb3NpdGVPcCwgQmxlbmRNb2RlOjpOb3JtYWwsIEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIGRyYXcoY3R4dCwgZHN0UmVj
dCwgRmxvYXRSZWN0KDAuMGYsIDAuMGYsIHNyY1NpemUud2lkdGgoKSwgc3JjU2l6ZS5oZWlnaHQo
KSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJv
bm91cywgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogICAgICAgICAgICAgbV9jdXJy
ZW50RnJhbWUgPSBjdXJyZW50RnJhbWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
QEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd0ZyYW1lTWF0Y2hpbmdTb3Vy
YwogCiAgICAgLy8gTm8gaW1hZ2Ugb2YgdGhlIGNvcnJlY3Qgc2l6ZSB3YXMgZm91bmQsIGZhbGxi
YWNrIHRvIGRyYXdpbmcgdGhlIGN1cnJlbnQgZnJhbWUKICAgICBGbG9hdFNpemUgaW1hZ2VTaXpl
ID0gQml0bWFwSW1hZ2U6OnNpemUoKTsKLSAgICBkcmF3KGN0eHQsIGRzdFJlY3QsIEZsb2F0UmVj
dCgwLjBmLCAwLjBmLCBpbWFnZVNpemUud2lkdGgoKSwgaW1hZ2VTaXplLmhlaWdodCgpKSwgY29t
cG9zaXRlT3AsIEJsZW5kTW9kZTo6Tm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KSk7CisgICAgZHJhdyhjdHh0LCBkc3RSZWN0LCBGbG9hdFJlY3QoMC4wZiwgMC4wZiwgaW1hZ2VT
aXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSksIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGU6
Ok5vcm1hbCwgRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cywgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0dGVybkRpcmVjdDJELmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUGF0dGVybkRpcmVjdDJE
LmNwcAkocmV2aXNpb24gMjM3MjIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1BhdHRlcm5EaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcg
QEAgSUQyRDFCaXRtYXBCcnVzaCogUGF0dGVybjo6Y3JlYXRlUGxhdGZvcgogICAgIGJydXNoUHJv
cGVydGllcy50cmFuc2Zvcm0gPSBwYXR0ZXJuVHJhbnNmb3JtOwogICAgIGJydXNoUHJvcGVydGll
cy5vcGFjaXR5ID0gYWxwaGE7CiAKLSAgICBhdXRvIHBhdHRlcm5JbWFnZSA9IHRpbGVJbWFnZSgp
OworICAgIGF1dG8mIHBhdHRlcm5JbWFnZSA9IHRpbGVJbWFnZSgpOwogCiAgICAgYXV0byBwbGF0
Zm9ybUNvbnRleHQgPSBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOwogICAgIFJFTEVBU0VfQVNT
RVJUKHBsYXRmb3JtQ29udGV4dCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>