<?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>181725</bug_id>
          
          <creation_ts>2018-01-17 03:24:23 -0800</creation_ts>
          <short_desc>[Cairo] Don&apos;t mirror global alpha and image interpolation quality state values in PlatformContextCairo</short_desc>
          <delta_ts>2018-01-17 05:07:18 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1389957</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 03:24:23 -0800</bug_when>
    <thetext>[Cairo] Don&apos;t mirror global alpha and image interpolation quality state values in PlatformContextCairo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389958</commentid>
    <comment_count>1</comment_count>
      <attachid>331482</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 03:29:43 -0800</bug_when>
    <thetext>Created attachment 331482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389960</commentid>
    <comment_count>2</comment_count>
      <attachid>331483</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 03:43:44 -0800</bug_when>
    <thetext>Created attachment 331483
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389976</commentid>
    <comment_count>3</comment_count>
      <attachid>331483</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 05:06:04 -0800</bug_when>
    <thetext>Comment on attachment 331483
Patch for landing

Clearing flags on attachment: 331483

Committed r227065: &lt;https://trac.webkit.org/changeset/227065&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389977</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-01-17 05:06:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1389979</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-17 05:07:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/36580633&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331482</attachid>
            <date>2018-01-17 03:29:43 -0800</date>
            <delta_ts>2018-01-17 03:43:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181725-20180117122942.patch</filename>
            <type>text/plain</type>
            <size>24908</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0YjdkMjVmOTlkM2Uw
ZjBkNmRhNzBiMDVhZTYzNWJjMzBkMTA2Ni4uY2Y0ZjM3N2FhN2Y2NTYyZDU0YmQzNmY1MDRiNDc2
ZDlhZDVkYjAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE4LTAxLTE3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ2Fpcm9dIERvbid0
IG1pcnJvciBnbG9iYWwgYWxwaGEgYW5kIGltYWdlIGludGVycG9sYXRpb24gcXVhbGl0eSBzdGF0
ZSB2YWx1ZXMgaW4gUGxhdGZvcm1Db250ZXh0Q2Fpcm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTcyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IGR1cGxpY2F0ZSBnbG9iYWwgYWxwaGEgYW5k
IGltYWdlIGludGVycG9sYXRpb24gcXVhbGl0eSBzdGF0ZQorICAgICAgICB2YWx1ZXMgb24gdGhl
IFBsYXRmb3JtQ29udGV4dENhaXJvLiBJbnN0ZWFkLCByZXRyaWV2ZSB0aGVtIGZyb20KKyAgICAg
ICAgdGhlIG1hbmFnaW5nIEdyYXBoaWNzQ29udGV4dFN0YXRlIHdoZW4gbmVjZXNzYXJ5LgorCisg
ICAgICAgIEZvciBDYWlybyBvcGVyYXRpb25zLCB0aGUgRmlsbFNvdXJjZSBhbmQgU3Ryb2tlU291
cmNlIGNvbnRhaW5lcnMgbm93CisgICAgICAgIHN0b3JlIHRoZSBnbG9iYWwgYWxwaGEgdmFsdWUs
IHVzaW5nIGl0IGR1cmluZyB0aGUgb3BlcmF0aW9uIGV4ZWN1dGlvbnMuCisgICAgICAgIEZvciBk
cmF3TmF0aXZlSW1hZ2UoKSwgdGhlIGdsb2JhbCBhbHBoYSBhbmQgaW50ZXJwb2xhdGlvbiBxdWFs
aXR5IHZhbHVlcworICAgICAgICBhcmUgcGFzc2VkIHRocm91Z2ggYXJndW1lbnRzLgorCisgICAg
ICAgIEluIFBsYXRmb3JtQ29udGV4dENhaXJvLCB0aGUgdHdvIHZhbHVlcyBhcmUgbm8gbG9uZ2Vy
IHN0b3JlZCBvbiB0aGUKKyAgICAgICAgaW50ZXJuYWxseS1tYW5hZ2VkIHN0YWNrLCBhbmQgdGhl
IGdldHRlci1zZXR0ZXIgcGFpcnMgZm9yIHRoZSB0d28gdmFsdWVzCisgICAgICAgIGFyZSByZW1v
dmVkLiBJbiBkcmF3U3VyZmFjZVRvQ29udGV4dCgpLCB0aGUgdHdvIHZhbHVlcyBhcmUgbm93IGV4
cGVjdGVkCisgICAgICAgIHRvIGJlIHBhc3NlZCB0aHJvdWdoIHRoZSBtZXRob2QgYXJndW1lbnRz
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkNhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86
OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3VycmVudENh
aXJvUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6RmlsbFNvdXJjZTo6RmlsbFNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6U3Ryb2tlU291cmNlOjpTdHJva2VTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2Fpcm86OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdHbHlw
aHMpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWlybzo6U3RhdGU6OnNldEdsb2JhbEFscGhhKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhaXJvOjpTdGF0ZTo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRp
b25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZl
SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUFs
cGhhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1JbWFn
ZUludGVycG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNv
bnRleHRDYWlybzo6c2F2ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWly
bzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250
ZXh0Q2Fpcm86OlN0YXRlOjpTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNvbnRleHRDYWlybzo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6aW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNv
bnRleHRDYWlybzo6Z2xvYmFsQWxwaGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OnNldEdsb2JhbEFscGhhKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpEaXJlY3QzRFByZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUpOgorCisyMDE4LTAx
LTE3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwogICAgICAgICBbQ2Fp
cm9dIE1vdmUgcHJlcGFyZUZvckZpbGxpbmcoKSwgcHJlcGFyZUZvclN0cm9raW5nKCkgY29kZSB0
byBDYWlyb09wZXJhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MTcyMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2ZTUzMjM0N2ExOTBkMGI2ZWI4MTUyZWZm
YjRlYjIwMmM4ZjBkZTguLjdhMGJlYzk3NzViODVjM2IxZDE0ZjhhMDBkMjU5ZWIxNjJkM2QzOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDEtMTcgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDYWlyb10gRG9uJ3QgbWlycm9yIGdsb2Jh
bCBhbHBoYSBhbmQgaW1hZ2UgaW50ZXJwb2xhdGlvbiBxdWFsaXR5IHN0YXRlIHZhbHVlcyBpbiBQ
bGF0Zm9ybUNvbnRleHRDYWlybworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgxNzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OnBhaW50KToKKyAgICAgICAgQWRqdXN0IHRo
ZSBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQoKSBpbnZvY2F0aW9u
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFyZWFibGVC
aXRtYXApOiBEaXR0by4KKwogMjAxOC0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xlYXIgQ2FjaGVzIHZvbGF0aWxlIHN0b3JhZ2UgYXMgYSBtZW1v
cnkgb3B0aW1pemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXggYmU1ZGI3YmU3YmI1NzVj
YzJmMzQ0MmM5OTVkN2EwZTA4ZTYxODA4NC4uM2MyYzBjNzNhNjQzZTM5MzEwYWJlZWQ1Y2Q3MjNi
ZTJkNDM5YTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgc3Rh
dGljIHZvaWQgY2xpcEZvclBhdHRlcm5GaWxsaW5nKGNhaXJvX3QqIGNyLCBjb25zdCBGbG9hdFNp
emUmIHBhdHRlcm5TaXplLCBjb24KICAgICBjYWlyb19wYXRoX2Rlc3Ryb3koY3VycmVudFBhdGgp
OwogfQogCi1zdGF0aWMgdm9pZCBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb190KiBjciwgY29uc3Qg
Q2Fpcm86OkZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsIGZsb2F0IGdsb2JhbEFscGhhLCBQYXR0ZXJu
QWRqdXN0bWVudCBwYXR0ZXJuQWRqdXN0bWVudCkKK3N0YXRpYyB2b2lkIHByZXBhcmVGb3JGaWxs
aW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6RmlsbFNvdXJjZSYgZmlsbFNvdXJjZSwgUGF0
dGVybkFkanVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCiB7CiAgICAgY2Fpcm9fc2V0X2ZpbGxf
cnVsZShjciwgZmlsbFNvdXJjZS5maWxsUnVsZSA9PSBSVUxFX0VWRU5PREQgPyBDQUlST19GSUxM
X1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CiAKQEAgLTEyNCw3ICsx
MjQsNyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb190KiBjciwgY29uc3Qg
Q2Fpcm86OkZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsCiAgICAgICAgIGdyYWRpZW50ID0gZmlsbFNv
dXJjZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkLmdldCgpOwogCiAgICAgcHJlcGFyZUNhaXJvQ29u
dGV4dFNvdXJjZShjciwgZmlsbFNvdXJjZS5wYXR0ZXJuLm9iamVjdC5nZXQoKSwgZ3JhZGllbnQs
Ci0gICAgICAgIGZpbGxTb3VyY2UuY29sb3IsIGFkanVzdEZvckFscGhhID8gZ2xvYmFsQWxwaGEg
OiAxKTsKKyAgICAgICAgZmlsbFNvdXJjZS5jb2xvciwgYWRqdXN0Rm9yQWxwaGEgPyBmaWxsU291
cmNlLmdsb2JhbEFscGhhIDogMSk7CiAKICAgICBpZiAoZmlsbFNvdXJjZS5wYXR0ZXJuLm9iamVj
dCkgewogICAgICAgICBjbGlwRm9yUGF0dGVybkZpbGxpbmcoY3IsIGZpbGxTb3VyY2UucGF0dGVy
bi5zaXplLCBmaWxsU291cmNlLnBhdHRlcm4udHJhbnNmb3JtLApAQCAtMTMyLDcgKzEzMiw3IEBA
IHN0YXRpYyB2b2lkIHByZXBhcmVGb3JGaWxsaW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6
RmlsbFNvdXJjZSYgZmlsbFNvdXJjZSwKICAgICB9CiB9CiAKLXZvaWQgcHJlcGFyZUZvclN0cm9r
aW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6U3Ryb2tlU291cmNlJiBzdHJva2VTb3VyY2Us
IGZsb2F0IGdsb2JhbEFscGhhLCBBbHBoYVByZXNlcnZhdGlvbiBhbHBoYVByZXNlcnZhdGlvbikK
K3ZvaWQgcHJlcGFyZUZvclN0cm9raW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6U3Ryb2tl
U291cmNlJiBzdHJva2VTb3VyY2UsIEFscGhhUHJlc2VydmF0aW9uIGFscGhhUHJlc2VydmF0aW9u
KQogewogICAgIGJvb2wgcHJlc2VydmVBbHBoYSA9IGFscGhhUHJlc2VydmF0aW9uID09IFByZXNl
cnZlQWxwaGE7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIHByZXBhcmVGb3JTdHJva2luZyhj
YWlyb190KiBjciwgY29uc3QgQ2Fpcm86OlN0cm9rZVNvdXJjZSYgc3Ryb2tlU291cmNlLCBmbAog
ICAgICAgICBncmFkaWVudCA9IHN0cm9rZVNvdXJjZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkLmdl
dCgpOwogCiAgICAgcHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZShjciwgc3Ryb2tlU291cmNlLnBh
dHRlcm4uZ2V0KCksIGdyYWRpZW50LAotICAgICAgICBzdHJva2VTb3VyY2UuY29sb3IsIHByZXNl
cnZlQWxwaGEgPyBnbG9iYWxBbHBoYSA6IDEpOworICAgICAgICBzdHJva2VTb3VyY2UuY29sb3Is
IHByZXNlcnZlQWxwaGEgPyBzdHJva2VTb3VyY2UuZ2xvYmFsQWxwaGEgOiAxKTsKIH0KIAogc3Rh
dGljIGlubGluZSB2b2lkIGZpbGxSZWN0V2l0aENvbG9yKGNhaXJvX3QqIGNyLCBjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBkcmF3UGF0aFNoYWRvdyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBjb25zdCBGCiAgICAgaWYgKGRyYXdpbmdTdHlsZSAmIEZpbGwpIHsKICAg
ICAgICAgY2Fpcm9fc2F2ZShjYWlyb1NoYWRvd0NvbnRleHQpOwogICAgICAgICBjYWlyb19hcHBl
bmRfcGF0aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOwotICAgICAgICBwcmVwYXJl
Rm9yRmlsbGluZyhjYWlyb1NoYWRvd0NvbnRleHQsIGZpbGxTb3VyY2UsIHNoYWRvd0NvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5nbG9iYWxBbHBoYSgpLCBOb0FkanVzdG1lbnQpOworICAgICAg
ICBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb1NoYWRvd0NvbnRleHQsIGZpbGxTb3VyY2UsIE5vQWRq
dXN0bWVudCk7CiAgICAgICAgIGNhaXJvX2ZpbGwoY2Fpcm9TaGFkb3dDb250ZXh0KTsKICAgICAg
ICAgY2Fpcm9fcmVzdG9yZShjYWlyb1NoYWRvd0NvbnRleHQpOwogICAgIH0KIAogICAgIGlmIChk
cmF3aW5nU3R5bGUgJiBTdHJva2UpIHsKICAgICAgICAgY2Fpcm9fYXBwZW5kX3BhdGgoY2Fpcm9T
aGFkb3dDb250ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAgcHJlcGFyZUZvclN0cm9raW5nKGNh
aXJvU2hhZG93Q29udGV4dCwgc3Ryb2tlU291cmNlLCBzaGFkb3dDb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKS0+Z2xvYmFsQWxwaGEoKSwgRG9Ob3RQcmVzZXJ2ZUFscGhhKTsKKyAgICAgICAgcHJl
cGFyZUZvclN0cm9raW5nKGNhaXJvU2hhZG93Q29udGV4dCwgc3Ryb2tlU291cmNlLCBEb05vdFBy
ZXNlcnZlQWxwaGEpOwogICAgICAgICBjYWlyb19zdHJva2UoY2Fpcm9TaGFkb3dDb250ZXh0KTsK
ICAgICB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbEN1cnJl
bnRDYWlyb1BhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgYwogICAg
IGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CiAgICAgY2Fpcm9fc2F2ZShjcik7
CiAKLSAgICBwcmVwYXJlRm9yRmlsbGluZyhjciwgZmlsbFNvdXJjZSwgcGxhdGZvcm1Db250ZXh0
Lmdsb2JhbEFscGhhKCksIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7CisgICAgcHJlcGFy
ZUZvckZpbGxpbmcoY3IsIGZpbGxTb3VyY2UsIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7
CiAgICAgY2Fpcm9fZmlsbChjcik7CiAKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKQEAgLTQzMCwx
MSArNDMwLDYgQEAgdm9pZCBzZXRTdHJva2VTdHlsZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBTdHJva2VTdHlsZSBzdHJva2VTdHkKICAgICB9CiB9CiAKLXZvaWQgc2V0
R2xvYmFsQWxwaGEoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgZmxvYXQg
YWxwaGEpCi17Ci0gICAgcGxhdGZvcm1Db250ZXh0LnNldEdsb2JhbEFscGhhKGFscGhhKTsKLX0K
LQogdm9pZCBzZXRDb21wb3NpdGVPcGVyYXRpb24oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRm
b3JtQ29udGV4dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0aW9uLCBCbGVuZE1v
ZGUgYmxlbmRNb2RlKQogewogICAgIGNhaXJvX3NldF9vcGVyYXRvcihwbGF0Zm9ybUNvbnRleHQu
Y3IoKSwgdG9DYWlyb09wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdGlvbiwgYmxlbmRNb2RlKSk7CkBA
IC00NDgsMTEgKzQ0Myw2IEBAIHZvaWQgc2V0U2hvdWxkQW50aWFsaWFzKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGJvb2wgZW5hYmxlKQogICAgIGNhaXJvX3NldF9hbnRp
YWxpYXMocGxhdGZvcm1Db250ZXh0LmNyKCksIGVuYWJsZSA/IENBSVJPX0FOVElBTElBU19ERUZB
VUxUIDogQ0FJUk9fQU5USUFMSUFTX05PTkUpOwogfQogCi12b2lkIHNldEltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgSW50ZXJw
b2xhdGlvblF1YWxpdHkgcXVhbGl0eSkKLXsKLSAgICBwbGF0Zm9ybUNvbnRleHQuc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShxdWFsaXR5KTsKLX0KLQogdm9pZCBzZXRDVE0oUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFu
c2Zvcm0pCiB7CiAgICAgY29uc3QgY2Fpcm9fbWF0cml4X3QgbWF0cml4ID0gdG9DYWlyb01hdHJp
eCh0cmFuc2Zvcm0pOwpAQCAtNTIyLDYgKzUxMiw4IEBAIGJvb2wgaXNBY2NlbGVyYXRlZENvbnRl
eHQoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCkKIH0gLy8gbmFtZXNwYWNl
IFN0YXRlCiAKIEZpbGxTb3VyY2U6OkZpbGxTb3VyY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlKQorICAgIDogZ2xvYmFsQWxwaGEoc3RhdGUuYWxwaGEpCisgICAgLCBmaWxsUnVs
ZShzdGF0ZS5maWxsUnVsZSkKIHsKICAgICBpZiAoc3RhdGUuZmlsbFBhdHRlcm4pIHsKICAgICAg
ICAgcGF0dGVybi5vYmplY3QgPSBhZG9wdFJlZihzdGF0ZS5maWxsUGF0dGVybi0+Y3JlYXRlUGxh
dGZvcm1QYXR0ZXJuKEFmZmluZVRyYW5zZm9ybSgpKSk7CkBAIC01MzcsMTEgKzUyOSwxMCBAQCBG
aWxsU291cmNlOjpGaWxsU291cmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSkK
ICAgICAgICAgICAgIGdyYWRpZW50LmFscGhhQWRqdXN0ZWQgPSBhZG9wdFJlZihzdGF0ZS5maWxs
R3JhZGllbnQtPmNyZWF0ZVBsYXRmb3JtR3JhZGllbnQoc3RhdGUuYWxwaGEpKTsKICAgICB9IGVs
c2UKICAgICAgICAgY29sb3IgPSBzdGF0ZS5maWxsQ29sb3I7Ci0KLSAgICBmaWxsUnVsZSA9IHN0
YXRlLmZpbGxSdWxlOwogfQogCiBTdHJva2VTb3VyY2U6OlN0cm9rZVNvdXJjZShjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYgc3RhdGUpCisgICAgOiBnbG9iYWxBbHBoYShzdGF0ZS5hbHBoYSkK
IHsKICAgICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKICAgICAgICAgcGF0dGVybiA9IGFkb3B0
UmVmKHN0YXRlLnN0cm9rZVBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihBZmZpbmVUcmFu
c2Zvcm0oKSkpOwpAQCAtNzIwLDcgKzcxMSw3IEBAIHZvaWQgc3Ryb2tlUmVjdChQbGF0Zm9ybUNv
bnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsCiAg
ICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwg
cmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3IsIGxpbmVXaWR0aCk7
CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwg
c2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7Ci0gICAgcHJlcGFyZUZvclN0cm9r
aW5nKGNyLCBzdHJva2VTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxBbHBoYSgpLCBQcmVz
ZXJ2ZUFscGhhKTsKKyAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9rZVNvdXJjZSwgUHJl
c2VydmVBbHBoYSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIAogICAgIGNhaXJvX3Jlc3RvcmUo
Y3IpOwpAQCAtNzMyLDcgKzcyMyw3IEBAIHZvaWQgc3Ryb2tlUGF0aChQbGF0Zm9ybUNvbnRleHRD
YWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBTCiAKICAgICBz
ZXRQYXRoT25DYWlyb0NvbnRleHQoY3IsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7
CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwg
c2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7Ci0gICAgcHJlcGFyZUZvclN0cm9r
aW5nKGNyLCBzdHJva2VTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxBbHBoYSgpLCBQcmVz
ZXJ2ZUFscGhhKTsKKyAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9rZVNvdXJjZSwgUHJl
c2VydmVBbHBoYSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIH0KIApAQCAtNzU1LDcgKzc0Niw3
IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0
LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fpcm9fc2F2ZShjcik7CiAKICAgICBp
ZiAodGV4dERyYXdpbmdNb2RlICYgVGV4dE1vZGVGaWxsKSB7Ci0gICAgICAgIHByZXBhcmVGb3JG
aWxsaW5nKGNyLCBmaWxsU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgQWRq
dXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKKyAgICAgICAgcHJlcGFyZUZvckZpbGxpbmcoY3Is
IGZpbGxTb3VyY2UsIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7CiAgICAgICAgIGRyYXdH
bHlwaHNUb0NvbnRleHQoY3IsIHNjYWxlZEZvbnQsIHN5bnRoZXRpY0JvbGRPZmZzZXQsIGdseXBo
cyk7CiAgICAgfQogCkBAIC03NjQsNyArNzU1LDcgQEAgdm9pZCBkcmF3R2x5cGhzKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZpbGxTb3VyY2UmIGZpbGxTb3UK
ICAgICAvLyB0aGUgdGV4dCBhcyBldmVuIG9uZSBzaW5nbGUgc3Ryb2tlIHdvdWxkIGNvdmVyIHRo
ZSBmdWxsIHdkdGggb2YgdGhlIHRleHQuCiAgICAgLy8gIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM3NTkuCiAgICAgaWYgKHRleHREcmF3aW5nTW9kZSAmIFRl
eHRNb2RlU3Ryb2tlICYmIHN0cm9rZVRoaWNrbmVzcyA8IDIgKiB4T2Zmc2V0KSB7Ci0gICAgICAg
IHByZXBhcmVGb3JTdHJva2luZyhjciwgc3Ryb2tlU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xv
YmFsQWxwaGEoKSwgUHJlc2VydmVBbHBoYSk7CisgICAgICAgIHByZXBhcmVGb3JTdHJva2luZyhj
ciwgc3Ryb2tlU291cmNlLCBQcmVzZXJ2ZUFscGhhKTsKICAgICAgICAgY2Fpcm9fc2V0X2xpbmVf
d2lkdGgoY3IsIHN0cm9rZVRoaWNrbmVzcyk7CiAKICAgICAgICAgLy8gVGhpcyBtYXkgZGlzdHVy
YiB0aGUgQ1RNLCBidXQgd2UgYXJlIGdvaW5nIHRvIGNhbGwgY2Fpcm9fcmVzdG9yZSBzb29uIGFm
dGVyLgpAQCAtNzc2LDcgKzc2Nyw3IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRD
YWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fp
cm9fcmVzdG9yZShjcik7CiB9CiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVP
cGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBHcmFw
aGljc0NvbnRleHQmIHRhcmdldENvbnRleHQpCit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9y
bUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIElt
YWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYg
c2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKIHsKICAgICBwbGF0
Zm9ybUNvbnRleHQuc2F2ZSgpOwogCkBAIC03OTksNyArNzkwLDcgQEAgdm9pZCBkcmF3TmF0aXZl
SW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFj
ZV90KiBzdXIKICAgICAgICAgfQogICAgIH0KIAotICAgIHBsYXRmb3JtQ29udGV4dC5kcmF3U3Vy
ZmFjZVRvQ29udGV4dChzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIHNoYWRvd1N0YXRlLCB0YXJnZXRD
b250ZXh0KTsKKyAgICBwbGF0Zm9ybUNvbnRleHQuZHJhd1N1cmZhY2VUb0NvbnRleHQoc3VyZmFj
ZSwgZHN0LCBzcmNSZWN0LCBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBnbG9iYWxBbHBoYSwg
c2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQpOwogICAgIHBsYXRmb3JtQ29udGV4dC5yZXN0b3Jl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvT3BlcmF0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKaW5kZXggYjY0ZGNjMmExNDNlMzk4YjhjYTYyODg1NTcz
OGU1YTE3MmUzNDhiYy4uYTVlMDE3YmMyODFlNWE3OWU3ZDM4NjNiMzBjNDA4YzEyNjVkNDFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9P
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Q2Fpcm9PcGVyYXRpb25zLmgKQEAgLTU5LDEwICs1OSw4IEBAIG5hbWVzcGFjZSBTdGF0ZSB7CiB2
b2lkIHNldFN0cm9rZVRoaWNrbmVzcyhQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGZsb2F0KTsKIHZv
aWQgc2V0U3Ryb2tlU3R5bGUoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBTdHJva2VTdHlsZSk7CiAK
LXZvaWQgc2V0R2xvYmFsQWxwaGEoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBmbG9hdCk7CiB2b2lk
IHNldENvbXBvc2l0ZU9wZXJhdGlvbihQbGF0Zm9ybUNvbnRleHRDYWlybyYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUpOwogdm9pZCBzZXRTaG91bGRBbnRpYWxpYXMoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mLCBib29sKTsKLXZvaWQgc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShQbGF0
Zm9ybUNvbnRleHRDYWlybyYsIEludGVycG9sYXRpb25RdWFsaXR5KTsKIAogdm9pZCBzZXRDVE0o
UGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mKTsKIEFmZmluZVRy
YW5zZm9ybSBnZXRDVE0oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mKTsKQEAgLTc4LDYgKzc2LDcgQEAg
c3RydWN0IEZpbGxTb3VyY2UgewogICAgIEZpbGxTb3VyY2UoKSA9IGRlZmF1bHQ7CiAgICAgZXhw
bGljaXQgRmlsbFNvdXJjZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYpOwogCisgICAgZmxv
YXQgZ2xvYmFsQWxwaGEgeyAwIH07CiAgICAgc3RydWN0IHsKICAgICAgICAgUmVmUHRyPGNhaXJv
X3BhdHRlcm5fdD4gb2JqZWN0OwogICAgICAgICBGbG9hdFNpemUgc2l6ZTsKQEAgLTk4LDYgKzk3
LDcgQEAgc3RydWN0IFN0cm9rZVNvdXJjZSB7CiAgICAgU3Ryb2tlU291cmNlKCkgPSBkZWZhdWx0
OwogICAgIGV4cGxpY2l0IFN0cm9rZVNvdXJjZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYp
OwogCisgICAgZmxvYXQgZ2xvYmFsQWxwaGEgeyAwIH07CiAgICAgUmVmUHRyPGNhaXJvX3BhdHRl
cm5fdD4gcGF0dGVybjsKICAgICBzdHJ1Y3QgewogICAgICAgICBSZWZQdHI8Y2Fpcm9fcGF0dGVy
bl90PiBiYXNlOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgY2xlYXJSZWN0KFBsYXRmb3JtQ29u
dGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9y
bUNvbnRleHRDYWlybyYsIGNvbnN0IEZpbGxTb3VyY2UmLCBjb25zdCBTdHJva2VTb3VyY2UmLCBj
b25zdCBTaGFkb3dTdGF0ZSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjYWlyb19zY2FsZWRfZm9udF90
KiwgZG91YmxlLCBjb25zdCBWZWN0b3I8Y2Fpcm9fZ2x5cGhfdD4mLCBmbG9hdCwgVGV4dERyYXdp
bmdNb2RlRmxhZ3MsIGZsb2F0LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBDb2xvciYsIEdyYXBo
aWNzQ29udGV4dCYpOwogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWly
byYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24sIGNvbnN0IFNo
YWRvd1N0YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0
Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50
YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3QgU2hhZG93U3RhdGUmLCBH
cmFwaGljc0NvbnRleHQmKTsKIHZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBJbnRTaXplJiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwogCiB2b2lkIGRyYXdSZWN0KFBsYXRmb3Jt
Q29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgU3Ry
b2tlU3R5bGUsIGNvbnN0IENvbG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5k
ZXggOWJkNTllYTlmNTEyOTY3NWJkNmNmOTllYTZhNTBkM2FhZGRjOWU0NS4uNjkxMzYwNDNmZTFi
MzE3ZDBlYWNhNDgxNGMzMjY1Nzg3NDA0ZmZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcApAQCAtMTM5LDcgKzEzOSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpCiAgICAgfQog
CiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBDYWlybzo6ZHJhd05hdGl2
ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0
LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgQ2Fpcm86OlNoYWRv
d1N0YXRlKHN0YXRlKCkpLCAqdGhpcyk7CisgICAgYXV0byYgc3RhdGUgPSB0aGlzLT5zdGF0ZSgp
OworICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZS5n
ZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBibGVuZE1vZGUsIG9y
aWVudGF0aW9uLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwg
Q2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgKnRoaXMpOwogfQogCiAvLyBUaGlzIGlzIG9ubHkg
dXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBub3QgZHJhdyBzaGFkb3dzLgpAQCAt
NTczLDkgKzU3NCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRlckxpbWl0KGZsb2F0
IG1pdGVyKQogICAgIENhaXJvOjpzZXRNaXRlckxpbWl0KCpwbGF0Zm9ybUNvbnRleHQoKSwgbWl0
ZXIpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1BbHBoYShmbG9hdCBh
bHBoYSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUFscGhhKGZsb2F0KQogewot
ICAgIENhaXJvOjpTdGF0ZTo6c2V0R2xvYmFsQWxwaGEoKnBsYXRmb3JtQ29udGV4dCgpLCBhbHBo
YSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUNvbXBvc2l0ZU9wZXJh
dGlvbihDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5k
TW9kZSkKQEAgLTY5NiwxMCArNjk2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRm
b3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgZW5hYmxlKQogICAgIENhaXJvOjpTdGF0ZTo6c2V0U2hv
dWxkQW50aWFsaWFzKCpwbGF0Zm9ybUNvbnRleHQoKSwgZW5hYmxlKTsKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBv
bGF0aW9uUXVhbGl0eSBxdWFsaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3Jt
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSkKIHsKLSAgICBB
U1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwotICAgIENhaXJvOjpTdGF0ZTo6c2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eSgqcGxhdGZvcm1Db250ZXh0KCksIHF1YWxpdHkpOwogfQogCiBi
b29sIEdyYXBoaWNzQ29udGV4dDo6aXNBY2NlbGVyYXRlZENvbnRleHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxh
dGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmluZGV4IDlmNGQzZGNkNjVhZTg5MWE0ZmIxZDk2NmM4M2Fk
NTM5NWRkZWZkMjYuLjIzNDk5ZGI5OGI5OTdiMWUxMTAyNDk1YWIxM2YyNzg0YmExODc2NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3Jt
Q29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKQEAgLTYyLDIzICs2Miw5IEBAIHByaXZhdGU6
CiAvLyBwdXNoZWQgZ3JhcGhpY3Mgc3RhdGUuCiBjbGFzcyBQbGF0Zm9ybUNvbnRleHRDYWlybzo6
U3RhdGUgewogcHVibGljOgotICAgIFN0YXRlKCkKLSAgICAgICAgOiBtX2dsb2JhbEFscGhhKDEp
Ci0gICAgICAgICwgbV9pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25EZWZh
dWx0KQotICAgIHsKLSAgICB9Ci0KLSAgICBTdGF0ZShmbG9hdCBnbG9iYWxBbHBoYSwgSW50ZXJw
b2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSkKLSAgICAgICAgOiBtX2ds
b2JhbEFscGhhKGdsb2JhbEFscGhhKQotICAgICAgICAsIG1faW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICAgICAgLy8gV2UgZG8g
bm90IGNvcHkgbV9pbWFnZU1hc2tJbmZvcm1hdGlvbiBiZWNhdXNlIG90aGVyd2lzZSBpdCB3b3Vs
ZCBiZSBhcHBsaWVkCi0gICAgICAgIC8vIG1vcmUgdGhhbiBvbmNlIGR1cmluZyBzdWJzZXF1ZW50
IGNhbGxzIHRvIHJlc3RvcmUoKS4KLSAgICB9CisgICAgU3RhdGUoKSA9IGRlZmF1bHQ7CiAKICAg
ICBJbWFnZU1hc2tJbmZvcm1hdGlvbiBtX2ltYWdlTWFza0luZm9ybWF0aW9uOwotICAgIGZsb2F0
IG1fZ2xvYmFsQWxwaGE7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgbV9pbWFnZUludGVycG9s
YXRpb25RdWFsaXR5OwogfTsKIAogUGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBsYXRmb3JtQ29udGV4
dENhaXJvKGNhaXJvX3QqIGNyKQpAQCAtMTA4LDcgKzk0LDcgQEAgUGxhdGZvcm1Db250ZXh0Q2Fp
cm86On5QbGF0Zm9ybUNvbnRleHRDYWlybygpID0gZGVmYXVsdDsKIAogdm9pZCBQbGF0Zm9ybUNv
bnRleHRDYWlybzo6c2F2ZSgpCiB7Ci0gICAgbV9zdGF0ZVN0YWNrLmFwcGVuZChTdGF0ZShtX3N0
YXRlLT5tX2dsb2JhbEFscGhhLCBtX3N0YXRlLT5tX2ltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkp
KTsKKyAgICBtX3N0YXRlU3RhY2suYXBwZW5kKFN0YXRlKCkpOwogICAgIG1fc3RhdGUgPSAmbV9z
dGF0ZVN0YWNrLmxhc3QoKTsKIAogICAgIGNhaXJvX3NhdmUobV9jci5nZXQoKSk7CkBAIC0xNTcs
NyArMTQzLDcgQEAgc3RhdGljIHZvaWQgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChjYWlyb190
KiBjciwgY2Fpcm9fcGF0dGVybl90KiBwYXR0ZXJuLCBjb24KICAgICAgICAgY2Fpcm9fZmlsbChj
cik7CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNlVG9Db250ZXh0
KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBvcmlnaW5hbFNyY1JlY3QsIGNvbnN0IENhaXJvOjpTaGFkb3dTdGF0ZSYg
c2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKK3ZvaWQgUGxhdGZvcm1Db250
ZXh0Q2Fpcm86OmRyYXdTdXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBvcmlnaW5hbFNyY1Jl
Y3QsIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0
IGdsb2JhbEFscGhhLCBjb25zdCBDYWlybzo6U2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgLy8gQXZvaWQgaW52YWxpZCBjYWlybyBtYXRy
aXggd2l0aCBzbWFsbCB2YWx1ZXMuCiAgICAgaWYgKHN0ZDo6ZmFicyhkZXN0UmVjdC53aWR0aCgp
KSA8IDAuNWYgfHwgc3RkOjpmYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA8IDAuNWYpCkBAIC0xOTQs
NyArMTgwLDcgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRl
eHQoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdAogICAgIFJlZlB0cjxjYWlyb19wYXR0
ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2NyZWF0ZV9mb3Jfc3VyZmFj
ZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgQVNTRVJUKG1fc3RhdGUpOwotICAgIHN3
aXRjaCAobV9zdGF0ZS0+bV9pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7CisgICAgc3dpdGNo
IChpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7CiAgICAgY2FzZSBJbnRlcnBvbGF0aW9uTm9u
ZToKICAgICBjYXNlIEludGVycG9sYXRpb25Mb3c6CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fc2V0
X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfRkFTVCk7CkBAIC0yMjcsMzMgKzIx
MywxMCBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3U3VyZmFjZVRvQ29udGV4dChj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0CiAgICAgfQogCiAgICAgY2Fpcm9fc2F2ZSht
X2NyLmdldCgpKTsKLSAgICBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KG1fY3IuZ2V0KCksIHBh
dHRlcm4uZ2V0KCksIGRlc3RSZWN0LCBnbG9iYWxBbHBoYSgpKTsKKyAgICBkcmF3UGF0dGVyblRv
Q2Fpcm9Db250ZXh0KG1fY3IuZ2V0KCksIHBhdHRlcm4uZ2V0KCksIGRlc3RSZWN0LCBnbG9iYWxB
bHBoYSk7CiAgICAgY2Fpcm9fcmVzdG9yZShtX2NyLmdldCgpKTsKIH0KIAotdm9pZCBQbGF0Zm9y
bUNvbnRleHRDYWlybzo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9u
UXVhbGl0eSBxdWFsaXR5KQotewotICAgIEFTU0VSVChtX3N0YXRlKTsKLSAgICBtX3N0YXRlLT5t
X2ltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBxdWFsaXR5OwotfQotCi1JbnRlcnBvbGF0aW9u
UXVhbGl0eSBQbGF0Zm9ybUNvbnRleHRDYWlybzo6aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fc3RhdGUpOwotICAgIHJldHVybiBtX3N0YXRlLT5tX2lt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci19Ci0KLQotZmxvYXQgUGxhdGZvcm1Db250ZXh0Q2Fp
cm86Omdsb2JhbEFscGhhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdGF0ZS0+bV9nbG9iYWxB
bHBoYTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0R2xvYmFsQWxwaGEoZmxv
YXQgZ2xvYmFsQWxwaGEpCi17Ci0gICAgbV9zdGF0ZS0+bV9nbG9iYWxBbHBoYSA9IGdsb2JhbEFs
cGhhOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0FJUk8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybUNvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAppbmRleCA1NDA2ODE5NDAwZGVlOWFjNDZhZmFjYmU5
YTQxNjlkNDNiMDBhMzM0Li42MThjYjdhYmRiMzA0YjkyZDY4MzU0ZGY2N2VlOWE2NDU2NzIyNzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0
Zm9ybUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAgLTY0LDE0ICs2NCw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2F2ZSgpOwogICAgIHZvaWQgcmVzdG9yZSgpOwotICAgIHZvaWQgc2V0R2xv
YmFsQWxwaGEoZmxvYXQpOwotICAgIGZsb2F0IGdsb2JhbEFscGhhKCkgY29uc3Q7CiAKICAgICB2
b2lkIHB1c2hJbWFnZU1hc2soY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3U3VyZmFjZVRvQ29udGV4dChjYWlyb19zdXJmYWNl
X3QqLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IENhaXJvOjpTaGFkb3dTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpOwotCi0gICAgdm9p
ZCBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25RdWFsaXR5KTsKLSAg
ICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3U3VyZmFjZVRvQ29udGV4dChjYWlyb19zdXJm
YWNlX3QqLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwgY29uc3QgQ2Fpcm86
OlNoYWRvd1N0YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRy
PGNhaXJvX3Q+IG1fY3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwCmluZGV4IGRkOGQxMjM5YzY3Njc3MWIwODNiNzE0MjhlN2E3MzM4MzZhNzY3ZTQu
LmI4ZDYwYmYwOTg5MjViZGE2MmYwNmEzODI4ODFlYzVmOThmMTZlM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC0yOTc0LDcgKzI5NzQs
OCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6RGlyZWN0M0RQcmVz
ZW50ZXI6OnBhaW50Q3VycmVudEZyYW1lKFdlYgogICAgICAgICBGbG9hdFJlY3Qgc3JjUmVjdCgw
LCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgaWYgKGltYWdlKSB7CiAgICAgICAgICAgICBX
ZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybyogY3R4dCA9IGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCk7Ci0gICAgICAgICAgICBjdHh0LT5kcmF3U3VyZmFjZVRvQ29udGV4dChpbWFnZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIENhaXJvOjpTaGFkb3dTdGF0ZShjb250ZXh0LnN0YXRlKCkpLCBjb250
ZXh0KTsKKyAgICAgICAgICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgpOworICAgICAg
ICAgICAgY3R4dC0+ZHJhd1N1cmZhY2VUb0NvbnRleHQoaW1hZ2UsIGRlc3RSZWN0LCBzcmNSZWN0
LCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpLCBzdGF0ZS5hbHBoYSwgY29udGV4dCk7CiAgICAg
ICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koaW1hZ2UpOwogICAgICAgICB9CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fp
cm8uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8u
Y3BwCmluZGV4IGFjYmQyMGRkNjRhNzI4Yzk0ZmY1MWNjOGY3MDg4OTEwZDU2Mzg1ODIuLjA2YTg0
OTNjYjUwY2VmYTAyMDNmODFiYTk3MGE3ZTZkZGNmZWQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKQEAgLTc1LDcgKzc1
LDggQEAgdm9pZCBTaGFyZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IEkKICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoZHN0
UG9pbnQsIHNyY1JlY3Quc2l6ZSgpKTsKICAgICBGbG9hdFJlY3Qgc3JjUmVjdFNjYWxlZChzcmNS
ZWN0KTsKICAgICBzcmNSZWN0U2NhbGVkLnNjYWxlKHNjYWxlRmFjdG9yKTsKLSAgICBjb250ZXh0
LnBsYXRmb3JtQ29udGV4dCgpLT5kcmF3U3VyZmFjZVRvQ29udGV4dChzdXJmYWNlLmdldCgpLCBk
ZXN0UmVjdCwgc3JjUmVjdFNjYWxlZCwgQ2Fpcm86OlNoYWRvd1N0YXRlKGNvbnRleHQuc3RhdGUo
KSksIGNvbnRleHQpOworICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgpOworICAgIGNv
bnRleHQucGxhdGZvcm1Db250ZXh0KCktPmRyYXdTdXJmYWNlVG9Db250ZXh0KHN1cmZhY2UuZ2V0
KCksIGRlc3RSZWN0LCBzcmNSZWN0U2NhbGVkLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFs
aXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgY29udGV4dCk7CiB9
CiAKIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlQ2Fpcm9T
dXJmYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwCmluZGV4IGI2Y2QxYmZlNDcw
NjM4MDQ4OTA4NTc4YzgwZTA4YzFlOGY4NzM3YzIuLjgwMjNlNjIxYTVkNjgyMTBmMWIwNDNkZDBh
OWY3ZjIxZDA2MjdmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFnQ2xpZW50R3RrLmNwcApAQCAtNTQs
NyArNTQsOCBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydENhaXJvU3Vy
ZmFjZVRvU2hhcmVhYmxlQml0bWFwKGNhaXJvX3N1cmZhYwogICAgIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGltYWdlU2l6
ZSwgeyB9KTsKICAgICBhdXRvIGdyYXBoaWNzQ29udGV4dCA9IGJpdG1hcC0+Y3JlYXRlR3JhcGhp
Y3NDb250ZXh0KCk7CiAKLSAgICBncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5k
cmF3U3VyZmFjZVRvQ29udGV4dChzdXJmYWNlLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlU2l6
ZSksIEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VTaXplKSwgQ2Fpcm86OlNoYWRvd1N0YXRlKGdy
YXBoaWNzQ29udGV4dC0+c3RhdGUoKSksICpncmFwaGljc0NvbnRleHQpOworICAgIGF1dG8mIHN0
YXRlID0gZ3JhcGhpY3NDb250ZXh0LT5zdGF0ZSgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+cGxh
dGZvcm1Db250ZXh0KCktPmRyYXdTdXJmYWNlVG9Db250ZXh0KHN1cmZhY2UsIEludFJlY3QoSW50
UG9pbnQoKSwgaW1hZ2VTaXplKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZVNpemUpLCBzdGF0
ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0
YXRlKHN0YXRlKSwgKmdyYXBoaWNzQ29udGV4dCk7CiAgICAgcmV0dXJuIGJpdG1hcDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331483</attachid>
            <date>2018-01-17 03:43:44 -0800</date>
            <delta_ts>2018-01-17 03:43:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181725-20180117124342.patch</filename>
            <type>text/plain</type>
            <size>24953</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0YjdkMjVmOTlkM2Uw
ZjBkNmRhNzBiMDVhZTYzNWJjMzBkMTA2Ni4uZTIyZGZhMzU3N2Y3OTNlMDg0ZTEzYTA2YWMxZDMx
NjNiMzBmYjI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE4LTAxLTE3ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ2Fpcm9dIERvbid0
IG1pcnJvciBnbG9iYWwgYWxwaGEgYW5kIGltYWdlIGludGVycG9sYXRpb24gcXVhbGl0eSBzdGF0
ZSB2YWx1ZXMgaW4gUGxhdGZvcm1Db250ZXh0Q2Fpcm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTcyNQorCisgICAgICAgIFJldmlld2VkIGJ5IENh
cmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAgIERvbid0IGR1cGxpY2F0ZSBnbG9iYWwgYWxw
aGEgYW5kIGltYWdlIGludGVycG9sYXRpb24gcXVhbGl0eSBzdGF0ZQorICAgICAgICB2YWx1ZXMg
b24gdGhlIFBsYXRmb3JtQ29udGV4dENhaXJvLiBJbnN0ZWFkLCByZXRyaWV2ZSB0aGVtIGZyb20K
KyAgICAgICAgdGhlIG1hbmFnaW5nIEdyYXBoaWNzQ29udGV4dFN0YXRlIHdoZW4gbmVjZXNzYXJ5
LgorCisgICAgICAgIEZvciBDYWlybyBvcGVyYXRpb25zLCB0aGUgRmlsbFNvdXJjZSBhbmQgU3Ry
b2tlU291cmNlIGNvbnRhaW5lcnMgbm93CisgICAgICAgIHN0b3JlIHRoZSBnbG9iYWwgYWxwaGEg
dmFsdWUsIHVzaW5nIGl0IGR1cmluZyB0aGUgb3BlcmF0aW9uIGV4ZWN1dGlvbnMuCisgICAgICAg
IEZvciBkcmF3TmF0aXZlSW1hZ2UoKSwgdGhlIGdsb2JhbCBhbHBoYSBhbmQgaW50ZXJwb2xhdGlv
biBxdWFsaXR5IHZhbHVlcworICAgICAgICBhcmUgcGFzc2VkIHRocm91Z2ggYXJndW1lbnRzLgor
CisgICAgICAgIEluIFBsYXRmb3JtQ29udGV4dENhaXJvLCB0aGUgdHdvIHZhbHVlcyBhcmUgbm8g
bG9uZ2VyIHN0b3JlZCBvbiB0aGUKKyAgICAgICAgaW50ZXJuYWxseS1tYW5hZ2VkIHN0YWNrLCBh
bmQgdGhlIGdldHRlci1zZXR0ZXIgcGFpcnMgZm9yIHRoZSB0d28gdmFsdWVzCisgICAgICAgIGFy
ZSByZW1vdmVkLiBJbiBkcmF3U3VyZmFjZVRvQ29udGV4dCgpLCB0aGUgdHdvIHZhbHVlcyBhcmUg
bm93IGV4cGVjdGVkCisgICAgICAgIHRvIGJlIHBhc3NlZCB0aHJvdWdoIHRoZSBtZXRob2QgYXJn
dW1lbnRzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFuZ2UgaW4gYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OnByZXBhcmVGb3JGaWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhaXJvOjpwcmVwYXJlRm9yU3Ryb2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Q2Fpcm86OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3Vy
cmVudENhaXJvUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6RmlsbFNvdXJjZTo6Rmls
bFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6U3Ryb2tlU291cmNlOjpTdHJva2VT
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OnN0cm9rZVJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2Fpcm86OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRy
YXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWlybzo6U3RhdGU6OnNldEdsb2JhbEFscGhhKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpTdGF0ZTo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9P
cGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0
Zm9ybUFscGhhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1JbWFnZUludGVycG9sYXRpb25RdWFsaXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNvbnRleHRDYWlybzo6c2F2ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRl
eHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1Db250ZXh0Q2Fpcm86OlN0YXRlOjpTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybzo6aW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybUNvbnRleHRDYWlybzo6Z2xvYmFsQWxwaGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0Q2Fpcm86OnNldEdsb2JhbEFscGhhKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRp
YUZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFGb3VuZGF0aW9uOjpEaXJlY3QzRFByZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUpOgorCisy
MDE4LTAxLTE3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwogICAgICAg
ICBbQ2Fpcm9dIE1vdmUgcHJlcGFyZUZvckZpbGxpbmcoKSwgcHJlcGFyZUZvclN0cm9raW5nKCkg
Y29kZSB0byBDYWlyb09wZXJhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MTcyMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2ZTUzMjM0N2ExOTBkMGI2ZWI4
MTUyZWZmYjRlYjIwMmM4ZjBkZTguLjdiOGVkOWJmNzk0YzYwYjZkNTI2YmUwMjM4NDFkZjY2M2Ji
Y2ZmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDEtMTcgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDYWlyb10gRG9uJ3QgbWlycm9y
IGdsb2JhbCBhbHBoYSBhbmQgaW1hZ2UgaW50ZXJwb2xhdGlvbiBxdWFsaXR5IHN0YXRlIHZhbHVl
cyBpbiBQbGF0Zm9ybUNvbnRleHRDYWlybworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdh
cmNpYSBDYW1wb3MuCisKKyAgICAgICAgKiBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fp
cm8uY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OnBhaW50KToKKyAgICAg
ICAgQWRqdXN0IHRoZSBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJhd1N1cmZhY2VUb0NvbnRleHQo
KSBpbnZvY2F0aW9uLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dl
YkRyYWdDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0Q2Fpcm9TdXJmYWNl
VG9TaGFyZWFibGVCaXRtYXApOiBEaXR0by4KKwogMjAxOC0wMS0xNyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgQ2FjaGVzIHZvbGF0aWxlIHN0b3Jh
Z2UgYXMgYSBtZW1vcnkgb3B0aW1pemF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKaW5kZXggYmU1
ZGI3YmU3YmI1NzVjYzJmMzQ0MmM5OTVkN2EwZTA4ZTYxODA4NC4uM2MyYzBjNzNhNjQzZTM5MzEw
YWJlZWQ1Y2Q3MjNiZTJkNDM5YTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCkBAIC0xMTMsNyAr
MTEzLDcgQEAgc3RhdGljIHZvaWQgY2xpcEZvclBhdHRlcm5GaWxsaW5nKGNhaXJvX3QqIGNyLCBj
b25zdCBGbG9hdFNpemUmIHBhdHRlcm5TaXplLCBjb24KICAgICBjYWlyb19wYXRoX2Rlc3Ryb3ko
Y3VycmVudFBhdGgpOwogfQogCi1zdGF0aWMgdm9pZCBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb190
KiBjciwgY29uc3QgQ2Fpcm86OkZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsIGZsb2F0IGdsb2JhbEFs
cGhhLCBQYXR0ZXJuQWRqdXN0bWVudCBwYXR0ZXJuQWRqdXN0bWVudCkKK3N0YXRpYyB2b2lkIHBy
ZXBhcmVGb3JGaWxsaW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6RmlsbFNvdXJjZSYgZmls
bFNvdXJjZSwgUGF0dGVybkFkanVzdG1lbnQgcGF0dGVybkFkanVzdG1lbnQpCiB7CiAgICAgY2Fp
cm9fc2V0X2ZpbGxfcnVsZShjciwgZmlsbFNvdXJjZS5maWxsUnVsZSA9PSBSVUxFX0VWRU5PREQg
PyBDQUlST19GSUxMX1JVTEVfRVZFTl9PREQgOiBDQUlST19GSUxMX1JVTEVfV0lORElORyk7CiAK
QEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb190
KiBjciwgY29uc3QgQ2Fpcm86OkZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsCiAgICAgICAgIGdyYWRp
ZW50ID0gZmlsbFNvdXJjZS5ncmFkaWVudC5hbHBoYUFkanVzdGVkLmdldCgpOwogCiAgICAgcHJl
cGFyZUNhaXJvQ29udGV4dFNvdXJjZShjciwgZmlsbFNvdXJjZS5wYXR0ZXJuLm9iamVjdC5nZXQo
KSwgZ3JhZGllbnQsCi0gICAgICAgIGZpbGxTb3VyY2UuY29sb3IsIGFkanVzdEZvckFscGhhID8g
Z2xvYmFsQWxwaGEgOiAxKTsKKyAgICAgICAgZmlsbFNvdXJjZS5jb2xvciwgYWRqdXN0Rm9yQWxw
aGEgPyBmaWxsU291cmNlLmdsb2JhbEFscGhhIDogMSk7CiAKICAgICBpZiAoZmlsbFNvdXJjZS5w
YXR0ZXJuLm9iamVjdCkgewogICAgICAgICBjbGlwRm9yUGF0dGVybkZpbGxpbmcoY3IsIGZpbGxT
b3VyY2UucGF0dGVybi5zaXplLCBmaWxsU291cmNlLnBhdHRlcm4udHJhbnNmb3JtLApAQCAtMTMy
LDcgKzEzMiw3IEBAIHN0YXRpYyB2b2lkIHByZXBhcmVGb3JGaWxsaW5nKGNhaXJvX3QqIGNyLCBj
b25zdCBDYWlybzo6RmlsbFNvdXJjZSYgZmlsbFNvdXJjZSwKICAgICB9CiB9CiAKLXZvaWQgcHJl
cGFyZUZvclN0cm9raW5nKGNhaXJvX3QqIGNyLCBjb25zdCBDYWlybzo6U3Ryb2tlU291cmNlJiBz
dHJva2VTb3VyY2UsIGZsb2F0IGdsb2JhbEFscGhhLCBBbHBoYVByZXNlcnZhdGlvbiBhbHBoYVBy
ZXNlcnZhdGlvbikKK3ZvaWQgcHJlcGFyZUZvclN0cm9raW5nKGNhaXJvX3QqIGNyLCBjb25zdCBD
YWlybzo6U3Ryb2tlU291cmNlJiBzdHJva2VTb3VyY2UsIEFscGhhUHJlc2VydmF0aW9uIGFscGhh
UHJlc2VydmF0aW9uKQogewogICAgIGJvb2wgcHJlc2VydmVBbHBoYSA9IGFscGhhUHJlc2VydmF0
aW9uID09IFByZXNlcnZlQWxwaGE7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIHByZXBhcmVG
b3JTdHJva2luZyhjYWlyb190KiBjciwgY29uc3QgQ2Fpcm86OlN0cm9rZVNvdXJjZSYgc3Ryb2tl
U291cmNlLCBmbAogICAgICAgICBncmFkaWVudCA9IHN0cm9rZVNvdXJjZS5ncmFkaWVudC5hbHBo
YUFkanVzdGVkLmdldCgpOwogCiAgICAgcHJlcGFyZUNhaXJvQ29udGV4dFNvdXJjZShjciwgc3Ry
b2tlU291cmNlLnBhdHRlcm4uZ2V0KCksIGdyYWRpZW50LAotICAgICAgICBzdHJva2VTb3VyY2Uu
Y29sb3IsIHByZXNlcnZlQWxwaGEgPyBnbG9iYWxBbHBoYSA6IDEpOworICAgICAgICBzdHJva2VT
b3VyY2UuY29sb3IsIHByZXNlcnZlQWxwaGEgPyBzdHJva2VTb3VyY2UuZ2xvYmFsQWxwaGEgOiAx
KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGZpbGxSZWN0V2l0aENvbG9yKGNhaXJvX3QqIGNy
LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKQEAgLTIwMCwxNCAr
MjAwLDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcmF3UGF0aFNoYWRvdyhQbGF0Zm9ybUNvbnRl
eHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGCiAgICAgaWYgKGRyYXdpbmdTdHlsZSAm
IEZpbGwpIHsKICAgICAgICAgY2Fpcm9fc2F2ZShjYWlyb1NoYWRvd0NvbnRleHQpOwogICAgICAg
ICBjYWlyb19hcHBlbmRfcGF0aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOwotICAg
ICAgICBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb1NoYWRvd0NvbnRleHQsIGZpbGxTb3VyY2UsIHNo
YWRvd0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5nbG9iYWxBbHBoYSgpLCBOb0FkanVzdG1l
bnQpOworICAgICAgICBwcmVwYXJlRm9yRmlsbGluZyhjYWlyb1NoYWRvd0NvbnRleHQsIGZpbGxT
b3VyY2UsIE5vQWRqdXN0bWVudCk7CiAgICAgICAgIGNhaXJvX2ZpbGwoY2Fpcm9TaGFkb3dDb250
ZXh0KTsKICAgICAgICAgY2Fpcm9fcmVzdG9yZShjYWlyb1NoYWRvd0NvbnRleHQpOwogICAgIH0K
IAogICAgIGlmIChkcmF3aW5nU3R5bGUgJiBTdHJva2UpIHsKICAgICAgICAgY2Fpcm9fYXBwZW5k
X3BhdGgoY2Fpcm9TaGFkb3dDb250ZXh0LCBwYXRoLmdldCgpKTsKLSAgICAgICAgcHJlcGFyZUZv
clN0cm9raW5nKGNhaXJvU2hhZG93Q29udGV4dCwgc3Ryb2tlU291cmNlLCBzaGFkb3dDb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2xvYmFsQWxwaGEoKSwgRG9Ob3RQcmVzZXJ2ZUFscGhhKTsK
KyAgICAgICAgcHJlcGFyZUZvclN0cm9raW5nKGNhaXJvU2hhZG93Q29udGV4dCwgc3Ryb2tlU291
cmNlLCBEb05vdFByZXNlcnZlQWxwaGEpOwogICAgICAgICBjYWlyb19zdHJva2UoY2Fpcm9TaGFk
b3dDb250ZXh0KTsKICAgICB9CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgZmlsbEN1cnJlbnRDYWlyb1BhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgYwogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CiAgICAgY2Fp
cm9fc2F2ZShjcik7CiAKLSAgICBwcmVwYXJlRm9yRmlsbGluZyhjciwgZmlsbFNvdXJjZSwgcGxh
dGZvcm1Db250ZXh0Lmdsb2JhbEFscGhhKCksIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7
CisgICAgcHJlcGFyZUZvckZpbGxpbmcoY3IsIGZpbGxTb3VyY2UsIEFkanVzdFBhdHRlcm5Gb3JH
bG9iYWxBbHBoYSk7CiAgICAgY2Fpcm9fZmlsbChjcik7CiAKICAgICBjYWlyb19yZXN0b3JlKGNy
KTsKQEAgLTQzMCwxMSArNDMwLDYgQEAgdm9pZCBzZXRTdHJva2VTdHlsZShQbGF0Zm9ybUNvbnRl
eHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBTdHJva2VTdHlsZSBzdHJva2VTdHkKICAgICB9CiB9
CiAKLXZvaWQgc2V0R2xvYmFsQWxwaGEoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgZmxvYXQgYWxwaGEpCi17Ci0gICAgcGxhdGZvcm1Db250ZXh0LnNldEdsb2JhbEFscGhh
KGFscGhhKTsKLX0KLQogdm9pZCBzZXRDb21wb3NpdGVPcGVyYXRpb24oUGxhdGZvcm1Db250ZXh0
Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0
aW9uLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewogICAgIGNhaXJvX3NldF9vcGVyYXRvcihwbGF0
Zm9ybUNvbnRleHQuY3IoKSwgdG9DYWlyb09wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdGlvbiwgYmxl
bmRNb2RlKSk7CkBAIC00NDgsMTEgKzQ0Myw2IEBAIHZvaWQgc2V0U2hvdWxkQW50aWFsaWFzKFBs
YXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGJvb2wgZW5hYmxlKQogICAgIGNh
aXJvX3NldF9hbnRpYWxpYXMocGxhdGZvcm1Db250ZXh0LmNyKCksIGVuYWJsZSA/IENBSVJPX0FO
VElBTElBU19ERUZBVUxUIDogQ0FJUk9fQU5USUFMSUFTX05PTkUpOwogfQogCi12b2lkIHNldElt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgcXVhbGl0eSkKLXsKLSAgICBwbGF0Zm9ybUNvbnRl
eHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShxdWFsaXR5KTsKLX0KLQogdm9pZCBzZXRD
VE0oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0pCiB7CiAgICAgY29uc3QgY2Fpcm9fbWF0cml4X3QgbWF0cml4ID0g
dG9DYWlyb01hdHJpeCh0cmFuc2Zvcm0pOwpAQCAtNTIyLDYgKzUxMiw4IEBAIGJvb2wgaXNBY2Nl
bGVyYXRlZENvbnRleHQoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCkKIH0g
Ly8gbmFtZXNwYWNlIFN0YXRlCiAKIEZpbGxTb3VyY2U6OkZpbGxTb3VyY2UoY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIHN0YXRlKQorICAgIDogZ2xvYmFsQWxwaGEoc3RhdGUuYWxwaGEpCisg
ICAgLCBmaWxsUnVsZShzdGF0ZS5maWxsUnVsZSkKIHsKICAgICBpZiAoc3RhdGUuZmlsbFBhdHRl
cm4pIHsKICAgICAgICAgcGF0dGVybi5vYmplY3QgPSBhZG9wdFJlZihzdGF0ZS5maWxsUGF0dGVy
bi0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKEFmZmluZVRyYW5zZm9ybSgpKSk7CkBAIC01MzcsMTEg
KzUyOSwxMCBAQCBGaWxsU291cmNlOjpGaWxsU291cmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiBzdGF0ZSkKICAgICAgICAgICAgIGdyYWRpZW50LmFscGhhQWRqdXN0ZWQgPSBhZG9wdFJl
ZihzdGF0ZS5maWxsR3JhZGllbnQtPmNyZWF0ZVBsYXRmb3JtR3JhZGllbnQoc3RhdGUuYWxwaGEp
KTsKICAgICB9IGVsc2UKICAgICAgICAgY29sb3IgPSBzdGF0ZS5maWxsQ29sb3I7Ci0KLSAgICBm
aWxsUnVsZSA9IHN0YXRlLmZpbGxSdWxlOwogfQogCiBTdHJva2VTb3VyY2U6OlN0cm9rZVNvdXJj
ZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUpCisgICAgOiBnbG9iYWxBbHBoYShz
dGF0ZS5hbHBoYSkKIHsKICAgICBpZiAoc3RhdGUuc3Ryb2tlUGF0dGVybikKICAgICAgICAgcGF0
dGVybiA9IGFkb3B0UmVmKHN0YXRlLnN0cm9rZVBhdHRlcm4tPmNyZWF0ZVBsYXRmb3JtUGF0dGVy
bihBZmZpbmVUcmFuc2Zvcm0oKSkpOwpAQCAtNzIwLDcgKzcxMSw3IEBAIHZvaWQgc3Ryb2tlUmVj
dChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGZsCiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJl
Y3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY3Is
IGxpbmVXaWR0aCk7CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0
cm9rZVNvdXJjZSwgc2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7Ci0gICAgcHJl
cGFyZUZvclN0cm9raW5nKGNyLCBzdHJva2VTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxB
bHBoYSgpLCBQcmVzZXJ2ZUFscGhhKTsKKyAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9r
ZVNvdXJjZSwgUHJlc2VydmVBbHBoYSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIAogICAgIGNh
aXJvX3Jlc3RvcmUoY3IpOwpAQCAtNzMyLDcgKzcyMyw3IEBAIHZvaWQgc3Ryb2tlUGF0aChQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBQYXRoJiBwYXRoLCBjb25z
dCBTCiAKICAgICBzZXRQYXRoT25DYWlyb0NvbnRleHQoY3IsIHBhdGgucGxhdGZvcm1QYXRoKCkt
PmNvbnRleHQoKSk7CiAgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0
cm9rZVNvdXJjZSwgc2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7Ci0gICAgcHJl
cGFyZUZvclN0cm9raW5nKGNyLCBzdHJva2VTb3VyY2UsIHBsYXRmb3JtQ29udGV4dC5nbG9iYWxB
bHBoYSgpLCBQcmVzZXJ2ZUFscGhhKTsKKyAgICBwcmVwYXJlRm9yU3Ryb2tpbmcoY3IsIHN0cm9r
ZVNvdXJjZSwgUHJlc2VydmVBbHBoYSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKIH0KIApAQCAt
NzU1LDcgKzc0Niw3IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291CiAgICAgY2Fpcm9fc2F2ZShj
cik7CiAKICAgICBpZiAodGV4dERyYXdpbmdNb2RlICYgVGV4dE1vZGVGaWxsKSB7Ci0gICAgICAg
IHByZXBhcmVGb3JGaWxsaW5nKGNyLCBmaWxsU291cmNlLCBwbGF0Zm9ybUNvbnRleHQuZ2xvYmFs
QWxwaGEoKSwgQWRqdXN0UGF0dGVybkZvckdsb2JhbEFscGhhKTsKKyAgICAgICAgcHJlcGFyZUZv
ckZpbGxpbmcoY3IsIGZpbGxTb3VyY2UsIEFkanVzdFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7CiAg
ICAgICAgIGRyYXdHbHlwaHNUb0NvbnRleHQoY3IsIHNjYWxlZEZvbnQsIHN5bnRoZXRpY0JvbGRP
ZmZzZXQsIGdseXBocyk7CiAgICAgfQogCkBAIC03NjQsNyArNzU1LDcgQEAgdm9pZCBkcmF3R2x5
cGhzKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZpbGxTb3Vy
Y2UmIGZpbGxTb3UKICAgICAvLyB0aGUgdGV4dCBhcyBldmVuIG9uZSBzaW5nbGUgc3Ryb2tlIHdv
dWxkIGNvdmVyIHRoZSBmdWxsIHdkdGggb2YgdGhlIHRleHQuCiAgICAgLy8gIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM3NTkuCiAgICAgaWYgKHRleHREcmF3
aW5nTW9kZSAmIFRleHRNb2RlU3Ryb2tlICYmIHN0cm9rZVRoaWNrbmVzcyA8IDIgKiB4T2Zmc2V0
KSB7Ci0gICAgICAgIHByZXBhcmVGb3JTdHJva2luZyhjciwgc3Ryb2tlU291cmNlLCBwbGF0Zm9y
bUNvbnRleHQuZ2xvYmFsQWxwaGEoKSwgUHJlc2VydmVBbHBoYSk7CisgICAgICAgIHByZXBhcmVG
b3JTdHJva2luZyhjciwgc3Ryb2tlU291cmNlLCBQcmVzZXJ2ZUFscGhhKTsKICAgICAgICAgY2Fp
cm9fc2V0X2xpbmVfd2lkdGgoY3IsIHN0cm9rZVRoaWNrbmVzcyk7CiAKICAgICAgICAgLy8gVGhp
cyBtYXkgZGlzdHVyYiB0aGUgQ1RNLCBidXQgd2UgYXJlIGdvaW5nIHRvIGNhbGwgY2Fpcm9fcmVz
dG9yZSBzb29uIGFmdGVyLgpAQCAtNzc2LDcgKzc2Nyw3IEBAIHZvaWQgZHJhd0dseXBocyhQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxs
U291CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKLXZvaWQgZHJhd05hdGl2ZUltYWdlKFBs
YXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3Vy
ZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRv
d1N0YXRlLCBHcmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleHQpCit2b2lkIGRyYXdOYXRpdmVJ
bWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNl
X3QqIHN1cmZhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFs
aXR5IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBT
aGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkK
IHsKICAgICBwbGF0Zm9ybUNvbnRleHQuc2F2ZSgpOwogCkBAIC03OTksNyArNzkwLDcgQEAgdm9p
ZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwg
Y2Fpcm9fc3VyZmFjZV90KiBzdXIKICAgICAgICAgfQogICAgIH0KIAotICAgIHBsYXRmb3JtQ29u
dGV4dC5kcmF3U3VyZmFjZVRvQ29udGV4dChzdXJmYWNlLCBkc3QsIHNyY1JlY3QsIHNoYWRvd1N0
YXRlLCB0YXJnZXRDb250ZXh0KTsKKyAgICBwbGF0Zm9ybUNvbnRleHQuZHJhd1N1cmZhY2VUb0Nv
bnRleHQoc3VyZmFjZSwgZHN0LCBzcmNSZWN0LCBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBn
bG9iYWxBbHBoYSwgc2hhZG93U3RhdGUsIHRhcmdldENvbnRleHQpOwogICAgIHBsYXRmb3JtQ29u
dGV4dC5yZXN0b3JlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKaW5kZXggYjY0ZGNjMmExNDNlMzk4
YjhjYTYyODg1NTczOGU1YTE3MmUzNDhiYy4uYTVlMDE3YmMyODFlNWE3OWU3ZDM4NjNiMzBjNDA4
YzEyNjVkNDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKQEAgLTU5LDEwICs1OSw4IEBAIG5hbWVzcGFj
ZSBTdGF0ZSB7CiB2b2lkIHNldFN0cm9rZVRoaWNrbmVzcyhQbGF0Zm9ybUNvbnRleHRDYWlybyYs
IGZsb2F0KTsKIHZvaWQgc2V0U3Ryb2tlU3R5bGUoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBTdHJv
a2VTdHlsZSk7CiAKLXZvaWQgc2V0R2xvYmFsQWxwaGEoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBm
bG9hdCk7CiB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlvbihQbGF0Zm9ybUNvbnRleHRDYWlybyYs
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwogdm9pZCBzZXRTaG91bGRBbnRpYWxpYXMo
UGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBib29sKTsKLXZvaWQgc2V0SW1hZ2VJbnRlcnBvbGF0aW9u
UXVhbGl0eShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIEludGVycG9sYXRpb25RdWFsaXR5KTsKIAog
dm9pZCBzZXRDVE0oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
KTsKIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0oUGxhdGZvcm1Db250ZXh0Q2Fpcm8mKTsKQEAgLTc4
LDYgKzc2LDcgQEAgc3RydWN0IEZpbGxTb3VyY2UgewogICAgIEZpbGxTb3VyY2UoKSA9IGRlZmF1
bHQ7CiAgICAgZXhwbGljaXQgRmlsbFNvdXJjZShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYp
OwogCisgICAgZmxvYXQgZ2xvYmFsQWxwaGEgeyAwIH07CiAgICAgc3RydWN0IHsKICAgICAgICAg
UmVmUHRyPGNhaXJvX3BhdHRlcm5fdD4gb2JqZWN0OwogICAgICAgICBGbG9hdFNpemUgc2l6ZTsK
QEAgLTk4LDYgKzk3LDcgQEAgc3RydWN0IFN0cm9rZVNvdXJjZSB7CiAgICAgU3Ryb2tlU291cmNl
KCkgPSBkZWZhdWx0OwogICAgIGV4cGxpY2l0IFN0cm9rZVNvdXJjZShjb25zdCBHcmFwaGljc0Nv
bnRleHRTdGF0ZSYpOwogCisgICAgZmxvYXQgZ2xvYmFsQWxwaGEgeyAwIH07CiAgICAgUmVmUHRy
PGNhaXJvX3BhdHRlcm5fdD4gcGF0dGVybjsKICAgICBzdHJ1Y3QgewogICAgICAgICBSZWZQdHI8
Y2Fpcm9fcGF0dGVybl90PiBiYXNlOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgY2xlYXJSZWN0
KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKIHZvaWQgZHJhd0ds
eXBocyhQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZpbGxTb3VyY2UmLCBjb25zdCBTdHJv
a2VTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0ZSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjYWlyb19z
Y2FsZWRfZm9udF90KiwgZG91YmxlLCBjb25zdCBWZWN0b3I8Y2Fpcm9fZ2x5cGhfdD4mLCBmbG9h
dCwgVGV4dERyYXdpbmdNb2RlRmxhZ3MsIGZsb2F0LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBD
b2xvciYsIEdyYXBoaWNzQ29udGV4dCYpOwogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9y
bUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b24sIGNvbnN0IFNoYWRvd1N0YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIGRyYXdOYXRp
dmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUs
IEltYWdlT3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3QgU2hh
ZG93U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmKTsKIHZvaWQgZHJhd1BhdHRlcm4oUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mLCBjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBJbnRTaXplJiwgY29uc3QgRmxv
YXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwogCiB2b2lkIGRyYXdS
ZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0
IENvbG9yJiwgU3Ryb2tlU3R5bGUsIGNvbnN0IENvbG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAKaW5kZXggOWJkNTllYTlmNTEyOTY3NWJkNmNmOTllYTZhNTBkM2FhZGRjOWU0NS4u
NjkxMzYwNDNmZTFiMzE3ZDBlYWNhNDgxNGMzMjY1Nzg3NDA0ZmZkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcApAQCAtMTM5LDcgKzEzOSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9h
dFNpCiAgICAgfQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKLSAgICBDYWly
bzo6ZHJhd05hdGl2ZUltYWdlKCpwbGF0Zm9ybUNvbnRleHQoKSwgaW1hZ2UuZ2V0KCksIGRlc3RS
ZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwg
Q2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKCkpLCAqdGhpcyk7CisgICAgYXV0byYgc3RhdGUgPSB0
aGlzLT5zdGF0ZSgpOworICAgIENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UoKnBsYXRmb3JtQ29udGV4
dCgpLCBpbWFnZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBi
bGVuZE1vZGUsIG9yaWVudGF0aW9uLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBz
dGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgKnRoaXMpOwogfQogCiAvLyBU
aGlzIGlzIG9ubHkgdXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBub3QgZHJhdyBz
aGFkb3dzLgpAQCAtNTczLDkgKzU3NCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRNaXRl
ckxpbWl0KGZsb2F0IG1pdGVyKQogICAgIENhaXJvOjpzZXRNaXRlckxpbWl0KCpwbGF0Zm9ybUNv
bnRleHQoKSwgbWl0ZXIpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1B
bHBoYShmbG9hdCBhbHBoYSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUFscGhh
KGZsb2F0KQogewotICAgIENhaXJvOjpTdGF0ZTo6c2V0R2xvYmFsQWxwaGEoKnBsYXRmb3JtQ29u
dGV4dCgpLCBhbHBoYSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUNv
bXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKQEAgLTY5NiwxMCArNjk2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgZW5hYmxlKQogICAgIENhaXJvOjpT
dGF0ZTo6c2V0U2hvdWxkQW50aWFsaWFzKCpwbGF0Zm9ybUNvbnRleHQoKSwgZW5hYmxlKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVh
bGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQordm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtSW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uUXVhbGl0
eSkKIHsKLSAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOwotICAgIENhaXJvOjpTdGF0
ZTo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgqcGxhdGZvcm1Db250ZXh0KCksIHF1YWxp
dHkpOwogfQogCiBib29sIEdyYXBoaWNzQ29udGV4dDo6aXNBY2NlbGVyYXRlZENvbnRleHQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
UGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uY3BwCmluZGV4IDlmNGQzZGNkNjVhZTg5MWE0
ZmIxZDk2NmM4M2FkNTM5NWRkZWZkMjYuLjIzNDk5ZGI5OGI5OTdiMWUxMTAyNDk1YWIxM2YyNzg0
YmExODc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKQEAgLTYyLDIzICs2Miw5
IEBAIHByaXZhdGU6CiAvLyBwdXNoZWQgZ3JhcGhpY3Mgc3RhdGUuCiBjbGFzcyBQbGF0Zm9ybUNv
bnRleHRDYWlybzo6U3RhdGUgewogcHVibGljOgotICAgIFN0YXRlKCkKLSAgICAgICAgOiBtX2ds
b2JhbEFscGhhKDEpCi0gICAgICAgICwgbV9pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVy
cG9sYXRpb25EZWZhdWx0KQotICAgIHsKLSAgICB9Ci0KLSAgICBTdGF0ZShmbG9hdCBnbG9iYWxB
bHBoYSwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSkKLSAg
ICAgICAgOiBtX2dsb2JhbEFscGhhKGdsb2JhbEFscGhhKQotICAgICAgICAsIG1faW1hZ2VJbnRl
cnBvbGF0aW9uUXVhbGl0eShpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KQotICAgIHsKLSAgICAg
ICAgLy8gV2UgZG8gbm90IGNvcHkgbV9pbWFnZU1hc2tJbmZvcm1hdGlvbiBiZWNhdXNlIG90aGVy
d2lzZSBpdCB3b3VsZCBiZSBhcHBsaWVkCi0gICAgICAgIC8vIG1vcmUgdGhhbiBvbmNlIGR1cmlu
ZyBzdWJzZXF1ZW50IGNhbGxzIHRvIHJlc3RvcmUoKS4KLSAgICB9CisgICAgU3RhdGUoKSA9IGRl
ZmF1bHQ7CiAKICAgICBJbWFnZU1hc2tJbmZvcm1hdGlvbiBtX2ltYWdlTWFza0luZm9ybWF0aW9u
OwotICAgIGZsb2F0IG1fZ2xvYmFsQWxwaGE7Ci0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgbV9p
bWFnZUludGVycG9sYXRpb25RdWFsaXR5OwogfTsKIAogUGxhdGZvcm1Db250ZXh0Q2Fpcm86OlBs
YXRmb3JtQ29udGV4dENhaXJvKGNhaXJvX3QqIGNyKQpAQCAtMTA4LDcgKzk0LDcgQEAgUGxhdGZv
cm1Db250ZXh0Q2Fpcm86On5QbGF0Zm9ybUNvbnRleHRDYWlybygpID0gZGVmYXVsdDsKIAogdm9p
ZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2F2ZSgpCiB7Ci0gICAgbV9zdGF0ZVN0YWNrLmFwcGVu
ZChTdGF0ZShtX3N0YXRlLT5tX2dsb2JhbEFscGhhLCBtX3N0YXRlLT5tX2ltYWdlSW50ZXJwb2xh
dGlvblF1YWxpdHkpKTsKKyAgICBtX3N0YXRlU3RhY2suYXBwZW5kKFN0YXRlKCkpOwogICAgIG1f
c3RhdGUgPSAmbV9zdGF0ZVN0YWNrLmxhc3QoKTsKIAogICAgIGNhaXJvX3NhdmUobV9jci5nZXQo
KSk7CkBAIC0xNTcsNyArMTQzLDcgQEAgc3RhdGljIHZvaWQgZHJhd1BhdHRlcm5Ub0NhaXJvQ29u
dGV4dChjYWlyb190KiBjciwgY2Fpcm9fcGF0dGVybl90KiBwYXR0ZXJuLCBjb24KICAgICAgICAg
Y2Fpcm9fZmlsbChjcik7CiB9CiAKLXZvaWQgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJm
YWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBvcmlnaW5hbFNyY1JlY3QsIGNvbnN0IENhaXJvOjpT
aGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkKK3ZvaWQg
UGxhdGZvcm1Db250ZXh0Q2Fpcm86OmRyYXdTdXJmYWNlVG9Db250ZXh0KGNhaXJvX3N1cmZhY2Vf
dCogc3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBv
cmlnaW5hbFNyY1JlY3QsIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBDYWlybzo6U2hhZG93U3RhdGUmIHNoYWRv
d1N0YXRlLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgLy8gQXZvaWQgaW52YWxp
ZCBjYWlybyBtYXRyaXggd2l0aCBzbWFsbCB2YWx1ZXMuCiAgICAgaWYgKHN0ZDo6ZmFicyhkZXN0
UmVjdC53aWR0aCgpKSA8IDAuNWYgfHwgc3RkOjpmYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA8IDAu
NWYpCkBAIC0xOTQsNyArMTgwLDcgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6ZHJhd1N1
cmZhY2VUb0NvbnRleHQoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBjb25zdAogICAgIFJlZlB0
cjxjYWlyb19wYXR0ZXJuX3Q+IHBhdHRlcm4gPSBhZG9wdFJlZihjYWlyb19wYXR0ZXJuX2NyZWF0
ZV9mb3Jfc3VyZmFjZShwYXR0ZXJuU3VyZmFjZS5nZXQoKSkpOwogCiAgICAgQVNTRVJUKG1fc3Rh
dGUpOwotICAgIHN3aXRjaCAobV9zdGF0ZS0+bV9pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7
CisgICAgc3dpdGNoIChpbWFnZUludGVycG9sYXRpb25RdWFsaXR5KSB7CiAgICAgY2FzZSBJbnRl
cnBvbGF0aW9uTm9uZToKICAgICBjYXNlIEludGVycG9sYXRpb25Mb3c6CiAgICAgICAgIGNhaXJv
X3BhdHRlcm5fc2V0X2ZpbHRlcihwYXR0ZXJuLmdldCgpLCBDQUlST19GSUxURVJfRkFTVCk7CkBA
IC0yMjcsMzMgKzIxMywxMCBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dENhaXJvOjpkcmF3U3VyZmFj
ZVRvQ29udGV4dChjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0CiAgICAgfQogCiAgICAg
Y2Fpcm9fc2F2ZShtX2NyLmdldCgpKTsKLSAgICBkcmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KG1f
Y3IuZ2V0KCksIHBhdHRlcm4uZ2V0KCksIGRlc3RSZWN0LCBnbG9iYWxBbHBoYSgpKTsKKyAgICBk
cmF3UGF0dGVyblRvQ2Fpcm9Db250ZXh0KG1fY3IuZ2V0KCksIHBhdHRlcm4uZ2V0KCksIGRlc3RS
ZWN0LCBnbG9iYWxBbHBoYSk7CiAgICAgY2Fpcm9fcmVzdG9yZShtX2NyLmdldCgpKTsKIH0KIAot
dm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJ
bnRlcnBvbGF0aW9uUXVhbGl0eSBxdWFsaXR5KQotewotICAgIEFTU0VSVChtX3N0YXRlKTsKLSAg
ICBtX3N0YXRlLT5tX2ltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkgPSBxdWFsaXR5OwotfQotCi1J
bnRlcnBvbGF0aW9uUXVhbGl0eSBQbGF0Zm9ybUNvbnRleHRDYWlybzo6aW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fc3RhdGUpOwotICAgIHJldHVybiBt
X3N0YXRlLT5tX2ltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHk7Ci19Ci0KLQotZmxvYXQgUGxhdGZv
cm1Db250ZXh0Q2Fpcm86Omdsb2JhbEFscGhhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdGF0
ZS0+bV9nbG9iYWxBbHBoYTsKLX0KLQotdm9pZCBQbGF0Zm9ybUNvbnRleHRDYWlybzo6c2V0R2xv
YmFsQWxwaGEoZmxvYXQgZ2xvYmFsQWxwaGEpCi17Ci0gICAgbV9zdGF0ZS0+bV9nbG9iYWxBbHBo
YSA9IGdsb2JhbEFscGhhOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBVU0UoQ0FJUk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaAppbmRleCA1NDA2ODE5NDAwZGVl
OWFjNDZhZmFjYmU5YTQxNjlkNDNiMDBhMzM0Li42MThjYjdhYmRiMzA0YjkyZDY4MzU0ZGY2N2Vl
OWE2NDU2NzIyNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtQ29udGV4dENhaXJvLmgKQEAgLTY0LDE0ICs2NCw5
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2F2ZSgpOwogICAgIHZvaWQgcmVzdG9yZSgpOwotICAg
IHZvaWQgc2V0R2xvYmFsQWxwaGEoZmxvYXQpOwotICAgIGZsb2F0IGdsb2JhbEFscGhhKCkgY29u
c3Q7CiAKICAgICB2b2lkIHB1c2hJbWFnZU1hc2soY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxv
YXRSZWN0Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3U3VyZmFjZVRvQ29udGV4dChj
YWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IENhaXJvOjpTaGFkb3dTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYp
OwotCi0gICAgdm9pZCBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25R
dWFsaXR5KTsKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3U3VyZmFjZVRvQ29udGV4
dChjYWlyb19zdXJmYWNlX3QqLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxBbHBoYSwg
Y29uc3QgQ2Fpcm86OlNoYWRvd1N0YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7CiAKIHByaXZhdGU6
CiAgICAgUmVmUHRyPGNhaXJvX3Q+IG1fY3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVNZWRpYUZvdW5kYXRpb24uY3BwCmluZGV4IGRkOGQxMjM5YzY3Njc3MWIwODNiNzE0MjhlN2E3
MzM4MzZhNzY3ZTQuLjBhNjQwNTc0YTA0ZWJlNWFiZDM4Njc3MDg3NDc4MDFmMjVlZjc5MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwCkBAIC0y
OTc0LDcgKzI5NzQsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbjo6
RGlyZWN0M0RQcmVzZW50ZXI6OnBhaW50Q3VycmVudEZyYW1lKFdlYgogICAgICAgICBGbG9hdFJl
Y3Qgc3JjUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgaWYgKGltYWdlKSB7CiAg
ICAgICAgICAgICBXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRDYWlybyogY3R4dCA9IGNvbnRleHQu
cGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgICAgICAgICBjdHh0LT5kcmF3U3VyZmFjZVRvQ29udGV4
dChpbWFnZSwgZGVzdFJlY3QsIHNyY1JlY3QsIENhaXJvOjpTaGFkb3dTdGF0ZShjb250ZXh0LnN0
YXRlKCkpLCBjb250ZXh0KTsKKyAgICAgICAgICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0
ZSgpOworICAgICAgICAgICAgY3R4dC0+ZHJhd1N1cmZhY2VUb0NvbnRleHQoaW1hZ2UsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBo
YSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgY29udGV4dCk7CiAgICAgICAgICAgICBjYWly
b19zdXJmYWNlX2Rlc3Ryb3koaW1hZ2UpOwogICAgICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCmluZGV4IGFj
YmQyMGRkNjRhNzI4Yzk0ZmY1MWNjOGY3MDg4OTEwZDU2Mzg1ODIuLjA2YTg0OTNjYjUwY2VmYTAy
MDNmODFiYTk3MGE3ZTZkZGNmZWQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2NhaXJvL1NoYXJlYWJsZUJpdG1hcENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKQEAgLTc1LDcgKzc1LDggQEAgdm9pZCBT
aGFyZWFibGVCaXRtYXA6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2Nh
bGVGYWN0b3IsIGNvbnN0IEkKICAgICBGbG9hdFJlY3QgZGVzdFJlY3QoZHN0UG9pbnQsIHNyY1Jl
Y3Quc2l6ZSgpKTsKICAgICBGbG9hdFJlY3Qgc3JjUmVjdFNjYWxlZChzcmNSZWN0KTsKICAgICBz
cmNSZWN0U2NhbGVkLnNjYWxlKHNjYWxlRmFjdG9yKTsKLSAgICBjb250ZXh0LnBsYXRmb3JtQ29u
dGV4dCgpLT5kcmF3U3VyZmFjZVRvQ29udGV4dChzdXJmYWNlLmdldCgpLCBkZXN0UmVjdCwgc3Jj
UmVjdFNjYWxlZCwgQ2Fpcm86OlNoYWRvd1N0YXRlKGNvbnRleHQuc3RhdGUoKSksIGNvbnRleHQp
OworICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgpOworICAgIGNvbnRleHQucGxhdGZv
cm1Db250ZXh0KCktPmRyYXdTdXJmYWNlVG9Db250ZXh0KHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0
LCBzcmNSZWN0U2NhbGVkLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5h
bHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgY29udGV4dCk7CiB9CiAKIFJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlQ2Fpcm9TdXJmYWNlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2Vi
RHJhZ0NsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwCmluZGV4IGI2Y2QxYmZlNDcwNjM4MDQ4OTA4NTc4
YzgwZTA4YzFlOGY4NzM3YzIuLjgwMjNlNjIxYTVkNjgyMTBmMWIwNDNkZDBhOWY3ZjIxZDA2Mjdm
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9n
dGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJEcmFnQ2xpZW50R3RrLmNwcApAQCAtNTQsNyArNTQsOCBAQCBz
dGF0aWMgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gY29udmVydENhaXJvU3VyZmFjZVRvU2hhcmVh
YmxlQml0bWFwKGNhaXJvX3N1cmZhYwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1h
cCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGltYWdlU2l6ZSwgeyB9KTsKICAg
ICBhdXRvIGdyYXBoaWNzQ29udGV4dCA9IGJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7
CiAKLSAgICBncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5kcmF3U3VyZmFjZVRv
Q29udGV4dChzdXJmYWNlLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdlU2l6ZSksIEludFJlY3Qo
SW50UG9pbnQoKSwgaW1hZ2VTaXplKSwgQ2Fpcm86OlNoYWRvd1N0YXRlKGdyYXBoaWNzQ29udGV4
dC0+c3RhdGUoKSksICpncmFwaGljc0NvbnRleHQpOworICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhp
Y3NDb250ZXh0LT5zdGF0ZSgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCktPmRyYXdTdXJmYWNlVG9Db250ZXh0KHN1cmZhY2UsIEludFJlY3QoSW50UG9pbnQoKSwgaW1h
Z2VTaXplKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZVNpemUpLCBzdGF0ZS5pbWFnZUludGVy
cG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwg
KmdyYXBoaWNzQ29udGV4dCk7CiAgICAgcmV0dXJuIGJpdG1hcDsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>