<?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>161155</bug_id>
          
          <creation_ts>2016-08-24 12:04:51 -0700</creation_ts>
          <short_desc>[JSC] Move generic data structures out of B3</short_desc>
          <delta_ts>2016-08-24 12:37:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1222767</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-24 12:04:51 -0700</bug_when>
    <thetext>[JSC] Move generic data structures out of B3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222769</commentid>
    <comment_count>1</comment_count>
      <attachid>286880</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-24 12:07:50 -0700</bug_when>
    <thetext>Created attachment 286880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222772</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-24 12:11:30 -0700</bug_when>
    <thetext>Attachment 286880 did not pass style-queue:


ERROR: Source/WTF/wtf/IndexedContainerIterator.h:48:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222775</commentid>
    <comment_count>3</comment_count>
      <attachid>286880</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-08-24 12:24:20 -0700</bug_when>
    <thetext>Comment on attachment 286880
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222783</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-08-24 12:37:29 -0700</bug_when>
    <thetext>Committed r204920: &lt;http://trac.webkit.org/changeset/204920&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286880</attachid>
            <date>2016-08-24 12:07:50 -0700</date>
            <delta_ts>2016-08-24 12:24:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161155-20160825040549.patch</filename>
            <type>text/plain</type>
            <size>45996</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjdmZTQxMDI5NzI1NWU1YWRiZDA4MzQ3YjhlMjQwMjQ3ZjA0MzdmLi4yZTgwOGRiMzc0ZDk3YzYx
YWVkNTFlNDcyM2NlZTRmYmQ5YzE4ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAxNi0wOC0yNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBNb3ZlIGdlbmVyaWMgZGF0YSBzdHJ1Y3R1cmVzIG91dCBv
ZiBCMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYx
MTU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92
ZSBCMydzIGdvb2QgZ2VuZXJpYyBkYXRhIHN0cnVjdHVyZXMgdG8gV1RGLgorICAgICAgICBUaGV5
IGNhbiBiZSB1c2VkIGZvciB0aGUgb3RoZXIga2luZCBvZiBiYXNpYyBibG9ja3MgYW5kIG5vZGVz
LgorICAgICAgICBGb3IgZXhhbXBsZSwgdGhlIGdlbmVyYXRvciBwYXRjaFsxXSB3aWxsIG1ha2Ug
Qnl0ZWNvZGVCYXNpY0Jsb2NrIHVzYWJsZSB3aXRoIHRoZXNlIHN0cnVjdHVyZXMuCisKKyAgICAg
ICAgWzFdOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzIzCisK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGIzL0IzQmFzaWNCbG9ja1V0aWxzLmg6CisgICAgICAgICogYjMvQjNCbG9ja1dvcmts
aXN0Lmg6CisgICAgICAgICogYjMvQjNDRkcuaDoKKyAgICAgICAgKiBiMy9CM0R1cGxpY2F0ZVRh
aWxzLmNwcDoKKyAgICAgICAgKiBiMy9CM0ZpeFNTQS5jcHA6CisgICAgICAgICogYjMvQjNGaXhT
U0EuaDoKKyAgICAgICAgKiBiMy9CM0luZGV4TWFwLmg6CisgICAgICAgIChKU0M6OkIzOjpJbmRl
eE1hcDo6SW5kZXhNYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhNYXA6OnJl
c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleE1hcDo6Y2xlYXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhNYXA6OnNpemUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpCMzo6SW5kZXhNYXA6Om9wZXJhdG9yW10pOiBEZWxldGVkLgorICAgICAgICAqIGIz
L0IzSW5kZXhTZXQuaDoKKyAgICAgICAgKEpTQzo6QjM6OkluZGV4U2V0OjpJbmRleFNldCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6YWRkKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6QjM6OkluZGV4U2V0OjphZGRBbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpC
Mzo6SW5kZXhTZXQ6OnJlbW92ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNl
dDo6Y29udGFpbnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6OnNpemUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6OmlzRW1wdHkpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6Okl0ZXJhYmxlOjpJdGVyYWJsZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6SXRlcmFibGU6Oml0ZXJhdG9yOjppdGVy
YXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6SXRlcmFibGU6Oml0
ZXJhdG9yOjpvcGVyYXRvciopOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6
Okl0ZXJhYmxlOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpJbmRleFNldDo6SXRlcmFibGU6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6QjM6OkluZGV4U2V0OjpJdGVyYWJsZTo6aXRlcmF0b3I6Om9wZXJhdG9y
IT0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6SW5kZXhTZXQ6Okl0ZXJhYmxlOjpiZWdp
bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6SXRlcmFibGU6OmVuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpJbmRleFNldDo6dmFsdWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6QjM6OkluZGV4U2V0OjppbmRpY2VzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6QjM6OkluZGV4U2V0OjpkdW1wKTogRGVsZXRlZC4KKyAgICAgICAgKiBiMy9CM0xvd2Vy
VG9BaXIuY3BwOgorICAgICAgICAqIGIzL0IzUGhpQ2hpbGRyZW4uaDoKKyAgICAgICAgKiBiMy9C
M1Byb2NlZHVyZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjppdGVyYXRvcjo6aXRl
cmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjppdGVyYXRvcjo6
b3BlcmF0b3IqKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6aXRlcmF0
b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpp
dGVyYXRvcjo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpQcm9jZWR1
cmU6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlBy
b2NlZHVyZTo6aXRlcmF0b3I6OmZpbmROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiMy9CM1Jl
ZHVjZURvdWJsZVRvRmxvYXQuY3BwOgorICAgICAgICAqIGIzL0IzUmVkdWNlU3RyZW5ndGguY3Bw
OgorICAgICAgICAqIGIzL0IzU1NBQ2FsY3VsYXRvci5oOgorICAgICAgICAqIGIzL0IzVXNlQ291
bnRzLmg6CisgICAgICAgICogYjMvYWlyL0FpckNvZGUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
RWxpbWluYXRlRGVhZENvZGUuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJGaXhPYnZpb3VzU3Bp
bGxzLmNwcDoKKyAgICAgICAgKiBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cDoKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGUuY3BwOgorICAgICAgICAqIGIzL2Fpci9B
aXJHZW5lcmF0aW9uQ29udGV4dC5oOgorICAgICAgICAqIGIzL2Fpci9BaXJMaXZlbmVzcy5oOgor
ICAgICAgICAqIGIzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwOgorCiAyMDE2LTA4LTIzICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAganMvcmVncmVzcy9wdXQt
YnktaWQtdHJhbnNpdGlvbi13aXRoLWluZGV4aW5nLWhlYWRlci5odG1sIGFuZCBzdmcvY2FydG8u
bmV0L3dpbmRvdy5zdmcgZmFpbCBpbiBkZWJ1ZyBhZnRlciByMjA0ODU0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDU2NTQyMWIw
YjU1MWJhMmZlNDZlZDU1YmRjNzBmN2JkNzIwMTNmMjIuLmE2ZjFjNDI2ZmE5YzVkZTI0OThiZDli
ZmM2ZjI4YWY4MmQ3ZGI1MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTYtMDgtMjQgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gTW92ZSBn
ZW5lcmljIGRhdGEgc3RydWN0dXJlcyBvdXQgb2YgQjMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTE1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBJbmRleFNldCwgSW5kZXhNYXAsIGFuZCBJbmRl
eGVkQ29udGFpbmVySXRlcmF0b3IuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0lu
ZGV4TWFwLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4TWFw
LmguCisgICAgICAgIChXVEY6OkluZGV4TWFwOjpJbmRleE1hcCk6CisgICAgICAgIChXVEY6Oklu
ZGV4TWFwOjpyZXNpemUpOgorICAgICAgICAoV1RGOjpJbmRleE1hcDo6Y2xlYXIpOgorICAgICAg
ICAoV1RGOjpJbmRleE1hcDo6c2l6ZSk6CisgICAgICAgIChXVEY6OkluZGV4TWFwOjpvcGVyYXRv
cltdKToKKyAgICAgICAgKiB3dGYvSW5kZXhTZXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0luZGV4U2V0LmguCisgICAgICAgIChXVEY6OkluZGV4U2V0OjpJbmRl
eFNldCk6CisgICAgICAgIChXVEY6OkluZGV4U2V0OjphZGQpOgorICAgICAgICAoV1RGOjpJbmRl
eFNldDo6YWRkQWxsKToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6OnJlbW92ZSk6CisgICAgICAg
IChXVEY6OkluZGV4U2V0Ojpjb250YWlucyk6CisgICAgICAgIChXVEY6OkluZGV4U2V0OjpzaXpl
KToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6OmlzRW1wdHkpOgorICAgICAgICAoV1RGOjpJbmRl
eFNldDo6SXRlcmFibGU6Okl0ZXJhYmxlKToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6Okl0ZXJh
YmxlOjppdGVyYXRvcjo6aXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpJbmRleFNldDo6SXRlcmFi
bGU6Oml0ZXJhdG9yOjpvcGVyYXRvciopOgorICAgICAgICAoV1RGOjpJbmRleFNldDo6SXRlcmFi
bGU6Oml0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6Okl0ZXJh
YmxlOjppdGVyYXRvcjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OkluZGV4U2V0OjpJdGVy
YWJsZTo6aXRlcmF0b3I6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjpJbmRleFNldDo6SXRl
cmFibGU6OmJlZ2luKToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6Okl0ZXJhYmxlOjplbmQpOgor
ICAgICAgICAoV1RGOjpJbmRleFNldDo6dmFsdWVzKToKKyAgICAgICAgKFdURjo6SW5kZXhTZXQ6
OmluZGljZXMpOgorICAgICAgICAoV1RGOjpJbmRleFNldDo6ZHVtcCk6CisgICAgICAgICogd3Rm
L0luZGV4ZWRDb250YWluZXJJdGVyYXRvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzSW5kZXhNYXAuaC4KKyAgICAgICAgKFdURjo6SW5kZXhlZENvbnRhaW5lckl0
ZXJhdG9yOjpJbmRleGVkQ29udGFpbmVySXRlcmF0b3IpOgorICAgICAgICAoV1RGOjpJbmRleGVk
Q29udGFpbmVySXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAoV1RGOjpJbmRleGVkQ29u
dGFpbmVySXRlcmF0b3I6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV1RGOjpJbmRleGVkQ29udGFp
bmVySXRlcmF0b3I6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjpJbmRleGVkQ29udGFpbmVy
SXRlcmF0b3I6OmZpbmROZXh0KToKKwogMjAxNi0wOC0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgogCiAgICAgICAgIEJ1dHRlcmZsaWVzIHNob3VsZCBiZSBhbGxvY2F0ZWQgaW4g
QXV4aWxpYXJ5IE1hcmtlZFNwYWNlIGluc3RlYWQgb2YgQ29waWVkU3BhY2UgYW5kIHdlIHNob3Vs
ZCByZXdyaXRlIGFzIG11Y2ggb2YgdGhlIEdDIGFzIG5lZWRlZCB0byBtYWtlIHRoaXMgbm90IGEg
cmVncmVzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNjAzY2ZjMjVmY2Jm
ZTRkNzE0NTk3Njk2NWQ3MWY1OTIyODVkMDg0Li5jZTQ2MmFmZWFmMGM2ODdiNDdlNmYzNmIxY2Jm
NzA5NWVmOWYyZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzk5LDggKzc5
OSw2IEBACiAJCTBGRUM4NTE4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENFMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTkxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzR2VuZXJhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUM4NENGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmggKi87
IH07CiAJCTBGRUM4NTFBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyaWNGcmVxdWVudGVkQmxv
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4
NEQwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyaWNGcmVxdWVudGVkQmxvY2suaCAqLzsgfTsK
LQkJMEZFQzg1MUIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEQxMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0luZGV4TWFwLmggKi87IH07Ci0JCTBGRUM4NTFDMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0luZGV4U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVDODREMjFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleFNldC5oICovOyB9OwogCQkwRkVD
ODUxRDFCREFDREFDMDA4MEZGNzQgLyogQjNMb3dlclRvQWlyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEQzMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0xvd2VyVG9BaXIuY3BwICovOyB9OwogCQkwRkVDODUxRTFCREFDREFDMDA4MEZGNzQgLyog
QjNMb3dlclRvQWlyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkVDODRENDFCREFDREFDMDA4MEZGNzQgLyogQjNMb3dlclRvQWlyLmggKi87IH07CiAJ
CTBGRUM4NTFGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM01lbW9yeVZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEQ1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM01lbW9yeVZhbHVlLmNwcCAqLzsgfTsKQEAgLTMwNDEsOCArMzAzOSw2IEBACiAJ
CTBGRUM4NENFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzR2VuZXJhdGUuY3BwOyBwYXRoID0gYjMvQjNHZW5l
cmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUM4NENGMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0dlbmVyYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEIzR2VuZXJhdGUuaDsgcGF0aCA9IGIzL0IzR2VuZXJhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZFQzg0RDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJpY0ZyZXF1ZW50
ZWRCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0dlbmVyaWNGcmVx
dWVudGVkQmxvY2suaDsgcGF0aCA9IGIzL0IzR2VuZXJpY0ZyZXF1ZW50ZWRCbG9jay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJ
bmRleE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0luZGV4TWFwLmg7
IHBhdGggPSBiMy9CM0luZGV4TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
RUM4NEQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEIzSW5kZXhTZXQuaDsgcGF0aCA9IGIzL0IzSW5kZXhTZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0RDMxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
TG93ZXJUb0Fpci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0xv
d2VyVG9BaXIuY3BwOyBwYXRoID0gYjMvQjNMb3dlclRvQWlyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZFQzg0RDQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzTG93ZXJUb0Fpci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0xvd2VyVG9BaXIuaDsgcGF0aCA9
IGIzL0IzTG93ZXJUb0Fpci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRE
NTFCREFDREFDMDA4MEZGNzQgLyogQjNNZW1vcnlWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCM01lbW9yeVZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzTWVtb3J5
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg0Miw4ICs0ODM4LDYg
QEAKIAkJCQkwRkVDODREMDFCREFDREFDMDA4MEZGNzQgLyogQjNHZW5lcmljRnJlcXVlbnRlZEJs
b2NrLmggKi8sCiAJCQkJMEZFQzg1QkYxQkUxNjdBMDAwODBGRjc0IC8qIEIzSGVhcFJhbmdlLmNw
cCAqLywKIAkJCQkwRkVDODVDMDFCRTE2N0EwMDA4MEZGNzQgLyogQjNIZWFwUmFuZ2UuaCAqLywK
LQkJCQkwRkVDODREMTFCREFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oICovLAotCQkJCTBG
RUM4NEQyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0luZGV4U2V0LmggKi8sCiAJCQkJREM2OUI5OUEx
RDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5jcHAgKi8sCiAJCQkJREM2OUI5OUIx
RDE1RjkwRjAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hlcy5oICovLAogCQkJCTBGRUM4NUI0MUJF
MTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5jcHAgKi8sCkBAIC03MjIwLDggKzcyMTQs
NiBAQAogCQkJCTBGRUM4NUMzMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0hlYXBSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjY3MThCQTUxQkU5OUY3ODAwNTIwMTdCIC8qIEFpckl0ZXJhdGVkUmVn
aXN0ZXJDb2FsZXNjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2MzAzQzFENDE5MkNEMDA1
NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxQjFC
REFDREFDMDA4MEZGNzQgLyogQjNJbmRleE1hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1
MUMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RUM4NUJBMUJFMTQ2MkYwMDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZFQzg1QkIxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MUUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzTG93ZXJU
b0Fpci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNCYXNpY0Jsb2NrVXRpbHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2lj
QmxvY2tVdGlscy5oCmluZGV4IDRhNzE3Njc4NzhjNmViMzcyMzA1MGRlOTIxOTVlZGVhNTg1MDE5
ZjcuLjMyYTU5ZmMxMjBjYjg0MGZhYmEwNmIxZjdkMWQ3YjFiNWE5YWFkOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tVdGlscy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tVdGlscy5oCkBAIC0yOCw4ICsyOCw4IEBA
CiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1
ZGUgPHd0Zi9HcmFwaE5vZGVXb3JrbGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja1dvcmtsaXN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja1dvcmtsaXN0LmgKaW5kZXggYWY3ZWUy
Yzk2YmM5ODg4OWJkMGQ3OGIxNmU2Mjc4ZDU3M2NmNjIyMS4uOWU2YmU0YmI5ZjcwMTkyMjNlMTVl
MmFjNDljOGY2ZGUxNmM4ODk2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQmxvY2tXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2Nr
V29ya2xpc3QuaApAQCAtMjgsMTMgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0j
aW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCi0jaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1
ZGUgPHd0Zi9HcmFwaE5vZGVXb3JrbGlzdC5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKK2NsYXNzIEJhc2ljQmxvY2s7CisKIHR5cGVkZWYgR3JhcGhOb2RlV29ya2xpc3Q8QmFzaWNC
bG9jayosIEluZGV4U2V0PEJhc2ljQmxvY2s+PiBCbG9ja1dvcmtsaXN0OwogCiAvLyBXaGVuIHlv
dSBzYXkgQmxvY2tXaXRoPGludD4geW91IHNob3VsZCByZWFkIGl0IGFzICJibG9jayB3aXRoIGFu
IGludCIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDRkcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NGRy5oCmluZGV4IDU4YzQwYjFiYmFmNzdkZGVmYTFk
MjA2M2Y5M2U1ODk0NTkxZDE3YjMuLjkwNGFiM2Y5YTM2MGMyOTk1NjIwYTAwMmZhYTdjMTVkZTIy
NWVhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NGRy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NGRy5oCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYg
RU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotI2luY2x1ZGUgIkIz
SW5kZXhNYXAuaCIKLSNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1
cmUuaCIKKyNpbmNsdWRlIDx3dGYvSW5kZXhNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSW5kZXhTZXQu
aD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAppbmRleCBlZWNjZjU3YmE1NDc1MzA0ODFm
MDkwNWVkZjg4ODM5YjJhODJlMTFkLi5mZTk0YTYwN2Q3ZDVkOTFlNTAyNGQwOWRkZWFkYzk1MTY2
YTQ2NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVU
YWlscy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMu
Y3BwCkBAIC0zMiwxMyArMzIsMTMgQEAKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5o
IgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgiCi0jaW5j
bHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5o
IgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRml4U1NBLmNwcAppbmRleCBmNGIwMTIyYzRkZWNkZTk1YzNkYjJkODI0MWY2OTI4MmQ1YmEz
OTZhLi43MzBjMmM4NzY2YzY1NjU0NmI0ODc0NmUxMjUwM2NkMzU5MzI0ZjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIK
ICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKLSNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5j
bHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiQjNWYXJpYWJsZS5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1
ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKyNpbmNsdWRlIDx3dGYvSW5kZXhTZXQuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0ZpeFNTQS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NB
LmgKaW5kZXggNjYyZTQ5ZDYyOGFlZjYyMDk1MTA5NTg3ZWVhNDUzNTVjODA2NzdjNS4uODg1OTI3
NmUyZDkyNmRmMzEwMjA2MDc3ZWE3NWIyMGFhNzQ4OGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRml4U1NBLmgKQEAgLTI4LDggKzI4LDkgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNp
bmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5oIgorI2luY2x1ZGUgPHd0
Zi9JbmRleFNldC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0luZGV4TWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmRleE1hcC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWEzMzlmMDlkZTQyYzBiNGQ1OWJkNmFmMmU5ODI2
NGZiYzExYjYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4TWFwLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2lmbmRlZiBCM0luZGV4TWFwX2gKLSNkZWZpbmUgQjNJbmRleE1hcF9oCi0KLSNp
ZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotLy8gVGhpcyBpcyBhIG1hcCBmb3Iga2V5cyB0aGF0IGhh
dmUgYW4gaW5kZXgoKS4gSXQncyBzdXBlciBlZmZpY2llbnQgZm9yIEJhc2ljQmxvY2tzLiBJdCdz
IG9ubHkKLS8vIGVmZmljaWVudCBmb3IgVmFsdWVzIGlmIHlvdSBkb24ndCBjcmVhdGUgdG9vIG1h
bnkgb2YgdGhlc2UgbWFwcywgc2luY2UgVmFsdWVzIGNhbiBoYXZlIHZlcnkKLS8vIHNwYXJzZSBp
bmRpY2VzIGFuZCB0aGVyZSBhcmUgYSBsb3Qgb2YgVmFsdWVzLgotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXksIHR5cGVuYW1lIFZhbHVlPgotY2xhc3MgSW5kZXhNYXAgewotcHVibGljOgotICAgIGV4
cGxpY2l0IEluZGV4TWFwKHNpemVfdCBzaXplID0gMCkKLSAgICB7Ci0gICAgICAgIG1fdmVjdG9y
LmZpbGwoVmFsdWUoKSwgc2l6ZSk7Ci0gICAgfQotCi0gICAgdm9pZCByZXNpemUoc2l6ZV90IHNp
emUpCi0gICAgewotICAgICAgICBtX3ZlY3Rvci5maWxsKFZhbHVlKCksIHNpemUpOwotICAgIH0K
LQotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSAgICAgICAgbV92ZWN0b3IuZmlsbChWYWx1ZSgp
LCBtX3ZlY3Rvci5zaXplKCkpOwotICAgIH0KLQotICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOyB9Ci0KLSAgICBWYWx1ZSYgb3BlcmF0b3JbXShzaXplX3Qg
aW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4gbV92ZWN0b3JbaW5kZXhdOwotICAgIH0KLQot
ICAgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBtX3ZlY3RvcltpbmRleF07Ci0gICAgfQotICAgIAotICAgIFZhbHVlJiBv
cGVyYXRvcltdKEtleSoga2V5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmVjdG9yW2tleS0+
aW5kZXgoKV07Ci0gICAgfQotICAgIAotICAgIGNvbnN0IFZhbHVlJiBvcGVyYXRvcltdKEtleSog
a2V5KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmVjdG9yW2tleS0+aW5kZXgoKV07
Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFZlY3RvcjxWYWx1ZT4gbV92ZWN0b3I7Ci19OwotCi19
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KLSNl
bmRpZiAvLyBCM0luZGV4TWFwX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0luZGV4U2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNJbmRleFNldC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjliMmI0ZTM0YmY0MzgwMDdhZDIxN2NiNWM3
YTNlYTk0Y2I5YTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luZGV4U2V0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpZm5kZWYgQjNJbmRleFNldF9oCi0jZGVmaW5lIEIzSW5kZXhTZXRfaAot
Ci0jaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIu
aD4KLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLS8vIFRoaXMgaXMgYSBzZXQg
Zm9yIHRoaW5ncyB0aGF0IGhhdmUgYW4gaW5kZXgoKS4gSXQncyBzdXBlciBlZmZpY2llbnQgZm9y
IEJhc2ljQmxvY2tzLiBJdCdzIG9ubHkKLS8vIGVmZmljaWVudCBmb3IgVmFsdWVzIGlmIHlvdSBk
b24ndCBjcmVhdGUgdG9vIG1hbnkgb2YgdGhlc2Ugc2V0cywgc2luY2UgVmFsdWVzIGNhbiBoYXZl
IHZlcnkgc3BhcnNlCi0vLyBpbmRpY2VzIGFuZCB0aGVyZSBhcmUgYSBsb3Qgb2YgVmFsdWVzLgot
Ci0vLyBJZiB5b3Ugd2FudCBhIHNldCBvZiBCYXNpY0Jsb2NrcywgeW91IGRvIEluZGV4U2V0PEJh
c2ljQmxvY2s+LiBTbywgVCA9IEJhc2ljQmxvY2suCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotY2xh
c3MgSW5kZXhTZXQgewotcHVibGljOgotICAgIEluZGV4U2V0KCkKLSAgICB7Ci0gICAgfQotCi0g
ICAgYm9vbCBhZGQoVCogdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gIW1fc2V0LnNldCh2
YWx1ZS0+aW5kZXgoKSk7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRlcmFibGU+
Ci0gICAgYm9vbCBhZGRBbGwoY29uc3QgSXRlcmFibGUmIGl0ZXJhYmxlKQotICAgIHsKLSAgICAg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgZm9yIChUKiB2YWx1ZSA6IGl0ZXJhYmxl
KQotICAgICAgICAgICAgcmVzdWx0IHw9IGFkZCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgfQotCi0gICAgYm9vbCByZW1vdmUoVCogdmFsdWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gbV9zZXQuY2xlYXIodmFsdWUtPmluZGV4KCkpOwotICAgIH0KLQotICAgIGJvb2wgY29u
dGFpbnMoVCogdmFsdWUpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIXZhbHVlKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gbV9zZXQuZ2V0KHZhbHVlLT5pbmRl
eCgpKTsKLSAgICB9Ci0KLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0Ci0gICAgewotICAgICAgICBy
ZXR1cm4gbV9zZXQuYml0Q291bnQoKTsKLSAgICB9Ci0KLSAgICBib29sIGlzRW1wdHkoKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuICFzaXplKCk7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+Ci0gICAgY2xhc3MgSXRlcmFibGUgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgSXRlcmFibGUoY29uc3QgQ29sbGVjdGlvblR5cGUmIGNvbGxlY3Rpb24sIGNv
bnN0IEJpdFZlY3RvciYgc2V0KQotICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oY29sbGVjdGlv
bikKLSAgICAgICAgICAgICwgbV9zZXQoc2V0KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
ICAgICBjbGFzcyBpdGVyYXRvciB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIGl0ZXJh
dG9yKCkKLSAgICAgICAgICAgICAgICA6IG1fY29sbGVjdGlvbihudWxscHRyKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpdGVyYXRvcihjb25zdCBDb2xsZWN0
aW9uVHlwZSYgY29sbGVjdGlvbiwgQml0VmVjdG9yOjppdGVyYXRvciBpdGVyKQotICAgICAgICAg
ICAgICAgIDogbV9jb2xsZWN0aW9uKCZjb2xsZWN0aW9uKQotICAgICAgICAgICAgICAgICwgbV9p
dGVyKGl0ZXIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFQq
IG9wZXJhdG9yKigpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fY29s
bGVjdGlvbi0+YXQoKm1faXRlcik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGl0ZXJh
dG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICArK21faXRl
cjsKLSAgICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Ci0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1faXRlciA9PSBvdGhlci5tX2l0ZXI7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVy
YXRvciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
ICEoKnRoaXMgPT0gb3RoZXIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGU6Ci0g
ICAgICAgICAgICBjb25zdCBDb2xsZWN0aW9uVHlwZSogbV9jb2xsZWN0aW9uOwotICAgICAgICAg
ICAgQml0VmVjdG9yOjppdGVyYXRvciBtX2l0ZXI7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgaXRl
cmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihtX2NvbGxlY3Rpb24sIG1fc2V0
LmJlZ2luKCkpOyB9Ci0gICAgICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJh
dG9yKG1fY29sbGVjdGlvbiwgbV9zZXQuZW5kKCkpOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAg
ICBjb25zdCBDb2xsZWN0aW9uVHlwZSYgbV9jb2xsZWN0aW9uOwotICAgICAgICBjb25zdCBCaXRW
ZWN0b3ImIG1fc2V0OwotICAgIH07Ci0KLSAgICAvLyBGb3IgYmFzaWMgYmxvY2tzLCB5b3UgZG86
Ci0gICAgLy8gaW5kZXhTZXQudmFsdWVzKHByb2NlZHVyZSk7Ci0gICAgLy8KLSAgICAvLyBGb3Ig
dmFsdWVzLCB5b3UgZG86Ci0gICAgLy8gaW5kZXhTZXQudmFsdWVzKHByb2NlZHVyZS52YWx1ZXMo
KSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+Ci0gICAgSXRlcmFibGU8
Q29sbGVjdGlvblR5cGU+IHZhbHVlcyhjb25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbGVjdGlvbikg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBJdGVyYWJsZTxDb2xsZWN0aW9uVHlwZT4oY29s
bGVjdGlvbiwgaW5kaWNlcygpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBCaXRWZWN0b3ImIGluZGlj
ZXMoKSBjb25zdCB7IHJldHVybiBtX3NldDsgfQotCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0Ci0gICAgewotICAgICAgICBDb21tYVByaW50ZXIgY29tbWE7Ci0gICAgICAg
IGZvciAoc2l6ZV90IGluZGV4IDogaW5kaWNlcygpKQotICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCBUOjpkdW1wUHJlZml4LCBpbmRleCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEJpdFZl
Y3RvciBtX3NldDsKLX07Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8g
QjNJbmRleFNldF9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
aW5kZXggMzEyZDkzN2NjMWJiZDU4MWY0MDJkZTA2YjVkYzcyNzkwZDE4NTc3Zi4uYTZiNmFlMTU5
ZmUxNTcyZjNkOTE4MDQ3OTYzNTZhOWE1ZjA5ZTNmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTQwLDggKzQwLDYgQEAKICNpbmNsdWRlICJCM0NoZWNr
U3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzQ29tbXV0YXRpdml0eS5oIgogI2luY2x1ZGUgIkIzRG9t
aW5hdG9ycy5oIgotI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKLSNpbmNsdWRlICJCM0luZGV4U2V0
LmgiCiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFNw
ZWNpYWwuaCIKICNpbmNsdWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgpAQCAtNTUsNiArNTMsOCBA
QAogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgog
I2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9JbmRleFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCiAj
aWYgQ09NUElMRVIoR0NDKSAmJiBBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1BoaUNoaWxkcmVuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQaGlDaGlsZHJlbi5oCmluZGV4IGNkZjM2OGYyNGFhNmU1YTU4MzlmM2ZhYTY1ZGYwOWRh
MDYzNDVjZTcuLmUxMWZjYmViODk2NTAxYzY2YWQzYWNjMzdkMjAxYjAxNmU1NTBmY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BoaUNoaWxkcmVuLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGhpQ2hpbGRyZW4uaApAQCAtMjgsMTAgKzI4LDEwIEBA
CiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRl
IDx3dGYvR3JhcGhOb2RlV29ya2xpc3QuaD4KKyNpbmNsdWRlIDx3dGYvSW5kZXhNYXAuaD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UHJvY2VkdXJlLmgKaW5kZXggNTc2NDEzZTEwOTBhODQ3N2UzNGQ0MjM1OGM2OTg0NjVjMWFkNTkx
ZC4uZTJlMTM0ZGFiZWNkMDM3NDlmZTdhOTdmNDg4YmU4ZmEwYmNjNDhkOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3
dGYvQmFnLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNp
bmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgpAQCAtMTMzLDUzICsxMzQsNyBAQCBjbGFzcyBQcm9j
ZWR1cmUgewogICAgIEJhc2ljQmxvY2sqIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVy
biBtX2Jsb2Nrc1tpbmRleF0uZ2V0KCk7IH0KICAgICBCYXNpY0Jsb2NrKiBvcGVyYXRvcltdKHVu
c2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBhdChpbmRleCk7IH0KIAotICAgIGNsYXNzIGl0
ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0ZXJhdG9yKCkKLSAgICAgICAgICAgIDog
bV9wcm9jZWR1cmUobnVsbHB0cikKLSAgICAgICAgICAgICwgbV9pbmRleCgwKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25zdCBQcm9jZWR1cmUmIHByb2NlZHVy
ZSwgdW5zaWduZWQgaW5kZXgpCi0gICAgICAgICAgICA6IG1fcHJvY2VkdXJlKCZwcm9jZWR1cmUp
Ci0gICAgICAgICAgICAsIG1faW5kZXgoZmluZE5leHQoaW5kZXgpKQotICAgICAgICB7Ci0gICAg
ICAgIH0KLQotICAgICAgICBCYXNpY0Jsb2NrKiBvcGVyYXRvciooKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gbV9wcm9jZWR1cmUtPmF0KG1faW5kZXgpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2lu
ZGV4ID0gZmluZE5leHQobV9pbmRleCArIDEpOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwot
ICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhl
cikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fcHJvY2VkdXJlID09IG90
aGVyLm1fcHJvY2VkdXJlKTsKLSAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1f
aW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAh
KCp0aGlzID09IG90aGVyKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdW5z
aWduZWQgZmluZE5leHQodW5zaWduZWQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHdo
aWxlIChpbmRleCA8IG1fcHJvY2VkdXJlLT5zaXplKCkgJiYgIW1fcHJvY2VkdXJlLT5hdChpbmRl
eCkpCi0gICAgICAgICAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgICAgIHJldHVybiBpbmRleDsK
LSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IFByb2NlZHVyZSogbV9wcm9jZWR1cmU7Ci0gICAg
ICAgIHVuc2lnbmVkIG1faW5kZXg7Ci0gICAgfTsKKyAgICB0eXBlZGVmIFdURjo6SW5kZXhlZENv
bnRhaW5lckl0ZXJhdG9yPFByb2NlZHVyZT4gaXRlcmF0b3I7CiAKICAgICBpdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQogICAgIGl0ZXJhdG9yIGVu
ZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCmluZGV4IGJk
N2NkMDkwYzZhNjNmN2I5ZDEzMDdkNGZhMzY3OTZhMWI5NTczMjYuLjhlY2UzODljYTJlZmQ1Mzg5
ZGM5MDJkZjMxNTYxZjk1NjNkMzU5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCkBAIC0yOSwxMSArMjksMTEgQEAKICNpZiBF
TkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCi0jaW5jbHVkZSAiQjNJ
bmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2luY2x1ZGUg
IkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUgIkIzVXNlQ291bnRzLmgiCiAjaW5jbHVkZSAiQjNW
YWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvSW5kZXhTZXQuaD4KIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JlZHVjZVN0cmVuZ3RoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVj
ZVN0cmVuZ3RoLmNwcAppbmRleCA0Y2JmMjUyODg2Yjk3Y2NiZmIzNzY0MDU3ZjlmNjA0MmM2YTFl
NWEwLi4wYmQxZWEwYjQ4Y2UxOWE2MGJlZjcyNmRiZTk4ODUwM2U5NDhjZDA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCkBAIC0zMiw3ICszMiw2
IEBACiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkIzQ29tcHV0
ZURpdmlzaW9uTWFnaWMuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKLSNpbmNsdWRlICJC
M0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgpAQCAtNDgsNiAr
NDcsNyBAQAogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9HcmFw
aE5vZGVXb3JrbGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L0luZGV4U2V0Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTU0FDYWxjdWxhdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNTU0FDYWxjdWxhdG9yLmgKaW5kZXggZjU3NjY4MjJmNGZmYzM2
YmQ2YTIyYTk3NzBmMjAyMGRmNTEyNDQ2Yi4uMWU5NjI4MjYyZmYzZmVkMjI5MDMxYWVhM2QxN2Qw
YjY4MTJhZmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU1NBQ2Fs
Y3VsYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1NTQUNhbGN1bGF0b3Iu
aApAQCAtMjksOSArMjksOSBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Rv
bWluYXRvcnMuaCIKLSNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1
cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNV
c2VDb3VudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1VzZUNvdW50cy5oCmluZGV4
IGE1OWQ1OGFhNDZjNjI3Mjg1N2U4MjlkMzhhMTRlZjA4MDdiNzM3ZTkuLjZlOWU0ODJiNzk5ZDI0
MGIwZTY1OTU2ZWY0NWJiNDY4NDMzZmZmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1VzZUNvdW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vz
ZUNvdW50cy5oCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5j
bHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYv
SW5kZXhNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKaW5kZXggNjRhNzQ1ZDAyMTBiNmE3ZmNiN2E5MzUx
YjEzMGFlMDlhMjZkMjUwZC4uZjE5ZWZiMjgwMmY2YWQ1NThlZTg3YmRlMmU2YWI2MjQ4YjYxNWEw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKQEAgLTMzLDExICszMywx
MSBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIK
ICNpbmNsdWRlICJBaXJUbXAuaCIKLSNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAi
QjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJFbGltaW5h
dGVEZWFkQ29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckVsaW1pbmF0
ZURlYWRDb2RlLmNwcAppbmRleCAzNjYzZWFhOTk3OTY3ZjU3ZTQ1MWJiNjFhNDZkOWFkYzMwMDEz
Yjc1Li5jYTM2YWY5M2U3OTEwNzk5Y2M3YmQ0ODExYjMwNzQ1NjVjNzM4ZjMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckVsaW1pbmF0ZURlYWRDb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckVsaW1pbmF0ZURlYWRDb2RlLmNw
cApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJ
bnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpclBoYXNlU2NvcGUuaCIKLSNpbmNsdWRlICJCM0lu
ZGV4U2V0LmgiCisjaW5jbHVkZSA8d3RmL0luZGV4U2V0Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAKaW5kZXggNzFkOTkwZjIxZWY2
NDYwNjRkMTI5M2YwZGIwZjdhMWVkMGIwZWJhNC4uYmFiZDE3MzU4YmE4ZjQ5YjM0NGJlNWRhNmYw
Y2Y2YWYzMGI0NTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJGaXhPYnZpb3VzU3BpbGxzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiQWly
Q29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyUGhhc2VT
Y29wZS5oIgotI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKKyNpbmNsdWRlIDx3dGYvSW5kZXhNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7IG5hbWVzcGFjZSBBaXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwCmluZGV4IGVkN2I4
MGEwYzhiNDZhYTI0Y2JhYzZkOTdiZTM5ZGFkNmQyMTdjZmIuLjUzOTk3OTkyZDg2Y2I3MjAzYmMw
ZWM4MzRjMGY4NmQ0ZjE1NWM0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAKQEAgLTM0LDkg
KzM0LDkgQEAKICNpbmNsdWRlICJBaXJJbnN0LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMu
aCIKICNpbmNsdWRlICJBaXJQaGFzZVNjb3BlLmgiCi0jaW5jbHVkZSAiQjNJbmRleE1hcC5oIgot
I2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2lu
Y2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVz
cGFjZSBBaXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJH
ZW5lcmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNw
cAppbmRleCA0MTE4NDEyMWM4NTBjMzdiNTM2MThkZmU4YmEzOTRmNDQwN2JkYTAwLi4wYTE4YWRh
NjBjYjZkNTUyMDkzMjlkOWM2NzZmN2FlODlkMmNiMTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcApAQCAtNDgsMTMgKzQ4LDEzIEBACiAjaW5jbHVk
ZSAiQWlyU3BpbGxFdmVyeXRoaW5nLmgiCiAjaW5jbHVkZSAiQWlyVmFsaWRhdGUuaCIKICNpbmNs
dWRlICJCM0NvbW1vbi5oIgotI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKICNpbmNsdWRlICJCM1ZhbHVl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNp
bmNsdWRlIDx3dGYvSW5kZXhNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
IG5hbWVzcGFjZSBBaXIgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRpb25Db250ZXh0LmgKaW5kZXggZWNhOTA3ZjAxZWRmY2Y1MTA2N2Q5ODk1ZDkx
ZDljMzE2MmZhMzc4MS4uN2RjNmUwZDMyNDQ3ZGY2YjM1NzY4NWQ5ODgxM2YxOTNlZTQyM2U3MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNv
bnRleHQuaApAQCAtMjksOSArMjksOSBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRl
ICJBaXJCYXNpY0Jsb2NrLmgiCi0jaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgogI2luY2x1ZGUgPHd0Zi9Cb3guaD4KKyNpbmNsdWRlIDx3dGYvSW5kZXhN
YXAuaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVz
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMaXZlbmVzcy5oCmluZGV4IGFj
MTE4YWFmNWYyMzBjOGQwZGM5YWIzYzUyZTVjMTY2OTcxYmM4YWUuLmYwMTQ2MGE0MTk1ZDJiMDAw
Y2U1YmZhZDBiMmM3ZDE3NTlkNmNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyTGl2ZW5lc3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckxpdmVuZXNzLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJBaXJJbnN0SW5saW5l
cy5oIgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcElubGluZXMu
aCIKLSNpbmNsdWRlICJCM0luZGV4TWFwLmgiCi0jaW5jbHVkZSAiQjNJbmRleFNldC5oIgorI2lu
Y2x1ZGUgPHd0Zi9JbmRleE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9JbmRleFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9JbmRleFNwYXJzZVNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGlu
Zy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5j
cHAKaW5kZXggM2EwNjM2ZGU5YTFiZWFhYzlkZGZhYWNkYzgzNDQwNzZmZGUzM2VjOC4uMTY3Njcw
NThmZjU4ZmVkOGRmYmU5MzEwYzA5N2MzOGMyZmU1YWM1MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcApAQCAtMzUsNyArMzUs
NyBAQAogI2luY2x1ZGUgIkFpckxpdmVuZXNzLmgiCiAjaW5jbHVkZSAiQWlyUGhhc2VTY29wZS5o
IgogI2luY2x1ZGUgIkFpclJlZ2lzdGVyUHJpb3JpdHkuaCIKLSNpbmNsdWRlICJCM0luZGV4TWFw
LmgiCisjaW5jbHVkZSA8d3RmL0luZGV4TWFwLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMzI1MzZiZjNiZGE5YjQzODAzMGFkNjViZTI0NTNmYThjOTUyMDlkZi4u
YjdkZjgzZWUwODMwZDg0NzFjNGIwZmJjOGJiNmE0YmRlNmFlOGY1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzUsNiArMzM1LDkgQEAKIAkJRkU4OTI1
QjAxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50
ZXIuaCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0Ix
NjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBG
ODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMu
aCAqLzsgfTsKKwkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMz
OEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKKwkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJE
IC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKKwkJNEIy
NjgwREQ5Qjk3NDQwMjg5OUVENTcyIC8qIEluZGV4ZWRDb250YWluZXJJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM2N0M1NDI1ODkzNDhF
Mjg1QjQ5Njk5IC8qIEluZGV4ZWRDb250YWluZXJJdGVyYXRvci5oICovOyB9OwogLyogRW5kIFBC
WEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBz
ZWN0aW9uICovCkBAIC02ODIsNiArNjg1LDkgQEAKIAkJRkU4OTI1QUYxRDAwREFFQzAwNDY5MDdF
IC8qIEluZGVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNCMTYzMEY4M0YwMEM2OTYz
NCAvKiBTdGFja1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0YWNrU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQzE2
MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdGFja1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMzdF
MUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBJbmRleFNldC5oOyBwYXRoID0gSW5kZXhTZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNUI0MzM4M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEluZGV4TWFwLmg7IHBhdGggPSBJbmRleE1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzY3QzU0MjU4OTM0OEUyODVCNDk2
OTkgLyogSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEluZGV4ZWRDb250YWluZXJJdGVyYXRvci5oOyBwYXRoID0gSW5kZXhlZENvbnRh
aW5lckl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmls
ZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KQEAgLTEwNDEsNiArMTA0Nyw5IEBACiAJCQkJRTRBMEFEMzgxQTk2MjQ1NTAw
NTM2REY2IC8qIFdvcmtRdWV1ZS5oICovLAogCQkJCUE4QTQ3MzdBMTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmNwcCAqLywKIAkJCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyog
V1RGVGhyZWFkRGF0YS5oICovLAorCQkJCTMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRl
eFNldC5oICovLAorCQkJCTVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAvKiBJbmRleE1hcC5oICov
LAorCQkJCTlDNjdDNTQyNTg5MzQ4RTI4NUI0OTY5OSAvKiBJbmRleGVkQ29udGFpbmVySXRlcmF0
b3IuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTE0MzksNiArMTQ0OCw5IEBACiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZG
IC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIw
MDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUM4QjBFMUExRTAxQTQ4NkVC
OTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzkxNkI5NzVGMDJGNEY3
RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QjI2ODBERDlCOTc0
NDAyODk5RUQ1NzIgLyogSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNmNhODkzZDViMjUwMjdkMjc5M2NmYzk2MWUzZWJkNGZi
ZTc2ODI3ZC4uODY3OTk5ZWE5Mjg2Yjk1M2YxMzM3MDliNmRlNDkwMDVlMDRjMTRhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTQ1LDYgKzQ1LDEwIEBAIHNldChXVEZfSEVBREVSUwogICAgIEhh
c2hUYWJsZS5oCiAgICAgSGFzaFRyYWl0cy5oCiAgICAgSGV4TnVtYmVyLmgKKyAgICBJbmRleE1h
cC5oCisgICAgSW5kZXhTZXQuaAorICAgIEluZGV4U3BhcnNlU2V0LmgKKyAgICBJbmRleGVkQ29u
dGFpbmVySXRlcmF0b3IuaAogICAgIEl0ZXJhdG9yQWRhcHRvcnMuaAogICAgIEl0ZXJhdG9yUmFu
Z2UuaAogICAgIExpc3RIYXNoU2V0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0luZGV4
TWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9JbmRleE1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZDYxMDE3YTQx
NWM0NzM5MTZhYjgxNjY4YzE2YjAwYmRlNTI0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9JbmRleE1hcC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoaXMgaXMgYSBtYXAgZm9y
IGtleXMgdGhhdCBoYXZlIGFuIGluZGV4KCkuIEl0J3Mgc3VwZXIgZWZmaWNpZW50IGZvciBCYXNp
Y0Jsb2Nrcy4gSXQncyBvbmx5CisvLyBlZmZpY2llbnQgZm9yIFZhbHVlcyBpZiB5b3UgZG9uJ3Qg
Y3JlYXRlIHRvbyBtYW55IG9mIHRoZXNlIG1hcHMsIHNpbmNlIFZhbHVlcyBjYW4gaGF2ZSB2ZXJ5
CisvLyBzcGFyc2UgaW5kaWNlcyBhbmQgdGhlcmUgYXJlIGEgbG90IG9mIFZhbHVlcy4KKwordGVt
cGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZT4KK2NsYXNzIEluZGV4TWFwIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBJbmRleE1hcChzaXplX3Qgc2l6ZSA9IDApCisgICAgeworICAg
ICAgICBtX3ZlY3Rvci5maWxsKFZhbHVlKCksIHNpemUpOworICAgIH0KKworICAgIHZvaWQgcmVz
aXplKHNpemVfdCBzaXplKQorICAgIHsKKyAgICAgICAgbV92ZWN0b3IuZmlsbChWYWx1ZSgpLCBz
aXplKTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIG1fdmVjdG9y
LmZpbGwoVmFsdWUoKSwgbV92ZWN0b3Iuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBzaXplX3Qgc2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmVjdG9yLnNpemUoKTsgfQorCisgICAgVmFsdWUmIG9wZXJh
dG9yW10oc2l6ZV90IGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmVjdG9yW2luZGV4
XTsKKyAgICB9CisKKyAgICBjb25zdCBWYWx1ZSYgb3BlcmF0b3JbXShzaXplX3QgaW5kZXgpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92ZWN0b3JbaW5kZXhdOworICAgIH0KKyAgICAK
KyAgICBWYWx1ZSYgb3BlcmF0b3JbXShLZXkqIGtleSkKKyAgICB7CisgICAgICAgIHJldHVybiBt
X3ZlY3RvcltrZXktPmluZGV4KCldOworICAgIH0KKyAgICAKKyAgICBjb25zdCBWYWx1ZSYgb3Bl
cmF0b3JbXShLZXkqIGtleSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ZlY3Rvcltr
ZXktPmluZGV4KCldOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWZWN0b3I8VmFsdWU+IG1fdmVj
dG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6SW5kZXhNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JbmRleFNldC5oIGIvU291cmNlL1dURi93dGYvSW5k
ZXhTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MWJkMDRmMmQxNWFiNmNkMmE2OWNjNDQ1YjhkNzM2YjIyYzA1
YjY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvSW5kZXhTZXQuaApAQCAtMCww
ICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoaXMgaXMg
YSBzZXQgZm9yIHRoaW5ncyB0aGF0IGhhdmUgYW4gaW5kZXgoKS4gSXQncyBzdXBlciBlZmZpY2ll
bnQgZm9yIEJhc2ljQmxvY2tzLiBJdCdzIG9ubHkKKy8vIGVmZmljaWVudCBmb3IgVmFsdWVzIGlm
IHlvdSBkb24ndCBjcmVhdGUgdG9vIG1hbnkgb2YgdGhlc2Ugc2V0cywgc2luY2UgVmFsdWVzIGNh
biBoYXZlIHZlcnkgc3BhcnNlCisvLyBpbmRpY2VzIGFuZCB0aGVyZSBhcmUgYSBsb3Qgb2YgVmFs
dWVzLgorCisvLyBJZiB5b3Ugd2FudCBhIHNldCBvZiBCYXNpY0Jsb2NrcywgeW91IGRvIEluZGV4
U2V0PEJhc2ljQmxvY2s+LiBTbywgVCA9IEJhc2ljQmxvY2suCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorY2xhc3MgSW5kZXhTZXQgeworcHVibGljOgorICAgIEluZGV4U2V0KCkKKyAgICB7CisgICAg
fQorCisgICAgYm9vbCBhZGQoVCogdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gIW1fc2V0
LnNldCh2YWx1ZS0+aW5kZXgoKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSXRl
cmFibGU+CisgICAgYm9vbCBhZGRBbGwoY29uc3QgSXRlcmFibGUmIGl0ZXJhYmxlKQorICAgIHsK
KyAgICAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChUKiB2YWx1ZSA6IGl0
ZXJhYmxlKQorICAgICAgICAgICAgcmVzdWx0IHw9IGFkZCh2YWx1ZSk7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorCisgICAgYm9vbCByZW1vdmUoVCogdmFsdWUpCisgICAgeworICAg
ICAgICByZXR1cm4gbV9zZXQuY2xlYXIodmFsdWUtPmluZGV4KCkpOworICAgIH0KKworICAgIGJv
b2wgY29udGFpbnMoVCogdmFsdWUpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIXZhbHVlKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbV9zZXQuZ2V0KHZhbHVl
LT5pbmRleCgpKTsKKyAgICB9CisKKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gbV9zZXQuYml0Q291bnQoKTsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHko
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICFzaXplKCk7CisgICAgfQorCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CisgICAgY2xhc3MgSXRlcmFibGUgeworICAg
IHB1YmxpYzoKKyAgICAgICAgSXRlcmFibGUoY29uc3QgQ29sbGVjdGlvblR5cGUmIGNvbGxlY3Rp
b24sIGNvbnN0IEJpdFZlY3RvciYgc2V0KQorICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oY29s
bGVjdGlvbikKKyAgICAgICAgICAgICwgbV9zZXQoc2V0KQorICAgICAgICB7CisgICAgICAgIH0K
KworICAgICAgICBjbGFzcyBpdGVyYXRvciB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAg
IGl0ZXJhdG9yKCkKKyAgICAgICAgICAgICAgICA6IG1fY29sbGVjdGlvbihudWxscHRyKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvcihjb25zdCBD
b2xsZWN0aW9uVHlwZSYgY29sbGVjdGlvbiwgQml0VmVjdG9yOjppdGVyYXRvciBpdGVyKQorICAg
ICAgICAgICAgICAgIDogbV9jb2xsZWN0aW9uKCZjb2xsZWN0aW9uKQorICAgICAgICAgICAgICAg
ICwgbV9pdGVyKGl0ZXIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIFQqIG9wZXJhdG9yKigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IG1fY29sbGVjdGlvbi0+YXQoKm1faXRlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAr
K21faXRlcjsKKyAgICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1faXRlciA9PSBvdGhlci5t
X2l0ZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25z
dCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
cmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgIHByaXZh
dGU6CisgICAgICAgICAgICBjb25zdCBDb2xsZWN0aW9uVHlwZSogbV9jb2xsZWN0aW9uOworICAg
ICAgICAgICAgQml0VmVjdG9yOjppdGVyYXRvciBtX2l0ZXI7CisgICAgICAgIH07CisKKyAgICAg
ICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcihtX2NvbGxlY3Rpb24s
IG1fc2V0LmJlZ2luKCkpOyB9CisgICAgICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IGl0ZXJhdG9yKG1fY29sbGVjdGlvbiwgbV9zZXQuZW5kKCkpOyB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBjb25zdCBDb2xsZWN0aW9uVHlwZSYgbV9jb2xsZWN0aW9uOworICAgICAgICBjb25z
dCBCaXRWZWN0b3ImIG1fc2V0OworICAgIH07CisKKyAgICAvLyBGb3IgYmFzaWMgYmxvY2tzLCB5
b3UgZG86CisgICAgLy8gaW5kZXhTZXQudmFsdWVzKHByb2NlZHVyZSk7CisgICAgLy8KKyAgICAv
LyBGb3IgdmFsdWVzLCB5b3UgZG86CisgICAgLy8gaW5kZXhTZXQudmFsdWVzKHByb2NlZHVyZS52
YWx1ZXMoKSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CisgICAgSXRl
cmFibGU8Q29sbGVjdGlvblR5cGU+IHZhbHVlcyhjb25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbGVj
dGlvbikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBJdGVyYWJsZTxDb2xsZWN0aW9uVHlw
ZT4oY29sbGVjdGlvbiwgaW5kaWNlcygpKTsKKyAgICB9CisKKyAgICBjb25zdCBCaXRWZWN0b3Im
IGluZGljZXMoKSBjb25zdCB7IHJldHVybiBtX3NldDsgfQorCisgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0CisgICAgeworICAgICAgICBDb21tYVByaW50ZXIgY29tbWE7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGluZGV4IDogaW5kaWNlcygpKQorICAgICAgICAgICAgb3V0LnBy
aW50KGNvbW1hLCBUOjpkdW1wUHJlZml4LCBpbmRleCk7CisgICAgfQorCitwcml2YXRlOgorICAg
IEJpdFZlY3RvciBtX3NldDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OkluZGV4U2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSW5kZXhlZENvbnRhaW5lckl0
ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9JbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZTliOWUzN2ExMjQ3ZDkwN2JlODMwYzlkMjAxMmY3N2ExYjczNzcxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yLmgKQEAg
LTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPGNsYXNzIENvbnRhaW5lcj4KK2NsYXNzIEluZGV4ZWRDb250
YWluZXJJdGVyYXRvciB7CitwdWJsaWM6CisgICAgSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yKCkK
KyAgICAgICAgOiBtX2NvbnRhaW5lcihudWxscHRyKQorICAgICAgICAsIG1faW5kZXgoMCkKKyAg
ICB7CisgICAgfQorCisgICAgSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yKGNvbnN0IENvbnRhaW5l
ciYgY29udGFpbmVyLCB1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgOiBtX2NvbnRhaW5lcigmY29u
dGFpbmVyKQorICAgICAgICAsIG1faW5kZXgoZmluZE5leHQoaW5kZXgpKQorICAgIHsKKyAgICB9
CisKKyAgICBhdXRvIG9wZXJhdG9yKigpIC0+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPGRlY2x0
eXBlKCZDb250YWluZXI6OmF0KShjb25zdCBDb250YWluZXIsIHVuc2lnbmVkKT46OnR5cGUKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2NvbnRhaW5lci0+YXQobV9pbmRleCk7CisgICAgfQorCisg
ICAgSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAg
IG1faW5kZXggPSBmaW5kTmV4dChtX2luZGV4ICsgMSk7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgSW5kZXhlZENvbnRhaW5lckl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NvbnRhaW5lciA9PSBv
dGhlci5tX2NvbnRhaW5lcik7CisgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5k
ZXg7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEluZGV4ZWRDb250YWluZXJJ
dGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBv
dGhlcik7CisgICAgfQorCitwcml2YXRlOgorICAgIHVuc2lnbmVkIGZpbmROZXh0KHVuc2lnbmVk
IGluZGV4KQorICAgIHsKKyAgICAgICAgd2hpbGUgKGluZGV4IDwgbV9jb250YWluZXItPnNpemUo
KSAmJiAhbV9jb250YWluZXItPmF0KGluZGV4KSkKKyAgICAgICAgICAgIGluZGV4Kys7CisgICAg
ICAgIHJldHVybiBpbmRleDsKKyAgICB9CisKKyAgICBjb25zdCBDb250YWluZXIqIG1fY29udGFp
bmVyOworICAgIHVuc2lnbmVkIG1faW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYK
</data>
<flag name="review"
          id="310378"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>