Received: by 2002:ab2:6309:0:b0:1fb:d597:ff75 with SMTP id s9csp266365lqt; Thu, 6 Jun 2024 03:01:53 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVobiHfgFnXAltE4/TTPaStzuG5lmLf8jWO8NcxqrsDaBAiK8Fyps1qTKtgTiYTrnrsw0q+6poHO7uw7kj71/0u3pKt2rUEIJjEiYmjKg== X-Google-Smtp-Source: AGHT+IGHVTByXy4goDvKg7FZaI2nufI2LWDphXXwIwUtoRwGdZ8Jn33edpPg1nFr6Nxp34xzDATp X-Received: by 2002:ac8:58d0:0:b0:43a:f577:ea11 with SMTP id d75a77b69052e-4402b609528mr55819581cf.25.1717668113191; Thu, 06 Jun 2024 03:01:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717668113; cv=pass; d=google.com; s=arc-20160816; b=scr+a7wWeRpPLsJGasDZ5yoNMS0z76JjIRkXzMSoY5kd4TbcVgSTpCwh2nSkZWlga9 qLXQh6KENPSVnoYSMWbUADWa5eXlv+uvlSWEJh/4MGkK9kCJwBxoflo5tVb9HoDVnQcd nllpEuG/OgNoCAbX5lSgx9q49DtXP4nW5819cmCTdeWsypYPPrbOoPeBolGFfFpIw8ZV /XzpNj0GZeu9X+ESkRVlQSQDY4lbV+XJnsz+2n+ePKdtTxkMXZeY3lMHEg6lfyxlvH9s o8JaAjXrjsGf03tWx6yVYhfDH0DjpYtSRCG4YLvGLLvJY+Daz/bCc8DGZSMwY0JgQrwi XHAw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:message-id:reply-to:cc:to:from:date; bh=V/zuZUz1R229ThWZd68nEbsIBQHwpca8nhu8rJouwjA=; fh=LUnc56fNTtal5BsEvUIH/olyLMUcKDsjeiXCiVM7DrU=; b=Ju8x/tgjevV7RtmLJwS8ORyF9KMY5pMrLFoK7H1Ceq7X9P1IZrTjZEEmfxMz0v9H6S tcP2ezVZp4PcFNJlVDL/n9cLeHEkOFq769KK4ZL4GfbM8+NXEvMUySfMl2LcOiow6aX1 CaIieB4yH4KecGGCK8NMUBcG4t/kKh2G7tmZs2NK3kFE8z5L575ZFnt6UqMPKGnfL9G9 6HhRUm/yT1p/Jtjwu08wCc4zyDh7ugbW3vIMUeEf3rER0Ja1X6YQH7DqT+Wfn7f4kkeX QbhINCb+admcfbnH+07vMAa4UTpZGs+hj85aNHZrrzKlOWO4uw2/NIdDGhSbwlgaT0go 5NQg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-204077-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-204077-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d75a77b69052e-44038b5ee4bsi11575511cf.587.2024.06.06.03.01.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 03:01:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-204077-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-204077-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-204077-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 86C781C2311B for ; Thu, 6 Jun 2024 10:01:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A1A2C1862A3; Thu, 6 Jun 2024 10:01:44 +0000 (UTC) Received: from out198-27.us.a.mail.aliyun.com (out198-27.us.a.mail.aliyun.com [47.90.198.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E52A11850BD for ; Thu, 6 Jun 2024 10:01:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=47.90.198.27 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717668093; cv=none; b=jtfTEu5MzTtghgWtPidl6g+hZmhmSgiamnxU9Lx7bwK0mbRvKzwmChOhZWA9m0R0+o6zsmAJPgD8jOdow9qhytWSmlpdhq/GbV9D0VwgCxUl8JdWCHE/C/xuQHCKWWLbWH+4v8aQ0y4P8tj+rpumSjdVtR+2TmxLRU5fXEdSy2Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717668093; c=relaxed/simple; bh=V/zuZUz1R229ThWZd68nEbsIBQHwpca8nhu8rJouwjA=; h=Date:From:To:Cc:Message-ID:Subject:MIME-Version:Content-Type; b=jLs53nMhl/72uw3GwgZC108mXm0R/sGnrDn6iqucPWrA23g6ieeIy9KYgYaWRyPV6ZLYKDzxThxXFamEYktrOcI7b0VGp6BqlmyfSLb2uOMYm+TIHosxW8RccZ9HTs0qd4dG52CUaB/iYTy1kWA4WWSolQsQlE/fbh/GNxWHFrE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com; spf=pass smtp.mailfrom=ubisectech.com; arc=none smtp.client-ip=47.90.198.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ubisectech.com X-Alimail-AntiSpam:AC=CONTINUE;BC=0.073867|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.04777-0.000388725-0.951841;FP=0|0|0|0|0|0|0|0;HT=maildocker-contentspam033070021165;MF=bugreport@ubisectech.com;NM=1;PH=DW;RN=3;RT=3;SR=0;TI=W4_0.2.3_v5ForWebDing_212514B0_1717668069338_o7001c324; Received: from WS-web (bugreport@ubisectech.com[W4_0.2.3_v5ForWebDing_212514B0_1717668069338_o7001c324]) at Thu, 06 Jun 2024 18:01:09 +0800 Date: Thu, 06 Jun 2024 18:01:09 +0800 From: "Ubisectech Sirius" To: "linux-kernel" Cc: "willy" , "konishi.ryusuke" Reply-To: "Ubisectech Sirius" Message-ID: <6e8b7716-c657-4f20-b509-6356b5c8075b.bugreport@ubisectech.com> Subject: =?UTF-8?B?a2VybmVsIEJVRyBpbiBfX2ZvbGlvX3N0YXJ0X3dyaXRlYmFjaw==?= X-Mailer: [Alimail-Mailagent][W4_0.2.3][v5ForWebDing][Chrome] Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_M3LTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyNS4wLjAuMCBTYWZhcmkvNTM3LjM2vN Content-Type: multipart/mixed; boundary="----=ALIBOUNDARY_1730_7ff67b661700_666188e5_19617d" This is a multi-part message in MIME format. ------=ALIBOUNDARY_1730_7ff67b661700_666188e5_19617d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGVsbG8uCldlIGFyZSBVYmlzZWN0ZWNoIFNpcml1cyBUZWFtLCB0aGUgdnVsbmVyYWJpbGl0eSBs YWIgb2YgQ2hpbmEgVmFsaWFudFNlYy4gUmVjZW50bHksIG91ciB0ZWFtIGhhcyBkaXNjb3ZlcmVk IGEgaXNzdWUgaW4gTGludXgga2VybmVsIDYuOC4gQXR0YWNoZWQgdG8gdGhlIGVtYWlsIHdlcmUg YSBQb0MgZmlsZSBvZiB0aGUgaXNzdWUuCgpTdGFjayBkdW1wOgogX192bV9tdW5tYXArMHgxM2Qv MHgzOTAgbW0vbW1hcC5jOjI5OTAKIF9fZG9fc3lzX211bm1hcCBtbS9tbWFwLmM6MzAwNyBbaW5s aW5lXQogX19zZV9zeXNfbXVubWFwIG1tL21tYXAuYzozMDA0IFtpbmxpbmVdCiBfX3g2NF9zeXNf bXVubWFwKzB4NjIvMHg5MCBtbS9tbWFwLmM6MzAwNAogZG9fc3lzY2FsbF94NjQgYXJjaC94ODYv ZW50cnkvY29tbW9uLmM6NTIgW2lubGluZV0KIGRvX3N5c2NhbGxfNjQrMHhkNS8weDI3MCBhcmNo L3g4Ni9lbnRyeS9jb21tb24uYzo4MwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4 NmYvMHg3NwotLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0Ka2VybmVsIEJVRyBh dCBtbS9wYWdlLXdyaXRlYmFjay5jOjI5OTEhCmludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gUFJF RU1QVCBTTVAgS0FTQU4gTk9QVEkKQ1BVOiAxIFBJRDogMTIxOTggQ29tbTogc2VnY3RvcmQgTm90 IHRhaW50ZWQgNi44LjAgIzEKSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZY ICsgUElJWCwgMTk5NiksIEJJT1MgMS4xNS4wLTEgMDQvMDEvMjAxNApSSVA6IDAwMTA6X19mb2xp b19zdGFydF93cml0ZWJhY2srMHg2ZjMvMHhhZDAgbW0vcGFnZS13cml0ZWJhY2suYzoyOTkxCkNv ZGU6IGU4IGEyIDI4IGNlIGZmIDQ4IDg5IGVmIGU4IGFhIGVkIDFkIDAwIDQ5IDg5IGM3IGU5IDY3 IGZkIGZmIGZmIGU4IDhkIDI4IGNlIGZmIDQ4IGM3IGM2IGUwIDkxIGQ3IDhhIDQ4IDg5IGVmIGU4 IDdlIDdjIDBkIDAwIDkwIDwwZj4gMGIgZTggNzYgMjggY2UgZmYgZTggYzEgZWIgZDkgMDggZTkg NGIgZmIgZmYgZmYgZTggNjcgMjggY2UgZmYKUlNQOiAwMDE4OmZmZmZjOTAwMDIwZmZhMDAgRUZM QUdTOiAwMDAxMDI5MwpSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODg4MDQyNDZjMWY4 IFJDWDogZmZmZmM5MDAwMjBmZjg2MApSRFg6IGZmZmY4ODgwMTg5NjQ5ODAgUlNJOiBmZmZmZmZm ZjgxYmM4NDMyIFJESTogMDAwMDAwMDAwMDAwMDAwMApSQlA6IGZmZmZlYTAwMDE4YjU3YzAgUjA4 OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogZmZmZmZiZmZmMWViMDc0MgpSMTA6IGZmZmZmZmZmOGY1 ODNhMTcgUjExOiAwMDAwMDAwMDAwMDAwMDAxIFIxMjogMWZmZmY5MjAwMDQxZmY0NQpSMTM6IDAw MDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNTogZmZmZmVhMDAwMThiNTdj MApGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4ODA3ZWMwMDAwMCgwMDAwKSBr bmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw MDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAwN2Y5Y2I0MmYwMDg4IENSMzogMDAwMDAwMDA0NTRjMDAw MCBDUjQ6IDAwMDAwMDAwMDA3NTBlZjAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAw MDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERS NjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKUEtSVTogNTU1NTU1NTQK Q2FsbCBUcmFjZToKIDxUQVNLPgogbmlsZnNfc2VnY3Rvcl9wcmVwYXJlX3dyaXRlIGZzL25pbGZz Mi9zZWdtZW50LmM6MTY5NyBbaW5saW5lXQogbmlsZnNfc2VnY3Rvcl9kb19jb25zdHJ1Y3QrMHgx YzEwLzB4NzhhMCBmcy9uaWxmczIvc2VnbWVudC5jOjIxMTMKIG5pbGZzX3NlZ2N0b3JfY29uc3Ry dWN0KzB4OGM3LzB4YjEwIGZzL25pbGZzMi9zZWdtZW50LmM6MjQxOAogbmlsZnNfc2VnY3Rvcl90 aHJlYWRfY29uc3RydWN0IGZzL25pbGZzMi9zZWdtZW50LmM6MjUyNiBbaW5saW5lXQogbmlsZnNf c2VnY3Rvcl90aHJlYWQrMHgzY2MvMHhmMzAgZnMvbmlsZnMyL3NlZ21lbnQuYzoyNjEwCiBrdGhy ZWFkKzB4MmNjLzB4M2IwIGtlcm5lbC9rdGhyZWFkLmM6Mzg4CiByZXRfZnJvbV9mb3JrKzB4NDUv MHg4MCBhcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jOjE0NwogcmV0X2Zyb21fZm9ya19hc20rMHgx Yi8weDMwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MjQzCiA8L1RBU0s+Ck1vZHVsZXMgbGlu a2VkIGluOgotLS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0tLS0KUklQOiAwMDEwOl9f Zm9saW9fc3RhcnRfd3JpdGViYWNrKzB4NmYzLzB4YWQwIG1tL3BhZ2Utd3JpdGViYWNrLmM6Mjk5 MQpDb2RlOiBlOCBhMiAyOCBjZSBmZiA0OCA4OSBlZiBlOCBhYSBlZCAxZCAwMCA0OSA4OSBjNyBl OSA2NyBmZCBmZiBmZiBlOCA4ZCAyOCBjZSBmZiA0OCBjNyBjNiBlMCA5MSBkNyA4YSA0OCA4OSBl ZiBlOCA3ZSA3YyAwZCAwMCA5MCA8MGY+IDBiIGU4IDc2IDI4IGNlIGZmIGU4IGMxIGViIGQ5IDA4 IGU5IDRiIGZiIGZmIGZmIGU4IDY3IDI4IGNlIGZmClJTUDogMDAxODpmZmZmYzkwMDAyMGZmYTAw IEVGTEFHUzogMDAwMTAyOTMKUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZjg4ODA0MjQ2 YzFmOCBSQ1g6IGZmZmZjOTAwMDIwZmY4NjAKUkRYOiBmZmZmODg4MDE4OTY0OTgwIFJTSTogZmZm ZmZmZmY4MWJjODQzMiBSREk6IDAwMDAwMDAwMDAwMDAwMDAKUkJQOiBmZmZmZWEwMDAxOGI1N2Mw IFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IGZmZmZmYmZmZjFlYjA3NDIKUjEwOiBmZmZmZmZm ZjhmNTgzYTE3IFIxMTogMDAwMDAwMDAwMDAwMDAwMSBSMTI6IDFmZmZmOTIwMDA0MWZmNDUKUjEz OiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMSBSMTU6IGZmZmZlYTAwMDE4 YjU3YzAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODgwMmM2MDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1Iw OiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDdmYmM1NTA1YmI1OCBDUjM6IDAwMDAwMDAwNDZi MDgwMDAgQ1I0OiAwMDAwMDAwMDAwNzUwZWYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAw MDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAw MCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwClBLUlU6IDU1NTU1 NTU0CnJvb3RAdGVzdC1oMi1wYzp+LzE5MDAvd29ya2Rpci9uZXdfemVyb19kYXlfY3Jhc2hlcy8y ZTEwYTk1MDZkM2JlOTRjZDE1Y2U4ZmVkY2M5ZDdlZWY5OWVkN2EwIyBjYXQgcmVwb3J0MAogZG9f bmV3X21vdW50IGZzL25hbWVzcGFjZS5jOjMzNTIgW2lubGluZV0KIHBhdGhfbW91bnQrMHg2YjMv MHgxZWIwIGZzL25hbWVzcGFjZS5jOjM2NzkKIGRvX21vdW50IGZzL25hbWVzcGFjZS5jOjM2OTIg W2lubGluZV0KIF9fZG9fc3lzX21vdW50IGZzL25hbWVzcGFjZS5jOjM4OTggW2lubGluZV0KIF9f c2Vfc3lzX21vdW50IGZzL25hbWVzcGFjZS5jOjM4NzUgW2lubGluZV0KIF9feDY0X3N5c19tb3Vu dCsweDI4Ny8weDMxMCBmcy9uYW1lc3BhY2UuYzozODc1CiBkb19zeXNjYWxsX3g2NCBhcmNoL3g4 Ni9lbnRyeS9jb21tb24uYzo1MiBbaW5saW5lXQogZG9fc3lzY2FsbF82NCsweGQ1LzB4MjcwIGFy Y2gveDg2L2VudHJ5L2NvbW1vbi5jOjgzCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUr MHg2Zi8weDc3Ci0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQprZXJuZWwgQlVH IGF0IG1tL3BhZ2Utd3JpdGViYWNrLmM6Mjk5MSEKaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBQ UkVFTVBUIFNNUCBLQVNBTiBOT1BUSQpDUFU6IDAgUElEOiAxMDE5MyBDb21tOiBzZWdjdG9yZCBO b3QgdGFpbnRlZCA2LjguMCAjMQpIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQw RlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjE1LjAtMSAwNC8wMS8yMDE0ClJJUDogMDAxMDpfX2Zv bGlvX3N0YXJ0X3dyaXRlYmFjaysweDZmMy8weGFkMCBtbS9wYWdlLXdyaXRlYmFjay5jOjI5OTEK Q29kZTogZTggYTIgMjggY2UgZmYgNDggODkgZWYgZTggYWEgZWQgMWQgMDAgNDkgODkgYzcgZTkg NjcgZmQgZmYgZmYgZTggOGQgMjggY2UgZmYgNDggYzcgYzYgZTAgOTEgZDcgOGEgNDggODkgZWYg ZTggN2UgN2MgMGQgMDAgOTAgPDBmPiAwYiBlOCA3NiAyOCBjZSBmZiBlOCBjMSBlYiBkOSAwOCBl OSA0YiBmYiBmZiBmZiBlOCA2NyAyOCBjZSBmZgpSU1A6IDAwMTg6ZmZmZmM5MDAwMWQ1N2EwMCBF RkxBR1M6IDAwMDEwMjkzClJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODgwMTZjNDdi NzggUkNYOiBmZmZmYzkwMDAxZDU3ODYwClJEWDogZmZmZjg4ODAxN2QwYTRjMCBSU0k6IGZmZmZm ZmZmODFiYzg0MzIgUkRJOiAwMDAwMDAwMDAwMDAwMDAwClJCUDogZmZmZmVhMDAwMWEyNmFjMCBS MDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiBmZmZmZmJmZmYxZWIwNzQyClIxMDogZmZmZmZmZmY4 ZjU4M2ExNyBSMTE6IDAwMDAwMDAwMDAwMDAwMDEgUjEyOiAxZmZmZjkyMDAwM2FhZjQ1ClIxMzog MDAwMDAwMDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDEgUjE1OiBmZmZmZWEwMDAxYTI2 YWMwCkZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODg4MDJjNjAwMDAwKDAwMDAp IGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDog MDAwMDAwMDA4MDA1MDAzMwpDUjI6IDAwMDAwMDFiMmRlNDIwMDAgQ1IzOiAwMDAwMDAwMDRkMTI0 MDAwIENSNDogMDAwMDAwMDAwMDc1MGVmMApEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAw MDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAg RFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApQS1JVOiA1NTU1NTU1 NApDYWxsIFRyYWNlOgogPFRBU0s+CiBuaWxmc19zZWdjdG9yX3ByZXBhcmVfd3JpdGUgZnMvbmls ZnMyL3NlZ21lbnQuYzoxNzEwIFtpbmxpbmVdCiBuaWxmc19zZWdjdG9yX2RvX2NvbnN0cnVjdCsw eDQ1ZTIvMHg3OGEwIGZzL25pbGZzMi9zZWdtZW50LmM6MjExMwogbmlsZnNfc2VnY3Rvcl9jb25z dHJ1Y3QrMHg4YzcvMHhiMTAgZnMvbmlsZnMyL3NlZ21lbnQuYzoyNDE4CiBuaWxmc19zZWdjdG9y X3RocmVhZF9jb25zdHJ1Y3QgZnMvbmlsZnMyL3NlZ21lbnQuYzoyNTI2IFtpbmxpbmVdCiBuaWxm c19zZWdjdG9yX3RocmVhZCsweDNjYy8weGYzMCBmcy9uaWxmczIvc2VnbWVudC5jOjI2MTAKIGt0 aHJlYWQrMHgyY2MvMHgzYjAga2VybmVsL2t0aHJlYWQuYzozODgKIHJldF9mcm9tX2ZvcmsrMHg0 NS8weDgwIGFyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmM6MTQ3CiByZXRfZnJvbV9mb3JrX2FzbSsw eDFiLzB4MzAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzoyNDMKIDwvVEFTSz4KTW9kdWxlcyBs aW5rZWQgaW46Ci0tLVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0tLQpSSVA6IDAwMTA6 X19mb2xpb19zdGFydF93cml0ZWJhY2srMHg2ZjMvMHhhZDAgbW0vcGFnZS13cml0ZWJhY2suYzoy OTkxCkNvZGU6IGU4IGEyIDI4IGNlIGZmIDQ4IDg5IGVmIGU4IGFhIGVkIDFkIDAwIDQ5IDg5IGM3 IGU5IDY3IGZkIGZmIGZmIGU4IDhkIDI4IGNlIGZmIDQ4IGM3IGM2IGUwIDkxIGQ3IDhhIDQ4IDg5 IGVmIGU4IDdlIDdjIDBkIDAwIDkwIDwwZj4gMGIgZTggNzYgMjggY2UgZmYgZTggYzEgZWIgZDkg MDggZTkgNGIgZmIgZmYgZmYgZTggNjcgMjggY2UgZmYKUlNQOiAwMDE4OmZmZmZjOTAwMDFkNTdh MDAgRUZMQUdTOiAwMDAxMDI5MwpSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODg4MDE2 YzQ3Yjc4IFJDWDogZmZmZmM5MDAwMWQ1Nzg2MApSRFg6IGZmZmY4ODgwMTdkMGE0YzAgUlNJOiBm ZmZmZmZmZjgxYmM4NDMyIFJESTogMDAwMDAwMDAwMDAwMDAwMApSQlA6IGZmZmZlYTAwMDFhMjZh YzAgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogZmZmZmZiZmZmMWViMDc0MgpSMTA6IGZmZmZm ZmZmOGY1ODNhMTcgUjExOiAwMDAwMDAwMDAwMDAwMDAxIFIxMjogMWZmZmY5MjAwMDNhYWY0NQpS MTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNTogZmZmZmVhMDAw MWEyNmFjMApGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4ODA3ZWMwMDAwMCgw MDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBD UjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAwN2Y0Y2JkNDNlZmEwIENSMzogMDAwMDAwMDA0 MmVlMjAwMCBDUjQ6IDAwMDAwMDAwMDA3NTBlZjAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTog MDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAw MDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKUEtSVTogNTU1 NTU1NTQKClRoYW5rIHlvdSBmb3IgdGFraW5nIHRoZSB0aW1lIHRvIHJlYWQgdGhpcyBlbWFpbCBh bmQgd2UgbG9vayBmb3J3YXJkIHRvIHdvcmtpbmcgd2l0aCB5b3UgZnVydGhlci4KCgoKCg== ------=ALIBOUNDARY_1730_7ff67b661700_666188e5_19617d Content-Type: application/octet-stream Content-Disposition: attachment; filename="=?UTF-8?B?cG9jLmM=?=" Content-Transfer-Encoding: base64 Ly8gYXV0b2dlbmVyYXRlZCBieSBzeXprYWxsZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv c3l6a2FsbGVyKQoKI2RlZmluZSBfR05VX1NPVVJDRQoKI2luY2x1ZGUgPGFycGEvaW5ldC5oPgoj aW5jbHVkZSA8ZGlyZW50Lmg+CiNpbmNsdWRlIDxlbmRpYW4uaD4KI2luY2x1ZGUgPGVycm5vLmg+ CiNpbmNsdWRlIDxmY250bC5oPgojaW5jbHVkZSA8bmV0L2lmLmg+CiNpbmNsdWRlIDxuZXQvaWZf YXJwLmg+CiNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+CiNpbmNs dWRlIDxzY2hlZC5oPgojaW5jbHVkZSA8c2V0am1wLmg+CiNpbmNsdWRlIDxzaWduYWwuaD4KI2lu Y2x1ZGUgPHN0ZGFyZy5oPgojaW5jbHVkZSA8c3RkYm9vbC5oPgojaW5jbHVkZSA8c3RkZGVmLmg+ CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIu aD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3lzL2Vwb2xsLmg+CiNpbmNsdWRlIDxz eXMvaW9jdGwuaD4KI2luY2x1ZGUgPHN5cy9tbWFuLmg+CiNpbmNsdWRlIDxzeXMvbW91bnQuaD4K I2luY2x1ZGUgPHN5cy9wcmN0bC5oPgojaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiNpbmNsdWRl IDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRlIDxzeXMvc3RhdC5oPgojaW5jbHVkZSA8c3lzL3N3YXAu aD4KI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiNpbmNsdWRlIDxzeXMvdGltZS5oPgojaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvdWlvLmg+CiNpbmNsdWRlIDxzeXMvd2FpdC5o PgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgojaW5jbHVkZSA8bGludXgv Y2FwYWJpbGl0eS5oPgojaW5jbHVkZSA8bGludXgvZmFsbG9jLmg+CiNpbmNsdWRlIDxsaW51eC9m dXRleC5oPgojaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+CiNpbmNsdWRlIDxsaW51eC9pZl9h ZGRyLmg+CiNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgojaW5jbHVkZSA8bGludXgvaWZfbGlu ay5oPgojaW5jbHVkZSA8bGludXgvaWZfdHVuLmg+CiNpbmNsdWRlIDxsaW51eC9pbjYuaD4KI2lu Y2x1ZGUgPGxpbnV4L2lwLmg+CiNpbmNsdWRlIDxsaW51eC9sb29wLmg+CiNpbmNsdWRlIDxsaW51 eC9uZWlnaGJvdXIuaD4KI2luY2x1ZGUgPGxpbnV4L25ldC5oPgojaW5jbHVkZSA8bGludXgvbmV0 bGluay5oPgojaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgojaW5jbHVkZSA8bGludXgvcmZraWxs Lmg+CiNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KI2luY2x1ZGUgPGxpbnV4L3RjcC5oPgoj aW5jbHVkZSA8bGludXgvdmV0aC5oPgoKI2lmbmRlZiBfX05SX2JwZgojZGVmaW5lIF9fTlJfYnBm IDMyMQojZW5kaWYKI2lmbmRlZiBfX05SX21lbWZkX2NyZWF0ZQojZGVmaW5lIF9fTlJfbWVtZmRf Y3JlYXRlIDMxOQojZW5kaWYKCnN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcHJvY2lkOwoKc3Rh dGljIF9fdGhyZWFkIGludCBjbG9uZV9vbmdvaW5nOwpzdGF0aWMgX190aHJlYWQgaW50IHNraXBf c2VndjsKc3RhdGljIF9fdGhyZWFkIGptcF9idWYgc2Vndl9lbnY7CgpzdGF0aWMgdm9pZCBzZWd2 X2hhbmRsZXIoaW50IHNpZywgc2lnaW5mb190KiBpbmZvLCB2b2lkKiBjdHgpCnsKICBpZiAoX19h dG9taWNfbG9hZF9uKCZjbG9uZV9vbmdvaW5nLCBfX0FUT01JQ19SRUxBWEVEKSAhPSAwKSB7CiAg ICBleGl0KHNpZyk7CiAgfQogIHVpbnRwdHJfdCBhZGRyID0gKHVpbnRwdHJfdClpbmZvLT5zaV9h ZGRyOwogIGNvbnN0IHVpbnRwdHJfdCBwcm9nX3N0YXJ0ID0gMSA8PCAyMDsKICBjb25zdCB1aW50 cHRyX3QgcHJvZ19lbmQgPSAxMDAgPDwgMjA7CiAgaW50IHNraXAgPSBfX2F0b21pY19sb2FkX24o JnNraXBfc2VndiwgX19BVE9NSUNfUkVMQVhFRCkgIT0gMDsKICBpbnQgdmFsaWQgPSBhZGRyIDwg cHJvZ19zdGFydCB8fCBhZGRyID4gcHJvZ19lbmQ7CiAgaWYgKHNraXAgJiYgdmFsaWQpIHsKICAg IF9sb25nam1wKHNlZ3ZfZW52LCAxKTsKICB9CiAgZXhpdChzaWcpOwp9CgpzdGF0aWMgdm9pZCBp bnN0YWxsX3NlZ3ZfaGFuZGxlcih2b2lkKQp7CiAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKICBtZW1z ZXQoJnNhLCAwLCBzaXplb2Yoc2EpKTsKICBzYS5zYV9oYW5kbGVyID0gU0lHX0lHTjsKICBzeXNj YWxsKFNZU19ydF9zaWdhY3Rpb24sIDB4MjAsICZzYSwgTlVMTCwgOCk7CiAgc3lzY2FsbChTWVNf cnRfc2lnYWN0aW9uLCAweDIxLCAmc2EsIE5VTEwsIDgpOwogIG1lbXNldCgmc2EsIDAsIHNpemVv ZihzYSkpOwogIHNhLnNhX3NpZ2FjdGlvbiA9IHNlZ3ZfaGFuZGxlcjsKICBzYS5zYV9mbGFncyA9 IFNBX05PREVGRVIgfCBTQV9TSUdJTkZPOwogIHNpZ2FjdGlvbihTSUdTRUdWLCAmc2EsIE5VTEwp OwogIHNpZ2FjdGlvbihTSUdCVVMsICZzYSwgTlVMTCk7Cn0KCiNkZWZpbmUgTk9ORkFJTElORygu Li4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpbnQgb2sgPSAxOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBf X2F0b21pY19mZXRjaF9hZGQoJnNraXBfc2VndiwgMSwgX19BVE9NSUNfU0VRX0NTVCk7ICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICBpZiAoX3NldGptcChzZWd2X2VudikgPT0gMCkgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIF9fVkFfQVJH U19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIG9rID0gMDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICBfX2F0b21pY19mZXRjaF9zdWIoJnNraXBfc2VndiwgMSwgX19BVE9NSUNfU0VRX0NTVCk7 ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBvazsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCnN0 YXRpYyB2b2lkIHNsZWVwX21zKHVpbnQ2NF90IG1zKQp7CiAgdXNsZWVwKG1zICogMTAwMCk7Cn0K CnN0YXRpYyB1aW50NjRfdCBjdXJyZW50X3RpbWVfbXModm9pZCkKewogIHN0cnVjdCB0aW1lc3Bl YyB0czsKICBpZiAoY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cykpCiAgICBleGl0 KDEpOwogIHJldHVybiAodWludDY0X3QpdHMudHZfc2VjICogMTAwMCArICh1aW50NjRfdCl0cy50 dl9uc2VjIC8gMTAwMDAwMDsKfQoKc3RhdGljIHZvaWQgdXNlX3RlbXBvcmFyeV9kaXIodm9pZCkK ewogIGNoYXIgdG1wZGlyX3RlbXBsYXRlW10gPSAiLi9zeXprYWxsZXIuWFhYWFhYIjsKICBjaGFy KiB0bXBkaXIgPSBta2R0ZW1wKHRtcGRpcl90ZW1wbGF0ZSk7CiAgaWYgKCF0bXBkaXIpCiAgICBl eGl0KDEpOwogIGlmIChjaG1vZCh0bXBkaXIsIDA3NzcpKQogICAgZXhpdCgxKTsKICBpZiAoY2hk aXIodG1wZGlyKSkKICAgIGV4aXQoMSk7Cn0KCnN0YXRpYyB2b2lkIHRocmVhZF9zdGFydCh2b2lk KiAoKmZuKSh2b2lkKiksIHZvaWQqIGFyZykKewogIHB0aHJlYWRfdCB0aDsKICBwdGhyZWFkX2F0 dHJfdCBhdHRyOwogIHB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKICBwdGhyZWFkX2F0dHJfc2V0 c3RhY2tzaXplKCZhdHRyLCAxMjggPDwgMTApOwogIGludCBpID0gMDsKICBmb3IgKDsgaSA8IDEw MDsgaSsrKSB7CiAgICBpZiAocHRocmVhZF9jcmVhdGUoJnRoLCAmYXR0ciwgZm4sIGFyZykgPT0g MCkgewogICAgICBwdGhyZWFkX2F0dHJfZGVzdHJveSgmYXR0cik7CiAgICAgIHJldHVybjsKICAg IH0KICAgIGlmIChlcnJubyA9PSBFQUdBSU4pIHsKICAgICAgdXNsZWVwKDUwKTsKICAgICAgY29u dGludWU7CiAgICB9CiAgICBicmVhazsKICB9CiAgZXhpdCgxKTsKfQoKdHlwZWRlZiBzdHJ1Y3Qg ewogIGludCBzdGF0ZTsKfSBldmVudF90OwoKc3RhdGljIHZvaWQgZXZlbnRfaW5pdChldmVudF90 KiBldikKewogIGV2LT5zdGF0ZSA9IDA7Cn0KCnN0YXRpYyB2b2lkIGV2ZW50X3Jlc2V0KGV2ZW50 X3QqIGV2KQp7CiAgZXYtPnN0YXRlID0gMDsKfQoKc3RhdGljIHZvaWQgZXZlbnRfc2V0KGV2ZW50 X3QqIGV2KQp7CiAgaWYgKGV2LT5zdGF0ZSkKICAgIGV4aXQoMSk7CiAgX19hdG9taWNfc3RvcmVf bigmZXYtPnN0YXRlLCAxLCBfX0FUT01JQ19SRUxFQVNFKTsKICBzeXNjYWxsKFNZU19mdXRleCwg JmV2LT5zdGF0ZSwgRlVURVhfV0FLRSB8IEZVVEVYX1BSSVZBVEVfRkxBRywgMTAwMDAwMCk7Cn0K CnN0YXRpYyB2b2lkIGV2ZW50X3dhaXQoZXZlbnRfdCogZXYpCnsKICB3aGlsZSAoIV9fYXRvbWlj X2xvYWRfbigmZXYtPnN0YXRlLCBfX0FUT01JQ19BQ1FVSVJFKSkKICAgIHN5c2NhbGwoU1lTX2Z1 dGV4LCAmZXYtPnN0YXRlLCBGVVRFWF9XQUlUIHwgRlVURVhfUFJJVkFURV9GTEFHLCAwLCAwKTsK fQoKc3RhdGljIGludCBldmVudF9pc3NldChldmVudF90KiBldikKewogIHJldHVybiBfX2F0b21p Y19sb2FkX24oJmV2LT5zdGF0ZSwgX19BVE9NSUNfQUNRVUlSRSk7Cn0KCnN0YXRpYyBpbnQgZXZl bnRfdGltZWR3YWl0KGV2ZW50X3QqIGV2LCB1aW50NjRfdCB0aW1lb3V0KQp7CiAgdWludDY0X3Qg c3RhcnQgPSBjdXJyZW50X3RpbWVfbXMoKTsKICB1aW50NjRfdCBub3cgPSBzdGFydDsKICBmb3Ig KDs7KSB7CiAgICB1aW50NjRfdCByZW1haW4gPSB0aW1lb3V0IC0gKG5vdyAtIHN0YXJ0KTsKICAg IHN0cnVjdCB0aW1lc3BlYyB0czsKICAgIHRzLnR2X3NlYyA9IHJlbWFpbiAvIDEwMDA7CiAgICB0 cy50dl9uc2VjID0gKHJlbWFpbiAlIDEwMDApICogMTAwMCAqIDEwMDA7CiAgICBzeXNjYWxsKFNZ U19mdXRleCwgJmV2LT5zdGF0ZSwgRlVURVhfV0FJVCB8IEZVVEVYX1BSSVZBVEVfRkxBRywgMCwg JnRzKTsKICAgIGlmIChfX2F0b21pY19sb2FkX24oJmV2LT5zdGF0ZSwgX19BVE9NSUNfQUNRVUlS RSkpCiAgICAgIHJldHVybiAxOwogICAgbm93ID0gY3VycmVudF90aW1lX21zKCk7CiAgICBpZiAo bm93IC0gc3RhcnQgPiB0aW1lb3V0KQogICAgICByZXR1cm4gMDsKICB9Cn0KCnN0YXRpYyBib29s IHdyaXRlX2ZpbGUoY29uc3QgY2hhciogZmlsZSwgY29uc3QgY2hhciogd2hhdCwgLi4uKQp7CiAg Y2hhciBidWZbMTAyNF07CiAgdmFfbGlzdCBhcmdzOwogIHZhX3N0YXJ0KGFyZ3MsIHdoYXQpOwog IHZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCB3aGF0LCBhcmdzKTsKICB2YV9lbmQoYXJncyk7 CiAgYnVmW3NpemVvZihidWYpIC0gMV0gPSAwOwogIGludCBsZW4gPSBzdHJsZW4oYnVmKTsKICBp bnQgZmQgPSBvcGVuKGZpbGUsIE9fV1JPTkxZIHwgT19DTE9FWEVDKTsKICBpZiAoZmQgPT0gLTEp CiAgICByZXR1cm4gZmFsc2U7CiAgaWYgKHdyaXRlKGZkLCBidWYsIGxlbikgIT0gbGVuKSB7CiAg ICBpbnQgZXJyID0gZXJybm87CiAgICBjbG9zZShmZCk7CiAgICBlcnJubyA9IGVycjsKICAgIHJl dHVybiBmYWxzZTsKICB9CiAgY2xvc2UoZmQpOwogIHJldHVybiB0cnVlOwp9CgpzdHJ1Y3Qgbmxt c2cgewogIGNoYXIqIHBvczsKICBpbnQgbmVzdGluZzsKICBzdHJ1Y3QgbmxhdHRyKiBuZXN0ZWRb OF07CiAgY2hhciBidWZbNDA5Nl07Cn07CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2luaXQoc3RydWN0 IG5sbXNnKiBubG1zZywgaW50IHR5cCwgaW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgdm9pZCogZGF0YSwgaW50IHNpemUpCnsKICBtZW1zZXQobmxtc2csIDAsIHNpemVv Zigqbmxtc2cpKTsKICBzdHJ1Y3Qgbmxtc2doZHIqIGhkciA9IChzdHJ1Y3Qgbmxtc2doZHIqKW5s bXNnLT5idWY7CiAgaGRyLT5ubG1zZ190eXBlID0gdHlwOwogIGhkci0+bmxtc2dfZmxhZ3MgPSBO TE1fRl9SRVFVRVNUIHwgTkxNX0ZfQUNLIHwgZmxhZ3M7CiAgbWVtY3B5KGhkciArIDEsIGRhdGEs IHNpemUpOwogIG5sbXNnLT5wb3MgPSAoY2hhciopKGhkciArIDEpICsgTkxNU0dfQUxJR04oc2l6 ZSk7Cn0KCnN0YXRpYyB2b2lkIG5ldGxpbmtfYXR0cihzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQg dHlwLCBjb25zdCB2b2lkKiBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUp CnsKICBzdHJ1Y3QgbmxhdHRyKiBhdHRyID0gKHN0cnVjdCBubGF0dHIqKW5sbXNnLT5wb3M7CiAg YXR0ci0+bmxhX2xlbiA9IHNpemVvZigqYXR0cikgKyBzaXplOwogIGF0dHItPm5sYV90eXBlID0g dHlwOwogIGlmIChzaXplID4gMCkKICAgIG1lbWNweShhdHRyICsgMSwgZGF0YSwgc2l6ZSk7CiAg bmxtc2ctPnBvcyArPSBOTE1TR19BTElHTihhdHRyLT5ubGFfbGVuKTsKfQoKc3RhdGljIHZvaWQg bmV0bGlua19uZXN0KHN0cnVjdCBubG1zZyogbmxtc2csIGludCB0eXApCnsKICBzdHJ1Y3Qgbmxh dHRyKiBhdHRyID0gKHN0cnVjdCBubGF0dHIqKW5sbXNnLT5wb3M7CiAgYXR0ci0+bmxhX3R5cGUg PSB0eXA7CiAgbmxtc2ctPnBvcyArPSBzaXplb2YoKmF0dHIpOwogIG5sbXNnLT5uZXN0ZWRbbmxt c2ctPm5lc3RpbmcrK10gPSBhdHRyOwp9CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2RvbmUoc3RydWN0 IG5sbXNnKiBubG1zZykKewogIHN0cnVjdCBubGF0dHIqIGF0dHIgPSBubG1zZy0+bmVzdGVkWy0t bmxtc2ctPm5lc3RpbmddOwogIGF0dHItPm5sYV9sZW4gPSBubG1zZy0+cG9zIC0gKGNoYXIqKWF0 dHI7Cn0KCnN0YXRpYyBpbnQgbmV0bGlua19zZW5kX2V4dChzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBp bnQgc29jaywgdWludDE2X3QgcmVwbHlfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCogcmVwbHlfbGVuLCBib29sIGRvZmFpbCkKewogIGlmIChubG1zZy0+cG9zID4gbmxtc2ct PmJ1ZiArIHNpemVvZihubG1zZy0+YnVmKSB8fCBubG1zZy0+bmVzdGluZykKICAgIGV4aXQoMSk7 CiAgc3RydWN0IG5sbXNnaGRyKiBoZHIgPSAoc3RydWN0IG5sbXNnaGRyKilubG1zZy0+YnVmOwog IGhkci0+bmxtc2dfbGVuID0gbmxtc2ctPnBvcyAtIG5sbXNnLT5idWY7CiAgc3RydWN0IHNvY2th ZGRyX25sIGFkZHI7CiAgbWVtc2V0KCZhZGRyLCAwLCBzaXplb2YoYWRkcikpOwogIGFkZHIubmxf ZmFtaWx5ID0gQUZfTkVUTElOSzsKICBzc2l6ZV90IG4gPSBzZW5kdG8oc29jaywgbmxtc2ctPmJ1 ZiwgaGRyLT5ubG1zZ19sZW4sIDAsCiAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3Qgc29ja2Fk ZHIqKSZhZGRyLCBzaXplb2YoYWRkcikpOwogIGlmIChuICE9IChzc2l6ZV90KWhkci0+bmxtc2df bGVuKSB7CiAgICBpZiAoZG9mYWlsKQogICAgICBleGl0KDEpOwogICAgcmV0dXJuIC0xOwogIH0K ICBuID0gcmVjdihzb2NrLCBubG1zZy0+YnVmLCBzaXplb2Yobmxtc2ctPmJ1ZiksIDApOwogIGlm IChyZXBseV9sZW4pCiAgICAqcmVwbHlfbGVuID0gMDsKICBpZiAobiA8IDApIHsKICAgIGlmIChk b2ZhaWwpCiAgICAgIGV4aXQoMSk7CiAgICByZXR1cm4gLTE7CiAgfQogIGlmIChuIDwgKHNzaXpl X3Qpc2l6ZW9mKHN0cnVjdCBubG1zZ2hkcikpIHsKICAgIGVycm5vID0gRUlOVkFMOwogICAgaWYg KGRvZmFpbCkKICAgICAgZXhpdCgxKTsKICAgIHJldHVybiAtMTsKICB9CiAgaWYgKGhkci0+bmxt c2dfdHlwZSA9PSBOTE1TR19ET05FKQogICAgcmV0dXJuIDA7CiAgaWYgKHJlcGx5X2xlbiAmJiBo ZHItPm5sbXNnX3R5cGUgPT0gcmVwbHlfdHlwZSkgewogICAgKnJlcGx5X2xlbiA9IG47CiAgICBy ZXR1cm4gMDsKICB9CiAgaWYgKG4gPCAoc3NpemVfdCkoc2l6ZW9mKHN0cnVjdCBubG1zZ2hkcikg KyBzaXplb2Yoc3RydWN0IG5sbXNnZXJyKSkpIHsKICAgIGVycm5vID0gRUlOVkFMOwogICAgaWYg KGRvZmFpbCkKICAgICAgZXhpdCgxKTsKICAgIHJldHVybiAtMTsKICB9CiAgaWYgKGhkci0+bmxt c2dfdHlwZSAhPSBOTE1TR19FUlJPUikgewogICAgZXJybm8gPSBFSU5WQUw7CiAgICBpZiAoZG9m YWlsKQogICAgICBleGl0KDEpOwogICAgcmV0dXJuIC0xOwogIH0KICBlcnJubyA9IC0oKHN0cnVj dCBubG1zZ2VyciopKGhkciArIDEpKS0+ZXJyb3I7CiAgcmV0dXJuIC1lcnJubzsKfQoKc3RhdGlj IGludCBuZXRsaW5rX3NlbmQoc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNvY2spCnsKICByZXR1 cm4gbmV0bGlua19zZW5kX2V4dChubG1zZywgc29jaywgMCwgTlVMTCwgdHJ1ZSk7Cn0KCnN0YXRp YyBpbnQgbmV0bGlua19xdWVyeV9mYW1pbHlfaWQoc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNv Y2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmFtaWx5 X25hbWUsIGJvb2wgZG9mYWlsKQp7CiAgc3RydWN0IGdlbmxtc2doZHIgZ2VubGhkcjsKICBtZW1z ZXQoJmdlbmxoZHIsIDAsIHNpemVvZihnZW5saGRyKSk7CiAgZ2VubGhkci5jbWQgPSBDVFJMX0NN RF9HRVRGQU1JTFk7CiAgbmV0bGlua19pbml0KG5sbXNnLCBHRU5MX0lEX0NUUkwsIDAsICZnZW5s aGRyLCBzaXplb2YoZ2VubGhkcikpOwogIG5ldGxpbmtfYXR0cihubG1zZywgQ1RSTF9BVFRSX0ZB TUlMWV9OQU1FLCBmYW1pbHlfbmFtZSwKICAgICAgICAgICAgICAgc3RybmxlbihmYW1pbHlfbmFt ZSwgR0VOTF9OQU1TSVogLSAxKSArIDEpOwogIGludCBuID0gMDsKICBpbnQgZXJyID0gbmV0bGlu a19zZW5kX2V4dChubG1zZywgc29jaywgR0VOTF9JRF9DVFJMLCAmbiwgZG9mYWlsKTsKICBpZiAo ZXJyIDwgMCkgewogICAgcmV0dXJuIC0xOwogIH0KICB1aW50MTZfdCBpZCA9IDA7CiAgc3RydWN0 IG5sYXR0ciogYXR0ciA9IChzdHJ1Y3QgbmxhdHRyKikobmxtc2ctPmJ1ZiArIE5MTVNHX0hEUkxF TiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkxNU0dfQUxJR04o c2l6ZW9mKGdlbmxoZHIpKSk7CiAgZm9yICg7IChjaGFyKilhdHRyIDwgbmxtc2ctPmJ1ZiArIG47 CiAgICAgICBhdHRyID0gKHN0cnVjdCBubGF0dHIqKSgoY2hhciopYXR0ciArIE5MTVNHX0FMSUdO KGF0dHItPm5sYV9sZW4pKSkgewogICAgaWYgKGF0dHItPm5sYV90eXBlID09IENUUkxfQVRUUl9G QU1JTFlfSUQpIHsKICAgICAgaWQgPSAqKHVpbnQxNl90KikoYXR0ciArIDEpOwogICAgICBicmVh azsKICAgIH0KICB9CiAgaWYgKCFpZCkgewogICAgZXJybm8gPSBFSU5WQUw7CiAgICByZXR1cm4g LTE7CiAgfQogIHJlY3Yoc29jaywgbmxtc2ctPmJ1Ziwgc2l6ZW9mKG5sbXNnLT5idWYpLCAwKTsK ICByZXR1cm4gaWQ7Cn0KCnN0YXRpYyBpbnQgbmV0bGlua19uZXh0X21zZyhzdHJ1Y3Qgbmxtc2cq IG5sbXNnLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IHRvdGFsX2xlbikKewogIHN0cnVjdCBubG1zZ2hkciogaGRyID0gKHN0cnVj dCBubG1zZ2hkciopKG5sbXNnLT5idWYgKyBvZmZzZXQpOwogIGlmIChvZmZzZXQgPT0gdG90YWxf bGVuIHx8IG9mZnNldCArIGhkci0+bmxtc2dfbGVuID4gdG90YWxfbGVuKQogICAgcmV0dXJuIC0x OwogIHJldHVybiBoZHItPm5sbXNnX2xlbjsKfQoKc3RhdGljIHZvaWQgbmV0bGlua19hZGRfZGV2 aWNlX2ltcGwoc3RydWN0IG5sbXNnKiBubG1zZywgY29uc3QgY2hhciogdHlwZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSwgYm9vbCB1cCkKewog IHN0cnVjdCBpZmluZm9tc2cgaGRyOwogIG1lbXNldCgmaGRyLCAwLCBzaXplb2YoaGRyKSk7CiAg aWYgKHVwKQogICAgaGRyLmlmaV9mbGFncyA9IGhkci5pZmlfY2hhbmdlID0gSUZGX1VQOwogIG5l dGxpbmtfaW5pdChubG1zZywgUlRNX05FV0xJTkssIE5MTV9GX0VYQ0wgfCBOTE1fRl9DUkVBVEUs ICZoZHIsCiAgICAgICAgICAgICAgIHNpemVvZihoZHIpKTsKICBpZiAobmFtZSkKICAgIG5ldGxp bmtfYXR0cihubG1zZywgSUZMQV9JRk5BTUUsIG5hbWUsIHN0cmxlbihuYW1lKSk7CiAgbmV0bGlu a19uZXN0KG5sbXNnLCBJRkxBX0xJTktJTkZPKTsKICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFf SU5GT19LSU5ELCB0eXBlLCBzdHJsZW4odHlwZSkpOwp9CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2Fk ZF9kZXZpY2Uoc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNvY2ssIGNvbnN0IGNoYXIqIHR5cGUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lKQp7CiAgbmV0 bGlua19hZGRfZGV2aWNlX2ltcGwobmxtc2csIHR5cGUsIG5hbWUsIGZhbHNlKTsKICBuZXRsaW5r X2RvbmUobmxtc2cpOwogIGludCBlcnIgPSBuZXRsaW5rX3NlbmQobmxtc2csIHNvY2spOwogIGlm IChlcnIgPCAwKSB7CiAgfQp9CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2FkZF92ZXRoKHN0cnVjdCBu bG1zZyogbmxtc2csIGludCBzb2NrLCBjb25zdCBjaGFyKiBuYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHBlZXIpCnsKICBuZXRsaW5rX2FkZF9kZXZpY2VfaW1w bChubG1zZywgInZldGgiLCBuYW1lLCBmYWxzZSk7CiAgbmV0bGlua19uZXN0KG5sbXNnLCBJRkxB X0lORk9fREFUQSk7CiAgbmV0bGlua19uZXN0KG5sbXNnLCBWRVRIX0lORk9fUEVFUik7CiAgbmxt c2ctPnBvcyArPSBzaXplb2Yoc3RydWN0IGlmaW5mb21zZyk7CiAgbmV0bGlua19hdHRyKG5sbXNn LCBJRkxBX0lGTkFNRSwgcGVlciwgc3RybGVuKHBlZXIpKTsKICBuZXRsaW5rX2RvbmUobmxtc2cp OwogIG5ldGxpbmtfZG9uZShubG1zZyk7CiAgbmV0bGlua19kb25lKG5sbXNnKTsKICBpbnQgZXJy ID0gbmV0bGlua19zZW5kKG5sbXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0KfQoKc3Rh dGljIHZvaWQgbmV0bGlua19hZGRfeGZybShzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQgc29jaywg Y29uc3QgY2hhciogbmFtZSkKewogIG5ldGxpbmtfYWRkX2RldmljZV9pbXBsKG5sbXNnLCAieGZy bSIsIG5hbWUsIHRydWUpOwogIG5ldGxpbmtfbmVzdChubG1zZywgSUZMQV9JTkZPX0RBVEEpOwog IGludCBpZl9pZCA9IDE7CiAgbmV0bGlua19hdHRyKG5sbXNnLCAyLCAmaWZfaWQsIHNpemVvZihp Zl9pZCkpOwogIG5ldGxpbmtfZG9uZShubG1zZyk7CiAgbmV0bGlua19kb25lKG5sbXNnKTsKICBp bnQgZXJyID0gbmV0bGlua19zZW5kKG5sbXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0K fQoKc3RhdGljIHZvaWQgbmV0bGlua19hZGRfaHNyKHN0cnVjdCBubG1zZyogbmxtc2csIGludCBz b2NrLCBjb25zdCBjaGFyKiBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciogc2xhdmUxLCBjb25zdCBjaGFyKiBzbGF2ZTIpCnsKICBuZXRsaW5rX2FkZF9kZXZpY2Vf aW1wbChubG1zZywgImhzciIsIG5hbWUsIGZhbHNlKTsKICBuZXRsaW5rX25lc3Qobmxtc2csIElG TEFfSU5GT19EQVRBKTsKICBpbnQgaWZpbmRleDEgPSBpZl9uYW1ldG9pbmRleChzbGF2ZTEpOwog IG5ldGxpbmtfYXR0cihubG1zZywgSUZMQV9IU1JfU0xBVkUxLCAmaWZpbmRleDEsIHNpemVvZihp ZmluZGV4MSkpOwogIGludCBpZmluZGV4MiA9IGlmX25hbWV0b2luZGV4KHNsYXZlMik7CiAgbmV0 bGlua19hdHRyKG5sbXNnLCBJRkxBX0hTUl9TTEFWRTIsICZpZmluZGV4Miwgc2l6ZW9mKGlmaW5k ZXgyKSk7CiAgbmV0bGlua19kb25lKG5sbXNnKTsKICBuZXRsaW5rX2RvbmUobmxtc2cpOwogIGlu dCBlcnIgPSBuZXRsaW5rX3NlbmQobmxtc2csIHNvY2spOwogIGlmIChlcnIgPCAwKSB7CiAgfQp9 CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2FkZF9saW5rZWQoc3RydWN0IG5sbXNnKiBubG1zZywgaW50 IHNvY2ssIGNvbnN0IGNoYXIqIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBsaW5rKQp7CiAgbmV0bGlua19hZGRfZGV2aWNl X2ltcGwobmxtc2csIHR5cGUsIG5hbWUsIGZhbHNlKTsKICBuZXRsaW5rX2RvbmUobmxtc2cpOwog IGludCBpZmluZGV4ID0gaWZfbmFtZXRvaW5kZXgobGluayk7CiAgbmV0bGlua19hdHRyKG5sbXNn LCBJRkxBX0xJTkssICZpZmluZGV4LCBzaXplb2YoaWZpbmRleCkpOwogIGludCBlcnIgPSBuZXRs aW5rX3NlbmQobmxtc2csIHNvY2spOwogIGlmIChlcnIgPCAwKSB7CiAgfQp9CgpzdGF0aWMgdm9p ZCBuZXRsaW5rX2FkZF92bGFuKHN0cnVjdCBubG1zZyogbmxtc2csIGludCBzb2NrLCBjb25zdCBj aGFyKiBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGxpbmss IHVpbnQxNl90IGlkLCB1aW50MTZfdCBwcm90bykKewogIG5ldGxpbmtfYWRkX2RldmljZV9pbXBs KG5sbXNnLCAidmxhbiIsIG5hbWUsIGZhbHNlKTsKICBuZXRsaW5rX25lc3Qobmxtc2csIElGTEFf SU5GT19EQVRBKTsKICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfVkxBTl9JRCwgJmlkLCBzaXpl b2YoaWQpKTsKICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfVkxBTl9QUk9UT0NPTCwgJnByb3Rv LCBzaXplb2YocHJvdG8pKTsKICBuZXRsaW5rX2RvbmUobmxtc2cpOwogIG5ldGxpbmtfZG9uZShu bG1zZyk7CiAgaW50IGlmaW5kZXggPSBpZl9uYW1ldG9pbmRleChsaW5rKTsKICBuZXRsaW5rX2F0 dHIobmxtc2csIElGTEFfTElOSywgJmlmaW5kZXgsIHNpemVvZihpZmluZGV4KSk7CiAgaW50IGVy ciA9IG5ldGxpbmtfc2VuZChubG1zZywgc29jayk7CiAgaWYgKGVyciA8IDApIHsKICB9Cn0KCnN0 YXRpYyB2b2lkIG5ldGxpbmtfYWRkX21hY3ZsYW4oc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNv Y2ssIGNvbnN0IGNoYXIqIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciogbGluaykKewogIG5ldGxpbmtfYWRkX2RldmljZV9pbXBsKG5sbXNnLCAibWFjdmxh biIsIG5hbWUsIGZhbHNlKTsKICBuZXRsaW5rX25lc3Qobmxtc2csIElGTEFfSU5GT19EQVRBKTsK ICB1aW50MzJfdCBtb2RlID0gTUFDVkxBTl9NT0RFX0JSSURHRTsKICBuZXRsaW5rX2F0dHIobmxt c2csIElGTEFfTUFDVkxBTl9NT0RFLCAmbW9kZSwgc2l6ZW9mKG1vZGUpKTsKICBuZXRsaW5rX2Rv bmUobmxtc2cpOwogIG5ldGxpbmtfZG9uZShubG1zZyk7CiAgaW50IGlmaW5kZXggPSBpZl9uYW1l dG9pbmRleChsaW5rKTsKICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfTElOSywgJmlmaW5kZXgs IHNpemVvZihpZmluZGV4KSk7CiAgaW50IGVyciA9IG5ldGxpbmtfc2VuZChubG1zZywgc29jayk7 CiAgaWYgKGVyciA8IDApIHsKICB9Cn0KCnN0YXRpYyB2b2lkIG5ldGxpbmtfYWRkX2dlbmV2ZShz dHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQgc29jaywgY29uc3QgY2hhciogbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZuaSwgc3RydWN0IGluX2FkZHIqIGFkZHI0 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluNl9hZGRyKiBhZGRyNikK ewogIG5ldGxpbmtfYWRkX2RldmljZV9pbXBsKG5sbXNnLCAiZ2VuZXZlIiwgbmFtZSwgZmFsc2Up OwogIG5ldGxpbmtfbmVzdChubG1zZywgSUZMQV9JTkZPX0RBVEEpOwogIG5ldGxpbmtfYXR0cihu bG1zZywgSUZMQV9HRU5FVkVfSUQsICZ2bmksIHNpemVvZih2bmkpKTsKICBpZiAoYWRkcjQpCiAg ICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfR0VORVZFX1JFTU9URSwgYWRkcjQsIHNpemVvZigq YWRkcjQpKTsKICBpZiAoYWRkcjYpCiAgICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfR0VORVZF X1JFTU9URTYsIGFkZHI2LCBzaXplb2YoKmFkZHI2KSk7CiAgbmV0bGlua19kb25lKG5sbXNnKTsK ICBuZXRsaW5rX2RvbmUobmxtc2cpOwogIGludCBlcnIgPSBuZXRsaW5rX3NlbmQobmxtc2csIHNv Y2spOwogIGlmIChlcnIgPCAwKSB7CiAgfQp9CgojZGVmaW5lIElGTEFfSVBWTEFOX0ZMQUdTIDIK I2RlZmluZSBJUFZMQU5fTU9ERV9MM1MgMgojdW5kZWYgSVBWTEFOX0ZfVkVQQQojZGVmaW5lIElQ VkxBTl9GX1ZFUEEgMgoKc3RhdGljIHZvaWQgbmV0bGlua19hZGRfaXB2bGFuKHN0cnVjdCBubG1z Zyogbmxtc2csIGludCBzb2NrLCBjb25zdCBjaGFyKiBuYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciogbGluaywgdWludDE2X3QgbW9kZSwgdWludDE2X3QgZmxh Z3MpCnsKICBuZXRsaW5rX2FkZF9kZXZpY2VfaW1wbChubG1zZywgImlwdmxhbiIsIG5hbWUsIGZh bHNlKTsKICBuZXRsaW5rX25lc3Qobmxtc2csIElGTEFfSU5GT19EQVRBKTsKICBuZXRsaW5rX2F0 dHIobmxtc2csIElGTEFfSVBWTEFOX01PREUsICZtb2RlLCBzaXplb2YobW9kZSkpOwogIG5ldGxp bmtfYXR0cihubG1zZywgSUZMQV9JUFZMQU5fRkxBR1MsICZmbGFncywgc2l6ZW9mKGZsYWdzKSk7 CiAgbmV0bGlua19kb25lKG5sbXNnKTsKICBuZXRsaW5rX2RvbmUobmxtc2cpOwogIGludCBpZmlu ZGV4ID0gaWZfbmFtZXRvaW5kZXgobGluayk7CiAgbmV0bGlua19hdHRyKG5sbXNnLCBJRkxBX0xJ TkssICZpZmluZGV4LCBzaXplb2YoaWZpbmRleCkpOwogIGludCBlcnIgPSBuZXRsaW5rX3NlbmQo bmxtc2csIHNvY2spOwogIGlmIChlcnIgPCAwKSB7CiAgfQp9CgpzdGF0aWMgdm9pZCBuZXRsaW5r X2RldmljZV9jaGFuZ2Uoc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNvY2ssCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBuYW1lLCBib29sIHVwLCBjb25zdCBj aGFyKiBtYXN0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lk KiBtYWMsIGludCBtYWNzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciogbmV3X25hbWUpCnsKICBzdHJ1Y3QgaWZpbmZvbXNnIGhkcjsKICBtZW1zZXQoJmhk ciwgMCwgc2l6ZW9mKGhkcikpOwogIGlmICh1cCkKICAgIGhkci5pZmlfZmxhZ3MgPSBoZHIuaWZp X2NoYW5nZSA9IElGRl9VUDsKICBoZHIuaWZpX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgobmFtZSk7 CiAgbmV0bGlua19pbml0KG5sbXNnLCBSVE1fTkVXTElOSywgMCwgJmhkciwgc2l6ZW9mKGhkcikp OwogIGlmIChuZXdfbmFtZSkKICAgIG5ldGxpbmtfYXR0cihubG1zZywgSUZMQV9JRk5BTUUsIG5l d19uYW1lLCBzdHJsZW4obmV3X25hbWUpKTsKICBpZiAobWFzdGVyKSB7CiAgICBpbnQgaWZpbmRl eCA9IGlmX25hbWV0b2luZGV4KG1hc3Rlcik7CiAgICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFf TUFTVEVSLCAmaWZpbmRleCwgc2l6ZW9mKGlmaW5kZXgpKTsKICB9CiAgaWYgKG1hY3NpemUpCiAg ICBuZXRsaW5rX2F0dHIobmxtc2csIElGTEFfQUREUkVTUywgbWFjLCBtYWNzaXplKTsKICBpbnQg ZXJyID0gbmV0bGlua19zZW5kKG5sbXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0KfQoK c3RhdGljIGludCBuZXRsaW5rX2FkZF9hZGRyKHN0cnVjdCBubG1zZyogbmxtc2csIGludCBzb2Nr LCBjb25zdCBjaGFyKiBkZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lk KiBhZGRyLCBpbnQgYWRkcnNpemUpCnsKICBzdHJ1Y3QgaWZhZGRybXNnIGhkcjsKICBtZW1zZXQo JmhkciwgMCwgc2l6ZW9mKGhkcikpOwogIGhkci5pZmFfZmFtaWx5ID0gYWRkcnNpemUgPT0gNCA/ IEFGX0lORVQgOiBBRl9JTkVUNjsKICBoZHIuaWZhX3ByZWZpeGxlbiA9IGFkZHJzaXplID09IDQg PyAyNCA6IDEyMDsKICBoZHIuaWZhX3Njb3BlID0gUlRfU0NPUEVfVU5JVkVSU0U7CiAgaGRyLmlm YV9pbmRleCA9IGlmX25hbWV0b2luZGV4KGRldik7CiAgbmV0bGlua19pbml0KG5sbXNnLCBSVE1f TkVXQUREUiwgTkxNX0ZfQ1JFQVRFIHwgTkxNX0ZfUkVQTEFDRSwgJmhkciwKICAgICAgICAgICAg ICAgc2l6ZW9mKGhkcikpOwogIG5ldGxpbmtfYXR0cihubG1zZywgSUZBX0xPQ0FMLCBhZGRyLCBh ZGRyc2l6ZSk7CiAgbmV0bGlua19hdHRyKG5sbXNnLCBJRkFfQUREUkVTUywgYWRkciwgYWRkcnNp emUpOwogIHJldHVybiBuZXRsaW5rX3NlbmQobmxtc2csIHNvY2spOwp9CgpzdGF0aWMgdm9pZCBu ZXRsaW5rX2FkZF9hZGRyNChzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQgc29jaywgY29uc3QgY2hh ciogZGV2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhZGRyKQp7 CiAgc3RydWN0IGluX2FkZHIgaW5fYWRkcjsKICBpbmV0X3B0b24oQUZfSU5FVCwgYWRkciwgJmlu X2FkZHIpOwogIGludCBlcnIgPSBuZXRsaW5rX2FkZF9hZGRyKG5sbXNnLCBzb2NrLCBkZXYsICZp bl9hZGRyLCBzaXplb2YoaW5fYWRkcikpOwogIGlmIChlcnIgPCAwKSB7CiAgfQp9CgpzdGF0aWMg dm9pZCBuZXRsaW5rX2FkZF9hZGRyNihzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQgc29jaywgY29u c3QgY2hhciogZGV2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBh ZGRyKQp7CiAgc3RydWN0IGluNl9hZGRyIGluNl9hZGRyOwogIGluZXRfcHRvbihBRl9JTkVUNiwg YWRkciwgJmluNl9hZGRyKTsKICBpbnQgZXJyID0gbmV0bGlua19hZGRfYWRkcihubG1zZywgc29j aywgZGV2LCAmaW42X2FkZHIsIHNpemVvZihpbjZfYWRkcikpOwogIGlmIChlcnIgPCAwKSB7CiAg fQp9CgpzdGF0aWMgdm9pZCBuZXRsaW5rX2FkZF9uZWlnaChzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBp bnQgc29jaywgY29uc3QgY2hhciogbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgdm9pZCogYWRkciwgaW50IGFkZHJzaXplLCBjb25zdCB2b2lkKiBtYWMsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBtYWNzaXplKQp7CiAgc3RydWN0IG5kbXNnIGhkcjsK ICBtZW1zZXQoJmhkciwgMCwgc2l6ZW9mKGhkcikpOwogIGhkci5uZG1fZmFtaWx5ID0gYWRkcnNp emUgPT0gNCA/IEFGX0lORVQgOiBBRl9JTkVUNjsKICBoZHIubmRtX2lmaW5kZXggPSBpZl9uYW1l dG9pbmRleChuYW1lKTsKICBoZHIubmRtX3N0YXRlID0gTlVEX1BFUk1BTkVOVDsKICBuZXRsaW5r X2luaXQobmxtc2csIFJUTV9ORVdORUlHSCwgTkxNX0ZfRVhDTCB8IE5MTV9GX0NSRUFURSwgJmhk ciwKICAgICAgICAgICAgICAgc2l6ZW9mKGhkcikpOwogIG5ldGxpbmtfYXR0cihubG1zZywgTkRB X0RTVCwgYWRkciwgYWRkcnNpemUpOwogIG5ldGxpbmtfYXR0cihubG1zZywgTkRBX0xMQUREUiwg bWFjLCBtYWNzaXplKTsKICBpbnQgZXJyID0gbmV0bGlua19zZW5kKG5sbXNnLCBzb2NrKTsKICBp ZiAoZXJyIDwgMCkgewogIH0KfQoKc3RhdGljIHN0cnVjdCBubG1zZyBubG1zZzsKCnN0YXRpYyBp bnQgdHVuZmQgPSAtMTsKCiNkZWZpbmUgVFVOX0lGQUNFICJzeXpfdHVuIgojZGVmaW5lIExPQ0FM X01BQyAweGFhYWFhYWFhYWFhYQojZGVmaW5lIFJFTU9URV9NQUMgMHhhYWFhYWFhYWFhYmIKI2Rl ZmluZSBMT0NBTF9JUFY0ICIxNzIuMjAuMjAuMTcwIgojZGVmaW5lIFJFTU9URV9JUFY0ICIxNzIu MjAuMjAuMTg3IgojZGVmaW5lIExPQ0FMX0lQVjYgImZlODA6OmFhIgojZGVmaW5lIFJFTU9URV9J UFY2ICJmZTgwOjpiYiIKCiNkZWZpbmUgSUZGX05BUEkgMHgwMDEwCgpzdGF0aWMgdm9pZCBpbml0 aWFsaXplX3R1bih2b2lkKQp7CiAgdHVuZmQgPSBvcGVuKCIvZGV2L25ldC90dW4iLCBPX1JEV1Ig fCBPX05PTkJMT0NLKTsKICBpZiAodHVuZmQgPT0gLTEpIHsKICAgIHByaW50ZigidHVuOiBjYW4n dCBvcGVuIC9kZXYvbmV0L3R1bjogcGxlYXNlIGVuYWJsZSBDT05GSUdfVFVOPXlcbiIpOwogICAg cHJpbnRmKCJvdGhlcndpc2UgZnV6emluZyBvciByZXByb2R1Y2luZyBtaWdodCBub3Qgd29yayBh cyBpbnRlbmRlZFxuIik7CiAgICByZXR1cm47CiAgfQogIGNvbnN0IGludCBrVHVuRmQgPSAyMDA7 CiAgaWYgKGR1cDIodHVuZmQsIGtUdW5GZCkgPCAwKQogICAgZXhpdCgxKTsKICBjbG9zZSh0dW5m ZCk7CiAgdHVuZmQgPSBrVHVuRmQ7CiAgc3RydWN0IGlmcmVxIGlmcjsKICBtZW1zZXQoJmlmciwg MCwgc2l6ZW9mKGlmcikpOwogIHN0cm5jcHkoaWZyLmlmcl9uYW1lLCBUVU5fSUZBQ0UsIElGTkFN U0laKTsKICBpZnIuaWZyX2ZsYWdzID0gSUZGX1RBUCB8IElGRl9OT19QSTsKICBpZiAoaW9jdGwo dHVuZmQsIFRVTlNFVElGRiwgKHZvaWQqKSZpZnIpIDwgMCkgewogICAgZXhpdCgxKTsKICB9CiAg Y2hhciBzeXNjdGxbNjRdOwogIHNwcmludGYoc3lzY3RsLCAiL3Byb2Mvc3lzL25ldC9pcHY2L2Nv bmYvJXMvYWNjZXB0X2RhZCIsIFRVTl9JRkFDRSk7CiAgd3JpdGVfZmlsZShzeXNjdGwsICIwIik7 CiAgc3ByaW50ZihzeXNjdGwsICIvcHJvYy9zeXMvbmV0L2lwdjYvY29uZi8lcy9yb3V0ZXJfc29s aWNpdGF0aW9ucyIsIFRVTl9JRkFDRSk7CiAgd3JpdGVfZmlsZShzeXNjdGwsICIwIik7CiAgaW50 IHNvY2sgPSBzb2NrZXQoQUZfTkVUTElOSywgU09DS19SQVcsIE5FVExJTktfUk9VVEUpOwogIGlm IChzb2NrID09IC0xKQogICAgZXhpdCgxKTsKICBuZXRsaW5rX2FkZF9hZGRyNCgmbmxtc2csIHNv Y2ssIFRVTl9JRkFDRSwgTE9DQUxfSVBWNCk7CiAgbmV0bGlua19hZGRfYWRkcjYoJm5sbXNnLCBz b2NrLCBUVU5fSUZBQ0UsIExPQ0FMX0lQVjYpOwogIHVpbnQ2NF90IG1hY2FkZHIgPSBSRU1PVEVf TUFDOwogIHN0cnVjdCBpbl9hZGRyIGluX2FkZHI7CiAgaW5ldF9wdG9uKEFGX0lORVQsIFJFTU9U RV9JUFY0LCAmaW5fYWRkcik7CiAgbmV0bGlua19hZGRfbmVpZ2goJm5sbXNnLCBzb2NrLCBUVU5f SUZBQ0UsICZpbl9hZGRyLCBzaXplb2YoaW5fYWRkciksCiAgICAgICAgICAgICAgICAgICAgJm1h Y2FkZHIsIEVUSF9BTEVOKTsKICBzdHJ1Y3QgaW42X2FkZHIgaW42X2FkZHI7CiAgaW5ldF9wdG9u KEFGX0lORVQ2LCBSRU1PVEVfSVBWNiwgJmluNl9hZGRyKTsKICBuZXRsaW5rX2FkZF9uZWlnaCgm bmxtc2csIHNvY2ssIFRVTl9JRkFDRSwgJmluNl9hZGRyLCBzaXplb2YoaW42X2FkZHIpLAogICAg ICAgICAgICAgICAgICAgICZtYWNhZGRyLCBFVEhfQUxFTik7CiAgbWFjYWRkciA9IExPQ0FMX01B QzsKICBuZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5sbXNnLCBzb2NrLCBUVU5fSUZBQ0UsIHRydWUs IDAsICZtYWNhZGRyLCBFVEhfQUxFTiwKICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAg Y2xvc2Uoc29jayk7Cn0KCiNkZWZpbmUgREVWTElOS19GQU1JTFlfTkFNRSAiZGV2bGluayIKCiNk ZWZpbmUgREVWTElOS19DTURfUE9SVF9HRVQgNQojZGVmaW5lIERFVkxJTktfQVRUUl9CVVNfTkFN RSAxCiNkZWZpbmUgREVWTElOS19BVFRSX0RFVl9OQU1FIDIKI2RlZmluZSBERVZMSU5LX0FUVFJf TkVUREVWX05BTUUgNwoKc3RhdGljIHN0cnVjdCBubG1zZyBubG1zZzI7CgpzdGF0aWMgdm9pZCBp bml0aWFsaXplX2RldmxpbmtfcG9ydHMoY29uc3QgY2hhciogYnVzX25hbWUsIGNvbnN0IGNoYXIq IGRldl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciogbmV0ZGV2X3ByZWZpeCkKewogIHN0cnVjdCBnZW5sbXNnaGRyIGdlbmxoZHI7CiAgaW50IGxl biwgdG90YWxfbGVuLCBpZCwgZXJyLCBvZmZzZXQ7CiAgdWludDE2X3QgbmV0ZGV2X2luZGV4Owog IGludCBzb2NrID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX0dFTkVSSUMp OwogIGlmIChzb2NrID09IC0xKQogICAgZXhpdCgxKTsKICBpbnQgcnRzb2NrID0gc29ja2V0KEFG X05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX1JPVVRFKTsKICBpZiAocnRzb2NrID09IC0xKQog ICAgZXhpdCgxKTsKICBpZCA9IG5ldGxpbmtfcXVlcnlfZmFtaWx5X2lkKCZubG1zZywgc29jaywg REVWTElOS19GQU1JTFlfTkFNRSwgdHJ1ZSk7CiAgaWYgKGlkID09IC0xKQogICAgZ290byBlcnJv cjsKICBtZW1zZXQoJmdlbmxoZHIsIDAsIHNpemVvZihnZW5saGRyKSk7CiAgZ2VubGhkci5jbWQg PSBERVZMSU5LX0NNRF9QT1JUX0dFVDsKICBuZXRsaW5rX2luaXQoJm5sbXNnLCBpZCwgTkxNX0Zf RFVNUCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywg REVWTElOS19BVFRSX0JVU19OQU1FLCBidXNfbmFtZSwgc3RybGVuKGJ1c19uYW1lKSArIDEpOwog IG5ldGxpbmtfYXR0cigmbmxtc2csIERFVkxJTktfQVRUUl9ERVZfTkFNRSwgZGV2X25hbWUsIHN0 cmxlbihkZXZfbmFtZSkgKyAxKTsKICBlcnIgPSBuZXRsaW5rX3NlbmRfZXh0KCZubG1zZywgc29j aywgaWQsICZ0b3RhbF9sZW4sIHRydWUpOwogIGlmIChlcnIgPCAwKSB7CiAgICBnb3RvIGVycm9y OwogIH0KICBvZmZzZXQgPSAwOwogIG5ldGRldl9pbmRleCA9IDA7CiAgd2hpbGUgKChsZW4gPSBu ZXRsaW5rX25leHRfbXNnKCZubG1zZywgb2Zmc2V0LCB0b3RhbF9sZW4pKSAhPSAtMSkgewogICAg c3RydWN0IG5sYXR0ciogYXR0ciA9IChzdHJ1Y3QgbmxhdHRyKikobmxtc2cuYnVmICsgb2Zmc2V0 ICsgTkxNU0dfSERSTEVOICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5MTVNHX0FMSUdOKHNpemVvZihnZW5saGRyKSkpOwogICAgZm9yICg7IChjaGFyKilhdHRy IDwgbmxtc2cuYnVmICsgb2Zmc2V0ICsgbGVuOwogICAgICAgICBhdHRyID0gKHN0cnVjdCBubGF0 dHIqKSgoY2hhciopYXR0ciArIE5MTVNHX0FMSUdOKGF0dHItPm5sYV9sZW4pKSkgewogICAgICBp ZiAoYXR0ci0+bmxhX3R5cGUgPT0gREVWTElOS19BVFRSX05FVERFVl9OQU1FKSB7CiAgICAgICAg Y2hhciogcG9ydF9uYW1lOwogICAgICAgIGNoYXIgbmV0ZGV2X25hbWVbSUZOQU1TSVpdOwogICAg ICAgIHBvcnRfbmFtZSA9IChjaGFyKikoYXR0ciArIDEpOwogICAgICAgIHNucHJpbnRmKG5ldGRl dl9uYW1lLCBzaXplb2YobmV0ZGV2X25hbWUpLCAiJXMlZCIsIG5ldGRldl9wcmVmaXgsCiAgICAg ICAgICAgICAgICAgbmV0ZGV2X2luZGV4KTsKICAgICAgICBuZXRsaW5rX2RldmljZV9jaGFuZ2Uo Jm5sbXNnMiwgcnRzb2NrLCBwb3J0X25hbWUsIHRydWUsIDAsIDAsIDAsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5ldGRldl9uYW1lKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAg fQogICAgb2Zmc2V0ICs9IGxlbjsKICAgIG5ldGRldl9pbmRleCsrOwogIH0KZXJyb3I6CiAgY2xv c2UocnRzb2NrKTsKICBjbG9zZShzb2NrKTsKfQoKI2RlZmluZSBXSUZJX0lOSVRJQUxfREVWSUNF X0NPVU5UIDIKI2RlZmluZSBXSUZJX01BQ19CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgIDB4MDgsIDB4MDIsIDB4MTEsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICB9CiNkZWZpbmUgV0lGSV9JQlNTX0JTU0lEICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAweDUwLCAweDUwLCAweDUwLCAweDUwLCAweDUwLCAweDUw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfQojZGVmaW5lIFdJ RklfSUJTU19TU0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAogIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgMHgxMCwgMHgxMCwgMHgx MCwgMHgxMCwgMHgxMCwgMHgxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogIH0KI2RlZmluZSBXSUZJX0RFRkFVTFRfRlJFUVVFTkNZIDI0MTIKI2RlZmluZSBXSUZJ X0RFRkFVTFRfU0lHTkFMIDAKI2RlZmluZSBXSUZJX0RFRkFVTFRfUlhfUkFURSAxCiNkZWZpbmUg SFdTSU1fQ01EX1JFR0lTVEVSIDEKI2RlZmluZSBIV1NJTV9DTURfRlJBTUUgMgojZGVmaW5lIEhX U0lNX0NNRF9ORVdfUkFESU8gNAojZGVmaW5lIEhXU0lNX0FUVFJfU1VQUE9SVF9QMlBfREVWSUNF IDE0CiNkZWZpbmUgSFdTSU1fQVRUUl9QRVJNX0FERFIgMjIKCiNkZWZpbmUgSUZfT1BFUl9VUCA2 CnN0cnVjdCBqb2luX2lic3NfcHJvcHMgewogIGludCB3aXBoeV9mcmVxOwogIGJvb2wgd2lwaHlf ZnJlcV9maXhlZDsKICB1aW50OF90KiBtYWM7CiAgdWludDhfdCogc3NpZDsKICBpbnQgc3NpZF9s ZW47Cn07CgpzdGF0aWMgaW50IHNldF9pbnRlcmZhY2Vfc3RhdGUoY29uc3QgY2hhciogaW50ZXJm YWNlX25hbWUsIGludCBvbikKewogIHN0cnVjdCBpZnJlcSBpZnI7CiAgaW50IHNvY2sgPSBzb2Nr ZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CiAgaWYgKHNvY2sgPCAwKSB7CiAgICByZXR1cm4g LTE7CiAgfQogIG1lbXNldCgmaWZyLCAwLCBzaXplb2YoaWZyKSk7CiAgc3RyY3B5KGlmci5pZnJf bmFtZSwgaW50ZXJmYWNlX25hbWUpOwogIGludCByZXQgPSBpb2N0bChzb2NrLCBTSU9DR0lGRkxB R1MsICZpZnIpOwogIGlmIChyZXQgPCAwKSB7CiAgICBjbG9zZShzb2NrKTsKICAgIHJldHVybiAt MTsKICB9CiAgaWYgKG9uKQogICAgaWZyLmlmcl9mbGFncyB8PSBJRkZfVVA7CiAgZWxzZQogICAg aWZyLmlmcl9mbGFncyAmPSB+SUZGX1VQOwogIHJldCA9IGlvY3RsKHNvY2ssIFNJT0NTSUZGTEFH UywgJmlmcik7CiAgY2xvc2Uoc29jayk7CiAgaWYgKHJldCA8IDApIHsKICAgIHJldHVybiAtMTsK ICB9CiAgcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgbmw4MDIxMV9zZXRfaW50ZXJmYWNlKHN0cnVj dCBubG1zZyogbmxtc2csIGludCBzb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbmw4MDIxMV9mYW1pbHksIHVpbnQzMl90IGlmaW5kZXgsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IGlmdHlwZSwgYm9vbCBkb2ZhaWwpCnsKICBzdHJ1Y3Qg Z2VubG1zZ2hkciBnZW5saGRyOwogIG1lbXNldCgmZ2VubGhkciwgMCwgc2l6ZW9mKGdlbmxoZHIp KTsKICBnZW5saGRyLmNtZCA9IE5MODAyMTFfQ01EX1NFVF9JTlRFUkZBQ0U7CiAgbmV0bGlua19p bml0KG5sbXNnLCBubDgwMjExX2ZhbWlseSwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7 CiAgbmV0bGlua19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJfSUZJTkRFWCwgJmlmaW5kZXgsIHNp emVvZihpZmluZGV4KSk7CiAgbmV0bGlua19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJfSUZUWVBF LCAmaWZ0eXBlLCBzaXplb2YoaWZ0eXBlKSk7CiAgaW50IGVyciA9IG5ldGxpbmtfc2VuZF9leHQo bmxtc2csIHNvY2ssIDAsIE5VTEwsIGRvZmFpbCk7CiAgaWYgKGVyciA8IDApIHsKICB9CiAgcmV0 dXJuIGVycjsKfQoKc3RhdGljIGludCBubDgwMjExX2pvaW5faWJzcyhzdHJ1Y3Qgbmxtc2cqIG5s bXNnLCBpbnQgc29jaywgaW50IG5sODAyMTFfZmFtaWx5LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQzMl90IGlmaW5kZXgsIHN0cnVjdCBqb2luX2lic3NfcHJvcHMqIHByb3BzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZG9mYWlsKQp7CiAgc3RydWN0IGdlbmxt c2doZHIgZ2VubGhkcjsKICBtZW1zZXQoJmdlbmxoZHIsIDAsIHNpemVvZihnZW5saGRyKSk7CiAg Z2VubGhkci5jbWQgPSBOTDgwMjExX0NNRF9KT0lOX0lCU1M7CiAgbmV0bGlua19pbml0KG5sbXNn LCBubDgwMjExX2ZhbWlseSwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAgbmV0bGlu a19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJfSUZJTkRFWCwgJmlmaW5kZXgsIHNpemVvZihpZmlu ZGV4KSk7CiAgbmV0bGlua19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJfU1NJRCwgcHJvcHMtPnNz aWQsIHByb3BzLT5zc2lkX2xlbik7CiAgbmV0bGlua19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJf V0lQSFlfRlJFUSwgJihwcm9wcy0+d2lwaHlfZnJlcSksCiAgICAgICAgICAgICAgIHNpemVvZihw cm9wcy0+d2lwaHlfZnJlcSkpOwogIGlmIChwcm9wcy0+bWFjKQogICAgbmV0bGlua19hdHRyKG5s bXNnLCBOTDgwMjExX0FUVFJfTUFDLCBwcm9wcy0+bWFjLCBFVEhfQUxFTik7CiAgaWYgKHByb3Bz LT53aXBoeV9mcmVxX2ZpeGVkKQogICAgbmV0bGlua19hdHRyKG5sbXNnLCBOTDgwMjExX0FUVFJf RlJFUV9GSVhFRCwgTlVMTCwgMCk7CiAgaW50IGVyciA9IG5ldGxpbmtfc2VuZF9leHQobmxtc2cs IHNvY2ssIDAsIE5VTEwsIGRvZmFpbCk7CiAgaWYgKGVyciA8IDApIHsKICB9CiAgcmV0dXJuIGVy cjsKfQoKc3RhdGljIGludCBnZXRfaWZsYV9vcGVyc3RhdGUoc3RydWN0IG5sbXNnKiBubG1zZywg aW50IGlmaW5kZXgsIGJvb2wgZG9mYWlsKQp7CiAgc3RydWN0IGlmaW5mb21zZyBpbmZvOwogIG1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKGluZm8pKTsKICBpbmZvLmlmaV9mYW1pbHkgPSBBRl9VTlNQ RUM7CiAgaW5mby5pZmlfaW5kZXggPSBpZmluZGV4OwogIGludCBzb2NrID0gc29ja2V0KEFGX05F VExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX1JPVVRFKTsKICBpZiAoc29jayA9PSAtMSkgewogICAg cmV0dXJuIC0xOwogIH0KICBuZXRsaW5rX2luaXQobmxtc2csIFJUTV9HRVRMSU5LLCAwLCAmaW5m bywgc2l6ZW9mKGluZm8pKTsKICBpbnQgbjsKICBpbnQgZXJyID0gbmV0bGlua19zZW5kX2V4dChu bG1zZywgc29jaywgUlRNX05FV0xJTkssICZuLCBkb2ZhaWwpOwogIGNsb3NlKHNvY2spOwogIGlm IChlcnIpIHsKICAgIHJldHVybiAtMTsKICB9CiAgc3RydWN0IHJ0YXR0ciogYXR0ciA9IElGTEFf UlRBKE5MTVNHX0RBVEEobmxtc2ctPmJ1ZikpOwogIGZvciAoOyBSVEFfT0soYXR0ciwgbik7IGF0 dHIgPSBSVEFfTkVYVChhdHRyLCBuKSkgewogICAgaWYgKGF0dHItPnJ0YV90eXBlID09IElGTEFf T1BFUlNUQVRFKQogICAgICByZXR1cm4gKigoaW50MzJfdCopUlRBX0RBVEEoYXR0cikpOwogIH0K ICByZXR1cm4gLTE7Cn0KCnN0YXRpYyBpbnQgYXdhaXRfaWZsYV9vcGVyc3RhdGUoc3RydWN0IG5s bXNnKiBubG1zZywgY2hhciogaW50ZXJmYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBvcGVyc3RhdGUsIGJvb2wgZG9mYWlsKQp7CiAgaW50IGlmaW5kZXggPSBpZl9uYW1l dG9pbmRleChpbnRlcmZhY2UpOwogIHdoaWxlICh0cnVlKSB7CiAgICB1c2xlZXAoMTAwMCk7CiAg ICBpbnQgcmV0ID0gZ2V0X2lmbGFfb3BlcnN0YXRlKG5sbXNnLCBpZmluZGV4LCBkb2ZhaWwpOwog ICAgaWYgKHJldCA8IDApCiAgICAgIHJldHVybiByZXQ7CiAgICBpZiAocmV0ID09IG9wZXJzdGF0 ZSkKICAgICAgcmV0dXJuIDA7CiAgfQogIHJldHVybiAwOwp9CgpzdGF0aWMgaW50IG5sODAyMTFf c2V0dXBfaWJzc19pbnRlcmZhY2Uoc3RydWN0IG5sbXNnKiBubG1zZywgaW50IHNvY2ssCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmw4MDIxMV9mYW1pbHlfaWQs IGNoYXIqIGludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBqb2luX2lic3NfcHJvcHMqIGlic3NfcHJvcHMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGRvZmFpbCkKewogIGludCBpZmluZGV4ID0gaWZfbmFt ZXRvaW5kZXgoaW50ZXJmYWNlKTsKICBpZiAoaWZpbmRleCA9PSAwKSB7CiAgICByZXR1cm4gLTE7 CiAgfQogIGludCByZXQgPSBubDgwMjExX3NldF9pbnRlcmZhY2Uobmxtc2csIHNvY2ssIG5sODAy MTFfZmFtaWx5X2lkLCBpZmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Tkw4MDIxMV9JRlRZUEVfQURIT0MsIGRvZmFpbCk7CiAgaWYgKHJldCA8IDApIHsKICAgIHJldHVy biAtMTsKICB9CiAgcmV0ID0gc2V0X2ludGVyZmFjZV9zdGF0ZShpbnRlcmZhY2UsIDEpOwogIGlm IChyZXQgPCAwKSB7CiAgICByZXR1cm4gLTE7CiAgfQogIHJldCA9IG5sODAyMTFfam9pbl9pYnNz KG5sbXNnLCBzb2NrLCBubDgwMjExX2ZhbWlseV9pZCwgaWZpbmRleCwgaWJzc19wcm9wcywKICAg ICAgICAgICAgICAgICAgICAgICAgICBkb2ZhaWwpOwogIGlmIChyZXQgPCAwKSB7CiAgICByZXR1 cm4gLTE7CiAgfQogIHJldHVybiAwOwp9CgpzdGF0aWMgaW50IGh3c2ltODAyMTFfY3JlYXRlX2Rl dmljZShzdHJ1Y3Qgbmxtc2cqIG5sbXNnLCBpbnQgc29jaywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGh3c2ltX2ZhbWlseSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDhfdCBtYWNfYWRkcltFVEhfQUxFTl0pCnsKICBzdHJ1Y3QgZ2VubG1z Z2hkciBnZW5saGRyOwogIG1lbXNldCgmZ2VubGhkciwgMCwgc2l6ZW9mKGdlbmxoZHIpKTsKICBn ZW5saGRyLmNtZCA9IEhXU0lNX0NNRF9ORVdfUkFESU87CiAgbmV0bGlua19pbml0KG5sbXNnLCBo d3NpbV9mYW1pbHksIDAsICZnZW5saGRyLCBzaXplb2YoZ2VubGhkcikpOwogIG5ldGxpbmtfYXR0 cihubG1zZywgSFdTSU1fQVRUUl9TVVBQT1JUX1AyUF9ERVZJQ0UsIE5VTEwsIDApOwogIG5ldGxp bmtfYXR0cihubG1zZywgSFdTSU1fQVRUUl9QRVJNX0FERFIsIG1hY19hZGRyLCBFVEhfQUxFTik7 CiAgaW50IGVyciA9IG5ldGxpbmtfc2VuZChubG1zZywgc29jayk7CiAgaWYgKGVyciA8IDApIHsK ICB9CiAgcmV0dXJuIGVycjsKfQoKc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV93aWZpX2RldmljZXMo dm9pZCkKewogIGludCByZmtpbGwgPSBvcGVuKCIvZGV2L3Jma2lsbCIsIE9fUkRXUik7CiAgaWYg KHJma2lsbCA9PSAtMSkKICAgIGV4aXQoMSk7CiAgc3RydWN0IHJma2lsbF9ldmVudCBldmVudCA9 IHswfTsKICBldmVudC50eXBlID0gUkZLSUxMX1RZUEVfQUxMOwogIGV2ZW50Lm9wID0gUkZLSUxM X09QX0NIQU5HRV9BTEw7CiAgaWYgKHdyaXRlKHJma2lsbCwgJmV2ZW50LCBzaXplb2YoZXZlbnQp KSAhPSAoc3NpemVfdCkoc2l6ZW9mKGV2ZW50KSkpCiAgICBleGl0KDEpOwogIGNsb3NlKHJma2ls bCk7CiAgdWludDhfdCBtYWNfYWRkcls2XSA9IFdJRklfTUFDX0JBU0U7CiAgaW50IHNvY2sgPSBz b2NrZXQoQUZfTkVUTElOSywgU09DS19SQVcsIE5FVExJTktfR0VORVJJQyk7CiAgaWYgKHNvY2sg PCAwKQogICAgZXhpdCgxKTsKICBpbnQgaHdzaW1fZmFtaWx5X2lkID0KICAgICAgbmV0bGlua19x dWVyeV9mYW1pbHlfaWQoJm5sbXNnLCBzb2NrLCAiTUFDODAyMTFfSFdTSU0iLCB0cnVlKTsKICBp bnQgbmw4MDIxMV9mYW1pbHlfaWQgPQogICAgICBuZXRsaW5rX3F1ZXJ5X2ZhbWlseV9pZCgmbmxt c2csIHNvY2ssICJubDgwMjExIiwgdHJ1ZSk7CiAgdWludDhfdCBzc2lkW10gPSBXSUZJX0lCU1Nf U1NJRDsKICB1aW50OF90IGJzc2lkW10gPSBXSUZJX0lCU1NfQlNTSUQ7CiAgc3RydWN0IGpvaW5f aWJzc19wcm9wcyBpYnNzX3Byb3BzID0gey53aXBoeV9mcmVxID0gV0lGSV9ERUZBVUxUX0ZSRVFV RU5DWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLndpcGh5X2ZyZXFf Zml4ZWQgPSB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFj ID0gYnNzaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zc2lkID0g c3NpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNzaWRfbGVuID0g c2l6ZW9mKHNzaWQpfTsKICBmb3IgKGludCBkZXZpY2VfaWQgPSAwOyBkZXZpY2VfaWQgPCBXSUZJ X0lOSVRJQUxfREVWSUNFX0NPVU5UOyBkZXZpY2VfaWQrKykgewogICAgbWFjX2FkZHJbNV0gPSBk ZXZpY2VfaWQ7CiAgICBpbnQgcmV0ID0gaHdzaW04MDIxMV9jcmVhdGVfZGV2aWNlKCZubG1zZywg c29jaywgaHdzaW1fZmFtaWx5X2lkLCBtYWNfYWRkcik7CiAgICBpZiAocmV0IDwgMCkKICAgICAg ZXhpdCgxKTsKICAgIGNoYXIgaW50ZXJmYWNlWzZdID0gIndsYW4wIjsKICAgIGludGVyZmFjZVs0 XSArPSBkZXZpY2VfaWQ7CiAgICBpZiAobmw4MDIxMV9zZXR1cF9pYnNzX2ludGVyZmFjZSgmbmxt c2csIHNvY2ssIG5sODAyMTFfZmFtaWx5X2lkLCBpbnRlcmZhY2UsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmaWJzc19wcm9wcywgdHJ1ZSkgPCAwKQogICAgICBleGl0KDEp OwogIH0KICBmb3IgKGludCBkZXZpY2VfaWQgPSAwOyBkZXZpY2VfaWQgPCBXSUZJX0lOSVRJQUxf REVWSUNFX0NPVU5UOyBkZXZpY2VfaWQrKykgewogICAgY2hhciBpbnRlcmZhY2VbNl0gPSAid2xh bjAiOwogICAgaW50ZXJmYWNlWzRdICs9IGRldmljZV9pZDsKICAgIGludCByZXQgPSBhd2FpdF9p ZmxhX29wZXJzdGF0ZSgmbmxtc2csIGludGVyZmFjZSwgSUZfT1BFUl9VUCwgdHJ1ZSk7CiAgICBp ZiAocmV0IDwgMCkKICAgICAgZXhpdCgxKTsKICB9CiAgY2xvc2Uoc29jayk7Cn0KCnN0YXRpYyBp bnQgcnVuY21kbGluZShjaGFyKiBjbWRsaW5lKQp7CiAgaW50IHJldCA9IHN5c3RlbShjbWRsaW5l KTsKICBpZiAocmV0KSB7CiAgfQogIHJldHVybiByZXQ7Cn0KCiNkZWZpbmUgREVWX0lQVjQgIjE3 Mi4yMC4yMC4lZCIKI2RlZmluZSBERVZfSVBWNiAiZmU4MDo6JTAyeCIKI2RlZmluZSBERVZfTUFD IDB4MDBhYWFhYWFhYWFhCgpzdGF0aWMgdm9pZCBuZXRkZXZzaW1fYWRkKHVuc2lnbmVkIGludCBh ZGRyLCB1bnNpZ25lZCBpbnQgcG9ydF9jb3VudCkKewogIHdyaXRlX2ZpbGUoIi9zeXMvYnVzL25l dGRldnNpbS9kZWxfZGV2aWNlIiwgIiV1IiwgYWRkcik7CiAgaWYgKHdyaXRlX2ZpbGUoIi9zeXMv YnVzL25ldGRldnNpbS9uZXdfZGV2aWNlIiwgIiV1ICV1IiwgYWRkciwgcG9ydF9jb3VudCkpIHsK ICAgIGNoYXIgYnVmWzMyXTsKICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJuZXRkZXZz aW0lZCIsIGFkZHIpOwogICAgaW5pdGlhbGl6ZV9kZXZsaW5rX3BvcnRzKCJuZXRkZXZzaW0iLCBi dWYsICJuZXRkZXZzaW0iKTsKICB9Cn0KCiNkZWZpbmUgV0dfR0VOTF9OQU1FICJ3aXJlZ3VhcmQi CmVudW0gd2dfY21kIHsKICBXR19DTURfR0VUX0RFVklDRSwKICBXR19DTURfU0VUX0RFVklDRSwK fTsKZW51bSB3Z2RldmljZV9hdHRyaWJ1dGUgewogIFdHREVWSUNFX0FfVU5TUEVDLAogIFdHREVW SUNFX0FfSUZJTkRFWCwKICBXR0RFVklDRV9BX0lGTkFNRSwKICBXR0RFVklDRV9BX1BSSVZBVEVf S0VZLAogIFdHREVWSUNFX0FfUFVCTElDX0tFWSwKICBXR0RFVklDRV9BX0ZMQUdTLAogIFdHREVW SUNFX0FfTElTVEVOX1BPUlQsCiAgV0dERVZJQ0VfQV9GV01BUkssCiAgV0dERVZJQ0VfQV9QRUVS UywKfTsKZW51bSB3Z3BlZXJfYXR0cmlidXRlIHsKICBXR1BFRVJfQV9VTlNQRUMsCiAgV0dQRUVS X0FfUFVCTElDX0tFWSwKICBXR1BFRVJfQV9QUkVTSEFSRURfS0VZLAogIFdHUEVFUl9BX0ZMQUdT LAogIFdHUEVFUl9BX0VORFBPSU5ULAogIFdHUEVFUl9BX1BFUlNJU1RFTlRfS0VFUEFMSVZFX0lO VEVSVkFMLAogIFdHUEVFUl9BX0xBU1RfSEFORFNIQUtFX1RJTUUsCiAgV0dQRUVSX0FfUlhfQllU RVMsCiAgV0dQRUVSX0FfVFhfQllURVMsCiAgV0dQRUVSX0FfQUxMT1dFRElQUywKICBXR1BFRVJf QV9QUk9UT0NPTF9WRVJTSU9OLAp9OwplbnVtIHdnYWxsb3dlZGlwX2F0dHJpYnV0ZSB7CiAgV0dB TExPV0VESVBfQV9VTlNQRUMsCiAgV0dBTExPV0VESVBfQV9GQU1JTFksCiAgV0dBTExPV0VESVBf QV9JUEFERFIsCiAgV0dBTExPV0VESVBfQV9DSURSX01BU0ssCn07CgpzdGF0aWMgdm9pZCBuZXRs aW5rX3dpcmVndWFyZF9zZXR1cCh2b2lkKQp7CiAgY29uc3QgY2hhciBpZm5hbWVfYVtdID0gIndn MCI7CiAgY29uc3QgY2hhciBpZm5hbWVfYltdID0gIndnMSI7CiAgY29uc3QgY2hhciBpZm5hbWVf Y1tdID0gIndnMiI7CiAgY29uc3QgY2hhciBwcml2YXRlX2FbXSA9CiAgICAgICJceGEwXHg1Y1x4 YThceDRmXHg2Y1x4OWNceDhlXHgzOFx4NTNceGUyXHhmZFx4N2FceDcwXHhhZVx4MGZceGIyXHgw Zlx4YTEiCiAgICAgICJceDUyXHg2MFx4MGNceGIwXHgwOFx4NDVceDE3XHg0Zlx4MDhceDA3XHg2 Zlx4OGRceDc4XHg0MyI7CiAgY29uc3QgY2hhciBwcml2YXRlX2JbXSA9CiAgICAgICJceGIwXHg4 MFx4NzNceGU4XHhkNFx4NGVceDkxXHhlM1x4ZGFceDkyXHgyY1x4MjJceDQzXHg4Mlx4NDRceGJi XHg4OFx4NWMiCiAgICAgICJceDY5XHhlMlx4NjlceGM4XHhlOVx4ZDhceDM1XHhiMVx4MTRceDI5 XHgzYVx4NGRceGRjXHg2ZSI7CiAgY29uc3QgY2hhciBwcml2YXRlX2NbXSA9CiAgICAgICJceGEw XHhjYlx4ODdceDlhXHg0N1x4ZjVceGJjXHg2NFx4NGNceDBlXHg2OVx4M2ZceGE2XHhkMFx4MzFc eGM3XHg0YVx4MTUiCiAgICAgICJceDUzXHhiNlx4ZTlceDAxXHhiOVx4ZmZceDJmXHg1MVx4OGNc eDc4XHgwNFx4MmZceGI1XHg0MiI7CiAgY29uc3QgY2hhciBwdWJsaWNfYVtdID0KICAgICAgIlx4 OTdceDVjXHg5ZFx4ODFceGM5XHg4M1x4YzhceDIwXHg5ZVx4ZTdceDgxXHgyNVx4NGJceDg5XHg5 Zlx4OGVceGQ5XHgyNSIKICAgICAgIlx4YWVceDlmXHgwOVx4MjNceGMyXHgzY1x4NjJceGY1XHgz Y1x4NTdceGNkXHhiZlx4NjlceDFjIjsKICBjb25zdCBjaGFyIHB1YmxpY19iW10gPQogICAgICAi XHhkMVx4NzNceDI4XHg5OVx4ZjZceDExXHhjZFx4ODlceDk0XHgwM1x4NGRceDdmXHg0MVx4M2Rc eGM5XHg1N1x4NjNceDBlIgogICAgICAiXHg1NFx4OTNceGMyXHg4NVx4YWNceGE0XHgwMFx4NjVc eGNiXHg2M1x4MTFceGJlXHg2OVx4NmIiOwogIGNvbnN0IGNoYXIgcHVibGljX2NbXSA9CiAgICAg ICJceGY0XHg0ZFx4YTNceDY3XHhhOFx4OGVceGU2XHg1Nlx4NGZceDAyXHgwMlx4MTFceDQ1XHg2 N1x4MjdceDA4XHgyZlx4NWMiCiAgICAgICJceGViXHhlZVx4OGJceDFiXHhmNVx4ZWJceDczXHgz N1x4MzRceDFiXHg0NVx4OWJceDM5XHgyMiI7CiAgY29uc3QgdWludDE2X3QgbGlzdGVuX2EgPSAy MDAwMTsKICBjb25zdCB1aW50MTZfdCBsaXN0ZW5fYiA9IDIwMDAyOwogIGNvbnN0IHVpbnQxNl90 IGxpc3Rlbl9jID0gMjAwMDM7CiAgY29uc3QgdWludDE2X3QgYWZfaW5ldCA9IEFGX0lORVQ7CiAg Y29uc3QgdWludDE2X3QgYWZfaW5ldDYgPSBBRl9JTkVUNjsKICBjb25zdCBzdHJ1Y3Qgc29ja2Fk ZHJfaW4gZW5kcG9pbnRfYl92NCA9IHsKICAgICAgLnNpbl9mYW1pbHkgPSBBRl9JTkVULAogICAg ICAuc2luX3BvcnQgPSBodG9ucyhsaXN0ZW5fYiksCiAgICAgIC5zaW5fYWRkciA9IHtodG9ubChJ TkFERFJfTE9PUEJBQ0spfX07CiAgY29uc3Qgc3RydWN0IHNvY2thZGRyX2luIGVuZHBvaW50X2Nf djQgPSB7CiAgICAgIC5zaW5fZmFtaWx5ID0gQUZfSU5FVCwKICAgICAgLnNpbl9wb3J0ID0gaHRv bnMobGlzdGVuX2MpLAogICAgICAuc2luX2FkZHIgPSB7aHRvbmwoSU5BRERSX0xPT1BCQUNLKX19 OwogIHN0cnVjdCBzb2NrYWRkcl9pbjYgZW5kcG9pbnRfYV92NiA9IHsuc2luNl9mYW1pbHkgPSBB Rl9JTkVUNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNpbjZfcG9y dCA9IGh0b25zKGxpc3Rlbl9hKX07CiAgZW5kcG9pbnRfYV92Ni5zaW42X2FkZHIgPSBpbjZhZGRy X2xvb3BiYWNrOwogIHN0cnVjdCBzb2NrYWRkcl9pbjYgZW5kcG9pbnRfY192NiA9IHsuc2luNl9m YW1pbHkgPSBBRl9JTkVUNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LnNpbjZfcG9ydCA9IGh0b25zKGxpc3Rlbl9jKX07CiAgZW5kcG9pbnRfY192Ni5zaW42X2FkZHIg PSBpbjZhZGRyX2xvb3BiYWNrOwogIGNvbnN0IHN0cnVjdCBpbl9hZGRyIGZpcnN0X2hhbGZfdjQg PSB7MH07CiAgY29uc3Qgc3RydWN0IGluX2FkZHIgc2Vjb25kX2hhbGZfdjQgPSB7KHVpbnQzMl90 KWh0b25sKDEyOCA8PCAyNCl9OwogIGNvbnN0IHN0cnVjdCBpbjZfYWRkciBmaXJzdF9oYWxmX3Y2 ID0ge3t7MH19fTsKICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgc2Vjb25kX2hhbGZfdjYgPSB7e3sw eDgwfX19OwogIGNvbnN0IHVpbnQ4X3QgaGFsZl9jaWRyID0gMTsKICBjb25zdCB1aW50MTZfdCBw ZXJzaXN0ZW50X2tlZXBhbGl2ZXNbXSA9IHsxLCAzLCA3LCA5LCAxNCwgMTl9OwogIHN0cnVjdCBn ZW5sbXNnaGRyIGdlbmxoZHIgPSB7LmNtZCA9IFdHX0NNRF9TRVRfREVWSUNFLCAudmVyc2lvbiA9 IDF9OwogIGludCBzb2NrOwogIGludCBpZCwgZXJyOwogIHNvY2sgPSBzb2NrZXQoQUZfTkVUTElO SywgU09DS19SQVcsIE5FVExJTktfR0VORVJJQyk7CiAgaWYgKHNvY2sgPT0gLTEpIHsKICAgIHJl dHVybjsKICB9CiAgaWQgPSBuZXRsaW5rX3F1ZXJ5X2ZhbWlseV9pZCgmbmxtc2csIHNvY2ssIFdH X0dFTkxfTkFNRSwgdHJ1ZSk7CiAgaWYgKGlkID09IC0xKQogICAgZ290byBlcnJvcjsKICBuZXRs aW5rX2luaXQoJm5sbXNnLCBpZCwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAgbmV0 bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9JRk5BTUUsIGlmbmFtZV9hLCBzdHJsZW4oaWZu YW1lX2EpICsgMSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9QUklWQVRFX0tF WSwgcHJpdmF0ZV9hLCAzMik7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9MSVNU RU5fUE9SVCwgJmxpc3Rlbl9hLCAyKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNU RUQgfCBXR0RFVklDRV9BX1BFRVJTKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNU RUQgfCAwKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR1BFRVJfQV9QVUJMSUNfS0VZLCBwdWJs aWNfYiwgMzIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHUEVFUl9BX0VORFBPSU5ULCAmZW5k cG9pbnRfYl92NCwKICAgICAgICAgICAgICAgc2l6ZW9mKGVuZHBvaW50X2JfdjQpKTsKICBuZXRs aW5rX2F0dHIoJm5sbXNnLCBXR1BFRVJfQV9QRVJTSVNURU5UX0tFRVBBTElWRV9JTlRFUlZBTCwK ICAgICAgICAgICAgICAgJnBlcnNpc3RlbnRfa2VlcGFsaXZlc1swXSwgMik7CiAgbmV0bGlua19u ZXN0KCZubG1zZywgTkxBX0ZfTkVTVEVEIHwgV0dQRUVSX0FfQUxMT1dFRElQUyk7CiAgbmV0bGlu a19uZXN0KCZubG1zZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywg V0dBTExPV0VESVBfQV9GQU1JTFksICZhZl9pbmV0LCAyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNn LCBXR0FMTE9XRURJUF9BX0lQQUREUiwgJmZpcnN0X2hhbGZfdjQsCiAgICAgICAgICAgICAgIHNp emVvZihmaXJzdF9oYWxmX3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBf QV9DSURSX01BU0ssICZoYWxmX2NpZHIsIDEpOwogIG5ldGxpbmtfZG9uZSgmbmxtc2cpOwogIG5l dGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5ldGxpbmtfYXR0cigmbmxt c2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldDYsIDIpOwogIG5ldGxpbmtfYXR0cigm bmxtc2csIFdHQUxMT1dFRElQX0FfSVBBRERSLCAmZmlyc3RfaGFsZl92NiwKICAgICAgICAgICAg ICAgc2l6ZW9mKGZpcnN0X2hhbGZfdjYpKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR0FMTE9X RURJUF9BX0NJRFJfTUFTSywgJmhhbGZfY2lkciwgMSk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7 CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlu a19uZXN0KCZubG1zZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywg V0dQRUVSX0FfUFVCTElDX0tFWSwgcHVibGljX2MsIDMyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNn LCBXR1BFRVJfQV9FTkRQT0lOVCwgJmVuZHBvaW50X2NfdjYsCiAgICAgICAgICAgICAgIHNpemVv ZihlbmRwb2ludF9jX3Y2KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dQRUVSX0FfUEVSU0lT VEVOVF9LRUVQQUxJVkVfSU5URVJWQUwsCiAgICAgICAgICAgICAgICZwZXJzaXN0ZW50X2tlZXBh bGl2ZXNbMV0sIDIpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IFdHUEVF Ul9BX0FMTE9XRURJUFMpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDAp OwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldCwg Mik7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9JUEFERFIsICZzZWNvbmRf aGFsZl92NCwKICAgICAgICAgICAgICAgc2l6ZW9mKHNlY29uZF9oYWxmX3Y0KSk7CiAgbmV0bGlu a19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9DSURSX01BU0ssICZoYWxmX2NpZHIsIDEpOwog IG5ldGxpbmtfZG9uZSgmbmxtc2cpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RF RCB8IDApOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZf aW5ldDYsIDIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfSVBBRERSLCAm c2Vjb25kX2hhbGZfdjYsCiAgICAgICAgICAgICAgIHNpemVvZihzZWNvbmRfaGFsZl92NikpOwog IG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfQ0lEUl9NQVNLLCAmaGFsZl9jaWRy LCAxKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBu ZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBlcnIgPSBuZXRs aW5rX3NlbmQoJm5sbXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0KICBuZXRsaW5rX2lu aXQoJm5sbXNnLCBpZCwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAgbmV0bGlua19h dHRyKCZubG1zZywgV0dERVZJQ0VfQV9JRk5BTUUsIGlmbmFtZV9iLCBzdHJsZW4oaWZuYW1lX2Ip ICsgMSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9QUklWQVRFX0tFWSwgcHJp dmF0ZV9iLCAzMik7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9MSVNURU5fUE9S VCwgJmxpc3Rlbl9iLCAyKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNURUQgfCBX R0RFVklDRV9BX1BFRVJTKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNURUQgfCAw KTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR1BFRVJfQV9QVUJMSUNfS0VZLCBwdWJsaWNfYSwg MzIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHUEVFUl9BX0VORFBPSU5ULCAmZW5kcG9pbnRf YV92NiwKICAgICAgICAgICAgICAgc2l6ZW9mKGVuZHBvaW50X2FfdjYpKTsKICBuZXRsaW5rX2F0 dHIoJm5sbXNnLCBXR1BFRVJfQV9QRVJTSVNURU5UX0tFRVBBTElWRV9JTlRFUlZBTCwKICAgICAg ICAgICAgICAgJnBlcnNpc3RlbnRfa2VlcGFsaXZlc1syXSwgMik7CiAgbmV0bGlua19uZXN0KCZu bG1zZywgTkxBX0ZfTkVTVEVEIHwgV0dQRUVSX0FfQUxMT1dFRElQUyk7CiAgbmV0bGlua19uZXN0 KCZubG1zZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExP V0VESVBfQV9GQU1JTFksICZhZl9pbmV0LCAyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR0FM TE9XRURJUF9BX0lQQUREUiwgJmZpcnN0X2hhbGZfdjQsCiAgICAgICAgICAgICAgIHNpemVvZihm aXJzdF9oYWxmX3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9DSURS X01BU0ssICZoYWxmX2NpZHIsIDEpOwogIG5ldGxpbmtfZG9uZSgmbmxtc2cpOwogIG5ldGxpbmtf bmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdH QUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldDYsIDIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2cs IFdHQUxMT1dFRElQX0FfSVBBRERSLCAmZmlyc3RfaGFsZl92NiwKICAgICAgICAgICAgICAgc2l6 ZW9mKGZpcnN0X2hhbGZfdjYpKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR0FMTE9XRURJUF9B X0NJRFJfTUFTSywgJmhhbGZfY2lkciwgMSk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0 bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlua19uZXN0 KCZubG1zZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dQRUVS X0FfUFVCTElDX0tFWSwgcHVibGljX2MsIDMyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR1BF RVJfQV9FTkRQT0lOVCwgJmVuZHBvaW50X2NfdjQsCiAgICAgICAgICAgICAgIHNpemVvZihlbmRw b2ludF9jX3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dQRUVSX0FfUEVSU0lTVEVOVF9L RUVQQUxJVkVfSU5URVJWQUwsCiAgICAgICAgICAgICAgICZwZXJzaXN0ZW50X2tlZXBhbGl2ZXNb M10sIDIpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IFdHUEVFUl9BX0FM TE9XRURJUFMpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5l dGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldCwgMik7CiAg bmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9JUEFERFIsICZzZWNvbmRfaGFsZl92 NCwKICAgICAgICAgICAgICAgc2l6ZW9mKHNlY29uZF9oYWxmX3Y0KSk7CiAgbmV0bGlua19hdHRy KCZubG1zZywgV0dBTExPV0VESVBfQV9DSURSX01BU0ssICZoYWxmX2NpZHIsIDEpOwogIG5ldGxp bmtfZG9uZSgmbmxtc2cpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDAp OwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldDYs IDIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfSVBBRERSLCAmc2Vjb25k X2hhbGZfdjYsCiAgICAgICAgICAgICAgIHNpemVvZihzZWNvbmRfaGFsZl92NikpOwogIG5ldGxp bmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfQ0lEUl9NQVNLLCAmaGFsZl9jaWRyLCAxKTsK ICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5r X2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBlcnIgPSBuZXRsaW5rX3Nl bmQoJm5sbXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0KICBuZXRsaW5rX2luaXQoJm5s bXNnLCBpZCwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAgbmV0bGlua19hdHRyKCZu bG1zZywgV0dERVZJQ0VfQV9JRk5BTUUsIGlmbmFtZV9jLCBzdHJsZW4oaWZuYW1lX2MpICsgMSk7 CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9QUklWQVRFX0tFWSwgcHJpdmF0ZV9j LCAzMik7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dERVZJQ0VfQV9MSVNURU5fUE9SVCwgJmxp c3Rlbl9jLCAyKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNURUQgfCBXR0RFVklD RV9BX1BFRVJTKTsKICBuZXRsaW5rX25lc3QoJm5sbXNnLCBOTEFfRl9ORVNURUQgfCAwKTsKICBu ZXRsaW5rX2F0dHIoJm5sbXNnLCBXR1BFRVJfQV9QVUJMSUNfS0VZLCBwdWJsaWNfYSwgMzIpOwog IG5ldGxpbmtfYXR0cigmbmxtc2csIFdHUEVFUl9BX0VORFBPSU5ULCAmZW5kcG9pbnRfYV92NiwK ICAgICAgICAgICAgICAgc2l6ZW9mKGVuZHBvaW50X2FfdjYpKTsKICBuZXRsaW5rX2F0dHIoJm5s bXNnLCBXR1BFRVJfQV9QRVJTSVNURU5UX0tFRVBBTElWRV9JTlRFUlZBTCwKICAgICAgICAgICAg ICAgJnBlcnNpc3RlbnRfa2VlcGFsaXZlc1s0XSwgMik7CiAgbmV0bGlua19uZXN0KCZubG1zZywg TkxBX0ZfTkVTVEVEIHwgV0dQRUVSX0FfQUxMT1dFRElQUyk7CiAgbmV0bGlua19uZXN0KCZubG1z ZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBf QV9GQU1JTFksICZhZl9pbmV0LCAyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR0FMTE9XRURJ UF9BX0lQQUREUiwgJmZpcnN0X2hhbGZfdjQsCiAgICAgICAgICAgICAgIHNpemVvZihmaXJzdF9o YWxmX3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9DSURSX01BU0ss ICZoYWxmX2NpZHIsIDEpOwogIG5ldGxpbmtfZG9uZSgmbmxtc2cpOwogIG5ldGxpbmtfbmVzdCgm bmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dF RElQX0FfRkFNSUxZLCAmYWZfaW5ldDYsIDIpOwogIG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxM T1dFRElQX0FfSVBBRERSLCAmZmlyc3RfaGFsZl92NiwKICAgICAgICAgICAgICAgc2l6ZW9mKGZp cnN0X2hhbGZfdjYpKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR0FMTE9XRURJUF9BX0NJRFJf TUFTSywgJmhhbGZfY2lkciwgMSk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlua19k b25lKCZubG1zZyk7CiAgbmV0bGlua19kb25lKCZubG1zZyk7CiAgbmV0bGlua19uZXN0KCZubG1z ZywgTkxBX0ZfTkVTVEVEIHwgMCk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dQRUVSX0FfUFVC TElDX0tFWSwgcHVibGljX2IsIDMyKTsKICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBXR1BFRVJfQV9F TkRQT0lOVCwgJmVuZHBvaW50X2JfdjQsCiAgICAgICAgICAgICAgIHNpemVvZihlbmRwb2ludF9i X3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1zZywgV0dQRUVSX0FfUEVSU0lTVEVOVF9LRUVQQUxJ VkVfSU5URVJWQUwsCiAgICAgICAgICAgICAgICZwZXJzaXN0ZW50X2tlZXBhbGl2ZXNbNV0sIDIp OwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IFdHUEVFUl9BX0FMTE9XRURJ UFMpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5ldGxpbmtf YXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldCwgMik7CiAgbmV0bGlu a19hdHRyKCZubG1zZywgV0dBTExPV0VESVBfQV9JUEFERFIsICZzZWNvbmRfaGFsZl92NCwKICAg ICAgICAgICAgICAgc2l6ZW9mKHNlY29uZF9oYWxmX3Y0KSk7CiAgbmV0bGlua19hdHRyKCZubG1z ZywgV0dBTExPV0VESVBfQV9DSURSX01BU0ssICZoYWxmX2NpZHIsIDEpOwogIG5ldGxpbmtfZG9u ZSgmbmxtc2cpOwogIG5ldGxpbmtfbmVzdCgmbmxtc2csIE5MQV9GX05FU1RFRCB8IDApOwogIG5l dGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfRkFNSUxZLCAmYWZfaW5ldDYsIDIpOwog IG5ldGxpbmtfYXR0cigmbmxtc2csIFdHQUxMT1dFRElQX0FfSVBBRERSLCAmc2Vjb25kX2hhbGZf djYsCiAgICAgICAgICAgICAgIHNpemVvZihzZWNvbmRfaGFsZl92NikpOwogIG5ldGxpbmtfYXR0 cigmbmxtc2csIFdHQUxMT1dFRElQX0FfQ0lEUl9NQVNLLCAmaGFsZl9jaWRyLCAxKTsKICBuZXRs aW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBuZXRsaW5rX2RvbmUo Jm5sbXNnKTsKICBuZXRsaW5rX2RvbmUoJm5sbXNnKTsKICBlcnIgPSBuZXRsaW5rX3NlbmQoJm5s bXNnLCBzb2NrKTsKICBpZiAoZXJyIDwgMCkgewogIH0KCmVycm9yOgogIGNsb3NlKHNvY2spOwp9 CgpzdGF0aWMgdm9pZCBpbml0aWFsaXplX25ldGRldmljZXModm9pZCkKewogIGNoYXIgbmV0ZGV2 c2ltWzE2XTsKICBzcHJpbnRmKG5ldGRldnNpbSwgIm5ldGRldnNpbSVkIiwgKGludClwcm9jaWQp OwogIHN0cnVjdCB7CiAgICBjb25zdCBjaGFyKiB0eXBlOwogICAgY29uc3QgY2hhciogZGV2Owog IH0gZGV2dHlwZXNbXSA9IHsKICAgICAgeyJpcDZncmV0YXAiLCAiaXA2Z3JldGFwMCJ9LCB7ImJy aWRnZSIsICJicmlkZ2UwIn0sIHsidmNhbiIsICJ2Y2FuMCJ9LAogICAgICB7ImJvbmQiLCAiYm9u ZDAifSwgICAgICAgICAgIHsidGVhbSIsICJ0ZWFtMCJ9LCAgICAgeyJkdW1teSIsICJkdW1teTAi fSwKICAgICAgeyJubG1vbiIsICJubG1vbjAifSwgICAgICAgICB7ImNhaWYiLCAiY2FpZjAifSwg ICAgIHsiYmF0YWR2IiwgImJhdGFkdjAifSwKICAgICAgeyJ2eGNhbiIsICJ2eGNhbjEifSwgICAg ICAgICB7InZldGgiLCAwfSwgICAgICAgICAgIHsid2lyZWd1YXJkIiwgIndnMCJ9LAogICAgICB7 IndpcmVndWFyZCIsICJ3ZzEifSwgICAgICAgIHsid2lyZWd1YXJkIiwgIndnMiJ9LAogIH07CiAg Y29uc3QgY2hhciogZGV2bWFzdGVyc1tdID0geyJicmlkZ2UiLCAiYm9uZCIsICJ0ZWFtIiwgImJh dGFkdiJ9OwogIHN0cnVjdCB7CiAgICBjb25zdCBjaGFyKiBuYW1lOwogICAgaW50IG1hY3NpemU7 CiAgICBib29sIG5vaXB2NjsKICB9IGRldmljZXNbXSA9IHsKICAgICAgeyJsbyIsIEVUSF9BTEVO fSwKICAgICAgeyJzaXQwIiwgMH0sCiAgICAgIHsiYnJpZGdlMCIsIEVUSF9BTEVOfSwKICAgICAg eyJ2Y2FuMCIsIDAsIHRydWV9LAogICAgICB7InR1bmwwIiwgMH0sCiAgICAgIHsiZ3JlMCIsIDB9 LAogICAgICB7ImdyZXRhcDAiLCBFVEhfQUxFTn0sCiAgICAgIHsiaXBfdnRpMCIsIDB9LAogICAg ICB7ImlwNl92dGkwIiwgMH0sCiAgICAgIHsiaXA2dG5sMCIsIDB9LAogICAgICB7ImlwNmdyZTAi LCAwfSwKICAgICAgeyJpcDZncmV0YXAwIiwgRVRIX0FMRU59LAogICAgICB7ImVyc3BhbjAiLCBF VEhfQUxFTn0sCiAgICAgIHsiYm9uZDAiLCBFVEhfQUxFTn0sCiAgICAgIHsidmV0aDAiLCBFVEhf QUxFTn0sCiAgICAgIHsidmV0aDEiLCBFVEhfQUxFTn0sCiAgICAgIHsidGVhbTAiLCBFVEhfQUxF Tn0sCiAgICAgIHsidmV0aDBfdG9fYnJpZGdlIiwgRVRIX0FMRU59LAogICAgICB7InZldGgxX3Rv X2JyaWRnZSIsIEVUSF9BTEVOfSwKICAgICAgeyJ2ZXRoMF90b19ib25kIiwgRVRIX0FMRU59LAog ICAgICB7InZldGgxX3RvX2JvbmQiLCBFVEhfQUxFTn0sCiAgICAgIHsidmV0aDBfdG9fdGVhbSIs IEVUSF9BTEVOfSwKICAgICAgeyJ2ZXRoMV90b190ZWFtIiwgRVRIX0FMRU59LAogICAgICB7InZl dGgwX3RvX2hzciIsIEVUSF9BTEVOfSwKICAgICAgeyJ2ZXRoMV90b19oc3IiLCBFVEhfQUxFTn0s CiAgICAgIHsiaHNyMCIsIDB9LAogICAgICB7ImR1bW15MCIsIEVUSF9BTEVOfSwKICAgICAgeyJu bG1vbjAiLCAwfSwKICAgICAgeyJ2eGNhbjAiLCAwLCB0cnVlfSwKICAgICAgeyJ2eGNhbjEiLCAw LCB0cnVlfSwKICAgICAgeyJjYWlmMCIsIEVUSF9BTEVOfSwKICAgICAgeyJiYXRhZHYwIiwgRVRI X0FMRU59LAogICAgICB7bmV0ZGV2c2ltLCBFVEhfQUxFTn0sCiAgICAgIHsieGZybTAiLCBFVEhf QUxFTn0sCiAgICAgIHsidmV0aDBfdmlydF93aWZpIiwgRVRIX0FMRU59LAogICAgICB7InZldGgx X3ZpcnRfd2lmaSIsIEVUSF9BTEVOfSwKICAgICAgeyJ2aXJ0X3dpZmkwIiwgRVRIX0FMRU59LAog ICAgICB7InZldGgwX3ZsYW4iLCBFVEhfQUxFTn0sCiAgICAgIHsidmV0aDFfdmxhbiIsIEVUSF9B TEVOfSwKICAgICAgeyJ2bGFuMCIsIEVUSF9BTEVOfSwKICAgICAgeyJ2bGFuMSIsIEVUSF9BTEVO fSwKICAgICAgeyJtYWN2bGFuMCIsIEVUSF9BTEVOfSwKICAgICAgeyJtYWN2bGFuMSIsIEVUSF9B TEVOfSwKICAgICAgeyJpcHZsYW4wIiwgRVRIX0FMRU59LAogICAgICB7ImlwdmxhbjEiLCBFVEhf QUxFTn0sCiAgICAgIHsidmV0aDBfbWFjdnRhcCIsIEVUSF9BTEVOfSwKICAgICAgeyJ2ZXRoMV9t YWN2dGFwIiwgRVRIX0FMRU59LAogICAgICB7Im1hY3Z0YXAwIiwgRVRIX0FMRU59LAogICAgICB7 Im1hY3NlYzAiLCBFVEhfQUxFTn0sCiAgICAgIHsidmV0aDBfdG9fYmF0YWR2IiwgRVRIX0FMRU59 LAogICAgICB7InZldGgxX3RvX2JhdGFkdiIsIEVUSF9BTEVOfSwKICAgICAgeyJiYXRhZHZfc2xh dmVfMCIsIEVUSF9BTEVOfSwKICAgICAgeyJiYXRhZHZfc2xhdmVfMSIsIEVUSF9BTEVOfSwKICAg ICAgeyJnZW5ldmUwIiwgRVRIX0FMRU59LAogICAgICB7ImdlbmV2ZTEiLCBFVEhfQUxFTn0sCiAg ICAgIHsid2cwIiwgMH0sCiAgICAgIHsid2cxIiwgMH0sCiAgICAgIHsid2cyIiwgMH0sCiAgfTsK ICBpbnQgc29jayA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NLX1JBVywgTkVUTElOS19ST1VURSk7 CiAgaWYgKHNvY2sgPT0gLTEpCiAgICBleGl0KDEpOwogIHVuc2lnbmVkIGk7CiAgZm9yIChpID0g MDsgaSA8IHNpemVvZihkZXZ0eXBlcykgLyBzaXplb2YoZGV2dHlwZXNbMF0pOyBpKyspCiAgICBu ZXRsaW5rX2FkZF9kZXZpY2UoJm5sbXNnLCBzb2NrLCBkZXZ0eXBlc1tpXS50eXBlLCBkZXZ0eXBl c1tpXS5kZXYpOwogIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoZGV2bWFzdGVycykgLyAoc2l6ZW9m KGRldm1hc3RlcnNbMF0pKTsgaSsrKSB7CiAgICBjaGFyIG1hc3RlclszMl0sIHNsYXZlMFszMl0s IHZldGgwWzMyXSwgc2xhdmUxWzMyXSwgdmV0aDFbMzJdOwogICAgc3ByaW50ZihzbGF2ZTAsICIl c19zbGF2ZV8wIiwgZGV2bWFzdGVyc1tpXSk7CiAgICBzcHJpbnRmKHZldGgwLCAidmV0aDBfdG9f JXMiLCBkZXZtYXN0ZXJzW2ldKTsKICAgIG5ldGxpbmtfYWRkX3ZldGgoJm5sbXNnLCBzb2NrLCBz bGF2ZTAsIHZldGgwKTsKICAgIHNwcmludGYoc2xhdmUxLCAiJXNfc2xhdmVfMSIsIGRldm1hc3Rl cnNbaV0pOwogICAgc3ByaW50Zih2ZXRoMSwgInZldGgxX3RvXyVzIiwgZGV2bWFzdGVyc1tpXSk7 CiAgICBuZXRsaW5rX2FkZF92ZXRoKCZubG1zZywgc29jaywgc2xhdmUxLCB2ZXRoMSk7CiAgICBz cHJpbnRmKG1hc3RlciwgIiVzMCIsIGRldm1hc3RlcnNbaV0pOwogICAgbmV0bGlua19kZXZpY2Vf Y2hhbmdlKCZubG1zZywgc29jaywgc2xhdmUwLCBmYWxzZSwgbWFzdGVyLCAwLCAwLCBOVUxMKTsK ICAgIG5ldGxpbmtfZGV2aWNlX2NoYW5nZSgmbmxtc2csIHNvY2ssIHNsYXZlMSwgZmFsc2UsIG1h c3RlciwgMCwgMCwgTlVMTCk7CiAgfQogIG5ldGxpbmtfYWRkX3hmcm0oJm5sbXNnLCBzb2NrLCAi eGZybTAiKTsKICBuZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5sbXNnLCBzb2NrLCAiYnJpZGdlX3Ns YXZlXzAiLCB0cnVlLCAwLCAwLCAwLCBOVUxMKTsKICBuZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5s bXNnLCBzb2NrLCAiYnJpZGdlX3NsYXZlXzEiLCB0cnVlLCAwLCAwLCAwLCBOVUxMKTsKICBuZXRs aW5rX2FkZF92ZXRoKCZubG1zZywgc29jaywgImhzcl9zbGF2ZV8wIiwgInZldGgwX3RvX2hzciIp OwogIG5ldGxpbmtfYWRkX3ZldGgoJm5sbXNnLCBzb2NrLCAiaHNyX3NsYXZlXzEiLCAidmV0aDFf dG9faHNyIik7CiAgbmV0bGlua19hZGRfaHNyKCZubG1zZywgc29jaywgImhzcjAiLCAiaHNyX3Ns YXZlXzAiLCAiaHNyX3NsYXZlXzEiKTsKICBuZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5sbXNnLCBz b2NrLCAiaHNyX3NsYXZlXzAiLCB0cnVlLCAwLCAwLCAwLCBOVUxMKTsKICBuZXRsaW5rX2Rldmlj ZV9jaGFuZ2UoJm5sbXNnLCBzb2NrLCAiaHNyX3NsYXZlXzEiLCB0cnVlLCAwLCAwLCAwLCBOVUxM KTsKICBuZXRsaW5rX2FkZF92ZXRoKCZubG1zZywgc29jaywgInZldGgwX3ZpcnRfd2lmaSIsICJ2 ZXRoMV92aXJ0X3dpZmkiKTsKICBuZXRsaW5rX2FkZF9saW5rZWQoJm5sbXNnLCBzb2NrLCAidmly dF93aWZpIiwgInZpcnRfd2lmaTAiLAogICAgICAgICAgICAgICAgICAgICAidmV0aDFfdmlydF93 aWZpIik7CiAgbmV0bGlua19hZGRfdmV0aCgmbmxtc2csIHNvY2ssICJ2ZXRoMF92bGFuIiwgInZl dGgxX3ZsYW4iKTsKICBuZXRsaW5rX2FkZF92bGFuKCZubG1zZywgc29jaywgInZsYW4wIiwgInZl dGgwX3ZsYW4iLCAwLCBodG9ucyhFVEhfUF84MDIxUSkpOwogIG5ldGxpbmtfYWRkX3ZsYW4oJm5s bXNnLCBzb2NrLCAidmxhbjEiLCAidmV0aDBfdmxhbiIsIDEsIGh0b25zKEVUSF9QXzgwMjFBRCkp OwogIG5ldGxpbmtfYWRkX21hY3ZsYW4oJm5sbXNnLCBzb2NrLCAibWFjdmxhbjAiLCAidmV0aDFf dmxhbiIpOwogIG5ldGxpbmtfYWRkX21hY3ZsYW4oJm5sbXNnLCBzb2NrLCAibWFjdmxhbjEiLCAi dmV0aDFfdmxhbiIpOwogIG5ldGxpbmtfYWRkX2lwdmxhbigmbmxtc2csIHNvY2ssICJpcHZsYW4w IiwgInZldGgwX3ZsYW4iLCBJUFZMQU5fTU9ERV9MMiwgMCk7CiAgbmV0bGlua19hZGRfaXB2bGFu KCZubG1zZywgc29jaywgImlwdmxhbjEiLCAidmV0aDBfdmxhbiIsIElQVkxBTl9NT0RFX0wzUywK ICAgICAgICAgICAgICAgICAgICAgSVBWTEFOX0ZfVkVQQSk7CiAgbmV0bGlua19hZGRfdmV0aCgm bmxtc2csIHNvY2ssICJ2ZXRoMF9tYWN2dGFwIiwgInZldGgxX21hY3Z0YXAiKTsKICBuZXRsaW5r X2FkZF9saW5rZWQoJm5sbXNnLCBzb2NrLCAibWFjdnRhcCIsICJtYWN2dGFwMCIsICJ2ZXRoMF9t YWN2dGFwIik7CiAgbmV0bGlua19hZGRfbGlua2VkKCZubG1zZywgc29jaywgIm1hY3NlYyIsICJt YWNzZWMwIiwgInZldGgxX21hY3Z0YXAiKTsKICBjaGFyIGFkZHJbMzJdOwogIHNwcmludGYoYWRk ciwgREVWX0lQVjQsIDE0ICsgMTApOwogIHN0cnVjdCBpbl9hZGRyIGdlbmV2ZV9hZGRyNDsKICBp ZiAoaW5ldF9wdG9uKEFGX0lORVQsIGFkZHIsICZnZW5ldmVfYWRkcjQpIDw9IDApCiAgICBleGl0 KDEpOwogIHN0cnVjdCBpbjZfYWRkciBnZW5ldmVfYWRkcjY7CiAgaWYgKGluZXRfcHRvbihBRl9J TkVUNiwgImZjMDA6OjAxIiwgJmdlbmV2ZV9hZGRyNikgPD0gMCkKICAgIGV4aXQoMSk7CiAgbmV0 bGlua19hZGRfZ2VuZXZlKCZubG1zZywgc29jaywgImdlbmV2ZTAiLCAwLCAmZ2VuZXZlX2FkZHI0 LCAwKTsKICBuZXRsaW5rX2FkZF9nZW5ldmUoJm5sbXNnLCBzb2NrLCAiZ2VuZXZlMSIsIDEsIDAs ICZnZW5ldmVfYWRkcjYpOwogIG5ldGRldnNpbV9hZGQoKGludClwcm9jaWQsIDQpOwogIG5ldGxp bmtfd2lyZWd1YXJkX3NldHVwKCk7CiAgZm9yIChpID0gMDsgaSA8IHNpemVvZihkZXZpY2VzKSAv IChzaXplb2YoZGV2aWNlc1swXSkpOyBpKyspIHsKICAgIGNoYXIgYWRkclszMl07CiAgICBzcHJp bnRmKGFkZHIsIERFVl9JUFY0LCBpICsgMTApOwogICAgbmV0bGlua19hZGRfYWRkcjQoJm5sbXNn LCBzb2NrLCBkZXZpY2VzW2ldLm5hbWUsIGFkZHIpOwogICAgaWYgKCFkZXZpY2VzW2ldLm5vaXB2 NikgewogICAgICBzcHJpbnRmKGFkZHIsIERFVl9JUFY2LCBpICsgMTApOwogICAgICBuZXRsaW5r X2FkZF9hZGRyNigmbmxtc2csIHNvY2ssIGRldmljZXNbaV0ubmFtZSwgYWRkcik7CiAgICB9CiAg ICB1aW50NjRfdCBtYWNhZGRyID0gREVWX01BQyArICgoaSArIDEwdWxsKSA8PCA0MCk7CiAgICBu ZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5sbXNnLCBzb2NrLCBkZXZpY2VzW2ldLm5hbWUsIHRydWUs IDAsICZtYWNhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZXNbaV0ubWFjc2l6 ZSwgTlVMTCk7CiAgfQogIGNsb3NlKHNvY2spOwp9CnN0YXRpYyB2b2lkIGluaXRpYWxpemVfbmV0 ZGV2aWNlc19pbml0KHZvaWQpCnsKICBpbnQgc29jayA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NL X1JBVywgTkVUTElOS19ST1VURSk7CiAgaWYgKHNvY2sgPT0gLTEpCiAgICBleGl0KDEpOwogIHN0 cnVjdCB7CiAgICBjb25zdCBjaGFyKiB0eXBlOwogICAgaW50IG1hY3NpemU7CiAgICBib29sIG5v aXB2NjsKICAgIGJvb2wgbm91cDsKICB9IGRldnR5cGVzW10gPSB7CiAgICAgIHsibnIiLCA3LCB0 cnVlfSwKICAgICAgeyJyb3NlIiwgNSwgdHJ1ZSwgdHJ1ZX0sCiAgfTsKICB1bnNpZ25lZCBpOwog IGZvciAoaSA9IDA7IGkgPCBzaXplb2YoZGV2dHlwZXMpIC8gc2l6ZW9mKGRldnR5cGVzWzBdKTsg aSsrKSB7CiAgICBjaGFyIGRldlszMl0sIGFkZHJbMzJdOwogICAgc3ByaW50ZihkZXYsICIlcyVk IiwgZGV2dHlwZXNbaV0udHlwZSwgKGludClwcm9jaWQpOwogICAgc3ByaW50ZihhZGRyLCAiMTcy LjMwLiVkLiVkIiwgaSwgKGludClwcm9jaWQgKyAxKTsKICAgIG5ldGxpbmtfYWRkX2FkZHI0KCZu bG1zZywgc29jaywgZGV2LCBhZGRyKTsKICAgIGlmICghZGV2dHlwZXNbaV0ubm9pcHY2KSB7CiAg ICAgIHNwcmludGYoYWRkciwgImZlODg6OiUwMng6JTAyeCIsIGksIChpbnQpcHJvY2lkICsgMSk7 CiAgICAgIG5ldGxpbmtfYWRkX2FkZHI2KCZubG1zZywgc29jaywgZGV2LCBhZGRyKTsKICAgIH0K ICAgIGludCBtYWNzaXplID0gZGV2dHlwZXNbaV0ubWFjc2l6ZTsKICAgIHVpbnQ2NF90IG1hY2Fk ZHIgPSAweGJiYmJiYiArCiAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nIGxv bmcpaSA8PCAoOCAqIChtYWNzaXplIC0gMikpKSArCiAgICAgICAgICAgICAgICAgICAgICAgKHBy b2NpZCA8PCAoOCAqIChtYWNzaXplIC0gMSkpKTsKICAgIG5ldGxpbmtfZGV2aWNlX2NoYW5nZSgm bmxtc2csIHNvY2ssIGRldiwgIWRldnR5cGVzW2ldLm5vdXAsIDAsICZtYWNhZGRyLAogICAgICAg ICAgICAgICAgICAgICAgICAgIG1hY3NpemUsIE5VTEwpOwogIH0KICBjbG9zZShzb2NrKTsKfQoK c3RhdGljIGludCByZWFkX3R1bihjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKewogIGlmICh0dW5mZCA8 IDApCiAgICByZXR1cm4gLTE7CiAgaW50IHJ2ID0gcmVhZCh0dW5mZCwgZGF0YSwgc2l6ZSk7CiAg aWYgKHJ2IDwgMCkgewogICAgaWYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFQkFERiB8 fCBlcnJubyA9PSBFQkFERkQpCiAgICAgIHJldHVybiAtMTsKICAgIGV4aXQoMSk7CiAgfQogIHJl dHVybiBydjsKfQoKc3RhdGljIHZvaWQgZmx1c2hfdHVuKCkKewogIGNoYXIgZGF0YVsxMDAwXTsK ICB3aGlsZSAocmVhZF90dW4oJmRhdGFbMF0sIHNpemVvZihkYXRhKSkgIT0gLTEpIHsKICB9Cn0K CiNkZWZpbmUgTUFYX0ZEUyAzMAoKI2RlZmluZSBCVFBST1RPX0hDSSAxCiNkZWZpbmUgQUNMX0xJ TksgMQojZGVmaW5lIFNDQU5fUEFHRSAyCgp0eXBlZGVmIHN0cnVjdCB7CiAgdWludDhfdCBiWzZd Owp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGJkYWRkcl90OwoKI2RlZmluZSBIQ0lfQ09NTUFO RF9QS1QgMQojZGVmaW5lIEhDSV9FVkVOVF9QS1QgNAojZGVmaW5lIEhDSV9WRU5ET1JfUEtUIDB4 ZmYKCnN0cnVjdCBoY2lfY29tbWFuZF9oZHIgewogIHVpbnQxNl90IG9wY29kZTsKICB1aW50OF90 IHBsZW47Cn0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CgpzdHJ1Y3QgaGNpX2V2ZW50X2hkciB7 CiAgdWludDhfdCBldnQ7CiAgdWludDhfdCBwbGVuOwp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkp OwoKI2RlZmluZSBIQ0lfRVZfQ09OTl9DT01QTEVURSAweDAzCnN0cnVjdCBoY2lfZXZfY29ubl9j b21wbGV0ZSB7CiAgdWludDhfdCBzdGF0dXM7CiAgdWludDE2X3QgaGFuZGxlOwogIGJkYWRkcl90 IGJkYWRkcjsKICB1aW50OF90IGxpbmtfdHlwZTsKICB1aW50OF90IGVuY3JfbW9kZTsKfSBfX2F0 dHJpYnV0ZV9fKChwYWNrZWQpKTsKCiNkZWZpbmUgSENJX0VWX0NPTk5fUkVRVUVTVCAweDA0CnN0 cnVjdCBoY2lfZXZfY29ubl9yZXF1ZXN0IHsKICBiZGFkZHJfdCBiZGFkZHI7CiAgdWludDhfdCBk ZXZfY2xhc3NbM107CiAgdWludDhfdCBsaW5rX3R5cGU7Cn0gX19hdHRyaWJ1dGVfXygocGFja2Vk KSk7CgojZGVmaW5lIEhDSV9FVl9SRU1PVEVfRkVBVFVSRVMgMHgwYgpzdHJ1Y3QgaGNpX2V2X3Jl bW90ZV9mZWF0dXJlcyB7CiAgdWludDhfdCBzdGF0dXM7CiAgdWludDE2X3QgaGFuZGxlOwogIHVp bnQ4X3QgZmVhdHVyZXNbOF07Cn0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CgojZGVmaW5lIEhD SV9FVl9DTURfQ09NUExFVEUgMHgwZQpzdHJ1Y3QgaGNpX2V2X2NtZF9jb21wbGV0ZSB7CiAgdWlu dDhfdCBuY21kOwogIHVpbnQxNl90IG9wY29kZTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK CiNkZWZpbmUgSENJX09QX1dSSVRFX1NDQU5fRU5BQkxFIDB4MGMxYQoKI2RlZmluZSBIQ0lfT1Bf UkVBRF9CVUZGRVJfU0laRSAweDEwMDUKc3RydWN0IGhjaV9ycF9yZWFkX2J1ZmZlcl9zaXplIHsK ICB1aW50OF90IHN0YXR1czsKICB1aW50MTZfdCBhY2xfbXR1OwogIHVpbnQ4X3Qgc2NvX210dTsK ICB1aW50MTZfdCBhY2xfbWF4X3BrdDsKICB1aW50MTZfdCBzY29fbWF4X3BrdDsKfSBfX2F0dHJp YnV0ZV9fKChwYWNrZWQpKTsKCiNkZWZpbmUgSENJX09QX1JFQURfQkRfQUREUiAweDEwMDkKc3Ry dWN0IGhjaV9ycF9yZWFkX2JkX2FkZHIgewogIHVpbnQ4X3Qgc3RhdHVzOwogIGJkYWRkcl90IGJk YWRkcjsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKCiNkZWZpbmUgSENJX0VWX0xFX01FVEEg MHgzZQpzdHJ1Y3QgaGNpX2V2X2xlX21ldGEgewogIHVpbnQ4X3Qgc3ViZXZlbnQ7Cn0gX19hdHRy aWJ1dGVfXygocGFja2VkKSk7CgojZGVmaW5lIEhDSV9FVl9MRV9DT05OX0NPTVBMRVRFIDB4MDEK c3RydWN0IGhjaV9ldl9sZV9jb25uX2NvbXBsZXRlIHsKICB1aW50OF90IHN0YXR1czsKICB1aW50 MTZfdCBoYW5kbGU7CiAgdWludDhfdCByb2xlOwogIHVpbnQ4X3QgYmRhZGRyX3R5cGU7CiAgYmRh ZGRyX3QgYmRhZGRyOwogIHVpbnQxNl90IGludGVydmFsOwogIHVpbnQxNl90IGxhdGVuY3k7CiAg dWludDE2X3Qgc3VwZXJ2aXNpb25fdGltZW91dDsKICB1aW50OF90IGNsa19hY2N1cmFuY3k7Cn0g X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CgpzdHJ1Y3QgaGNpX2Rldl9yZXEgewogIHVpbnQxNl90 IGRldl9pZDsKICB1aW50MzJfdCBkZXZfb3B0Owp9OwoKc3RydWN0IHZoY2lfdmVuZG9yX3BrdF9y ZXF1ZXN0IHsKICB1aW50OF90IHR5cGU7CiAgdWludDhfdCBvcGNvZGU7Cn0gX19hdHRyaWJ1dGVf XygocGFja2VkKSk7CgpzdHJ1Y3QgdmhjaV9wa3QgewogIHVpbnQ4X3QgdHlwZTsKICB1bmlvbiB7 CiAgICBzdHJ1Y3QgewogICAgICB1aW50OF90IG9wY29kZTsKICAgICAgdWludDE2X3QgaWQ7CiAg ICB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHZlbmRvcl9wa3Q7CiAgICBzdHJ1Y3QgaGNpX2Nv bW1hbmRfaGRyIGNvbW1hbmRfaGRyOwogIH07Cn0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cgoj ZGVmaW5lIEhDSURFVlVQIF9JT1coJ0gnLCAyMDEsIGludCkKI2RlZmluZSBIQ0lTRVRTQ0FOIF9J T1coJ0gnLCAyMjEsIGludCkKCnN0YXRpYyBpbnQgdmhjaV9mZCA9IC0xOwoKc3RhdGljIHZvaWQg cmZraWxsX3VuYmxvY2tfYWxsKCkKewogIGludCBmZCA9IG9wZW4oIi9kZXYvcmZraWxsIiwgT19X Uk9OTFkpOwogIGlmIChmZCA8IDApCiAgICBleGl0KDEpOwogIHN0cnVjdCByZmtpbGxfZXZlbnQg ZXZlbnQgPSB7MH07CiAgZXZlbnQuaWR4ID0gMDsKICBldmVudC50eXBlID0gUkZLSUxMX1RZUEVf QUxMOwogIGV2ZW50Lm9wID0gUkZLSUxMX09QX0NIQU5HRV9BTEw7CiAgZXZlbnQuc29mdCA9IDA7 CiAgZXZlbnQuaGFyZCA9IDA7CiAgaWYgKHdyaXRlKGZkLCAmZXZlbnQsIHNpemVvZihldmVudCkp IDwgMCkKICAgIGV4aXQoMSk7CiAgY2xvc2UoZmQpOwp9CgpzdGF0aWMgdm9pZCBoY2lfc2VuZF9l dmVudF9wYWNrZXQoaW50IGZkLCB1aW50OF90IGV2dCwgdm9pZCogZGF0YSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbikKewogIHN0cnVjdCBpb3ZlYyBp dlszXTsKICBzdHJ1Y3QgaGNpX2V2ZW50X2hkciBoZHI7CiAgaGRyLmV2dCA9IGV2dDsKICBoZHIu cGxlbiA9IGRhdGFfbGVuOwogIHVpbnQ4X3QgdHlwZSA9IEhDSV9FVkVOVF9QS1Q7CiAgaXZbMF0u aW92X2Jhc2UgPSAmdHlwZTsKICBpdlswXS5pb3ZfbGVuID0gc2l6ZW9mKHR5cGUpOwogIGl2WzFd Lmlvdl9iYXNlID0gJmhkcjsKICBpdlsxXS5pb3ZfbGVuID0gc2l6ZW9mKGhkcik7CiAgaXZbMl0u aW92X2Jhc2UgPSBkYXRhOwogIGl2WzJdLmlvdl9sZW4gPSBkYXRhX2xlbjsKICBpZiAod3JpdGV2 KGZkLCBpdiwgc2l6ZW9mKGl2KSAvIHNpemVvZihzdHJ1Y3QgaW92ZWMpKSA8IDApCiAgICBleGl0 KDEpOwp9CgpzdGF0aWMgdm9pZCBoY2lfc2VuZF9ldmVudF9jbWRfY29tcGxldGUoaW50IGZkLCB1 aW50MTZfdCBvcGNvZGUsIHZvaWQqIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplX3QgZGF0YV9sZW4pCnsKICBzdHJ1Y3QgaW92ZWMgaXZbNF07CiAgc3Ry dWN0IGhjaV9ldmVudF9oZHIgaGRyOwogIGhkci5ldnQgPSBIQ0lfRVZfQ01EX0NPTVBMRVRFOwog IGhkci5wbGVuID0gc2l6ZW9mKHN0cnVjdCBoY2lfZXZfY21kX2NvbXBsZXRlKSArIGRhdGFfbGVu OwogIHN0cnVjdCBoY2lfZXZfY21kX2NvbXBsZXRlIGV2dF9oZHI7CiAgZXZ0X2hkci5uY21kID0g MTsKICBldnRfaGRyLm9wY29kZSA9IG9wY29kZTsKICB1aW50OF90IHR5cGUgPSBIQ0lfRVZFTlRf UEtUOwogIGl2WzBdLmlvdl9iYXNlID0gJnR5cGU7CiAgaXZbMF0uaW92X2xlbiA9IHNpemVvZih0 eXBlKTsKICBpdlsxXS5pb3ZfYmFzZSA9ICZoZHI7CiAgaXZbMV0uaW92X2xlbiA9IHNpemVvZiho ZHIpOwogIGl2WzJdLmlvdl9iYXNlID0gJmV2dF9oZHI7CiAgaXZbMl0uaW92X2xlbiA9IHNpemVv ZihldnRfaGRyKTsKICBpdlszXS5pb3ZfYmFzZSA9IGRhdGE7CiAgaXZbM10uaW92X2xlbiA9IGRh dGFfbGVuOwogIGlmICh3cml0ZXYoZmQsIGl2LCBzaXplb2YoaXYpIC8gc2l6ZW9mKHN0cnVjdCBp b3ZlYykpIDwgMCkKICAgIGV4aXQoMSk7Cn0KCnN0YXRpYyBib29sIHByb2Nlc3NfY29tbWFuZF9w a3QoaW50IGZkLCBjaGFyKiBidWYsIHNzaXplX3QgYnVmX3NpemUpCnsKICBzdHJ1Y3QgaGNpX2Nv bW1hbmRfaGRyKiBoZHIgPSAoc3RydWN0IGhjaV9jb21tYW5kX2hkciopYnVmOwogIGlmIChidWZf c2l6ZSA8IChzc2l6ZV90KXNpemVvZihzdHJ1Y3QgaGNpX2NvbW1hbmRfaGRyKSB8fAogICAgICBo ZHItPnBsZW4gIT0gYnVmX3NpemUgLSBzaXplb2Yoc3RydWN0IGhjaV9jb21tYW5kX2hkcikpCiAg ICBleGl0KDEpOwogIHN3aXRjaCAoaGRyLT5vcGNvZGUpIHsKICBjYXNlIEhDSV9PUF9XUklURV9T Q0FOX0VOQUJMRTogewogICAgdWludDhfdCBzdGF0dXMgPSAwOwogICAgaGNpX3NlbmRfZXZlbnRf Y21kX2NvbXBsZXRlKGZkLCBoZHItPm9wY29kZSwgJnN0YXR1cywgc2l6ZW9mKHN0YXR1cykpOwog ICAgcmV0dXJuIHRydWU7CiAgfQogIGNhc2UgSENJX09QX1JFQURfQkRfQUREUjogewogICAgc3Ry dWN0IGhjaV9ycF9yZWFkX2JkX2FkZHIgcnAgPSB7MH07CiAgICBycC5zdGF0dXMgPSAwOwogICAg bWVtc2V0KCZycC5iZGFkZHIsIDB4YWEsIDYpOwogICAgaGNpX3NlbmRfZXZlbnRfY21kX2NvbXBs ZXRlKGZkLCBoZHItPm9wY29kZSwgJnJwLCBzaXplb2YocnApKTsKICAgIHJldHVybiBmYWxzZTsK ICB9CiAgY2FzZSBIQ0lfT1BfUkVBRF9CVUZGRVJfU0laRTogewogICAgc3RydWN0IGhjaV9ycF9y ZWFkX2J1ZmZlcl9zaXplIHJwID0gezB9OwogICAgcnAuc3RhdHVzID0gMDsKICAgIHJwLmFjbF9t dHUgPSAxMDIxOwogICAgcnAuc2NvX210dSA9IDk2OwogICAgcnAuYWNsX21heF9wa3QgPSA0Owog ICAgcnAuc2NvX21heF9wa3QgPSA2OwogICAgaGNpX3NlbmRfZXZlbnRfY21kX2NvbXBsZXRlKGZk LCBoZHItPm9wY29kZSwgJnJwLCBzaXplb2YocnApKTsKICAgIHJldHVybiBmYWxzZTsKICB9CiAg fQogIGNoYXIgZHVtbXlbMHhmOV0gPSB7MH07CiAgaGNpX3NlbmRfZXZlbnRfY21kX2NvbXBsZXRl KGZkLCBoZHItPm9wY29kZSwgZHVtbXksIHNpemVvZihkdW1teSkpOwogIHJldHVybiBmYWxzZTsK fQoKc3RhdGljIHZvaWQqIGV2ZW50X3RocmVhZCh2b2lkKiBhcmcpCnsKICB3aGlsZSAoMSkgewog ICAgY2hhciBidWZbMTAyNF0gPSB7MH07CiAgICBzc2l6ZV90IGJ1Zl9zaXplID0gcmVhZCh2aGNp X2ZkLCBidWYsIHNpemVvZihidWYpKTsKICAgIGlmIChidWZfc2l6ZSA8IDApCiAgICAgIGV4aXQo MSk7CiAgICBpZiAoYnVmX3NpemUgPiAwICYmIGJ1ZlswXSA9PSBIQ0lfQ09NTUFORF9QS1QpIHsK ICAgICAgaWYgKHByb2Nlc3NfY29tbWFuZF9wa3QodmhjaV9mZCwgYnVmICsgMSwgYnVmX3NpemUg LSAxKSkKICAgICAgICBicmVhazsKICAgIH0KICB9CiAgcmV0dXJuIE5VTEw7Cn0KI2RlZmluZSBI Q0lfSEFORExFXzEgMjAwCiNkZWZpbmUgSENJX0hBTkRMRV8yIDIwMQoKI2RlZmluZSBIQ0lfUFJJ TUFSWSAwCiNkZWZpbmUgSENJX09QX1JFU0VUIDB4MGMwMwoKc3RhdGljIHZvaWQgaW5pdGlhbGl6 ZV92aGNpKCkKewogIGludCBoY2lfc29jayA9IHNvY2tldChBRl9CTFVFVE9PVEgsIFNPQ0tfUkFX LCBCVFBST1RPX0hDSSk7CiAgaWYgKGhjaV9zb2NrIDwgMCkKICAgIGV4aXQoMSk7CiAgdmhjaV9m ZCA9IG9wZW4oIi9kZXYvdmhjaSIsIE9fUkRXUik7CiAgaWYgKHZoY2lfZmQgPT0gLTEpCiAgICBl eGl0KDEpOwogIGNvbnN0IGludCBrVmhjaUZkID0gMjAyOwogIGlmIChkdXAyKHZoY2lfZmQsIGtW aGNpRmQpIDwgMCkKICAgIGV4aXQoMSk7CiAgY2xvc2UodmhjaV9mZCk7CiAgdmhjaV9mZCA9IGtW aGNpRmQ7CiAgc3RydWN0IHZoY2lfdmVuZG9yX3BrdF9yZXF1ZXN0IHZlbmRvcl9wa3RfcmVxID0g e0hDSV9WRU5ET1JfUEtULCBIQ0lfUFJJTUFSWX07CiAgaWYgKHdyaXRlKHZoY2lfZmQsICZ2ZW5k b3JfcGt0X3JlcSwgc2l6ZW9mKHZlbmRvcl9wa3RfcmVxKSkgIT0KICAgICAgc2l6ZW9mKHZlbmRv cl9wa3RfcmVxKSkKICAgIGV4aXQoMSk7CiAgc3RydWN0IHZoY2lfcGt0IHZoY2lfcGt0OwogIGlm IChyZWFkKHZoY2lfZmQsICZ2aGNpX3BrdCwgc2l6ZW9mKHZoY2lfcGt0KSkgIT0gc2l6ZW9mKHZo Y2lfcGt0KSkKICAgIGV4aXQoMSk7CiAgaWYgKHZoY2lfcGt0LnR5cGUgPT0gSENJX0NPTU1BTkRf UEtUICYmCiAgICAgIHZoY2lfcGt0LmNvbW1hbmRfaGRyLm9wY29kZSA9PSBIQ0lfT1BfUkVTRVQp IHsKICAgIGNoYXIgcmVzcG9uc2VbMV0gPSB7MH07CiAgICBoY2lfc2VuZF9ldmVudF9jbWRfY29t cGxldGUodmhjaV9mZCwgSENJX09QX1JFU0VULCByZXNwb25zZSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YocmVzcG9uc2UpKTsKICAgIGlmIChyZWFkKHZoY2lfZmQsICZ2 aGNpX3BrdCwgc2l6ZW9mKHZoY2lfcGt0KSkgIT0gc2l6ZW9mKHZoY2lfcGt0KSkKICAgICAgZXhp dCgxKTsKICB9CiAgaWYgKHZoY2lfcGt0LnR5cGUgIT0gSENJX1ZFTkRPUl9QS1QpCiAgICBleGl0 KDEpOwogIGludCBkZXZfaWQgPSB2aGNpX3BrdC52ZW5kb3JfcGt0LmlkOwogIHB0aHJlYWRfdCB0 aDsKICBpZiAocHRocmVhZF9jcmVhdGUoJnRoLCBOVUxMLCBldmVudF90aHJlYWQsIE5VTEwpKQog ICAgZXhpdCgxKTsKICBpbnQgcmV0ID0gaW9jdGwoaGNpX3NvY2ssIEhDSURFVlVQLCBkZXZfaWQp OwogIGlmIChyZXQpIHsKICAgIGlmIChlcnJubyA9PSBFUkZLSUxMKSB7CiAgICAgIHJma2lsbF91 bmJsb2NrX2FsbCgpOwogICAgICByZXQgPSBpb2N0bChoY2lfc29jaywgSENJREVWVVAsIGRldl9p ZCk7CiAgICB9CiAgICBpZiAocmV0ICYmIGVycm5vICE9IEVBTFJFQURZKQogICAgICBleGl0KDEp OwogIH0KICBzdHJ1Y3QgaGNpX2Rldl9yZXEgZHIgPSB7MH07CiAgZHIuZGV2X2lkID0gZGV2X2lk OwogIGRyLmRldl9vcHQgPSBTQ0FOX1BBR0U7CiAgaWYgKGlvY3RsKGhjaV9zb2NrLCBIQ0lTRVRT Q0FOLCAmZHIpKQogICAgZXhpdCgxKTsKICBzdHJ1Y3QgaGNpX2V2X2Nvbm5fcmVxdWVzdCByZXF1 ZXN0OwogIG1lbXNldCgmcmVxdWVzdCwgMCwgc2l6ZW9mKHJlcXVlc3QpKTsKICBtZW1zZXQoJnJl cXVlc3QuYmRhZGRyLCAweGFhLCA2KTsKICAqKHVpbnQ4X3QqKSZyZXF1ZXN0LmJkYWRkci5iWzVd ID0gMHgxMDsKICByZXF1ZXN0LmxpbmtfdHlwZSA9IEFDTF9MSU5LOwogIGhjaV9zZW5kX2V2ZW50 X3BhY2tldCh2aGNpX2ZkLCBIQ0lfRVZfQ09OTl9SRVFVRVNULCAmcmVxdWVzdCwKICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHJlcXVlc3QpKTsKICBzdHJ1Y3QgaGNpX2V2X2Nvbm5fY29t cGxldGUgY29tcGxldGU7CiAgbWVtc2V0KCZjb21wbGV0ZSwgMCwgc2l6ZW9mKGNvbXBsZXRlKSk7 CiAgY29tcGxldGUuc3RhdHVzID0gMDsKICBjb21wbGV0ZS5oYW5kbGUgPSBIQ0lfSEFORExFXzE7 CiAgbWVtc2V0KCZjb21wbGV0ZS5iZGFkZHIsIDB4YWEsIDYpOwogICoodWludDhfdCopJmNvbXBs ZXRlLmJkYWRkci5iWzVdID0gMHgxMDsKICBjb21wbGV0ZS5saW5rX3R5cGUgPSBBQ0xfTElOSzsK ICBjb21wbGV0ZS5lbmNyX21vZGUgPSAwOwogIGhjaV9zZW5kX2V2ZW50X3BhY2tldCh2aGNpX2Zk LCBIQ0lfRVZfQ09OTl9DT01QTEVURSwgJmNvbXBsZXRlLAogICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoY29tcGxldGUpKTsKICBzdHJ1Y3QgaGNpX2V2X3JlbW90ZV9mZWF0dXJlcyBmZWF0 dXJlczsKICBtZW1zZXQoJmZlYXR1cmVzLCAwLCBzaXplb2YoZmVhdHVyZXMpKTsKICBmZWF0dXJl cy5zdGF0dXMgPSAwOwogIGZlYXR1cmVzLmhhbmRsZSA9IEhDSV9IQU5ETEVfMTsKICBoY2lfc2Vu ZF9ldmVudF9wYWNrZXQodmhjaV9mZCwgSENJX0VWX1JFTU9URV9GRUFUVVJFUywgJmZlYXR1cmVz LAogICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZmVhdHVyZXMpKTsKICBzdHJ1Y3Qgewog ICAgc3RydWN0IGhjaV9ldl9sZV9tZXRhIGxlX21ldGE7CiAgICBzdHJ1Y3QgaGNpX2V2X2xlX2Nv bm5fY29tcGxldGUgbGVfY29ubjsKICB9IGxlX2Nvbm47CiAgbWVtc2V0KCZsZV9jb25uLCAwLCBz aXplb2YobGVfY29ubikpOwogIGxlX2Nvbm4ubGVfbWV0YS5zdWJldmVudCA9IEhDSV9FVl9MRV9D T05OX0NPTVBMRVRFOwogIG1lbXNldCgmbGVfY29ubi5sZV9jb25uLmJkYWRkciwgMHhhYSwgNik7 CiAgKih1aW50OF90KikmbGVfY29ubi5sZV9jb25uLmJkYWRkci5iWzVdID0gMHgxMTsKICBsZV9j b25uLmxlX2Nvbm4ucm9sZSA9IDE7CiAgbGVfY29ubi5sZV9jb25uLmhhbmRsZSA9IEhDSV9IQU5E TEVfMjsKICBoY2lfc2VuZF9ldmVudF9wYWNrZXQodmhjaV9mZCwgSENJX0VWX0xFX01FVEEsICZs ZV9jb25uLCBzaXplb2YobGVfY29ubikpOwogIHB0aHJlYWRfam9pbih0aCwgTlVMTCk7CiAgY2xv c2UoaGNpX3NvY2spOwp9CgovLyUgVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJvbSBwdWZmLntjLGh9 LCBmb3VuZCBpbiB0aGUgemxpYiBkZXZlbG9wbWVudC4gVGhlCi8vJSBvcmlnaW5hbCBmaWxlcyBj b21lIHdpdGggdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgbm90aWNlOgoKLy8lIENvcHlyaWdodCAo QykgMjAwMi0yMDEzIE1hcmsgQWRsZXIsIGFsbCByaWdodHMgcmVzZXJ2ZWQKLy8lIHZlcnNpb24g Mi4zLCAyMSBKYW4gMjAxMwovLyUgVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3 aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8lIHdhcnJhbnR5LiAgSW4gbm8gZXZlbnQg d2lsbCB0aGUgYXV0aG9yIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwovLyUgYXJpc2lu ZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KLy8lIFBlcm1pc3Npb24gaXMgZ3JhbnRl ZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyUgaW5j bHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlz dHJpYnV0ZSBpdAovLyUgZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rp b25zOgovLyUgMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3Jl cHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8lICAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBv cmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCi8vJSAgICBpbiBhIHBy b2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291 bGQgYmUKLy8lICAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vJSAyLiBBbHRl cmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBt dXN0IG5vdCBiZQovLyUgICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNv ZnR3YXJlLgovLyUgMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQg ZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KLy8lIE1hcmsgQWRsZXIgICAgbWFkbGVyQGFs dW1uaS5jYWx0ZWNoLmVkdQoKLy8lIEJFR0lOIENPREUgREVSSVZFRCBGUk9NIHB1ZmYue2MsaH0K CiNkZWZpbmUgTUFYQklUUyAxNQojZGVmaW5lIE1BWExDT0RFUyAyODYKI2RlZmluZSBNQVhEQ09E RVMgMzAKI2RlZmluZSBNQVhDT0RFUyAoTUFYTENPREVTICsgTUFYRENPREVTKQojZGVmaW5lIEZJ WExDT0RFUyAyODgKCnN0cnVjdCBwdWZmX3N0YXRlIHsKICB1bnNpZ25lZCBjaGFyKiBvdXQ7CiAg dW5zaWduZWQgbG9uZyBvdXRsZW47CiAgdW5zaWduZWQgbG9uZyBvdXRjbnQ7CiAgY29uc3QgdW5z aWduZWQgY2hhciogaW47CiAgdW5zaWduZWQgbG9uZyBpbmxlbjsKICB1bnNpZ25lZCBsb25nIGlu Y250OwogIGludCBiaXRidWY7CiAgaW50IGJpdGNudDsKICBqbXBfYnVmIGVudjsKfTsKc3RhdGlj IGludCBwdWZmX2JpdHMoc3RydWN0IHB1ZmZfc3RhdGUqIHMsIGludCBuZWVkKQp7CiAgbG9uZyB2 YWwgPSBzLT5iaXRidWY7CiAgd2hpbGUgKHMtPmJpdGNudCA8IG5lZWQpIHsKICAgIGlmIChzLT5p bmNudCA9PSBzLT5pbmxlbikKICAgICAgbG9uZ2ptcChzLT5lbnYsIDEpOwogICAgdmFsIHw9IChs b25nKShzLT5pbltzLT5pbmNudCsrXSkgPDwgcy0+Yml0Y250OwogICAgcy0+Yml0Y250ICs9IDg7 CiAgfQogIHMtPmJpdGJ1ZiA9IChpbnQpKHZhbCA+PiBuZWVkKTsKICBzLT5iaXRjbnQgLT0gbmVl ZDsKICByZXR1cm4gKGludCkodmFsICYgKCgxTCA8PCBuZWVkKSAtIDEpKTsKfQpzdGF0aWMgaW50 IHB1ZmZfc3RvcmVkKHN0cnVjdCBwdWZmX3N0YXRlKiBzKQp7CiAgcy0+Yml0YnVmID0gMDsKICBz LT5iaXRjbnQgPSAwOwogIGlmIChzLT5pbmNudCArIDQgPiBzLT5pbmxlbikKICAgIHJldHVybiAy OwogIHVuc2lnbmVkIGxlbiA9IHMtPmluW3MtPmluY250KytdOwogIGxlbiB8PSBzLT5pbltzLT5p bmNudCsrXSA8PCA4OwogIGlmIChzLT5pbltzLT5pbmNudCsrXSAhPSAofmxlbiAmIDB4ZmYpIHx8 CiAgICAgIHMtPmluW3MtPmluY250KytdICE9ICgofmxlbiA+PiA4KSAmIDB4ZmYpKQogICAgcmV0 dXJuIC0yOwogIGlmIChzLT5pbmNudCArIGxlbiA+IHMtPmlubGVuKQogICAgcmV0dXJuIDI7CiAg aWYgKHMtPm91dGNudCArIGxlbiA+IHMtPm91dGxlbikKICAgIHJldHVybiAxOwogIGZvciAoOyBs ZW4tLTsgcy0+b3V0Y250KyssIHMtPmluY250KyspIHsKICAgIGlmIChzLT5pbltzLT5pbmNudF0p CiAgICAgIHMtPm91dFtzLT5vdXRjbnRdID0gcy0+aW5bcy0+aW5jbnRdOwogIH0KICByZXR1cm4g MDsKfQpzdHJ1Y3QgcHVmZl9odWZmbWFuIHsKICBzaG9ydCogY291bnQ7CiAgc2hvcnQqIHN5bWJv bDsKfTsKc3RhdGljIGludCBwdWZmX2RlY29kZShzdHJ1Y3QgcHVmZl9zdGF0ZSogcywgY29uc3Qg c3RydWN0IHB1ZmZfaHVmZm1hbiogaCkKewogIGludCBmaXJzdCA9IDA7CiAgaW50IGluZGV4ID0g MDsKICBpbnQgYml0YnVmID0gcy0+Yml0YnVmOwogIGludCBsZWZ0ID0gcy0+Yml0Y250OwogIGlu dCBjb2RlID0gZmlyc3QgPSBpbmRleCA9IDA7CiAgaW50IGxlbiA9IDE7CiAgc2hvcnQqIG5leHQg PSBoLT5jb3VudCArIDE7CiAgd2hpbGUgKDEpIHsKICAgIHdoaWxlIChsZWZ0LS0pIHsKICAgICAg Y29kZSB8PSBiaXRidWYgJiAxOwogICAgICBiaXRidWYgPj49IDE7CiAgICAgIGludCBjb3VudCA9 ICpuZXh0Kys7CiAgICAgIGlmIChjb2RlIC0gY291bnQgPCBmaXJzdCkgewogICAgICAgIHMtPmJp dGJ1ZiA9IGJpdGJ1ZjsKICAgICAgICBzLT5iaXRjbnQgPSAocy0+Yml0Y250IC0gbGVuKSAmIDc7 CiAgICAgICAgcmV0dXJuIGgtPnN5bWJvbFtpbmRleCArIChjb2RlIC0gZmlyc3QpXTsKICAgICAg fQogICAgICBpbmRleCArPSBjb3VudDsKICAgICAgZmlyc3QgKz0gY291bnQ7CiAgICAgIGZpcnN0 IDw8PSAxOwogICAgICBjb2RlIDw8PSAxOwogICAgICBsZW4rKzsKICAgIH0KICAgIGxlZnQgPSAo TUFYQklUUyArIDEpIC0gbGVuOwogICAgaWYgKGxlZnQgPT0gMCkKICAgICAgYnJlYWs7CiAgICBp ZiAocy0+aW5jbnQgPT0gcy0+aW5sZW4pCiAgICAgIGxvbmdqbXAocy0+ZW52LCAxKTsKICAgIGJp dGJ1ZiA9IHMtPmluW3MtPmluY250KytdOwogICAgaWYgKGxlZnQgPiA4KQogICAgICBsZWZ0ID0g ODsKICB9CiAgcmV0dXJuIC0xMDsKfQpzdGF0aWMgaW50IHB1ZmZfY29uc3RydWN0KHN0cnVjdCBw dWZmX2h1ZmZtYW4qIGgsIGNvbnN0IHNob3J0KiBsZW5ndGgsIGludCBuKQp7CiAgaW50IGxlbjsK ICBmb3IgKGxlbiA9IDA7IGxlbiA8PSBNQVhCSVRTOyBsZW4rKykKICAgIGgtPmNvdW50W2xlbl0g PSAwOwogIGludCBzeW1ib2w7CiAgZm9yIChzeW1ib2wgPSAwOyBzeW1ib2wgPCBuOyBzeW1ib2wr KykKICAgIChoLT5jb3VudFtsZW5ndGhbc3ltYm9sXV0pKys7CiAgaWYgKGgtPmNvdW50WzBdID09 IG4pCiAgICByZXR1cm4gMDsKICBpbnQgbGVmdCA9IDE7CiAgZm9yIChsZW4gPSAxOyBsZW4gPD0g TUFYQklUUzsgbGVuKyspIHsKICAgIGxlZnQgPDw9IDE7CiAgICBsZWZ0IC09IGgtPmNvdW50W2xl bl07CiAgICBpZiAobGVmdCA8IDApCiAgICAgIHJldHVybiBsZWZ0OwogIH0KICBzaG9ydCBvZmZz W01BWEJJVFMgKyAxXTsKICBvZmZzWzFdID0gMDsKICBmb3IgKGxlbiA9IDE7IGxlbiA8IE1BWEJJ VFM7IGxlbisrKQogICAgb2Zmc1tsZW4gKyAxXSA9IG9mZnNbbGVuXSArIGgtPmNvdW50W2xlbl07 CiAgZm9yIChzeW1ib2wgPSAwOyBzeW1ib2wgPCBuOyBzeW1ib2wrKykKICAgIGlmIChsZW5ndGhb c3ltYm9sXSAhPSAwKQogICAgICBoLT5zeW1ib2xbb2Zmc1tsZW5ndGhbc3ltYm9sXV0rK10gPSBz eW1ib2w7CiAgcmV0dXJuIGxlZnQ7Cn0Kc3RhdGljIGludCBwdWZmX2NvZGVzKHN0cnVjdCBwdWZm X3N0YXRlKiBzLCBjb25zdCBzdHJ1Y3QgcHVmZl9odWZmbWFuKiBsZW5jb2RlLAogICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHB1ZmZfaHVmZm1hbiogZGlzdGNvZGUpCnsKICBzdGF0 aWMgY29uc3Qgc2hvcnQgbGVuc1syOV0gPSB7MywgIDQsICA1LCAgNiwgICA3LCAgIDgsICAgOSwg ICAxMCwgIDExLCAxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE3LCAx OSwgMjMsICAyNywgIDMxLCAgMzUsICA0MywgIDUxLCA1OSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgNjcsIDgzLCA5OSwgMTE1LCAxMzEsIDE2MywgMTk1LCAyMjcsIDI1OH07CiAg c3RhdGljIGNvbnN0IHNob3J0IGxleHRbMjldID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEs IDEsIDEsIDEsIDIsIDIsIDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsIDMs IDMsIDMsIDMsIDQsIDQsIDQsIDQsIDUsIDUsIDUsIDUsIDB9OwogIHN0YXRpYyBjb25zdCBzaG9y dCBkaXN0c1szMF0gPSB7CiAgICAgIDEsICAgIDIsICAgIDMsICAgIDQsICAgIDUsICAgIDcsICAg IDksICAgIDEzLCAgICAxNywgICAgMjUsCiAgICAgIDMzLCAgIDQ5LCAgIDY1LCAgIDk3LCAgIDEy OSwgIDE5MywgIDI1NywgIDM4NSwgICA1MTMsICAgNzY5LAogICAgICAxMDI1LCAxNTM3LCAyMDQ5 LCAzMDczLCA0MDk3LCA2MTQ1LCA4MTkzLCAxMjI4OSwgMTYzODUsIDI0NTc3fTsKICBzdGF0aWMg Y29uc3Qgc2hvcnQgZGV4dFszMF0gPSB7MCwgMCwgMCwgIDAsICAxLCAgMSwgIDIsICAyLCAgMywg IDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDQsIDUsICA1LCAgNiwgIDYs ICA3LCAgNywgIDgsICA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LCA5LCAx MCwgMTAsIDExLCAxMSwgMTIsIDEyLCAxMywgMTN9OwogIGludCBzeW1ib2w7CiAgZG8gewogICAg c3ltYm9sID0gcHVmZl9kZWNvZGUocywgbGVuY29kZSk7CiAgICBpZiAoc3ltYm9sIDwgMCkKICAg ICAgcmV0dXJuIHN5bWJvbDsKICAgIGlmIChzeW1ib2wgPCAyNTYpIHsKICAgICAgaWYgKHMtPm91 dGNudCA9PSBzLT5vdXRsZW4pCiAgICAgICAgcmV0dXJuIDE7CiAgICAgIGlmIChzeW1ib2wpCiAg ICAgICAgcy0+b3V0W3MtPm91dGNudF0gPSBzeW1ib2w7CiAgICAgIHMtPm91dGNudCsrOwogICAg fSBlbHNlIGlmIChzeW1ib2wgPiAyNTYpIHsKICAgICAgc3ltYm9sIC09IDI1NzsKICAgICAgaWYg KHN5bWJvbCA+PSAyOSkKICAgICAgICByZXR1cm4gLTEwOwogICAgICBpbnQgbGVuID0gbGVuc1tz eW1ib2xdICsgcHVmZl9iaXRzKHMsIGxleHRbc3ltYm9sXSk7CiAgICAgIHN5bWJvbCA9IHB1ZmZf ZGVjb2RlKHMsIGRpc3Rjb2RlKTsKICAgICAgaWYgKHN5bWJvbCA8IDApCiAgICAgICAgcmV0dXJu IHN5bWJvbDsKICAgICAgdW5zaWduZWQgZGlzdCA9IGRpc3RzW3N5bWJvbF0gKyBwdWZmX2JpdHMo cywgZGV4dFtzeW1ib2xdKTsKICAgICAgaWYgKGRpc3QgPiBzLT5vdXRjbnQpCiAgICAgICAgcmV0 dXJuIC0xMTsKICAgICAgaWYgKHMtPm91dGNudCArIGxlbiA+IHMtPm91dGxlbikKICAgICAgICBy ZXR1cm4gMTsKICAgICAgd2hpbGUgKGxlbi0tKSB7CiAgICAgICAgaWYgKGRpc3QgPD0gcy0+b3V0 Y250ICYmIHMtPm91dFtzLT5vdXRjbnQgLSBkaXN0XSkKICAgICAgICAgIHMtPm91dFtzLT5vdXRj bnRdID0gcy0+b3V0W3MtPm91dGNudCAtIGRpc3RdOwogICAgICAgIHMtPm91dGNudCsrOwogICAg ICB9CiAgICB9CiAgfSB3aGlsZSAoc3ltYm9sICE9IDI1Nik7CiAgcmV0dXJuIDA7Cn0Kc3RhdGlj IGludCBwdWZmX2ZpeGVkKHN0cnVjdCBwdWZmX3N0YXRlKiBzKQp7CiAgc3RhdGljIGludCB2aXJn aW4gPSAxOwogIHN0YXRpYyBzaG9ydCBsZW5jbnRbTUFYQklUUyArIDFdLCBsZW5zeW1bRklYTENP REVTXTsKICBzdGF0aWMgc2hvcnQgZGlzdGNudFtNQVhCSVRTICsgMV0sIGRpc3RzeW1bTUFYRENP REVTXTsKICBzdGF0aWMgc3RydWN0IHB1ZmZfaHVmZm1hbiBsZW5jb2RlLCBkaXN0Y29kZTsKICBp ZiAodmlyZ2luKSB7CiAgICBsZW5jb2RlLmNvdW50ID0gbGVuY250OwogICAgbGVuY29kZS5zeW1i b2wgPSBsZW5zeW07CiAgICBkaXN0Y29kZS5jb3VudCA9IGRpc3RjbnQ7CiAgICBkaXN0Y29kZS5z eW1ib2wgPSBkaXN0c3ltOwogICAgc2hvcnQgbGVuZ3Roc1tGSVhMQ09ERVNdOwogICAgaW50IHN5 bWJvbDsKICAgIGZvciAoc3ltYm9sID0gMDsgc3ltYm9sIDwgMTQ0OyBzeW1ib2wrKykKICAgICAg bGVuZ3Roc1tzeW1ib2xdID0gODsKICAgIGZvciAoOyBzeW1ib2wgPCAyNTY7IHN5bWJvbCsrKQog ICAgICBsZW5ndGhzW3N5bWJvbF0gPSA5OwogICAgZm9yICg7IHN5bWJvbCA8IDI4MDsgc3ltYm9s KyspCiAgICAgIGxlbmd0aHNbc3ltYm9sXSA9IDc7CiAgICBmb3IgKDsgc3ltYm9sIDwgRklYTENP REVTOyBzeW1ib2wrKykKICAgICAgbGVuZ3Roc1tzeW1ib2xdID0gODsKICAgIHB1ZmZfY29uc3Ry dWN0KCZsZW5jb2RlLCBsZW5ndGhzLCBGSVhMQ09ERVMpOwogICAgZm9yIChzeW1ib2wgPSAwOyBz eW1ib2wgPCBNQVhEQ09ERVM7IHN5bWJvbCsrKQogICAgICBsZW5ndGhzW3N5bWJvbF0gPSA1Owog ICAgcHVmZl9jb25zdHJ1Y3QoJmRpc3Rjb2RlLCBsZW5ndGhzLCBNQVhEQ09ERVMpOwogICAgdmly Z2luID0gMDsKICB9CiAgcmV0dXJuIHB1ZmZfY29kZXMocywgJmxlbmNvZGUsICZkaXN0Y29kZSk7 Cn0Kc3RhdGljIGludCBwdWZmX2R5bmFtaWMoc3RydWN0IHB1ZmZfc3RhdGUqIHMpCnsKICBzdGF0 aWMgY29uc3Qgc2hvcnQgb3JkZXJbMTldID0gezE2LCAxNywgMTgsIDAsIDgsICA3LCA5LCAgNiwg MTAsIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMSwgNCwgIDEyLCAzLCAx MywgMiwgMTQsIDEsIDE1fTsKICBpbnQgbmxlbiA9IHB1ZmZfYml0cyhzLCA1KSArIDI1NzsKICBp bnQgbmRpc3QgPSBwdWZmX2JpdHMocywgNSkgKyAxOwogIGludCBuY29kZSA9IHB1ZmZfYml0cyhz LCA0KSArIDQ7CiAgaWYgKG5sZW4gPiBNQVhMQ09ERVMgfHwgbmRpc3QgPiBNQVhEQ09ERVMpCiAg ICByZXR1cm4gLTM7CiAgc2hvcnQgbGVuZ3Roc1tNQVhDT0RFU107CiAgaW50IGluZGV4OwogIGZv ciAoaW5kZXggPSAwOyBpbmRleCA8IG5jb2RlOyBpbmRleCsrKQogICAgbGVuZ3Roc1tvcmRlcltp bmRleF1dID0gcHVmZl9iaXRzKHMsIDMpOwogIGZvciAoOyBpbmRleCA8IDE5OyBpbmRleCsrKQog ICAgbGVuZ3Roc1tvcmRlcltpbmRleF1dID0gMDsKICBzaG9ydCBsZW5jbnRbTUFYQklUUyArIDFd LCBsZW5zeW1bTUFYTENPREVTXTsKICBzdHJ1Y3QgcHVmZl9odWZmbWFuIGxlbmNvZGUgPSB7bGVu Y250LCBsZW5zeW19OwogIGludCBlcnIgPSBwdWZmX2NvbnN0cnVjdCgmbGVuY29kZSwgbGVuZ3Ro cywgMTkpOwogIGlmIChlcnIgIT0gMCkKICAgIHJldHVybiAtNDsKICBpbmRleCA9IDA7CiAgd2hp bGUgKGluZGV4IDwgbmxlbiArIG5kaXN0KSB7CiAgICBpbnQgc3ltYm9sOwogICAgaW50IGxlbjsK ICAgIHN5bWJvbCA9IHB1ZmZfZGVjb2RlKHMsICZsZW5jb2RlKTsKICAgIGlmIChzeW1ib2wgPCAw KQogICAgICByZXR1cm4gc3ltYm9sOwogICAgaWYgKHN5bWJvbCA8IDE2KQogICAgICBsZW5ndGhz W2luZGV4KytdID0gc3ltYm9sOwogICAgZWxzZSB7CiAgICAgIGxlbiA9IDA7CiAgICAgIGlmIChz eW1ib2wgPT0gMTYpIHsKICAgICAgICBpZiAoaW5kZXggPT0gMCkKICAgICAgICAgIHJldHVybiAt NTsKICAgICAgICBsZW4gPSBsZW5ndGhzW2luZGV4IC0gMV07CiAgICAgICAgc3ltYm9sID0gMyAr IHB1ZmZfYml0cyhzLCAyKTsKICAgICAgfSBlbHNlIGlmIChzeW1ib2wgPT0gMTcpCiAgICAgICAg c3ltYm9sID0gMyArIHB1ZmZfYml0cyhzLCAzKTsKICAgICAgZWxzZQogICAgICAgIHN5bWJvbCA9 IDExICsgcHVmZl9iaXRzKHMsIDcpOwogICAgICBpZiAoaW5kZXggKyBzeW1ib2wgPiBubGVuICsg bmRpc3QpCiAgICAgICAgcmV0dXJuIC02OwogICAgICB3aGlsZSAoc3ltYm9sLS0pCiAgICAgICAg bGVuZ3Roc1tpbmRleCsrXSA9IGxlbjsKICAgIH0KICB9CiAgaWYgKGxlbmd0aHNbMjU2XSA9PSAw KQogICAgcmV0dXJuIC05OwogIGVyciA9IHB1ZmZfY29uc3RydWN0KCZsZW5jb2RlLCBsZW5ndGhz LCBubGVuKTsKICBpZiAoZXJyICYmIChlcnIgPCAwIHx8IG5sZW4gIT0gbGVuY29kZS5jb3VudFsw XSArIGxlbmNvZGUuY291bnRbMV0pKQogICAgcmV0dXJuIC03OwogIHNob3J0IGRpc3RjbnRbTUFY QklUUyArIDFdLCBkaXN0c3ltW01BWERDT0RFU107CiAgc3RydWN0IHB1ZmZfaHVmZm1hbiBkaXN0 Y29kZSA9IHtkaXN0Y250LCBkaXN0c3ltfTsKICBlcnIgPSBwdWZmX2NvbnN0cnVjdCgmZGlzdGNv ZGUsIGxlbmd0aHMgKyBubGVuLCBuZGlzdCk7CiAgaWYgKGVyciAmJiAoZXJyIDwgMCB8fCBuZGlz dCAhPSBkaXN0Y29kZS5jb3VudFswXSArIGRpc3Rjb2RlLmNvdW50WzFdKSkKICAgIHJldHVybiAt ODsKICByZXR1cm4gcHVmZl9jb2RlcyhzLCAmbGVuY29kZSwgJmRpc3Rjb2RlKTsKfQpzdGF0aWMg aW50IHB1ZmYodW5zaWduZWQgY2hhciogZGVzdCwgdW5zaWduZWQgbG9uZyogZGVzdGxlbiwKICAg ICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHNvdXJjZSwgdW5zaWduZWQgbG9uZyBz b3VyY2VsZW4pCnsKICBzdHJ1Y3QgcHVmZl9zdGF0ZSBzID0gewogICAgICAub3V0ID0gZGVzdCwK ICAgICAgLm91dGxlbiA9ICpkZXN0bGVuLAogICAgICAub3V0Y250ID0gMCwKICAgICAgLmluID0g c291cmNlLAogICAgICAuaW5sZW4gPSBzb3VyY2VsZW4sCiAgICAgIC5pbmNudCA9IDAsCiAgICAg IC5iaXRidWYgPSAwLAogICAgICAuYml0Y250ID0gMCwKICB9OwogIGludCBlcnI7CiAgaWYgKHNl dGptcChzLmVudikgIT0gMCkKICAgIGVyciA9IDI7CiAgZWxzZSB7CiAgICBpbnQgbGFzdDsKICAg IGRvIHsKICAgICAgbGFzdCA9IHB1ZmZfYml0cygmcywgMSk7CiAgICAgIGludCB0eXBlID0gcHVm Zl9iaXRzKCZzLCAyKTsKICAgICAgZXJyID0gdHlwZSA9PSAwID8gcHVmZl9zdG9yZWQoJnMpCiAg ICAgICAgICAgICAgICAgICAgICA6ICh0eXBlID09IDEgPyBwdWZmX2ZpeGVkKCZzKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKHR5cGUgPT0gMiA/IHB1ZmZfZHluYW1pYygm cykgOiAtMSkpOwogICAgICBpZiAoZXJyICE9IDApCiAgICAgICAgYnJlYWs7CiAgICB9IHdoaWxl ICghbGFzdCk7CiAgfQogICpkZXN0bGVuID0gcy5vdXRjbnQ7CiAgcmV0dXJuIGVycjsKfQoKLy8l IEVORCBDT0RFIERFUklWRUQgRlJPTSBwdWZmLntjLGh9CgojZGVmaW5lIFpMSUJfSEVBREVSX1dJ RFRIIDIKCnN0YXRpYyBpbnQgcHVmZl96bGliX3RvX2ZpbGUoY29uc3QgdW5zaWduZWQgY2hhciog c291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc291cmNl bGVuLCBpbnQgZGVzdF9mZCkKewogIGlmIChzb3VyY2VsZW4gPCBaTElCX0hFQURFUl9XSURUSCkK ICAgIHJldHVybiAwOwogIHNvdXJjZSArPSBaTElCX0hFQURFUl9XSURUSDsKICBzb3VyY2VsZW4g LT0gWkxJQl9IRUFERVJfV0lEVEg7CiAgY29uc3QgdW5zaWduZWQgbG9uZyBtYXhfZGVzdGxlbiA9 IDEzMiA8PCAyMDsKICB2b2lkKiByZXQgPSBtbWFwKDAsIG1heF9kZXN0bGVuLCBQUk9UX1dSSVRF IHwgUFJPVF9SRUFELAogICAgICAgICAgICAgICAgICAgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiwg LTEsIDApOwogIGlmIChyZXQgPT0gTUFQX0ZBSUxFRCkKICAgIHJldHVybiAtMTsKICB1bnNpZ25l ZCBjaGFyKiBkZXN0ID0gKHVuc2lnbmVkIGNoYXIqKXJldDsKICB1bnNpZ25lZCBsb25nIGRlc3Rs ZW4gPSBtYXhfZGVzdGxlbjsKICBpbnQgZXJyID0gcHVmZihkZXN0LCAmZGVzdGxlbiwgc291cmNl LCBzb3VyY2VsZW4pOwogIGlmIChlcnIpIHsKICAgIG11bm1hcChkZXN0LCBtYXhfZGVzdGxlbik7 CiAgICBlcnJubyA9IC1lcnI7CiAgICByZXR1cm4gLTE7CiAgfQogIGlmICh3cml0ZShkZXN0X2Zk LCBkZXN0LCBkZXN0bGVuKSAhPSAoc3NpemVfdClkZXN0bGVuKSB7CiAgICBtdW5tYXAoZGVzdCwg bWF4X2Rlc3RsZW4pOwogICAgcmV0dXJuIC0xOwogIH0KICByZXR1cm4gbXVubWFwKGRlc3QsIG1h eF9kZXN0bGVuKTsKfQoKc3RhdGljIGludCBzZXR1cF9sb29wX2RldmljZSh1bnNpZ25lZCBjaGFy KiBkYXRhLCB1bnNpZ25lZCBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciogbG9vcG5hbWUsIGludCogbG9vcGZkX3ApCnsKICBpbnQgZXJyID0gMCwgbG9v cGZkID0gLTE7CiAgaW50IG1lbWZkID0gc3lzY2FsbChfX05SX21lbWZkX2NyZWF0ZSwgInN5emth bGxlciIsIDApOwogIGlmIChtZW1mZCA9PSAtMSkgewogICAgZXJyID0gZXJybm87CiAgICBnb3Rv IGVycm9yOwogIH0KICBpZiAocHVmZl96bGliX3RvX2ZpbGUoZGF0YSwgc2l6ZSwgbWVtZmQpKSB7 CiAgICBlcnIgPSBlcnJubzsKICAgIGdvdG8gZXJyb3JfY2xvc2VfbWVtZmQ7CiAgfQogIGxvb3Bm ZCA9IG9wZW4obG9vcG5hbWUsIE9fUkRXUik7CiAgaWYgKGxvb3BmZCA9PSAtMSkgewogICAgZXJy ID0gZXJybm87CiAgICBnb3RvIGVycm9yX2Nsb3NlX21lbWZkOwogIH0KICBpZiAoaW9jdGwobG9v cGZkLCBMT09QX1NFVF9GRCwgbWVtZmQpKSB7CiAgICBpZiAoZXJybm8gIT0gRUJVU1kpIHsKICAg ICAgZXJyID0gZXJybm87CiAgICAgIGdvdG8gZXJyb3JfY2xvc2VfbG9vcDsKICAgIH0KICAgIGlv Y3RsKGxvb3BmZCwgTE9PUF9DTFJfRkQsIDApOwogICAgdXNsZWVwKDEwMDApOwogICAgaWYgKGlv Y3RsKGxvb3BmZCwgTE9PUF9TRVRfRkQsIG1lbWZkKSkgewogICAgICBlcnIgPSBlcnJubzsKICAg ICAgZ290byBlcnJvcl9jbG9zZV9sb29wOwogICAgfQogIH0KICBjbG9zZShtZW1mZCk7CiAgKmxv b3BmZF9wID0gbG9vcGZkOwogIHJldHVybiAwOwoKZXJyb3JfY2xvc2VfbG9vcDoKICBjbG9zZShs b29wZmQpOwplcnJvcl9jbG9zZV9tZW1mZDoKICBjbG9zZShtZW1mZCk7CmVycm9yOgogIGVycm5v ID0gZXJyOwogIHJldHVybiAtMTsKfQoKc3RhdGljIHZvaWQgcmVzZXRfbG9vcF9kZXZpY2UoY29u c3QgY2hhciogbG9vcG5hbWUpCnsKICBpbnQgbG9vcGZkID0gb3Blbihsb29wbmFtZSwgT19SRFdS KTsKICBpZiAobG9vcGZkID09IC0xKSB7CiAgICByZXR1cm47CiAgfQogIGlmIChpb2N0bChsb29w ZmQsIExPT1BfQ0xSX0ZELCAwKSkgewogIH0KICBjbG9zZShsb29wZmQpOwp9CgpzdGF0aWMgbG9u ZyBzeXpfbW91bnRfaW1hZ2Uodm9sYXRpbGUgbG9uZyBmc2FyZywgdm9sYXRpbGUgbG9uZyBkaXIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBsb25nIGZsYWdzLCB2b2xhdGls ZSBsb25nIG9wdHNhcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBsb25n IGNoYW5nZV9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSB1bnNpZ25l ZCBsb25nIHNpemUsIHZvbGF0aWxlIGxvbmcgaW1hZ2UpCnsKICB1bnNpZ25lZCBjaGFyKiBkYXRh ID0gKHVuc2lnbmVkIGNoYXIqKWltYWdlOwogIGludCByZXMgPSAtMSwgZXJyID0gMCwgbmVlZF9s b29wX2RldmljZSA9ICEhc2l6ZTsKICBjaGFyKiBtb3VudF9vcHRzID0gKGNoYXIqKW9wdHNhcmc7 CiAgY2hhciogdGFyZ2V0ID0gKGNoYXIqKWRpcjsKICBjaGFyKiBmcyA9IChjaGFyKilmc2FyZzsK ICBjaGFyKiBzb3VyY2UgPSBOVUxMOwogIGNoYXIgbG9vcG5hbWVbNjRdOwogIGlmIChuZWVkX2xv b3BfZGV2aWNlKSB7CiAgICBpbnQgbG9vcGZkOwogICAgbWVtc2V0KGxvb3BuYW1lLCAwLCBzaXpl b2YobG9vcG5hbWUpKTsKICAgIHNucHJpbnRmKGxvb3BuYW1lLCBzaXplb2YobG9vcG5hbWUpLCAi L2Rldi9sb29wJWxsdSIsIHByb2NpZCk7CiAgICBpZiAoc2V0dXBfbG9vcF9kZXZpY2UoZGF0YSwg c2l6ZSwgbG9vcG5hbWUsICZsb29wZmQpID09IC0xKQogICAgICByZXR1cm4gLTE7CiAgICBjbG9z ZShsb29wZmQpOwogICAgc291cmNlID0gbG9vcG5hbWU7CiAgfQogIG1rZGlyKHRhcmdldCwgMDc3 Nyk7CiAgY2hhciBvcHRzWzI1Nl07CiAgbWVtc2V0KG9wdHMsIDAsIHNpemVvZihvcHRzKSk7CiAg aWYgKHN0cmxlbihtb3VudF9vcHRzKSA+IChzaXplb2Yob3B0cykgLSAzMikpIHsKICB9CiAgc3Ry bmNweShvcHRzLCBtb3VudF9vcHRzLCBzaXplb2Yob3B0cykgLSAzMik7CiAgaWYgKHN0cmNtcChm cywgImlzbzk2NjAiKSA9PSAwKSB7CiAgICBmbGFncyB8PSBNU19SRE9OTFk7CiAgfSBlbHNlIGlm IChzdHJuY21wKGZzLCAiZXh0IiwgMykgPT0gMCkgewogICAgYm9vbCBoYXNfcmVtb3VudF9ybyA9 IGZhbHNlOwogICAgY2hhciogcmVtb3VudF9yb19zdGFydCA9IHN0cnN0cihvcHRzLCAiZXJyb3Jz PXJlbW91bnQtcm8iKTsKICAgIGlmIChyZW1vdW50X3JvX3N0YXJ0ICE9IE5VTEwpIHsKICAgICAg Y2hhciBhZnRlciA9ICoocmVtb3VudF9yb19zdGFydCArIHN0cmxlbigiZXJyb3JzPXJlbW91bnQt cm8iKSk7CiAgICAgIGNoYXIgYmVmb3JlID0gcmVtb3VudF9yb19zdGFydCA9PSBvcHRzID8gJ1ww JyA6ICoocmVtb3VudF9yb19zdGFydCAtIDEpOwogICAgICBoYXNfcmVtb3VudF9ybyA9ICgoYmVm b3JlID09ICdcMCcgfHwgYmVmb3JlID09ICcsJykgJiYKICAgICAgICAgICAgICAgICAgICAgICAg KGFmdGVyID09ICdcMCcgfHwgYWZ0ZXIgPT0gJywnKSk7CiAgICB9CiAgICBpZiAoc3Ryc3RyKG9w dHMsICJlcnJvcnM9cGFuaWMiKSB8fCAhaGFzX3JlbW91bnRfcm8pCiAgICAgIHN0cmNhdChvcHRz LCAiLGVycm9ycz1jb250aW51ZSIpOwogIH0gZWxzZSBpZiAoc3RyY21wKGZzLCAieGZzIikgPT0g MCkgewogICAgc3RyY2F0KG9wdHMsICIsbm91dWlkIik7CiAgfQogIHJlcyA9IG1vdW50KHNvdXJj ZSwgdGFyZ2V0LCBmcywgZmxhZ3MsIG9wdHMpOwogIGlmIChyZXMgPT0gLTEpIHsKICAgIGVyciA9 IGVycm5vOwogICAgZ290byBlcnJvcl9jbGVhcl9sb29wOwogIH0KICByZXMgPSBvcGVuKHRhcmdl dCwgT19SRE9OTFkgfCBPX0RJUkVDVE9SWSk7CiAgaWYgKHJlcyA9PSAtMSkgewogICAgZXJyID0g ZXJybm87CiAgICBnb3RvIGVycm9yX2NsZWFyX2xvb3A7CiAgfQogIGlmIChjaGFuZ2VfZGlyKSB7 CiAgICByZXMgPSBjaGRpcih0YXJnZXQpOwogICAgaWYgKHJlcyA9PSAtMSkgewogICAgICBlcnIg PSBlcnJubzsKICAgIH0KICB9CgplcnJvcl9jbGVhcl9sb29wOgogIGlmIChuZWVkX2xvb3BfZGV2 aWNlKQogICAgcmVzZXRfbG9vcF9kZXZpY2UobG9vcG5hbWUpOwogIGVycm5vID0gZXJyOwogIHJl dHVybiByZXM7Cn0KCiNkZWZpbmUgWFRfVEFCTEVfU0laRSAxNTM2CiNkZWZpbmUgWFRfTUFYX0VO VFJJRVMgMTAKCnN0cnVjdCB4dF9jb3VudGVycyB7CiAgdWludDY0X3QgcGNudCwgYmNudDsKfTsK CnN0cnVjdCBpcHRfZ2V0aW5mbyB7CiAgY2hhciBuYW1lWzMyXTsKICB1bnNpZ25lZCBpbnQgdmFs aWRfaG9va3M7CiAgdW5zaWduZWQgaW50IGhvb2tfZW50cnlbNV07CiAgdW5zaWduZWQgaW50IHVu ZGVyZmxvd1s1XTsKICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAgdW5zaWduZWQgaW50IHNp emU7Cn07CgpzdHJ1Y3QgaXB0X2dldF9lbnRyaWVzIHsKICBjaGFyIG5hbWVbMzJdOwogIHVuc2ln bmVkIGludCBzaXplOwogIHVpbnQ2NF90IGVudHJ5dGFibGVbWFRfVEFCTEVfU0laRSAvIHNpemVv Zih1aW50NjRfdCldOwp9OwoKc3RydWN0IGlwdF9yZXBsYWNlIHsKICBjaGFyIG5hbWVbMzJdOwog IHVuc2lnbmVkIGludCB2YWxpZF9ob29rczsKICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAg dW5zaWduZWQgaW50IHNpemU7CiAgdW5zaWduZWQgaW50IGhvb2tfZW50cnlbNV07CiAgdW5zaWdu ZWQgaW50IHVuZGVyZmxvd1s1XTsKICB1bnNpZ25lZCBpbnQgbnVtX2NvdW50ZXJzOwogIHN0cnVj dCB4dF9jb3VudGVycyogY291bnRlcnM7CiAgdWludDY0X3QgZW50cnl0YWJsZVtYVF9UQUJMRV9T SVpFIC8gc2l6ZW9mKHVpbnQ2NF90KV07Cn07CgpzdHJ1Y3QgaXB0X3RhYmxlX2Rlc2MgewogIGNv bnN0IGNoYXIqIG5hbWU7CiAgc3RydWN0IGlwdF9nZXRpbmZvIGluZm87CiAgc3RydWN0IGlwdF9y ZXBsYWNlIHJlcGxhY2U7Cn07CgpzdGF0aWMgc3RydWN0IGlwdF90YWJsZV9kZXNjIGlwdjRfdGFi bGVzW10gPSB7CiAgICB7Lm5hbWUgPSAiZmlsdGVyIn0sIHsubmFtZSA9ICJuYXQifSwgICAgICB7 Lm5hbWUgPSAibWFuZ2xlIn0sCiAgICB7Lm5hbWUgPSAicmF3In0sICAgIHsubmFtZSA9ICJzZWN1 cml0eSJ9LAp9OwoKc3RhdGljIHN0cnVjdCBpcHRfdGFibGVfZGVzYyBpcHY2X3RhYmxlc1tdID0g ewogICAgey5uYW1lID0gImZpbHRlciJ9LCB7Lm5hbWUgPSAibmF0In0sICAgICAgey5uYW1lID0g Im1hbmdsZSJ9LAogICAgey5uYW1lID0gInJhdyJ9LCAgICB7Lm5hbWUgPSAic2VjdXJpdHkifSwK fTsKCiNkZWZpbmUgSVBUX0JBU0VfQ1RMIDY0CiNkZWZpbmUgSVBUX1NPX1NFVF9SRVBMQUNFIChJ UFRfQkFTRV9DVEwpCiNkZWZpbmUgSVBUX1NPX0dFVF9JTkZPIChJUFRfQkFTRV9DVEwpCiNkZWZp bmUgSVBUX1NPX0dFVF9FTlRSSUVTIChJUFRfQkFTRV9DVEwgKyAxKQoKc3RydWN0IGFycHRfZ2V0 aW5mbyB7CiAgY2hhciBuYW1lWzMyXTsKICB1bnNpZ25lZCBpbnQgdmFsaWRfaG9va3M7CiAgdW5z aWduZWQgaW50IGhvb2tfZW50cnlbM107CiAgdW5zaWduZWQgaW50IHVuZGVyZmxvd1szXTsKICB1 bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7CiAgdW5zaWduZWQgaW50IHNpemU7Cn07CgpzdHJ1Y3Qg YXJwdF9nZXRfZW50cmllcyB7CiAgY2hhciBuYW1lWzMyXTsKICB1bnNpZ25lZCBpbnQgc2l6ZTsK ICB1aW50NjRfdCBlbnRyeXRhYmxlW1hUX1RBQkxFX1NJWkUgLyBzaXplb2YodWludDY0X3QpXTsK fTsKCnN0cnVjdCBhcnB0X3JlcGxhY2UgewogIGNoYXIgbmFtZVszMl07CiAgdW5zaWduZWQgaW50 IHZhbGlkX2hvb2tzOwogIHVuc2lnbmVkIGludCBudW1fZW50cmllczsKICB1bnNpZ25lZCBpbnQg c2l6ZTsKICB1bnNpZ25lZCBpbnQgaG9va19lbnRyeVszXTsKICB1bnNpZ25lZCBpbnQgdW5kZXJm bG93WzNdOwogIHVuc2lnbmVkIGludCBudW1fY291bnRlcnM7CiAgc3RydWN0IHh0X2NvdW50ZXJz KiBjb3VudGVyczsKICB1aW50NjRfdCBlbnRyeXRhYmxlW1hUX1RBQkxFX1NJWkUgLyBzaXplb2Yo dWludDY0X3QpXTsKfTsKCnN0cnVjdCBhcnB0X3RhYmxlX2Rlc2MgewogIGNvbnN0IGNoYXIqIG5h bWU7CiAgc3RydWN0IGFycHRfZ2V0aW5mbyBpbmZvOwogIHN0cnVjdCBhcnB0X3JlcGxhY2UgcmVw bGFjZTsKfTsKCnN0YXRpYyBzdHJ1Y3QgYXJwdF90YWJsZV9kZXNjIGFycHRfdGFibGVzW10gPSB7 CiAgICB7Lm5hbWUgPSAiZmlsdGVyIn0sCn07CgojZGVmaW5lIEFSUFRfQkFTRV9DVEwgOTYKI2Rl ZmluZSBBUlBUX1NPX1NFVF9SRVBMQUNFIChBUlBUX0JBU0VfQ1RMKQojZGVmaW5lIEFSUFRfU09f R0VUX0lORk8gKEFSUFRfQkFTRV9DVEwpCiNkZWZpbmUgQVJQVF9TT19HRVRfRU5UUklFUyAoQVJQ VF9CQVNFX0NUTCArIDEpCgpzdGF0aWMgdm9pZCBjaGVja3BvaW50X2lwdGFibGVzKHN0cnVjdCBp cHRfdGFibGVfZGVzYyogdGFibGVzLCBpbnQgbnVtX3RhYmxlcywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgZmFtaWx5LCBpbnQgbGV2ZWwpCnsKICBpbnQgZmQgPSBzb2NrZXQo ZmFtaWx5LCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwogIGlmIChmZCA9PSAtMSkgewogICAg c3dpdGNoIChlcnJubykgewogICAgY2FzZSBFQUZOT1NVUFBPUlQ6CiAgICBjYXNlIEVOT1BST1RP T1BUOgogICAgY2FzZSBFTk9FTlQ6CiAgICAgIHJldHVybjsKICAgIH0KICAgIGV4aXQoMSk7CiAg fQogIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3RhYmxlczsgaSsrKSB7CiAgICBzdHJ1Y3QgaXB0 X3RhYmxlX2Rlc2MqIHRhYmxlID0gJnRhYmxlc1tpXTsKICAgIHN0cmNweSh0YWJsZS0+aW5mby5u YW1lLCB0YWJsZS0+bmFtZSk7CiAgICBzdHJjcHkodGFibGUtPnJlcGxhY2UubmFtZSwgdGFibGUt Pm5hbWUpOwogICAgc29ja2xlbl90IG9wdGxlbiA9IHNpemVvZih0YWJsZS0+aW5mbyk7CiAgICBp ZiAoZ2V0c29ja29wdChmZCwgbGV2ZWwsIElQVF9TT19HRVRfSU5GTywgJnRhYmxlLT5pbmZvLCAm b3B0bGVuKSkgewogICAgICBzd2l0Y2ggKGVycm5vKSB7CiAgICAgIGNhc2UgRVBFUk06CiAgICAg IGNhc2UgRU5PRU5UOgogICAgICBjYXNlIEVOT1BST1RPT1BUOgogICAgICAgIGNvbnRpbnVlOwog ICAgICB9CiAgICAgIGV4aXQoMSk7CiAgICB9CiAgICBpZiAodGFibGUtPmluZm8uc2l6ZSA+IHNp emVvZih0YWJsZS0+cmVwbGFjZS5lbnRyeXRhYmxlKSkKICAgICAgZXhpdCgxKTsKICAgIGlmICh0 YWJsZS0+aW5mby5udW1fZW50cmllcyA+IFhUX01BWF9FTlRSSUVTKQogICAgICBleGl0KDEpOwog ICAgc3RydWN0IGlwdF9nZXRfZW50cmllcyBlbnRyaWVzOwogICAgbWVtc2V0KCZlbnRyaWVzLCAw LCBzaXplb2YoZW50cmllcykpOwogICAgc3RyY3B5KGVudHJpZXMubmFtZSwgdGFibGUtPm5hbWUp OwogICAgZW50cmllcy5zaXplID0gdGFibGUtPmluZm8uc2l6ZTsKICAgIG9wdGxlbiA9IHNpemVv ZihlbnRyaWVzKSAtIHNpemVvZihlbnRyaWVzLmVudHJ5dGFibGUpICsgdGFibGUtPmluZm8uc2l6 ZTsKICAgIGlmIChnZXRzb2Nrb3B0KGZkLCBsZXZlbCwgSVBUX1NPX0dFVF9FTlRSSUVTLCAmZW50 cmllcywgJm9wdGxlbikpCiAgICAgIGV4aXQoMSk7CiAgICB0YWJsZS0+cmVwbGFjZS52YWxpZF9o b29rcyA9IHRhYmxlLT5pbmZvLnZhbGlkX2hvb2tzOwogICAgdGFibGUtPnJlcGxhY2UubnVtX2Vu dHJpZXMgPSB0YWJsZS0+aW5mby5udW1fZW50cmllczsKICAgIHRhYmxlLT5yZXBsYWNlLnNpemUg PSB0YWJsZS0+aW5mby5zaXplOwogICAgbWVtY3B5KHRhYmxlLT5yZXBsYWNlLmhvb2tfZW50cnks IHRhYmxlLT5pbmZvLmhvb2tfZW50cnksCiAgICAgICAgICAgc2l6ZW9mKHRhYmxlLT5yZXBsYWNl Lmhvb2tfZW50cnkpKTsKICAgIG1lbWNweSh0YWJsZS0+cmVwbGFjZS51bmRlcmZsb3csIHRhYmxl LT5pbmZvLnVuZGVyZmxvdywKICAgICAgICAgICBzaXplb2YodGFibGUtPnJlcGxhY2UudW5kZXJm bG93KSk7CiAgICBtZW1jcHkodGFibGUtPnJlcGxhY2UuZW50cnl0YWJsZSwgZW50cmllcy5lbnRy eXRhYmxlLCB0YWJsZS0+aW5mby5zaXplKTsKICB9CiAgY2xvc2UoZmQpOwp9CgpzdGF0aWMgdm9p ZCByZXNldF9pcHRhYmxlcyhzdHJ1Y3QgaXB0X3RhYmxlX2Rlc2MqIHRhYmxlcywgaW50IG51bV90 YWJsZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmYW1pbHksIGludCBsZXZlbCkK ewogIGludCBmZCA9IHNvY2tldChmYW1pbHksIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7CiAg aWYgKGZkID09IC0xKSB7CiAgICBzd2l0Y2ggKGVycm5vKSB7CiAgICBjYXNlIEVBRk5PU1VQUE9S VDoKICAgIGNhc2UgRU5PUFJPVE9PUFQ6CiAgICBjYXNlIEVOT0VOVDoKICAgICAgcmV0dXJuOwog ICAgfQogICAgZXhpdCgxKTsKICB9CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fdGFibGVzOyBp KyspIHsKICAgIHN0cnVjdCBpcHRfdGFibGVfZGVzYyogdGFibGUgPSAmdGFibGVzW2ldOwogICAg aWYgKHRhYmxlLT5pbmZvLnZhbGlkX2hvb2tzID09IDApCiAgICAgIGNvbnRpbnVlOwogICAgc3Ry dWN0IGlwdF9nZXRpbmZvIGluZm87CiAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7 CiAgICBzdHJjcHkoaW5mby5uYW1lLCB0YWJsZS0+bmFtZSk7CiAgICBzb2NrbGVuX3Qgb3B0bGVu ID0gc2l6ZW9mKGluZm8pOwogICAgaWYgKGdldHNvY2tvcHQoZmQsIGxldmVsLCBJUFRfU09fR0VU X0lORk8sICZpbmZvLCAmb3B0bGVuKSkKICAgICAgZXhpdCgxKTsKICAgIGlmIChtZW1jbXAoJnRh YmxlLT5pbmZvLCAmaW5mbywgc2l6ZW9mKHRhYmxlLT5pbmZvKSkgPT0gMCkgewogICAgICBzdHJ1 Y3QgaXB0X2dldF9lbnRyaWVzIGVudHJpZXM7CiAgICAgIG1lbXNldCgmZW50cmllcywgMCwgc2l6 ZW9mKGVudHJpZXMpKTsKICAgICAgc3RyY3B5KGVudHJpZXMubmFtZSwgdGFibGUtPm5hbWUpOwog ICAgICBlbnRyaWVzLnNpemUgPSB0YWJsZS0+aW5mby5zaXplOwogICAgICBvcHRsZW4gPSBzaXpl b2YoZW50cmllcykgLSBzaXplb2YoZW50cmllcy5lbnRyeXRhYmxlKSArIGVudHJpZXMuc2l6ZTsK ICAgICAgaWYgKGdldHNvY2tvcHQoZmQsIGxldmVsLCBJUFRfU09fR0VUX0VOVFJJRVMsICZlbnRy aWVzLCAmb3B0bGVuKSkKICAgICAgICBleGl0KDEpOwogICAgICBpZiAobWVtY21wKHRhYmxlLT5y ZXBsYWNlLmVudHJ5dGFibGUsIGVudHJpZXMuZW50cnl0YWJsZSwKICAgICAgICAgICAgICAgICB0 YWJsZS0+aW5mby5zaXplKSA9PSAwKQogICAgICAgIGNvbnRpbnVlOwogICAgfQogICAgc3RydWN0 IHh0X2NvdW50ZXJzIGNvdW50ZXJzW1hUX01BWF9FTlRSSUVTXTsKICAgIHRhYmxlLT5yZXBsYWNl Lm51bV9jb3VudGVycyA9IGluZm8ubnVtX2VudHJpZXM7CiAgICB0YWJsZS0+cmVwbGFjZS5jb3Vu dGVycyA9IGNvdW50ZXJzOwogICAgb3B0bGVuID0gc2l6ZW9mKHRhYmxlLT5yZXBsYWNlKSAtIHNp emVvZih0YWJsZS0+cmVwbGFjZS5lbnRyeXRhYmxlKSArCiAgICAgICAgICAgICB0YWJsZS0+cmVw bGFjZS5zaXplOwogICAgaWYgKHNldHNvY2tvcHQoZmQsIGxldmVsLCBJUFRfU09fU0VUX1JFUExB Q0UsICZ0YWJsZS0+cmVwbGFjZSwgb3B0bGVuKSkKICAgICAgZXhpdCgxKTsKICB9CiAgY2xvc2Uo ZmQpOwp9CgpzdGF0aWMgdm9pZCBjaGVja3BvaW50X2FycHRhYmxlcyh2b2lkKQp7CiAgaW50IGZk ID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7CiAgaWYgKGZkID09 IC0xKSB7CiAgICBzd2l0Y2ggKGVycm5vKSB7CiAgICBjYXNlIEVBRk5PU1VQUE9SVDoKICAgIGNh c2UgRU5PUFJPVE9PUFQ6CiAgICBjYXNlIEVOT0VOVDoKICAgICAgcmV0dXJuOwogICAgfQogICAg ZXhpdCgxKTsKICB9CiAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemVvZihhcnB0X3RhYmxl cykgLyBzaXplb2YoYXJwdF90YWJsZXNbMF0pOyBpKyspIHsKICAgIHN0cnVjdCBhcnB0X3RhYmxl X2Rlc2MqIHRhYmxlID0gJmFycHRfdGFibGVzW2ldOwogICAgc3RyY3B5KHRhYmxlLT5pbmZvLm5h bWUsIHRhYmxlLT5uYW1lKTsKICAgIHN0cmNweSh0YWJsZS0+cmVwbGFjZS5uYW1lLCB0YWJsZS0+ bmFtZSk7CiAgICBzb2NrbGVuX3Qgb3B0bGVuID0gc2l6ZW9mKHRhYmxlLT5pbmZvKTsKICAgIGlm IChnZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIEFSUFRfU09fR0VUX0lORk8sICZ0YWJsZS0+aW5mbywg Jm9wdGxlbikpIHsKICAgICAgc3dpdGNoIChlcnJubykgewogICAgICBjYXNlIEVQRVJNOgogICAg ICBjYXNlIEVOT0VOVDoKICAgICAgY2FzZSBFTk9QUk9UT09QVDoKICAgICAgICBjb250aW51ZTsK ICAgICAgfQogICAgICBleGl0KDEpOwogICAgfQogICAgaWYgKHRhYmxlLT5pbmZvLnNpemUgPiBz aXplb2YodGFibGUtPnJlcGxhY2UuZW50cnl0YWJsZSkpCiAgICAgIGV4aXQoMSk7CiAgICBpZiAo dGFibGUtPmluZm8ubnVtX2VudHJpZXMgPiBYVF9NQVhfRU5UUklFUykKICAgICAgZXhpdCgxKTsK ICAgIHN0cnVjdCBhcnB0X2dldF9lbnRyaWVzIGVudHJpZXM7CiAgICBtZW1zZXQoJmVudHJpZXMs IDAsIHNpemVvZihlbnRyaWVzKSk7CiAgICBzdHJjcHkoZW50cmllcy5uYW1lLCB0YWJsZS0+bmFt ZSk7CiAgICBlbnRyaWVzLnNpemUgPSB0YWJsZS0+aW5mby5zaXplOwogICAgb3B0bGVuID0gc2l6 ZW9mKGVudHJpZXMpIC0gc2l6ZW9mKGVudHJpZXMuZW50cnl0YWJsZSkgKyB0YWJsZS0+aW5mby5z aXplOwogICAgaWYgKGdldHNvY2tvcHQoZmQsIFNPTF9JUCwgQVJQVF9TT19HRVRfRU5UUklFUywg JmVudHJpZXMsICZvcHRsZW4pKQogICAgICBleGl0KDEpOwogICAgdGFibGUtPnJlcGxhY2UudmFs aWRfaG9va3MgPSB0YWJsZS0+aW5mby52YWxpZF9ob29rczsKICAgIHRhYmxlLT5yZXBsYWNlLm51 bV9lbnRyaWVzID0gdGFibGUtPmluZm8ubnVtX2VudHJpZXM7CiAgICB0YWJsZS0+cmVwbGFjZS5z aXplID0gdGFibGUtPmluZm8uc2l6ZTsKICAgIG1lbWNweSh0YWJsZS0+cmVwbGFjZS5ob29rX2Vu dHJ5LCB0YWJsZS0+aW5mby5ob29rX2VudHJ5LAogICAgICAgICAgIHNpemVvZih0YWJsZS0+cmVw bGFjZS5ob29rX2VudHJ5KSk7CiAgICBtZW1jcHkodGFibGUtPnJlcGxhY2UudW5kZXJmbG93LCB0 YWJsZS0+aW5mby51bmRlcmZsb3csCiAgICAgICAgICAgc2l6ZW9mKHRhYmxlLT5yZXBsYWNlLnVu ZGVyZmxvdykpOwogICAgbWVtY3B5KHRhYmxlLT5yZXBsYWNlLmVudHJ5dGFibGUsIGVudHJpZXMu ZW50cnl0YWJsZSwgdGFibGUtPmluZm8uc2l6ZSk7CiAgfQogIGNsb3NlKGZkKTsKfQoKc3RhdGlj IHZvaWQgcmVzZXRfYXJwdGFibGVzKCkKewogIGludCBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NL X1NUUkVBTSwgSVBQUk9UT19UQ1ApOwogIGlmIChmZCA9PSAtMSkgewogICAgc3dpdGNoIChlcnJu bykgewogICAgY2FzZSBFQUZOT1NVUFBPUlQ6CiAgICBjYXNlIEVOT1BST1RPT1BUOgogICAgY2Fz ZSBFTk9FTlQ6CiAgICAgIHJldHVybjsKICAgIH0KICAgIGV4aXQoMSk7CiAgfQogIGZvciAodW5z aWduZWQgaSA9IDA7IGkgPCBzaXplb2YoYXJwdF90YWJsZXMpIC8gc2l6ZW9mKGFycHRfdGFibGVz WzBdKTsgaSsrKSB7CiAgICBzdHJ1Y3QgYXJwdF90YWJsZV9kZXNjKiB0YWJsZSA9ICZhcnB0X3Rh Ymxlc1tpXTsKICAgIGlmICh0YWJsZS0+aW5mby52YWxpZF9ob29rcyA9PSAwKQogICAgICBjb250 aW51ZTsKICAgIHN0cnVjdCBhcnB0X2dldGluZm8gaW5mbzsKICAgIG1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKGluZm8pKTsKICAgIHN0cmNweShpbmZvLm5hbWUsIHRhYmxlLT5uYW1lKTsKICAgIHNv Y2tsZW5fdCBvcHRsZW4gPSBzaXplb2YoaW5mbyk7CiAgICBpZiAoZ2V0c29ja29wdChmZCwgU09M X0lQLCBBUlBUX1NPX0dFVF9JTkZPLCAmaW5mbywgJm9wdGxlbikpCiAgICAgIGV4aXQoMSk7CiAg ICBpZiAobWVtY21wKCZ0YWJsZS0+aW5mbywgJmluZm8sIHNpemVvZih0YWJsZS0+aW5mbykpID09 IDApIHsKICAgICAgc3RydWN0IGFycHRfZ2V0X2VudHJpZXMgZW50cmllczsKICAgICAgbWVtc2V0 KCZlbnRyaWVzLCAwLCBzaXplb2YoZW50cmllcykpOwogICAgICBzdHJjcHkoZW50cmllcy5uYW1l LCB0YWJsZS0+bmFtZSk7CiAgICAgIGVudHJpZXMuc2l6ZSA9IHRhYmxlLT5pbmZvLnNpemU7CiAg ICAgIG9wdGxlbiA9IHNpemVvZihlbnRyaWVzKSAtIHNpemVvZihlbnRyaWVzLmVudHJ5dGFibGUp ICsgZW50cmllcy5zaXplOwogICAgICBpZiAoZ2V0c29ja29wdChmZCwgU09MX0lQLCBBUlBUX1NP X0dFVF9FTlRSSUVTLCAmZW50cmllcywgJm9wdGxlbikpCiAgICAgICAgZXhpdCgxKTsKICAgICAg aWYgKG1lbWNtcCh0YWJsZS0+cmVwbGFjZS5lbnRyeXRhYmxlLCBlbnRyaWVzLmVudHJ5dGFibGUs CiAgICAgICAgICAgICAgICAgdGFibGUtPmluZm8uc2l6ZSkgPT0gMCkKICAgICAgICBjb250aW51 ZTsKICAgIH0gZWxzZSB7CiAgICB9CiAgICBzdHJ1Y3QgeHRfY291bnRlcnMgY291bnRlcnNbWFRf TUFYX0VOVFJJRVNdOwogICAgdGFibGUtPnJlcGxhY2UubnVtX2NvdW50ZXJzID0gaW5mby5udW1f ZW50cmllczsKICAgIHRhYmxlLT5yZXBsYWNlLmNvdW50ZXJzID0gY291bnRlcnM7CiAgICBvcHRs ZW4gPSBzaXplb2YodGFibGUtPnJlcGxhY2UpIC0gc2l6ZW9mKHRhYmxlLT5yZXBsYWNlLmVudHJ5 dGFibGUpICsKICAgICAgICAgICAgIHRhYmxlLT5yZXBsYWNlLnNpemU7CiAgICBpZiAoc2V0c29j a29wdChmZCwgU09MX0lQLCBBUlBUX1NPX1NFVF9SRVBMQUNFLCAmdGFibGUtPnJlcGxhY2UsIG9w dGxlbikpCiAgICAgIGV4aXQoMSk7CiAgfQogIGNsb3NlKGZkKTsKfQoKI2RlZmluZSBORl9CUl9O VU1IT09LUyA2CiNkZWZpbmUgRUJUX1RBQkxFX01BWE5BTUVMRU4gMzIKI2RlZmluZSBFQlRfQ0hB SU5fTUFYTkFNRUxFTiAzMgojZGVmaW5lIEVCVF9CQVNFX0NUTCAxMjgKI2RlZmluZSBFQlRfU09f U0VUX0VOVFJJRVMgKEVCVF9CQVNFX0NUTCkKI2RlZmluZSBFQlRfU09fR0VUX0lORk8gKEVCVF9C QVNFX0NUTCkKI2RlZmluZSBFQlRfU09fR0VUX0VOVFJJRVMgKEVCVF9TT19HRVRfSU5GTyArIDEp CiNkZWZpbmUgRUJUX1NPX0dFVF9JTklUX0lORk8gKEVCVF9TT19HRVRfRU5UUklFUyArIDEpCiNk ZWZpbmUgRUJUX1NPX0dFVF9JTklUX0VOVFJJRVMgKEVCVF9TT19HRVRfSU5JVF9JTkZPICsgMSkK CnN0cnVjdCBlYnRfcmVwbGFjZSB7CiAgY2hhciBuYW1lW0VCVF9UQUJMRV9NQVhOQU1FTEVOXTsK ICB1bnNpZ25lZCBpbnQgdmFsaWRfaG9va3M7CiAgdW5zaWduZWQgaW50IG5lbnRyaWVzOwogIHVu c2lnbmVkIGludCBlbnRyaWVzX3NpemU7CiAgc3RydWN0IGVidF9lbnRyaWVzKiBob29rX2VudHJ5 W05GX0JSX05VTUhPT0tTXTsKICB1bnNpZ25lZCBpbnQgbnVtX2NvdW50ZXJzOwogIHN0cnVjdCBl YnRfY291bnRlciogY291bnRlcnM7CiAgY2hhciogZW50cmllczsKfTsKCnN0cnVjdCBlYnRfZW50 cmllcyB7CiAgdW5zaWduZWQgaW50IGRpc3Rpbmd1aXNoZXI7CiAgY2hhciBuYW1lW0VCVF9DSEFJ Tl9NQVhOQU1FTEVOXTsKICB1bnNpZ25lZCBpbnQgY291bnRlcl9vZmZzZXQ7CiAgaW50IHBvbGlj eTsKICB1bnNpZ25lZCBpbnQgbmVudHJpZXM7CiAgY2hhciBkYXRhWzBdIF9fYXR0cmlidXRlX18o KGFsaWduZWQoX19hbGlnbm9mX18oc3RydWN0IGVidF9yZXBsYWNlKSkpKTsKfTsKCnN0cnVjdCBl YnRfdGFibGVfZGVzYyB7CiAgY29uc3QgY2hhciogbmFtZTsKICBzdHJ1Y3QgZWJ0X3JlcGxhY2Ug cmVwbGFjZTsKICBjaGFyIGVudHJ5dGFibGVbWFRfVEFCTEVfU0laRV07Cn07CgpzdGF0aWMgc3Ry dWN0IGVidF90YWJsZV9kZXNjIGVidF90YWJsZXNbXSA9IHsKICAgIHsubmFtZSA9ICJmaWx0ZXIi fSwKICAgIHsubmFtZSA9ICJuYXQifSwKICAgIHsubmFtZSA9ICJicm91dGUifSwKfTsKCnN0YXRp YyB2b2lkIGNoZWNrcG9pbnRfZWJ0YWJsZXModm9pZCkKewogIGludCBmZCA9IHNvY2tldChBRl9J TkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwogIGlmIChmZCA9PSAtMSkgewogICAgc3dp dGNoIChlcnJubykgewogICAgY2FzZSBFQUZOT1NVUFBPUlQ6CiAgICBjYXNlIEVOT1BST1RPT1BU OgogICAgY2FzZSBFTk9FTlQ6CiAgICAgIHJldHVybjsKICAgIH0KICAgIGV4aXQoMSk7CiAgfQog IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGVidF90YWJsZXMpIC8gc2l6ZW9mKGVidF90 YWJsZXNbMF0pOyBpKyspIHsKICAgIHN0cnVjdCBlYnRfdGFibGVfZGVzYyogdGFibGUgPSAmZWJ0 X3RhYmxlc1tpXTsKICAgIHN0cmNweSh0YWJsZS0+cmVwbGFjZS5uYW1lLCB0YWJsZS0+bmFtZSk7 CiAgICBzb2NrbGVuX3Qgb3B0bGVuID0gc2l6ZW9mKHRhYmxlLT5yZXBsYWNlKTsKICAgIGlmIChn ZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIEVCVF9TT19HRVRfSU5JVF9JTkZPLCAmdGFibGUtPnJlcGxh Y2UsCiAgICAgICAgICAgICAgICAgICAmb3B0bGVuKSkgewogICAgICBzd2l0Y2ggKGVycm5vKSB7 CiAgICAgIGNhc2UgRVBFUk06CiAgICAgIGNhc2UgRU5PRU5UOgogICAgICBjYXNlIEVOT1BST1RP T1BUOgogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGV4aXQoMSk7CiAgICB9CiAgICBp ZiAodGFibGUtPnJlcGxhY2UuZW50cmllc19zaXplID4gc2l6ZW9mKHRhYmxlLT5lbnRyeXRhYmxl KSkKICAgICAgZXhpdCgxKTsKICAgIHRhYmxlLT5yZXBsYWNlLm51bV9jb3VudGVycyA9IDA7CiAg ICB0YWJsZS0+cmVwbGFjZS5lbnRyaWVzID0gdGFibGUtPmVudHJ5dGFibGU7CiAgICBvcHRsZW4g PSBzaXplb2YodGFibGUtPnJlcGxhY2UpICsgdGFibGUtPnJlcGxhY2UuZW50cmllc19zaXplOwog ICAgaWYgKGdldHNvY2tvcHQoZmQsIFNPTF9JUCwgRUJUX1NPX0dFVF9JTklUX0VOVFJJRVMsICZ0 YWJsZS0+cmVwbGFjZSwKICAgICAgICAgICAgICAgICAgICZvcHRsZW4pKQogICAgICBleGl0KDEp OwogIH0KICBjbG9zZShmZCk7Cn0KCnN0YXRpYyB2b2lkIHJlc2V0X2VidGFibGVzKCkKewogIGlu dCBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwogIGlmIChm ZCA9PSAtMSkgewogICAgc3dpdGNoIChlcnJubykgewogICAgY2FzZSBFQUZOT1NVUFBPUlQ6CiAg ICBjYXNlIEVOT1BST1RPT1BUOgogICAgY2FzZSBFTk9FTlQ6CiAgICAgIHJldHVybjsKICAgIH0K ICAgIGV4aXQoMSk7CiAgfQogIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplb2YoZWJ0X3Rh YmxlcykgLyBzaXplb2YoZWJ0X3RhYmxlc1swXSk7IGkrKykgewogICAgc3RydWN0IGVidF90YWJs ZV9kZXNjKiB0YWJsZSA9ICZlYnRfdGFibGVzW2ldOwogICAgaWYgKHRhYmxlLT5yZXBsYWNlLnZh bGlkX2hvb2tzID09IDApCiAgICAgIGNvbnRpbnVlOwogICAgc3RydWN0IGVidF9yZXBsYWNlIHJl cGxhY2U7CiAgICBtZW1zZXQoJnJlcGxhY2UsIDAsIHNpemVvZihyZXBsYWNlKSk7CiAgICBzdHJj cHkocmVwbGFjZS5uYW1lLCB0YWJsZS0+bmFtZSk7CiAgICBzb2NrbGVuX3Qgb3B0bGVuID0gc2l6 ZW9mKHJlcGxhY2UpOwogICAgaWYgKGdldHNvY2tvcHQoZmQsIFNPTF9JUCwgRUJUX1NPX0dFVF9J TkZPLCAmcmVwbGFjZSwgJm9wdGxlbikpCiAgICAgIGV4aXQoMSk7CiAgICByZXBsYWNlLm51bV9j b3VudGVycyA9IDA7CiAgICB0YWJsZS0+cmVwbGFjZS5lbnRyaWVzID0gMDsKICAgIGZvciAodW5z aWduZWQgaCA9IDA7IGggPCBORl9CUl9OVU1IT09LUzsgaCsrKQogICAgICB0YWJsZS0+cmVwbGFj ZS5ob29rX2VudHJ5W2hdID0gMDsKICAgIGlmIChtZW1jbXAoJnRhYmxlLT5yZXBsYWNlLCAmcmVw bGFjZSwgc2l6ZW9mKHRhYmxlLT5yZXBsYWNlKSkgPT0gMCkgewogICAgICBjaGFyIGVudHJ5dGFi bGVbWFRfVEFCTEVfU0laRV07CiAgICAgIG1lbXNldCgmZW50cnl0YWJsZSwgMCwgc2l6ZW9mKGVu dHJ5dGFibGUpKTsKICAgICAgcmVwbGFjZS5lbnRyaWVzID0gZW50cnl0YWJsZTsKICAgICAgb3B0 bGVuID0gc2l6ZW9mKHJlcGxhY2UpICsgcmVwbGFjZS5lbnRyaWVzX3NpemU7CiAgICAgIGlmIChn ZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIEVCVF9TT19HRVRfRU5UUklFUywgJnJlcGxhY2UsICZvcHRs ZW4pKQogICAgICAgIGV4aXQoMSk7CiAgICAgIGlmIChtZW1jbXAodGFibGUtPmVudHJ5dGFibGUs IGVudHJ5dGFibGUsIHJlcGxhY2UuZW50cmllc19zaXplKSA9PSAwKQogICAgICAgIGNvbnRpbnVl OwogICAgfQogICAgZm9yICh1bnNpZ25lZCBqID0gMCwgaCA9IDA7IGggPCBORl9CUl9OVU1IT09L UzsgaCsrKSB7CiAgICAgIGlmICh0YWJsZS0+cmVwbGFjZS52YWxpZF9ob29rcyAmICgxIDw8IGgp KSB7CiAgICAgICAgdGFibGUtPnJlcGxhY2UuaG9va19lbnRyeVtoXSA9CiAgICAgICAgICAgIChz dHJ1Y3QgZWJ0X2VudHJpZXMqKXRhYmxlLT5lbnRyeXRhYmxlICsgajsKICAgICAgICBqKys7CiAg ICAgIH0KICAgIH0KICAgIHRhYmxlLT5yZXBsYWNlLmVudHJpZXMgPSB0YWJsZS0+ZW50cnl0YWJs ZTsKICAgIG9wdGxlbiA9IHNpemVvZih0YWJsZS0+cmVwbGFjZSkgKyB0YWJsZS0+cmVwbGFjZS5l bnRyaWVzX3NpemU7CiAgICBpZiAoc2V0c29ja29wdChmZCwgU09MX0lQLCBFQlRfU09fU0VUX0VO VFJJRVMsICZ0YWJsZS0+cmVwbGFjZSwgb3B0bGVuKSkKICAgICAgZXhpdCgxKTsKICB9CiAgY2xv c2UoZmQpOwp9CgpzdGF0aWMgdm9pZCBjaGVja3BvaW50X25ldF9uYW1lc3BhY2Uodm9pZCkKewog IGNoZWNrcG9pbnRfZWJ0YWJsZXMoKTsKICBjaGVja3BvaW50X2FycHRhYmxlcygpOwogIGNoZWNr cG9pbnRfaXB0YWJsZXMoaXB2NF90YWJsZXMsIHNpemVvZihpcHY0X3RhYmxlcykgLyBzaXplb2Yo aXB2NF90YWJsZXNbMF0pLAogICAgICAgICAgICAgICAgICAgICAgQUZfSU5FVCwgU09MX0lQKTsK ICBjaGVja3BvaW50X2lwdGFibGVzKGlwdjZfdGFibGVzLCBzaXplb2YoaXB2Nl90YWJsZXMpIC8g c2l6ZW9mKGlwdjZfdGFibGVzWzBdKSwKICAgICAgICAgICAgICAgICAgICAgIEFGX0lORVQ2LCBT T0xfSVBWNik7Cn0KCnN0YXRpYyB2b2lkIHJlc2V0X25ldF9uYW1lc3BhY2Uodm9pZCkKewogIHJl c2V0X2VidGFibGVzKCk7CiAgcmVzZXRfYXJwdGFibGVzKCk7CiAgcmVzZXRfaXB0YWJsZXMoaXB2 NF90YWJsZXMsIHNpemVvZihpcHY0X3RhYmxlcykgLyBzaXplb2YoaXB2NF90YWJsZXNbMF0pLAog ICAgICAgICAgICAgICAgIEFGX0lORVQsIFNPTF9JUCk7CiAgcmVzZXRfaXB0YWJsZXMoaXB2Nl90 YWJsZXMsIHNpemVvZihpcHY2X3RhYmxlcykgLyBzaXplb2YoaXB2Nl90YWJsZXNbMF0pLAogICAg ICAgICAgICAgICAgIEFGX0lORVQ2LCBTT0xfSVBWNik7Cn0KCnN0YXRpYyB2b2lkIG1vdW50X2Nn cm91cHMoY29uc3QgY2hhciogZGlyLCBjb25zdCBjaGFyKiogY29udHJvbGxlcnMsIGludCBjb3Vu dCkKewogIGlmIChta2RpcihkaXIsIDA3NzcpKSB7CiAgICByZXR1cm47CiAgfQogIGNoYXIgZW5h YmxlZFsxMjhdID0gezB9OwogIGludCBpID0gMDsKICBmb3IgKDsgaSA8IGNvdW50OyBpKyspIHsK ICAgIGlmIChtb3VudCgibm9uZSIsIGRpciwgImNncm91cCIsIDAsIGNvbnRyb2xsZXJzW2ldKSkg ewogICAgICBjb250aW51ZTsKICAgIH0KICAgIHVtb3VudChkaXIpOwogICAgc3RyY2F0KGVuYWJs ZWQsICIsIik7CiAgICBzdHJjYXQoZW5hYmxlZCwgY29udHJvbGxlcnNbaV0pOwogIH0KICBpZiAo ZW5hYmxlZFswXSA9PSAwKSB7CiAgICBpZiAocm1kaXIoZGlyKSAmJiBlcnJubyAhPSBFQlVTWSkK ICAgICAgZXhpdCgxKTsKICAgIHJldHVybjsKICB9CiAgaWYgKG1vdW50KCJub25lIiwgZGlyLCAi Y2dyb3VwIiwgMCwgZW5hYmxlZCArIDEpKSB7CiAgICBpZiAocm1kaXIoZGlyKSAmJiBlcnJubyAh PSBFQlVTWSkKICAgICAgZXhpdCgxKTsKICB9CiAgaWYgKGNobW9kKGRpciwgMDc3NykpIHsKICB9 Cn0KCnN0YXRpYyB2b2lkIG1vdW50X2Nncm91cHMyKGNvbnN0IGNoYXIqKiBjb250cm9sbGVycywg aW50IGNvdW50KQp7CiAgaWYgKG1rZGlyKCIvc3l6Y2dyb3VwL3VuaWZpZWQiLCAwNzc3KSkgewog ICAgcmV0dXJuOwogIH0KICBpZiAobW91bnQoIm5vbmUiLCAiL3N5emNncm91cC91bmlmaWVkIiwg ImNncm91cDIiLCAwLCBOVUxMKSkgewogICAgaWYgKHJtZGlyKCIvc3l6Y2dyb3VwL3VuaWZpZWQi KSAmJiBlcnJubyAhPSBFQlVTWSkKICAgICAgZXhpdCgxKTsKICAgIHJldHVybjsKICB9CiAgaWYg KGNobW9kKCIvc3l6Y2dyb3VwL3VuaWZpZWQiLCAwNzc3KSkgewogIH0KICBpbnQgY29udHJvbCA9 IG9wZW4oIi9zeXpjZ3JvdXAvdW5pZmllZC9jZ3JvdXAuc3VidHJlZV9jb250cm9sIiwgT19XUk9O TFkpOwogIGlmIChjb250cm9sID09IC0xKQogICAgcmV0dXJuOwogIGludCBpOwogIGZvciAoaSA9 IDA7IGkgPCBjb3VudDsgaSsrKQogICAgaWYgKHdyaXRlKGNvbnRyb2wsIGNvbnRyb2xsZXJzW2ld LCBzdHJsZW4oY29udHJvbGxlcnNbaV0pKSA8IDApIHsKICAgIH0KICBjbG9zZShjb250cm9sKTsK fQoKc3RhdGljIHZvaWQgc2V0dXBfY2dyb3VwcygpCnsKICBjb25zdCBjaGFyKiB1bmlmaWVkX2Nv bnRyb2xsZXJzW10gPSB7IitjcHUiLCAiK2lvIiwgIitwaWRzIn07CiAgY29uc3QgY2hhciogbmV0 X2NvbnRyb2xsZXJzW10gPSB7Im5ldCIsICJuZXRfcHJpbyIsICJkZXZpY2VzIiwgImJsa2lvIiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJlZXplciJ9OwogIGNvbnN0IGNo YXIqIGNwdV9jb250cm9sbGVyc1tdID0geyJjcHVzZXQiLCAiY3B1YWNjdCIsICJodWdldGxiIiwg InJsaW1pdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeSJ9Owog IGlmIChta2RpcigiL3N5emNncm91cCIsIDA3NzcpKSB7CiAgICByZXR1cm47CiAgfQogIG1vdW50 X2Nncm91cHMyKHVuaWZpZWRfY29udHJvbGxlcnMsCiAgICAgICAgICAgICAgICAgc2l6ZW9mKHVu aWZpZWRfY29udHJvbGxlcnMpIC8gc2l6ZW9mKHVuaWZpZWRfY29udHJvbGxlcnNbMF0pKTsKICBt b3VudF9jZ3JvdXBzKCIvc3l6Y2dyb3VwL25ldCIsIG5ldF9jb250cm9sbGVycywKICAgICAgICAg ICAgICAgIHNpemVvZihuZXRfY29udHJvbGxlcnMpIC8gc2l6ZW9mKG5ldF9jb250cm9sbGVyc1sw XSkpOwogIG1vdW50X2Nncm91cHMoIi9zeXpjZ3JvdXAvY3B1IiwgY3B1X2NvbnRyb2xsZXJzLAog ICAgICAgICAgICAgICAgc2l6ZW9mKGNwdV9jb250cm9sbGVycykgLyBzaXplb2YoY3B1X2NvbnRy b2xsZXJzWzBdKSk7CiAgd3JpdGVfZmlsZSgiL3N5emNncm91cC9jcHUvY2dyb3VwLmNsb25lX2No aWxkcmVuIiwgIjEiKTsKICB3cml0ZV9maWxlKCIvc3l6Y2dyb3VwL2NwdS9jcHVzZXQubWVtb3J5 X3ByZXNzdXJlX2VuYWJsZWQiLCAiMSIpOwp9CgpzdGF0aWMgdm9pZCBzZXR1cF9jZ3JvdXBzX2xv b3AoKQp7CiAgaW50IHBpZCA9IGdldHBpZCgpOwogIGNoYXIgZmlsZVsxMjhdOwogIGNoYXIgY2dy b3VwZGlyWzY0XTsKICBzbnByaW50ZihjZ3JvdXBkaXIsIHNpemVvZihjZ3JvdXBkaXIpLCAiL3N5 emNncm91cC91bmlmaWVkL3N5eiVsbHUiLCBwcm9jaWQpOwogIGlmIChta2RpcihjZ3JvdXBkaXIs IDA3NzcpKSB7CiAgfQogIHNucHJpbnRmKGZpbGUsIHNpemVvZihmaWxlKSwgIiVzL3BpZHMubWF4 IiwgY2dyb3VwZGlyKTsKICB3cml0ZV9maWxlKGZpbGUsICIzMiIpOwogIHNucHJpbnRmKGZpbGUs IHNpemVvZihmaWxlKSwgIiVzL2Nncm91cC5wcm9jcyIsIGNncm91cGRpcik7CiAgd3JpdGVfZmls ZShmaWxlLCAiJWQiLCBwaWQpOwogIHNucHJpbnRmKGNncm91cGRpciwgc2l6ZW9mKGNncm91cGRp ciksICIvc3l6Y2dyb3VwL2NwdS9zeXolbGx1IiwgcHJvY2lkKTsKICBpZiAobWtkaXIoY2dyb3Vw ZGlyLCAwNzc3KSkgewogIH0KICBzbnByaW50ZihmaWxlLCBzaXplb2YoZmlsZSksICIlcy9jZ3Jv dXAucHJvY3MiLCBjZ3JvdXBkaXIpOwogIHdyaXRlX2ZpbGUoZmlsZSwgIiVkIiwgcGlkKTsKICBz bnByaW50ZihmaWxlLCBzaXplb2YoZmlsZSksICIlcy9tZW1vcnkuc29mdF9saW1pdF9pbl9ieXRl cyIsIGNncm91cGRpcik7CiAgd3JpdGVfZmlsZShmaWxlLCAiJWQiLCAyOTkgPDwgMjApOwogIHNu cHJpbnRmKGZpbGUsIHNpemVvZihmaWxlKSwgIiVzL21lbW9yeS5saW1pdF9pbl9ieXRlcyIsIGNn cm91cGRpcik7CiAgd3JpdGVfZmlsZShmaWxlLCAiJWQiLCAzMDAgPDwgMjApOwogIHNucHJpbnRm KGNncm91cGRpciwgc2l6ZW9mKGNncm91cGRpciksICIvc3l6Y2dyb3VwL25ldC9zeXolbGx1Iiwg cHJvY2lkKTsKICBpZiAobWtkaXIoY2dyb3VwZGlyLCAwNzc3KSkgewogIH0KICBzbnByaW50Zihm aWxlLCBzaXplb2YoZmlsZSksICIlcy9jZ3JvdXAucHJvY3MiLCBjZ3JvdXBkaXIpOwogIHdyaXRl X2ZpbGUoZmlsZSwgIiVkIiwgcGlkKTsKfQoKc3RhdGljIHZvaWQgc2V0dXBfY2dyb3Vwc190ZXN0 KCkKewogIGNoYXIgY2dyb3VwZGlyWzY0XTsKICBzbnByaW50ZihjZ3JvdXBkaXIsIHNpemVvZihj Z3JvdXBkaXIpLCAiL3N5emNncm91cC91bmlmaWVkL3N5eiVsbHUiLCBwcm9jaWQpOwogIGlmIChz eW1saW5rKGNncm91cGRpciwgIi4vY2dyb3VwIikpIHsKICB9CiAgc25wcmludGYoY2dyb3VwZGly LCBzaXplb2YoY2dyb3VwZGlyKSwgIi9zeXpjZ3JvdXAvY3B1L3N5eiVsbHUiLCBwcm9jaWQpOwog IGlmIChzeW1saW5rKGNncm91cGRpciwgIi4vY2dyb3VwLmNwdSIpKSB7CiAgfQogIHNucHJpbnRm KGNncm91cGRpciwgc2l6ZW9mKGNncm91cGRpciksICIvc3l6Y2dyb3VwL25ldC9zeXolbGx1Iiwg cHJvY2lkKTsKICBpZiAoc3ltbGluayhjZ3JvdXBkaXIsICIuL2Nncm91cC5uZXQiKSkgewogIH0K fQoKc3RhdGljIHZvaWQgc2V0dXBfY29tbW9uKCkKewogIGlmIChtb3VudCgwLCAiL3N5cy9mcy9m dXNlL2Nvbm5lY3Rpb25zIiwgImZ1c2VjdGwiLCAwLCAwKSkgewogIH0KfQoKc3RhdGljIHZvaWQg c2V0dXBfYmluZGVyZnMoKQp7CiAgaWYgKG1rZGlyKCIvZGV2L2JpbmRlcmZzIiwgMDc3NykpIHsK ICB9CiAgaWYgKG1vdW50KCJiaW5kZXIiLCAiL2Rldi9iaW5kZXJmcyIsICJiaW5kZXIiLCAwLCBO VUxMKSkgewogIH0KfQoKc3RhdGljIHZvaWQgbG9vcCgpOwoKc3RhdGljIHZvaWQgc2FuZGJveF9j b21tb24oKQp7CiAgcHJjdGwoUFJfU0VUX1BERUFUSFNJRywgU0lHS0lMTCwgMCwgMCwgMCk7CiAg c2V0c2lkKCk7CiAgc3RydWN0IHJsaW1pdCBybGltOwogIHJsaW0ucmxpbV9jdXIgPSBybGltLnJs aW1fbWF4ID0gKDIwMCA8PCAyMCk7CiAgc2V0cmxpbWl0KFJMSU1JVF9BUywgJnJsaW0pOwogIHJs aW0ucmxpbV9jdXIgPSBybGltLnJsaW1fbWF4ID0gMzIgPDwgMjA7CiAgc2V0cmxpbWl0KFJMSU1J VF9NRU1MT0NLLCAmcmxpbSk7CiAgcmxpbS5ybGltX2N1ciA9IHJsaW0ucmxpbV9tYXggPSAxMzYg PDwgMjA7CiAgc2V0cmxpbWl0KFJMSU1JVF9GU0laRSwgJnJsaW0pOwogIHJsaW0ucmxpbV9jdXIg PSBybGltLnJsaW1fbWF4ID0gMSA8PCAyMDsKICBzZXRybGltaXQoUkxJTUlUX1NUQUNLLCAmcmxp bSk7CiAgcmxpbS5ybGltX2N1ciA9IHJsaW0ucmxpbV9tYXggPSAxMjggPDwgMjA7CiAgc2V0cmxp bWl0KFJMSU1JVF9DT1JFLCAmcmxpbSk7CiAgcmxpbS5ybGltX2N1ciA9IHJsaW0ucmxpbV9tYXgg PSAyNTY7CiAgc2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZybGltKTsKICBpZiAodW5zaGFyZShD TE9ORV9ORVdOUykpIHsKICB9CiAgaWYgKG1vdW50KE5VTEwsICIvIiwgTlVMTCwgTVNfUkVDIHwg TVNfUFJJVkFURSwgTlVMTCkpIHsKICB9CiAgaWYgKHVuc2hhcmUoQ0xPTkVfTkVXSVBDKSkgewog IH0KICBpZiAodW5zaGFyZSgweDAyMDAwMDAwKSkgewogIH0KICBpZiAodW5zaGFyZShDTE9ORV9O RVdVVFMpKSB7CiAgfQogIGlmICh1bnNoYXJlKENMT05FX1NZU1ZTRU0pKSB7CiAgfQogIHR5cGVk ZWYgc3RydWN0IHsKICAgIGNvbnN0IGNoYXIqIG5hbWU7CiAgICBjb25zdCBjaGFyKiB2YWx1ZTsK ICB9IHN5c2N0bF90OwogIHN0YXRpYyBjb25zdCBzeXNjdGxfdCBzeXNjdGxzW10gPSB7CiAgICAg IHsiL3Byb2Mvc3lzL2tlcm5lbC9zaG1tYXgiLCAiMTY3NzcyMTYifSwKICAgICAgeyIvcHJvYy9z eXMva2VybmVsL3NobWFsbCIsICI1MzY4NzA5MTIifSwKICAgICAgeyIvcHJvYy9zeXMva2VybmVs L3NobW1uaSIsICIxMDI0In0sCiAgICAgIHsiL3Byb2Mvc3lzL2tlcm5lbC9tc2dtYXgiLCAiODE5 MiJ9LAogICAgICB7Ii9wcm9jL3N5cy9rZXJuZWwvbXNnbW5pIiwgIjEwMjQifSwKICAgICAgeyIv cHJvYy9zeXMva2VybmVsL21zZ21uYiIsICIxMDI0In0sCiAgICAgIHsiL3Byb2Mvc3lzL2tlcm5l bC9zZW0iLCAiMTAyNCAxMDQ4NTc2IDUwMCAxMDI0In0sCiAgfTsKICB1bnNpZ25lZCBpOwogIGZv ciAoaSA9IDA7IGkgPCBzaXplb2Yoc3lzY3RscykgLyBzaXplb2Yoc3lzY3Rsc1swXSk7IGkrKykK ICAgIHdyaXRlX2ZpbGUoc3lzY3Rsc1tpXS5uYW1lLCBzeXNjdGxzW2ldLnZhbHVlKTsKfQoKc3Rh dGljIGludCB3YWl0X2Zvcl9sb29wKGludCBwaWQpCnsKICBpZiAocGlkIDwgMCkKICAgIGV4aXQo MSk7CiAgaW50IHN0YXR1cyA9IDA7CiAgd2hpbGUgKHdhaXRwaWQoLTEsICZzdGF0dXMsIF9fV0FM TCkgIT0gcGlkKSB7CiAgfQogIHJldHVybiBXRVhJVFNUQVRVUyhzdGF0dXMpOwp9CgpzdGF0aWMg dm9pZCBkcm9wX2NhcHModm9pZCkKewogIHN0cnVjdCBfX3VzZXJfY2FwX2hlYWRlcl9zdHJ1Y3Qg Y2FwX2hkciA9IHt9OwogIHN0cnVjdCBfX3VzZXJfY2FwX2RhdGFfc3RydWN0IGNhcF9kYXRhWzJd ID0ge307CiAgY2FwX2hkci52ZXJzaW9uID0gX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8zOwog IGNhcF9oZHIucGlkID0gZ2V0cGlkKCk7CiAgaWYgKHN5c2NhbGwoU1lTX2NhcGdldCwgJmNhcF9o ZHIsICZjYXBfZGF0YSkpCiAgICBleGl0KDEpOwogIGNvbnN0IGludCBkcm9wID0gKDEgPDwgQ0FQ X1NZU19QVFJBQ0UpIHwgKDEgPDwgQ0FQX1NZU19OSUNFKTsKICBjYXBfZGF0YVswXS5lZmZlY3Rp dmUgJj0gfmRyb3A7CiAgY2FwX2RhdGFbMF0ucGVybWl0dGVkICY9IH5kcm9wOwogIGNhcF9kYXRh WzBdLmluaGVyaXRhYmxlICY9IH5kcm9wOwogIGlmIChzeXNjYWxsKFNZU19jYXBzZXQsICZjYXBf aGRyLCAmY2FwX2RhdGEpKQogICAgZXhpdCgxKTsKfQoKc3RhdGljIGludCBkb19zYW5kYm94X25v bmUodm9pZCkKewogIGlmICh1bnNoYXJlKENMT05FX05FV1BJRCkpIHsKICB9CiAgaW50IHBpZCA9 IGZvcmsoKTsKICBpZiAocGlkICE9IDApCiAgICByZXR1cm4gd2FpdF9mb3JfbG9vcChwaWQpOwog IHNldHVwX2NvbW1vbigpOwogIGluaXRpYWxpemVfdmhjaSgpOwogIHNhbmRib3hfY29tbW9uKCk7 CiAgZHJvcF9jYXBzKCk7CiAgaW5pdGlhbGl6ZV9uZXRkZXZpY2VzX2luaXQoKTsKICBpZiAodW5z aGFyZShDTE9ORV9ORVdORVQpKSB7CiAgfQogIHdyaXRlX2ZpbGUoIi9wcm9jL3N5cy9uZXQvaXB2 NC9waW5nX2dyb3VwX3JhbmdlIiwgIjAgNjU1MzUiKTsKICBpbml0aWFsaXplX3R1bigpOwogIGlu aXRpYWxpemVfbmV0ZGV2aWNlcygpOwogIGluaXRpYWxpemVfd2lmaV9kZXZpY2VzKCk7CiAgc2V0 dXBfYmluZGVyZnMoKTsKICBsb29wKCk7CiAgZXhpdCgxKTsKfQoKI2RlZmluZSBGU19JT0NfU0VU RkxBR1MgX0lPVygnZicsIDIsIGxvbmcpCnN0YXRpYyB2b2lkIHJlbW92ZV9kaXIoY29uc3QgY2hh ciogZGlyKQp7CiAgaW50IGl0ZXIgPSAwOwogIERJUiogZHAgPSAwOwpyZXRyeToKICBjb25zdCBp bnQgdW1vdW50X2ZsYWdzID0gTU5UX0ZPUkNFIHwgVU1PVU5UX05PRk9MTE9XOwogIHdoaWxlICh1 bW91bnQyKGRpciwgdW1vdW50X2ZsYWdzKSA9PSAwKSB7CiAgfQogIGRwID0gb3BlbmRpcihkaXIp OwogIGlmIChkcCA9PSBOVUxMKSB7CiAgICBpZiAoZXJybm8gPT0gRU1GSUxFKSB7CiAgICAgIGV4 aXQoMSk7CiAgICB9CiAgICBleGl0KDEpOwogIH0KICBzdHJ1Y3QgZGlyZW50KiBlcCA9IDA7CiAg d2hpbGUgKChlcCA9IHJlYWRkaXIoZHApKSkgewogICAgaWYgKHN0cmNtcChlcC0+ZF9uYW1lLCAi LiIpID09IDAgfHwgc3RyY21wKGVwLT5kX25hbWUsICIuLiIpID09IDApCiAgICAgIGNvbnRpbnVl OwogICAgY2hhciBmaWxlbmFtZVtGSUxFTkFNRV9NQVhdOwogICAgc25wcmludGYoZmlsZW5hbWUs IHNpemVvZihmaWxlbmFtZSksICIlcy8lcyIsIGRpciwgZXAtPmRfbmFtZSk7CiAgICB3aGlsZSAo dW1vdW50MihmaWxlbmFtZSwgdW1vdW50X2ZsYWdzKSA9PSAwKSB7CiAgICB9CiAgICBzdHJ1Y3Qg c3RhdCBzdDsKICAgIGlmIChsc3RhdChmaWxlbmFtZSwgJnN0KSkKICAgICAgZXhpdCgxKTsKICAg IGlmIChTX0lTRElSKHN0LnN0X21vZGUpKSB7CiAgICAgIHJlbW92ZV9kaXIoZmlsZW5hbWUpOwog ICAgICBjb250aW51ZTsKICAgIH0KICAgIGludCBpOwogICAgZm9yIChpID0gMDs7IGkrKykgewog ICAgICBpZiAodW5saW5rKGZpbGVuYW1lKSA9PSAwKQogICAgICAgIGJyZWFrOwogICAgICBpZiAo ZXJybm8gPT0gRVBFUk0pIHsKICAgICAgICBpbnQgZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05M WSk7CiAgICAgICAgaWYgKGZkICE9IC0xKSB7CiAgICAgICAgICBsb25nIGZsYWdzID0gMDsKICAg ICAgICAgIGlmIChpb2N0bChmZCwgRlNfSU9DX1NFVEZMQUdTLCAmZmxhZ3MpID09IDApIHsKICAg ICAgICAgIH0KICAgICAgICAgIGNsb3NlKGZkKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg IH0KICAgICAgfQogICAgICBpZiAoZXJybm8gPT0gRVJPRlMpIHsKICAgICAgICBicmVhazsKICAg ICAgfQogICAgICBpZiAoZXJybm8gIT0gRUJVU1kgfHwgaSA+IDEwMCkKICAgICAgICBleGl0KDEp OwogICAgICBpZiAodW1vdW50MihmaWxlbmFtZSwgdW1vdW50X2ZsYWdzKSkKICAgICAgICBleGl0 KDEpOwogICAgfQogIH0KICBjbG9zZWRpcihkcCk7CiAgZm9yIChpbnQgaSA9IDA7OyBpKyspIHsK ICAgIGlmIChybWRpcihkaXIpID09IDApCiAgICAgIGJyZWFrOwogICAgaWYgKGkgPCAxMDApIHsK ICAgICAgaWYgKGVycm5vID09IEVQRVJNKSB7CiAgICAgICAgaW50IGZkID0gb3BlbihkaXIsIE9f UkRPTkxZKTsKICAgICAgICBpZiAoZmQgIT0gLTEpIHsKICAgICAgICAgIGxvbmcgZmxhZ3MgPSAw OwogICAgICAgICAgaWYgKGlvY3RsKGZkLCBGU19JT0NfU0VURkxBR1MsICZmbGFncykgPT0gMCkg ewogICAgICAgICAgfQogICAgICAgICAgY2xvc2UoZmQpOwogICAgICAgICAgY29udGludWU7CiAg ICAgICAgfQogICAgICB9CiAgICAgIGlmIChlcnJubyA9PSBFUk9GUykgewogICAgICAgIGJyZWFr OwogICAgICB9CiAgICAgIGlmIChlcnJubyA9PSBFQlVTWSkgewogICAgICAgIGlmICh1bW91bnQy KGRpciwgdW1vdW50X2ZsYWdzKSkKICAgICAgICAgIGV4aXQoMSk7CiAgICAgICAgY29udGludWU7 CiAgICAgIH0KICAgICAgaWYgKGVycm5vID09IEVOT1RFTVBUWSkgewogICAgICAgIGlmIChpdGVy IDwgMTAwKSB7CiAgICAgICAgICBpdGVyKys7CiAgICAgICAgICBnb3RvIHJldHJ5OwogICAgICAg IH0KICAgICAgfQogICAgfQogICAgZXhpdCgxKTsKICB9Cn0KCnN0YXRpYyB2b2lkIGtpbGxfYW5k X3dhaXQoaW50IHBpZCwgaW50KiBzdGF0dXMpCnsKICBraWxsKC1waWQsIFNJR0tJTEwpOwogIGtp bGwocGlkLCBTSUdLSUxMKTsKICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CiAgICBp ZiAod2FpdHBpZCgtMSwgc3RhdHVzLCBXTk9IQU5HIHwgX19XQUxMKSA9PSBwaWQpCiAgICAgIHJl dHVybjsKICAgIHVzbGVlcCgxMDAwKTsKICB9CiAgRElSKiBkaXIgPSBvcGVuZGlyKCIvc3lzL2Zz L2Z1c2UvY29ubmVjdGlvbnMiKTsKICBpZiAoZGlyKSB7CiAgICBmb3IgKDs7KSB7CiAgICAgIHN0 cnVjdCBkaXJlbnQqIGVudCA9IHJlYWRkaXIoZGlyKTsKICAgICAgaWYgKCFlbnQpCiAgICAgICAg YnJlYWs7CiAgICAgIGlmIChzdHJjbXAoZW50LT5kX25hbWUsICIuIikgPT0gMCB8fCBzdHJjbXAo ZW50LT5kX25hbWUsICIuLiIpID09IDApCiAgICAgICAgY29udGludWU7CiAgICAgIGNoYXIgYWJv cnRbMzAwXTsKICAgICAgc25wcmludGYoYWJvcnQsIHNpemVvZihhYm9ydCksICIvc3lzL2ZzL2Z1 c2UvY29ubmVjdGlvbnMvJXMvYWJvcnQiLAogICAgICAgICAgICAgICBlbnQtPmRfbmFtZSk7CiAg ICAgIGludCBmZCA9IG9wZW4oYWJvcnQsIE9fV1JPTkxZKTsKICAgICAgaWYgKGZkID09IC0xKSB7 CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgaWYgKHdyaXRlKGZkLCBhYm9ydCwgMSkg PCAwKSB7CiAgICAgIH0KICAgICAgY2xvc2UoZmQpOwogICAgfQogICAgY2xvc2VkaXIoZGlyKTsK ICB9IGVsc2UgewogIH0KICB3aGlsZSAod2FpdHBpZCgtMSwgc3RhdHVzLCBfX1dBTEwpICE9IHBp ZCkgewogIH0KfQoKc3RhdGljIHZvaWQgc2V0dXBfbG9vcCgpCnsKICBzZXR1cF9jZ3JvdXBzX2xv b3AoKTsKICBjaGVja3BvaW50X25ldF9uYW1lc3BhY2UoKTsKfQoKc3RhdGljIHZvaWQgcmVzZXRf bG9vcCgpCnsKICBjaGFyIGJ1Zls2NF07CiAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIi9k ZXYvbG9vcCVsbHUiLCBwcm9jaWQpOwogIGludCBsb29wZmQgPSBvcGVuKGJ1ZiwgT19SRFdSKTsK ICBpZiAobG9vcGZkICE9IC0xKSB7CiAgICBpb2N0bChsb29wZmQsIExPT1BfQ0xSX0ZELCAwKTsK ICAgIGNsb3NlKGxvb3BmZCk7CiAgfQogIHJlc2V0X25ldF9uYW1lc3BhY2UoKTsKfQoKc3RhdGlj IHZvaWQgc2V0dXBfdGVzdCgpCnsKICBwcmN0bChQUl9TRVRfUERFQVRIU0lHLCBTSUdLSUxMLCAw LCAwLCAwKTsKICBzZXRwZ3JwKCk7CiAgc2V0dXBfY2dyb3Vwc190ZXN0KCk7CiAgd3JpdGVfZmls ZSgiL3Byb2Mvc2VsZi9vb21fc2NvcmVfYWRqIiwgIjEwMDAiKTsKICBmbHVzaF90dW4oKTsKICBp ZiAoc3ltbGluaygiL2Rldi9iaW5kZXJmcyIsICIuL2JpbmRlcmZzIikpIHsKICB9Cn0KCnN0YXRp YyB2b2lkIGNsb3NlX2ZkcygpCnsKICBmb3IgKGludCBmZCA9IDM7IGZkIDwgTUFYX0ZEUzsgZmQr KykKICAgIGNsb3NlKGZkKTsKfQoKc3RhdGljIHZvaWQgc2V0dXBfYmluZm10X21pc2MoKQp7CiAg aWYgKG1vdW50KDAsICIvcHJvYy9zeXMvZnMvYmluZm10X21pc2MiLCAiYmluZm10X21pc2MiLCAw LCAwKSkgewogICAgcmV0dXJuOwogIH0KICBpZiAoIXdyaXRlX2ZpbGUoIi9wcm9jL3N5cy9mcy9i aW5mbXRfbWlzYy9yZWdpc3RlciIsCiAgICAgICAgICAgICAgICAgICI6c3l6MDpNOjA6XHgwMTo6 Li9maWxlMDoiKSB8fAogICAgICAhd3JpdGVfZmlsZSgiL3Byb2Mvc3lzL2ZzL2JpbmZtdF9taXNj L3JlZ2lzdGVyIiwKICAgICAgICAgICAgICAgICAgIjpzeXoxOk06MTpceDAyOjouL2ZpbGUwOlBP QyIpKQogICAgZXhpdCgxKTsKfQoKc3RhdGljIHZvaWQgc2V0dXBfdXNiKCkKewogIGlmIChjaG1v ZCgiL2Rldi9yYXctZ2FkZ2V0IiwgMDY2NikpCiAgICBleGl0KDEpOwp9CgpzdGF0aWMgdm9pZCBz ZXR1cF9zeXNjdGwoKQp7CiAgY2hhciBteXBpZFszMl07CiAgc25wcmludGYobXlwaWQsIHNpemVv ZihteXBpZCksICIlZCIsIGdldHBpZCgpKTsKICBzdHJ1Y3QgewogICAgY29uc3QgY2hhciogbmFt ZTsKICAgIGNvbnN0IGNoYXIqIGRhdGE7CiAgfSBmaWxlc1tdID0gewogICAgICB7Ii9zeXMva2Vy bmVsL2RlYnVnL3g4Ni9ubWlfbG9uZ2VzdF9ucyIsICIxMDAwMDAwMDAwMCJ9LAogICAgICB7Ii9w cm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX2NoZWNrX2ludGVydmFsX3NlY3MiLCAiMjAifSwKICAg ICAgeyIvcHJvYy9zeXMvbmV0L2NvcmUvYnBmX2ppdF9rYWxsc3ltcyIsICIxIn0sCiAgICAgIHsi L3Byb2Mvc3lzL25ldC9jb3JlL2JwZl9qaXRfaGFyZGVuIiwgIjAifSwKICAgICAgeyIvcHJvYy9z eXMva2VybmVsL2twdHJfcmVzdHJpY3QiLCAiMCJ9LAogICAgICB7Ii9wcm9jL3N5cy9rZXJuZWwv c29mdGxvY2t1cF9hbGxfY3B1X2JhY2t0cmFjZSIsICIxIn0sCiAgICAgIHsiL3Byb2Mvc3lzL2Zz L21vdW50LW1heCIsICIxMDAifSwKICAgICAgeyIvcHJvYy9zeXMvdm0vb29tX2R1bXBfdGFza3Mi LCAiMCJ9LAogICAgICB7Ii9wcm9jL3N5cy9kZWJ1Zy9leGNlcHRpb24tdHJhY2UiLCAiMCJ9LAog ICAgICB7Ii9wcm9jL3N5cy9rZXJuZWwvcHJpbnRrIiwgIjcgNCAxIDMifSwKICAgICAgeyIvcHJv Yy9zeXMva2VybmVsL2tleXMvZ2NfZGVsYXkiLCAiMSJ9LAogICAgICB7Ii9wcm9jL3N5cy92bS9v b21fa2lsbF9hbGxvY2F0aW5nX3Rhc2siLCAiMSJ9LAogICAgICB7Ii9wcm9jL3N5cy9rZXJuZWwv Y3RybC1hbHQtZGVsIiwgIjAifSwKICAgICAgeyIvcHJvYy9zeXMva2VybmVsL2NhZF9waWQiLCBt eXBpZH0sCiAgfTsKICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihmaWxlcykgLyBzaXpl b2YoZmlsZXNbMF0pOyBpKyspIHsKICAgIGlmICghd3JpdGVfZmlsZShmaWxlc1tpXS5uYW1lLCBm aWxlc1tpXS5kYXRhKSkKICAgICAgcHJpbnRmKCJ3cml0ZSB0byAlcyBmYWlsZWQ6ICVzXG4iLCBm aWxlc1tpXS5uYW1lLCBzdHJlcnJvcihlcnJubykpOwogIH0KfQoKI2RlZmluZSBOTDgwMjE1NF9D TURfU0VUX1NIT1JUX0FERFIgMTEKI2RlZmluZSBOTDgwMjE1NF9BVFRSX0lGSU5ERVggMwojZGVm aW5lIE5MODAyMTU0X0FUVFJfU0hPUlRfQUREUiAxMAoKc3RhdGljIHZvaWQgc2V0dXBfODAyMTU0 KCkKewogIGludCBzb2NrX3JvdXRlID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFXLCBORVRM SU5LX1JPVVRFKTsKICBpZiAoc29ja19yb3V0ZSA9PSAtMSkKICAgIGV4aXQoMSk7CiAgaW50IHNv Y2tfZ2VuZXJpYyA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NLX1JBVywgTkVUTElOS19HRU5FUklD KTsKICBpZiAoc29ja19nZW5lcmljIDwgMCkKICAgIGV4aXQoMSk7CiAgaW50IG5sODAyMTU0X2Zh bWlseV9pZCA9CiAgICAgIG5ldGxpbmtfcXVlcnlfZmFtaWx5X2lkKCZubG1zZywgc29ja19nZW5l cmljLCAibmw4MDIxNTQiLCB0cnVlKTsKICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgewog ICAgY2hhciBkZXZuYW1lW10gPSAid3BhbjAiOwogICAgZGV2bmFtZVtzdHJsZW4oZGV2bmFtZSkg LSAxXSArPSBpOwogICAgdWludDY0X3QgaHdhZGRyID0gMHhhYWFhYWFhYWFhYWEwMDAyICsgKGkg PDwgOCk7CiAgICB1aW50MTZfdCBzaG9ydGFkZHIgPSAweGFhYTAgKyBpOwogICAgaW50IGlmaW5k ZXggPSBpZl9uYW1ldG9pbmRleChkZXZuYW1lKTsKICAgIHN0cnVjdCBnZW5sbXNnaGRyIGdlbmxo ZHI7CiAgICBtZW1zZXQoJmdlbmxoZHIsIDAsIHNpemVvZihnZW5saGRyKSk7CiAgICBnZW5saGRy LmNtZCA9IE5MODAyMTU0X0NNRF9TRVRfU0hPUlRfQUREUjsKICAgIG5ldGxpbmtfaW5pdCgmbmxt c2csIG5sODAyMTU0X2ZhbWlseV9pZCwgMCwgJmdlbmxoZHIsIHNpemVvZihnZW5saGRyKSk7CiAg ICBuZXRsaW5rX2F0dHIoJm5sbXNnLCBOTDgwMjE1NF9BVFRSX0lGSU5ERVgsICZpZmluZGV4LCBz aXplb2YoaWZpbmRleCkpOwogICAgbmV0bGlua19hdHRyKCZubG1zZywgTkw4MDIxNTRfQVRUUl9T SE9SVF9BRERSLCAmc2hvcnRhZGRyLAogICAgICAgICAgICAgICAgIHNpemVvZihzaG9ydGFkZHIp KTsKICAgIGludCBlcnIgPSBuZXRsaW5rX3NlbmQoJm5sbXNnLCBzb2NrX2dlbmVyaWMpOwogICAg aWYgKGVyciA8IDApCiAgICAgIGV4aXQoMSk7CiAgICBuZXRsaW5rX2RldmljZV9jaGFuZ2UoJm5s bXNnLCBzb2NrX3JvdXRlLCBkZXZuYW1lLCB0cnVlLCAwLCAmaHdhZGRyLAogICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihod2FkZHIpLCAwKTsKICAgIGlmIChpID09IDApIHsKICAgICAg bmV0bGlua19hZGRfZGV2aWNlX2ltcGwoJm5sbXNnLCAibG93cGFuIiwgImxvd3BhbjAiLCBmYWxz ZSk7CiAgICAgIG5ldGxpbmtfZG9uZSgmbmxtc2cpOwogICAgICBuZXRsaW5rX2F0dHIoJm5sbXNn LCBJRkxBX0xJTkssICZpZmluZGV4LCBzaXplb2YoaWZpbmRleCkpOwogICAgICBpbnQgZXJyID0g bmV0bGlua19zZW5kKCZubG1zZywgc29ja19yb3V0ZSk7CiAgICAgIGlmIChlcnIgPCAwKQogICAg ICAgIGV4aXQoMSk7CiAgICB9CiAgfQogIGNsb3NlKHNvY2tfcm91dGUpOwogIGNsb3NlKHNvY2tf Z2VuZXJpYyk7Cn0KCiNkZWZpbmUgU1dBUF9GSUxFICIuL3N3YXAtZmlsZSIKI2RlZmluZSBTV0FQ X0ZJTEVfU0laRSAoMTI4ICogMTAwMCAqIDEwMDApCgpzdGF0aWMgdm9pZCBzZXR1cF9zd2FwKCkK ewogIHN3YXBvZmYoU1dBUF9GSUxFKTsKICB1bmxpbmsoU1dBUF9GSUxFKTsKICBpbnQgZmQgPSBv cGVuKFNXQVBfRklMRSwgT19DUkVBVCB8IE9fV1JPTkxZIHwgT19DTE9FWEVDLCAwNjAwKTsKICBp ZiAoZmQgPT0gLTEpCiAgICBleGl0KDEpOwogIGZhbGxvY2F0ZShmZCwgRkFMTE9DX0ZMX1pFUk9f UkFOR0UsIDAsIFNXQVBfRklMRV9TSVpFKTsKICBjbG9zZShmZCk7CiAgY2hhciBjbWRsaW5lWzY0 XTsKICBzcHJpbnRmKGNtZGxpbmUsICJta3N3YXAgJXMiLCBTV0FQX0ZJTEUpOwogIGlmIChydW5j bWRsaW5lKGNtZGxpbmUpKQogICAgZXhpdCgxKTsKICBpZiAoc3dhcG9uKFNXQVBfRklMRSwgU1dB UF9GTEFHX1BSRUZFUikgPT0gMSkKICAgIGV4aXQoMSk7Cn0KCnN0cnVjdCB0aHJlYWRfdCB7CiAg aW50IGNyZWF0ZWQsIGNhbGw7CiAgZXZlbnRfdCByZWFkeSwgZG9uZTsKfTsKCnN0YXRpYyBzdHJ1 Y3QgdGhyZWFkX3QgdGhyZWFkc1sxNl07CnN0YXRpYyB2b2lkIGV4ZWN1dGVfY2FsbChpbnQgY2Fs bCk7CnN0YXRpYyBpbnQgcnVubmluZzsKCnN0YXRpYyB2b2lkKiB0aHIodm9pZCogYXJnKQp7CiAg c3RydWN0IHRocmVhZF90KiB0aCA9IChzdHJ1Y3QgdGhyZWFkX3QqKWFyZzsKICBmb3IgKDs7KSB7 CiAgICBldmVudF93YWl0KCZ0aC0+cmVhZHkpOwogICAgZXZlbnRfcmVzZXQoJnRoLT5yZWFkeSk7 CiAgICBleGVjdXRlX2NhbGwodGgtPmNhbGwpOwogICAgX19hdG9taWNfZmV0Y2hfc3ViKCZydW5u aW5nLCAxLCBfX0FUT01JQ19SRUxBWEVEKTsKICAgIGV2ZW50X3NldCgmdGgtPmRvbmUpOwogIH0K ICByZXR1cm4gMDsKfQoKc3RhdGljIHZvaWQgZXhlY3V0ZV9vbmUodm9pZCkKewogIGlmICh3cml0 ZSgxLCAiZXhlY3V0aW5nIHByb2dyYW1cbiIsIHNpemVvZigiZXhlY3V0aW5nIHByb2dyYW1cbiIp IC0gMSkpIHsKICB9CiAgaW50IGksIGNhbGwsIHRocmVhZDsKICBmb3IgKGNhbGwgPSAwOyBjYWxs IDwgOTsgY2FsbCsrKSB7CiAgICBmb3IgKHRocmVhZCA9IDA7IHRocmVhZCA8IChpbnQpKHNpemVv Zih0aHJlYWRzKSAvIHNpemVvZih0aHJlYWRzWzBdKSk7CiAgICAgICAgIHRocmVhZCsrKSB7CiAg ICAgIHN0cnVjdCB0aHJlYWRfdCogdGggPSAmdGhyZWFkc1t0aHJlYWRdOwogICAgICBpZiAoIXRo LT5jcmVhdGVkKSB7CiAgICAgICAgdGgtPmNyZWF0ZWQgPSAxOwogICAgICAgIGV2ZW50X2luaXQo JnRoLT5yZWFkeSk7CiAgICAgICAgZXZlbnRfaW5pdCgmdGgtPmRvbmUpOwogICAgICAgIGV2ZW50 X3NldCgmdGgtPmRvbmUpOwogICAgICAgIHRocmVhZF9zdGFydCh0aHIsIHRoKTsKICAgICAgfQog ICAgICBpZiAoIWV2ZW50X2lzc2V0KCZ0aC0+ZG9uZSkpCiAgICAgICAgY29udGludWU7CiAgICAg IGV2ZW50X3Jlc2V0KCZ0aC0+ZG9uZSk7CiAgICAgIHRoLT5jYWxsID0gY2FsbDsKICAgICAgX19h dG9taWNfZmV0Y2hfYWRkKCZydW5uaW5nLCAxLCBfX0FUT01JQ19SRUxBWEVEKTsKICAgICAgZXZl bnRfc2V0KCZ0aC0+cmVhZHkpOwogICAgICBldmVudF90aW1lZHdhaXQoJnRoLT5kb25lLCA1MCAr IChjYWxsID09IDEgPyA0MDAwIDogMCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNhbGwgPT0gNCA/IDQwMDAgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2FsbCA9PSA4ID8gNDAwMCA6IDApKTsKICAgICAgYnJlYWs7CiAgICB9CiAg fQogIGZvciAoaSA9IDA7IGkgPCAxMDAgJiYgX19hdG9taWNfbG9hZF9uKCZydW5uaW5nLCBfX0FU T01JQ19SRUxBWEVEKTsgaSsrKQogICAgc2xlZXBfbXMoMSk7CiAgY2xvc2VfZmRzKCk7Cn0KCnN0 YXRpYyB2b2lkIGV4ZWN1dGVfb25lKHZvaWQpOwoKI2RlZmluZSBXQUlUX0ZMQUdTIF9fV0FMTAoK c3RhdGljIHZvaWQgbG9vcCh2b2lkKQp7CiAgc2V0dXBfbG9vcCgpOwogIGludCBpdGVyID0gMDsK ICBmb3IgKDs7IGl0ZXIrKykgewogICAgY2hhciBjd2RidWZbMzJdOwogICAgc3ByaW50Zihjd2Ri dWYsICIuLyVkIiwgaXRlcik7CiAgICBpZiAobWtkaXIoY3dkYnVmLCAwNzc3KSkKICAgICAgZXhp dCgxKTsKICAgIHJlc2V0X2xvb3AoKTsKICAgIGludCBwaWQgPSBmb3JrKCk7CiAgICBpZiAocGlk IDwgMCkKICAgICAgZXhpdCgxKTsKICAgIGlmIChwaWQgPT0gMCkgewogICAgICBpZiAoY2hkaXIo Y3dkYnVmKSkKICAgICAgICBleGl0KDEpOwogICAgICBzZXR1cF90ZXN0KCk7CiAgICAgIGV4ZWN1 dGVfb25lKCk7CiAgICAgIGV4aXQoMCk7CiAgICB9CiAgICBpbnQgc3RhdHVzID0gMDsKICAgIHVp bnQ2NF90IHN0YXJ0ID0gY3VycmVudF90aW1lX21zKCk7CiAgICBmb3IgKDs7KSB7CiAgICAgIGlm ICh3YWl0cGlkKC0xLCAmc3RhdHVzLCBXTk9IQU5HIHwgV0FJVF9GTEFHUykgPT0gcGlkKQogICAg ICAgIGJyZWFrOwogICAgICBzbGVlcF9tcygxKTsKICAgICAgaWYgKGN1cnJlbnRfdGltZV9tcygp IC0gc3RhcnQgPCA1MDAwKQogICAgICAgIGNvbnRpbnVlOwogICAgICBraWxsX2FuZF93YWl0KHBp ZCwgJnN0YXR1cyk7CiAgICAgIGJyZWFrOwogICAgfQogICAgcmVtb3ZlX2Rpcihjd2RidWYpOwog IH0KfQoKdWludDY0X3QgclsyXSA9IHsweGZmZmZmZmZmZmZmZmZmZmYsIDB4ZmZmZmZmZmZmZmZm ZmZmZn07Cgp2b2lkIGV4ZWN1dGVfY2FsbChpbnQgY2FsbCkKewogIGludHB0cl90IHJlcyA9IDA7 CiAgc3dpdGNoIChjYWxsKSB7CiAgY2FzZSAwOgogICAgTk9ORkFJTElORygqKHVpbnQzMl90Kikw eDIwMDAwMGMwID0gLTEpOwogICAgTk9ORkFJTElORygqKHVpbnQ2NF90KikweDIwMDAwMGM4ID0g MCk7CiAgICBOT05GQUlMSU5HKCoodWludDY0X3QqKTB4MjAwMDAwZDAgPSAwKTsKICAgIE5PTkZB SUxJTkcoKih1aW50NjRfdCopMHgyMDAwMDBkOCA9IDApOwogICAgc3lzY2FsbChfX05SX2JwZiwg LypjbWQ9Ki8ydWwsIC8qYXJnPSovMHgyMDAwMDBjMHVsLCAvKnNpemU9Ki8weDIwdWwpOwogICAg YnJlYWs7CiAgY2FzZSAxOgogICAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAwODAs ICJuaWxmczJcMDAwIiwgNykpOwogICAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAw NDAsICIuL2ZpbGUyXDAwMCIsIDgpKTsKICAgIE5PTkZBSUxJTkcobWVtY3B5KAogICAgICAgICh2 b2lkKikweDIwMDAxYzgwLAogICAgICAgICJceDc4XHg5Y1x4ZWNceGRkXHg0ZFx4OGNceDViXHg0 N1x4ZTFceDAwXHhmMFx4NzlceGRlXHhmNVx4MjZceDliXHhhNCIKICAgICAgICAiXHhmZlx4Mzhc eGZkXHgyN1x4NzRceDQ5XHg0Mlx4OWJceGYwXHhkMVx4OTZceDhmXHhlZVx4MzZceDliXHgyNVx4 N2MiCiAgICAgICAgIlx4NDRceGQwXHg1NFx4Y2RceDg1XHhhOFx4YTlceGI4XHg1NVx4YWFceGI4 XHg0NFx4NjlceDVhXHgyMlx4ZDJceDgwIgogICAgICAgICJceDQ4XHgyNVx4NjhceDU1XHg4OVx4 MjRceDI3XHg2ZVx4YjRceGFhXHhjMlx4OTVceDBmXHg3MVx4MmFceDg3XHgwYSIKICAgICAgICAi XHgxMFx4NTJceDdiXHg0MVx4NTFceDRmXHg1Y1x4MmFceGQxXHg0OFx4NWNceDdhXHgyYVx4MWNc eDM4XHgxMFx4MDUiCiAgICAgICAgIlx4YTlceDEyXHgwN1x4MjhceDI0XHg0Nlx4YjFceDY3XHhi Y1x4ZjZceGFjXHhhZFx4NjdceGVmXHg5N1x4ZWRceGY1IgogICAgICAgICJceGVmXHgyN1x4Y2Rc eDhlXHhlN1x4Y2RceGIzXHg2N1x4ZGVceGRiXHhlN1x4ZTdceGY3XHgzNVx4MzNceDAxXHg5OCIK ICAgICAgICAiXHg1OFx4OTVceGM2XHhkZlx4YTVceGE1XHhiOVx4MjJceDg0XHg2Ylx4NmZceGJm XHg3ZVx4ZjJceGVmXHgwZlx4ZmUiCiAgICAgICAgIlx4NmRceGY2XHhlZVx4OTRceGM3XHg1YVx4 NzNceGQ0XHgxYVx4N2ZceGE3XHhkYlx4NTJceGQ1XHgxMFx4NDJceDExIgogICAgICAgICJceGQz XHhkM1x4ZDlceGU3XHg3ZFx4MzBceGQ1XHg4Y1x4NmZceDdmXHhmOFx4Y2FceGQ5XHg2ZVx4NzFc eDExXHgxNiIKICAgICAgICAiXHgxYlx4N2ZceDUzXHgzYVx4M2NceDc1XHhhYlx4ZjVceGRlXHg5 ZFx4MjFceDg0XHhjYlx4ZTFceDUwXHhiOFx4MWUiCiAgICAgICAgIlx4NmFceDYxXHhmZlx4YjVc eDFiXHhhZlx4YmRceGJiXHhmOFx4ZTRceGU5XHgyYlx4YTdceGFlXHgxZVx4N2VceGVmIgogICAg ICAgICJceDhkXHhlM1x4MzdceDM3XHg2Nlx4ZTlceDAxXHgwMFx4NjBceGIyXHg3Y1x4ZjNceGZh XHhmMVx4YTVceDdkXHg3ZiIKICAgICAgICAiXHhmOVx4ZDNceDgxXHgzZFx4MWZceGJkXHg3OVx4 ZmZceDg5XHhiMFx4YWRceDM1XHgzZFx4MWRceDlmXHhkN1x4NjIiCiAgICAgICAgIlx4N2FceDU3 XHgzY1x4ZWVceDNmXHgxMVx4MGZceGZjXHhkM1x4ZjFceDdmXHgyNVx4NzRceGE2XHg4Ylx4YjZc eGQwIgogICAgICAgICJceDZlXHgyNlx4OWJceDZmXHgzYVx4ODZceDRhXHgzNlx4ZGZceDU0XHg5 N1x4ZjlceGRhXHhjYlx4YTlceDY2XHhmMyIKICAgICAgICAiXHg0ZFx4ZjdceDI4XHg3Zlx4MjZc eGZiXHhkY1x4NmFceDJiXHhmZlx4NDBceGM3XHg3Y1x4ZGJceDRhXHhjYVx4OWYiCiAgICAgICAg Ilx4NmFceDliXHhkNlx4NmRceGI5XHg2MVx4OWNceGE1XHhlZFx4YjhceDE2XHg4YVx4Y2FceDdj XHg0N1x4YmFceDUyIgogICAgICAgICJceDk5XHg5Zlx4NmZceDllXHg5M1x4ODdceGM2XHg3OVx4 ZmRceDRjXHgzMVx4N2ZceGYxXHhmY1x4ODVceGU3XHgyZSIKICAgICAgICAiXHgwZFx4YTlceGEy XHhjMFx4YmFceGZiXHhlN1x4MDNceDIxXHg4NFx4NDNceGMyXHhhMFx4YTFceDVlXHhhZlx4ZmYi CiAgICAgICAgIlx4YThceGIxXHgwMlx4NDdceGEwXHgyZVx4ODJceGIwXHhkYVx4NTBceGRmXHgz ZFx4ZWNceDNkXHgxMFx4NDBceDUzIgogICAgICAgICJceDdlXHhiZlx4NzBceDg1XHhjYlx4Zjlc eDk1XHg4NVx4YjVceDY5XHg3ZFx4ZGFceDc0XHg3Zlx4ZTVceGRmXHg3YSIKICAgICAgICAiXHhi Y1x4ZDJceGZkXHhmZFx4YjBceDBlXHgzNlx4N2JceGZiXHg1N1x4ZmVceDc4XHg5NVx4ZmZceGFi XHgyYlx4ZjYiCiAgICAgICAgIlx4MzhceGFjXHg5Zlx4YWRceGJhXHgzNVx4YTVceGU1XHg0YVx4 ZGZceGEzXHg1ZFx4MzFceDlkXHhkZlx4NDdceGM4IgogICAgICAgICJceDlmXHg1Zlx4MWFceGY0 XHhmYlx4OWZceDNlXHgyZlx4YmZceDFmXHg1MVx4ZWRceGIzXHg5ZVx4YmRceGVlXHgyMyIKICAg ICAgICAiXHg4Y1x4Y2JceGZkXHg4NVx4NWVceGY1XHg5Y1x4ZGFceGU0XHg3YVx4YWNceDU2XHhh Zlx4ZmFceGU3XHhkYlx4YzUiCiAgICAgICAgIlx4NTZceGY1XHhiNVx4MThceGE3XHhmNVx4ZjBc eGY1XHgyY1x4YmZceGZkXHhmYlx4OTNceGZmXHg0Zlx4YzdceGU1IgogICAgICAgICJceDdmXHgw Y1x4NzRceGY3XHhhZlx4MDlceGJiXHhmZVx4N2ZceDY4XHgwNFx4ZWFceGIwXHhhNVx4NDNceDc1 XHgwNCIKICAgICAgICAiXHhlYVx4MjBceGY0XHgxZFx4ZWFceGMzXHhkZVx4MDFceDAxXHgyM1x4 NmJceGY5XHhiOVx4YjlceGE2XHg3YVx4OTQiCiAgICAgICAgIlx4ZjJceGYzXHhlN1x4ZmFceGYy XHhmY1x4NmRceDI1XHhmOVx4ZGJceDRiXHhmMlx4NjdceDRiXHhmMlx4NzdceDk0IgogICAgICAg ICJceGU0XHhlZlx4MmNceGM5XHg4N1x4NDlceGY2XHhiYlx4MTdceDdmXHgxMlx4NWVceDJkXHg5 Nlx4Y2ZceGYzXHhmMyIKICAgICAgICAiXHg3M1x4ZmFceDQxXHhhZlx4ODdceGE1XHhlYlx4NmNc eGY3XHhjNFx4ZjhceGZmXHgwNlx4YWNceDRmXHg3ZVx4M2QiCiAgICAgICAgIlx4NzJceGQwXHhm Mlx4ZjNceGU3XHg3ZVx4MDdceGI1XHhkNlx4ZjJceGYzXHhlN1x4ODlceDYxXHg5NFx4YmRceDc1 IgogICAgICAgICJceGU2XHhlOVx4NzNceDVmXHg3ZVx4ZjZceDk5XHgxYlx4Y2RceGU3XHhmZlx4 OGJceGQ2XHhmNlx4N2ZceDI3XHg2ZSIKICAgICAgICAiXHhlZlx4ODdceDYyXHhiYVx4MTZceGJm XHg1Ylx4ZDdceGUzXHgwY1x4ZTlceDdhXHg2MVx4N2VceDVkXHhiZFx4ZjUiCiAgICAgICAgIlx4 ZWNceDdmXHhhZFx4YjNceDljXHg0YVx4OGZceGY5XHhlZVx4Y2RceGVhXHg3M1x4Y2ZceDhhXHhm OVx4ZWJceGNkIgogICAgICAgICJceDEyXHhmN1x4NzZceGNlXHg1N1x4ZWNceDVkXHhmZVx4OWNc eGQwXHhiNlx4OWZceDU5XHg1MVx4OGZceGI5XHhjZSIKICAgICAgICAiXHhmN1x4ZWRceGVlXHgz NVx4ZGZceGMxXHhjZVx4ZjlceDZhXHhkOVx4N2NceGIzXHgzMVx4NmNceGNmXHhlYVx4OWIiCiAg ICAgICAgIlx4MWZceDlmXHhlY1x4YzhceGRlXHg5N1x4OGVceDNmXHhkMlx4N2VceDM1XHhhZFx4 YWZceGU5XHg2Y1x4NzlceGFiIgogICAgICAgICJceGQ5XHg3Mlx4Y2NceDY0XHhmNVx4NDhceGZi XHg5NVx4M2RceDMxXHhjZVx4ZWJceDAxXHhhYlx4OTFceGI2XHhjNyIKICAgICAgICAiXHg1ZVx4 Y2ZceGZmXHhhN1x4ZWRceDczXHgyZVx4NTRceDhiXHhlN1x4Y2VceDVmXHgzOFx4ZjdceDY4XHg0 Y1x4YTciCiAgICAgICAgIlx4ZWRceGY0XHg4Zlx4NTNceGQ1XHg2ZFx4NzdceGE3XHgxZlx4Njlc eGZmXHhkMFx4NWZceDZmXHg0ZVx4ZGRceDgxIgogICAgICAgICJceGI1XHhlOVx4YjdceGZkXHhj Zlx4NWNceGU4XHg2Y1x4ZmZceGIzXHhhYlx4MzVceGJkXHg1YVx4NjlceGRmXHgyZiIKICAgICAg ICAiXHhlY1x4NWVceDllXHg1ZVx4YjRceGVmXHgxN1x4NmFceGQ5XHhmNFx4YzVceDY2XHhiMlx4 NzVceDliXHgzY1x4NGQiCiAgICAgICAgIlx4M2ZceDFhXHhkM1x4ZTlceDc3XHhlZVx4ZGJceDUz XHhiM1x4OGRceGU5XHhmM1x4NjdceGJmXHg3Ylx4ZTFceGQ5IgogICAgICAgICJceGY1XHg1ZVx4 NzhceDk4XHg3MFx4OTdceDVlXHg3YVx4ZjlceDNiXHg2N1x4MmVceDVjXHgzOFx4ZjdceDdkXHgy ZiIKICAgICAgICAiXHhkMlx4OGJceDU5XHhhYlx4YzVceDBiXHgyZlx4ODZceGJkXHg2N1x4MDJc eDM2XHhkYVx4YzJceDhiXHgyZlx4N2MiCiAgICAgICAgIlx4NmZceGUxXHhkMlx4NGJceDJmXHgz Zlx4NzJceGZlXHg4NVx4MzNceGNmXHg5Zlx4N2JceGZlXHhkY1x4YzVceGEzIgogICAgICAgICJc eGM3XHg4ZVx4MWRceDVkXHg1Y1x4M2NceGY2XHg5NVx4YTNceDRiXHgwYlx4OGRceGUzXHhmYVx4 ODVceGY2XHhhMyIKICAgICAgICAiXHg3Ylx4NjBceDJiXHg1OVx4ZmVceGQxXHgxZlx4NzZceDRk XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDgwXHg3ZVx4 ZmRceGUwXHhkNFx4YzlceDFiXHg3Zlx4N2VceGU3XHg0Ylx4ZWZceDM3XHhkYlx4ZmZceDJmIgog ICAgICAgICJceGI3XHhmZlx4NGJceGVkXHhmZlx4ZDNceDkzXHhiZlx4YTlceGZkXHhmZlx4OGZc eGIzXHhmNlx4ZmZceDc5XHgzYiIKICAgICAgICAiXHhmOVx4ZDRceDBlXHgzZVx4YjVceDAzXHhk Y1x4ZDNceDI1XHhiZlx4MzFceGVlXHhkZVx4NWJceDlkXHhmNVx4OTgiCiAgICAgICAgIlx4Yzlc eGU2XHhhYlx4YzZceGYwXHhmZlx4NTlceDdkXHhmN1x4NjZceGU1XHhlY1x4Y2JceGRlXHhmN1x4 YjFceDE4IgogICAgICAgICJceGI3XHhjNlx4ZjFceDhiXHhlZFx4ZmZceDUzXHg3Ylx4ZmJceGJj XHg1Zlx4ZDdceDU0XHg5Zlx4ZmJceGIyXHhlOSIKICAgICAgICAiXHg3OVx4ZmZceGJkXHg2OVx4 YmVceGFjXHgzYlx4ODFceDE1XHhmZFx4YTVceGNjXHg2NFx4N2RceDkwXHhlNFx4ZTMiCiAgICAg ICAgIlx4MDVceDdlXHgzMlx4YzZceDU3XHg2M1x4ZmNceGNiXHgwMFx4NDNceDU0XHhjY1x4NzZc eDlmXHgxY1x4ZTNceGIyIgogICAgICAgICJceGZlXHhhZFx4ZDNceGI2XHg5ZVx4ZmFceGE3XHhk MFx4MmZceGM1XHg3OFx4NGFceGZmXHhiN1x4YjRceDM1XHhhNCIKICAgICAgICAiXHg3ZVx4NGNc eDUyXHhmYlx4ZWZceDVlXHhmZFx4M2FceGE1XHhmZFx4ZmZceDllXHg0ZFx4YThceDIzXHhlYlx4 NmYiCiAgICAgICAgIlx4MzNceDlhXHgxM1x4MGVceDdiXHgxOVx4ODFceGVlXHhmZVx4MzFceGYy XHhmZFx4N2ZceGI3XHgxZFx4ODlceDBmIgogICAgICAgICJceGJkXHgyZVx4MTNceDEwXHhhY1x4 ZTdceDg5XHgwYVx4ZjVceGJhXHg1MVx4M2NceDgwXHhkMVx4MzBceGVjXHhmMSIKICAgICAgICAi XHgzZlx4ZDNceDc1XHhjZlx4MTRceDVmXHhmY1x4YzNceDM3XHhiNlx4ZGZceDBkXHg2OVx4YjZc eDViXHg4Zlx4NzciCiAgICAgICAgIlx4ZWVceDJmXHhmM1x4ZmVceDRiXHg2MVx4MmRceDQ2XHg3 ZFx4ZmNceDQ5XHhlNVx4NmZceGFkXHhmMVx4M2ZceDViIgogICAgICAgICJceGUzXHhkZlx4ZjVc eGI1XHhmZlx4ZWJceGQyXHhiYlx4N2FceDQ3XHgzZlx4Y2ZceGZkXHg4Zlx4YWVceGYwXHhlZiIK ICAgICAgICAiXHg5Zlx4ZGRceDdjXHhiZlx4YWRceGQ4XHhiMFx4YmZceGRmXHhmZFx4NmZceGJl XHhmY1x4YTlceDFmXHhlOFx4YmQiCiAgICAgICAgIlx4ZTVceDY1XHhiNlx4ZmJceDI4XHg5Nlx4 OWZceDk2XHhmZlx4YTFceGQwXHg1Zlx4ZjlceGY1XHg1Zlx4NjRceGU1IgogICAgICAgICJceGU3 XHgzN1x4ODRceGZhXHhmNFx4OWZceGFjXHhmY1x4MWRceDdkXHg5Nlx4YmZceDYyXHhmOVx4MGZc eGFlXHhhZSIKICAgICAgICAiXHhmY1x4ZmZceGM2XHhmMlx4ZDNceDZhXHg3Ylx4ZjhceDUzXHhm ZFx4OTZceGRmXHhhY1x4NzFceDUxXHhlOVx4YWMiCiAgICAgICAgIlx4NDdceDdlXHhkZFx4Mzhc eGRkXHhmZlx4Y2JceGFmXHgxYlx4MjdceGI3XHhiM1x4ZTVceDRmXHg3ZFx4N2JceDBlIgogICAg ICAgICJceGJjXHhmY1x4YWJceDFjXHhhOFx4ZjFceDRlXHgyY1x4MWZceDI2XHg1OVx4ZWZceDcx XHg2Nlx4ZmJceDFkXHhjMSIKICAgICAgICAiXHg3Nlx4MzRceDhkXHhjYlx4ZjhceGJmXHhiZFx4 ZTRceGNmXHg2MVx4N2NceDMxXHhhNlx4ZDNceDhlXHgzMFx4M2QiCiAgICAgICAgIlx4ZTdceDkw XHhmZlx4MjJceDBmXHg1YVx4ZmZceGY0XHg3Y1x4NDVceGZhXHgxZFx4ZDhceDk3XHg3ZFx4N2Vc eDUxIgogICAgICAgICJceGYyXHhmYlx4MzZceDJlXHhlM1x4MTRceGY3XHgzMlx4ZTlceGUzXHhm Zlx4N2VceDM1XHhjNlx4NjVceGRmXHg4NyIKICAgICAgICAiXHgzNFx4ZmVceDZmXHhkYVx4MWVc eDZiXHg1ZFx4ZDJceDk1XHhiNlx4NzRceGI1XHhjYlx4YmFceDFkXHhmN1x4NmQiCiAgICAgICAg Ilx4MDVceGI2XHg5YVx4MGZceDQ2XHhmZVx4ZmVceGRmXHg5OFx4ODVceGNiXHgyM1x4NTBceDA3 XHg2MVx4NDRceGMzIgogICAgICAgICJceGVjXHgwOFx4ZDRceGExXHgzM1x4ZDRceGViXHhmNVx4 OGRceGJkXHhhMFx4NTVceDYyXHhhOFx4ODVceDMzXHhmNCIKICAgICAgICAiXHhmNVx4M2ZceGVj XHhiYlx4Y2ZceGMzXHgyZVx4N2ZceGQ4XHhlYlx4YmZceDRjXHgzZVx4ZmVceDZmXHg3ZVx4MGMi CiAgICAgICAgIlx4OWZceDhmXHhmZlx4NWJceGM5XHg0ZVx4MjBceGYyXHhmMVx4N2ZceGYzXHhm N1x4ZTdceGUzXHhmZlx4ZTZceGY5IgogICAgICAgICJceGY5XHhmOFx4N2FceDc5XHg3ZVx4M2Vc eGZlXHg2Zlx4YmVceDNlXHhmM1x4ZjFceDdmXHhmM1x4ZmNceGZiXHhiMiIKICAgICAgICAiXHhj Zlx4Y2RceGFmXHg2MFx4Y2ZceDk1XHhlNFx4N2ZceGJjXHgyNFx4N2ZceDdmXHg0OVx4ZmVceDgx XHhlNVx4ZmMiCiAgICAgICAgIlx4ZDlceDZlXHhmOVx4MDdceDRiXHhkZVx4ZmZceDg5XHg5Mlx4 ZmNceGMzXHgyNVx4ZjlceGY3XHg5N1x4ZTRceDNmIgogICAgICAgICJceDUwXHg5Mlx4N2ZceDZm XHg0OVx4ZmVceDU0XHg0OVx4ZmVceGE3XHg0Ylx4ZjJceDNmXHg1M1x4OTJceGZmXHg2MCIKICAg ICAgICAiXHg0OVx4ZmVceGMzXHgyNVx4ZjlceDlmXHgyZFx4YzlceGRmXHhlYVx4NTJceDdiXHg5 NFx4NDlceDVkXHg3ZVx4OTgiCiAgICAgICAgIlx4NjRceDc5XHhmYlx4M2NceGRmXHg3Zlx4OThc eDFjXHhlOVx4ZmVceDRmXHhhZlx4ZWZceGZmXHhkZVx4OTJceDdjIgogICAgICAgICJceDYwXHg3 Y1x4ZmRceGY0XHhjZFx4MjNceDRmXHgzY1x4ZjNceGRiXHg2Zlx4ZDVceDlhXHhlZFx4ZmZceDY3 XHg1YSIKICAgICAgICAiXHhlN1x4NmJceGU5XHgzZVx4ZGVceDg5XHg5OFx4YWVceGM2XHg3M1x4 ZTdceDFmXHhjNlx4NzRceDdlXHhkZlx4M2IiCiAgICAgICAgIlx4YjRceGE1XHhlZlx4ZTZceGJk XHgxM1x4ZDNceDdmXHhjZFx4ZjJceDQ3XHhmZFx4N2FceDA3XHg0Y1x4OTJceGJjIgogICAgICAg ICJceGZmXHg4Y1x4ZmNceGY3XHhmZFx4YTFceDkyXHg3Y1x4NjBceDdjXHhhNVx4ZTdceGJjXHg3 Y1x4YmZceDYxXHgwMiIKICAgICAgICAiXHgxNVx4ZGRceDdiXHhlY1x4ZTlceGI3XHhkZlx4YWFc eDVlXHhjN1x4ZjlceDhjXHg5N1x4Y2ZceGM1XHhmOFx4ZjMiCiAgICAgICAgIlx4MzFceGZlXHg0 Mlx4OGNceDFmXHg4OVx4ZjFceDdjXHg4Y1x4MTdceDYyXHg3Y1x4MjRceGM2XHg4Ylx4OWJceDU0 IgogICAgICAgICJceDNmXHgzNlx4YzZceDEzXHhiZlx4ZjlceGZkXHhmMVx4NTdceDhiXHhlNVx4 ZjNceGZkXHhkZFx4NTlceDdlXHhiZiIKICAgICAgICAiXHhjZlx4OTNceGU3XHhlZFx4ODFceGYy XHg3ZVx4YTJceDhlXHhmNlx4NTlceDlmXHhmY1x4ZmFceGMwXHhhMFx4Y2YiCiAgICAgICAgIlx4 YjNceGU3XHhmZFx4ZjhceDBkXHg2YVx4YWRceGU1XHhhZlx4YjJceDM5XHgxOFx4MDBceDAwXHgw MFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAg ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAg ICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4 MDBceDAwXHhjMFx4ZDBceDU0XHgxYVx4N2ZceDk3XHg5Nlx4ZTZceDhhXHgxMFx4YWVceGJkXHhm ZFx4ZmFceGM5IgogICAgICAgICJceGE3XHg0Zlx4OWZceDVmXHhiOFx4M2JceGU1XHhiMVx4ZDZc eDFjXHhiNVx4YzZceGRmXHhlOVx4YjZceDU0XHhiNSIKICAgICAgICAiXHhmNVx4YmVceDEwXHgx ZVx4OGRceGYxXHg1NFx4OGNceDdmXHgxZVx4NWZceGRjXHhmZVx4ZjBceDk1XHhiM1x4ZWQiCiAg ICAgICAgIlx4ZjFceDlkXHgxOFx4MTdceDYxXHgzMVx4MTRceGExXHg2OFx4NGRceDBmXHg0Zlx4 ZGRceDZhXHg5NVx4YjRceDMzIgogICAgICAgICJceDg0XHg3MFx4MzlceDFjXHgwYVx4ZDdceDQz XHgyZFx4ZWNceGJmXHg3Nlx4ZTNceGI1XHg3N1x4MTdceDlmXHgzYyIKICAgICAgICAiXHg3ZFx4 ZTVceGQ0XHhkNVx4YzNceGVmXHhiZFx4NzFceGZjXHhlNlx4YzZceGFkXHgwMVx4MDBceDAwXHgw MFx4ZDgiCiAgICAgICAgIlx4ZmFceGZlXHgxN1x4MDBceDAwXHhmZlx4ZmZceDQxXHgxNFx4MThc eDc3IiwKICAgICAgICAyNjQ2KSk7CiAgICByZXMgPSAtMTsKICAgIE5PTkZBSUxJTkcocmVzID0g c3l6X21vdW50X2ltYWdlKAogICAgICAgICAgICAgICAgICAgLypmcz0qLzB4MjAwMDAwODAsIC8q ZGlyPSovMHgyMDAwMDA0MCwKICAgICAgICAgICAgICAgICAgIC8qZmxhZ3M9TVNfTEFaWVRJTUV8 TVNfU1RSSUNUQVRJTUV8TVNfUkVMQVRJTUV8TVNfTk9BVElNRSovCiAgICAgICAgICAgICAgICAg ICAweDMyMDA0MDAsIC8qb3B0cz0qLzB4MjAwMDBjMDAsIC8qY2hkaXI9Ki8xLCAvKnNpemU9Ki8w eGE1NiwKICAgICAgICAgICAgICAgICAgIC8qaW1nPSovMHgyMDAwMWM4MCkpOwogICAgaWYgKHJl cyAhPSAtMSkKICAgICAgclswXSA9IHJlczsKICAgIGJyZWFrOwogIGNhc2UgMjoKICAgIE5PTkZB SUxJTkcobWVtY3B5KCh2b2lkKikweDIwMDAwMGMwLCAiLi9idXNcMDAwIiwgNikpOwogICAgc3lz Y2FsbChfX05SX2NyZWF0LCAvKmZpbGU9Ki8weDIwMDAwMGMwdWwsIC8qbW9kZT0qLzB1bCk7CiAg ICBicmVhazsKICBjYXNlIDM6CiAgICBOT05GQUlMSU5HKG1lbWNweSgodm9pZCopMHgyMDAwMDM4 MCwgIi9kZXYvbG9vcCIsIDkpKTsKICAgIE5PTkZBSUxJTkcoKih1aW50OF90KikweDIwMDAwMzg5 ID0gMHgzMCArIHByb2NpZCAqIDEpOwogICAgTk9ORkFJTElORygqKHVpbnQ4X3QqKTB4MjAwMDAz OGEgPSAwKTsKICAgIE5PTkZBSUxJTkcobWVtY3B5KCh2b2lkKikweDIwMDAwMzQwLCAiLi9idXNc MDAwIiwgNikpOwogICAgc3lzY2FsbChfX05SX21vdW50LCAvKnNyYz0qLzB4MjAwMDAzODB1bCwg Lypkc3Q9Ki8weDIwMDAwMzQwdWwsCiAgICAgICAgICAgIC8qdHlwZT0qLzB1bCwgLypmbGFncz1N U19CSU5EKi8gMHgxMDAwdWwsIC8qZGF0YT0qLzB1bCk7CiAgICBicmVhazsKICBjYXNlIDQ6CiAg ICBOT05GQUlMSU5HKG1lbWNweSgodm9pZCopMHgyMDAwMDNjMCwgInZmYXRcMDAwIiwgNSkpOwog ICAgTk9ORkFJTElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAwNDAsICIuL2J1c1wwMDAiLCA2KSk7 CiAgICBOT05GQUlMSU5HKG1lbWNweSgKICAgICAgICAodm9pZCopMHgyMDAwMDljMCwKICAgICAg ICAiXHhkY1x4ZWFceDYyXHgwZFx4MGRceGE4XHg1YVx4NzJceDBhXHhhYlx4NWFceGM0XHg3MVx4 MjlceDY0XHgyY1x4ZjYiCiAgICAgICAgIlx4MGFceGRiXHg1N1x4ODZceDQ3XHg4MFx4MGZceDk2 XHhkZVx4YmRceDAzXHhkOFx4ZTRceDRhXHgyOFx4MjFceDA5IgogICAgICAgICJceGEwXHhjZVx4 NGNceGQzXHg4OVx4NDRceDk5XHg0Zlx4ZDVceDhmXHg3N1x4MGJceDVjXHg5OFx4MzFceGEyXHhk MyIKICAgICAgICAiXHhjM1x4YmJceGViXHg3Nlx4ZWNceDQ5XHg2NVx4YzRceDg1XHhhZFx4YmNc eDlmXHhkZFx4YWRceGM5XHgwZFx4NTkiCiAgICAgICAgIlx4NDBceGU3XHhhNlx4NWVceDI0XHgw MFx4MzJceDE4XHhlMlx4ZGJceDIyXHg4M1x4OThceDk0XHgzYlx4NGFceDA5IgogICAgICAgICJc eGE0XHgzM1x4MDhceDVjXHgyM1x4NjFceDkwXHg3OFx4MjdceGNmXHgwMFx4ZGZceGQ2XHgxNVx4 OThceDgzXHhiZiIKICAgICAgICAiXHhhYVx4YzhceDIwXHhlN1x4MzlceDgxXHgxMVx4ZWNceDYy XHg5Zlx4OGFceGIyXHg5Nlx4NWJceGVjXHg0Mlx4OGQiCiAgICAgICAgIlx4NTdceDRlXHg2OVx4 NGZceGU2XHgxOVx4NDRceDYyXHgwMVx4ZDZceDU1XHg4ZFx4MmFceDM0XHg0NVx4MDVceDZlIgog ICAgICAgICJceDY5XHhlZlx4MTFceDhmXHhiYlx4ZTBceDE5XHhlMFx4OTlceDIxXHg1ZFx4YmJc eDliXHg5NFx4MTlceDkwXHgwYyIKICAgICAgICAiXHgwN1x4ODVceDk3XHhkY1x4NzFceDU5XHhk M1x4YjNceDlkXHgyN1x4MTZceGJmXHg0ZFx4MjFceDI0XHhkMVx4M2QiCiAgICAgICAgIlx4YzRc eDk1XHhkN1x4ZWVceGYxXHhmOVx4MmNceDY5XHhkNFx4M2NceGJhXHgwNlx4OGFceGE0XHg2OFx4 ODlceGM2IgogICAgICAgICJceGFjXHg4ZVx4NjRceDM5XHg0M1x4NzVceGVhXHg1ZVx4ZDNceDYw XHg4NVx4ODJceDI2XHhjM1x4YjFceDUxXHgyYiIKICAgICAgICAiXHg2Zlx4NmJceGJiXHg3ZVx4 ODBceGIwXHg2OFx4OGJceDgzXHg0NVx4YzJceGZjXHg0Zlx4M2ZceDMwXHg4OFx4YjEiCiAgICAg ICAgIlx4YzVceGRjXHg4MFx4N2VceDdiXHgyOVx4ZjFceGRiXHg0OFx4NTZceDQ0XHg5YVx4Y2Fc eGM2XHgwY1x4MzhceGJjIgogICAgICAgICJceDk0XHhiZFx4NjlceDMyXHg0YVx4Y2JceDFiXHgz ZFx4YjhceDM1XHhhOVx4MWFceDk3XHhiYlx4NmFceGEzXHgwYiIKICAgICAgICAiXHg0NFx4YzNc eDUxXHhhNlx4NWVceDIzXHg5Mlx4YTVceDYyXHg5Y1x4MTZceDQ0XHhjMVx4NDNceDU3XHg4N1x4 MjkiCiAgICAgICAgIlx4MDFceGVkXHhlMVx4N2JceDc3XHgwNVx4NTVceDVmXHg2Zlx4MThceDYz XHhjZFx4MTFceDU5XHgwMlx4YmNceDAxIgogICAgICAgICJceDgwXHhjOVx4NTNceGNhXHhhYVx4 YTJceGFiXHhlMlx4NzZceDU5XHg2Ylx4Y2NceGU0XHg2YVx4ZjNceGNhXHhmNSIKICAgICAgICAi XHgzOVx4MzVceDM5XHg4ZFx4NDFceDY4XHg5OVx4NjJceDg1XHhiN1x4NzFceDkwXHhmN1x4Mjlc eDgwXHgwN1x4N2EiCiAgICAgICAgIlx4NTNceGY1XHhlMFx4NzVceGFmXHhmZlx4YTZceGNkXHg5 Y1x4MmRceGU0XHgxZFx4YmNceDg4XHgwZlx4MDBceDljIgogICAgICAgICJceDRlXHgwYlx4NzVc eDY2XHgyNlx4ZWNceDEzXHg5MFx4YWRceDg3XHg5M1x4ZGRceGNkXHg3ZVx4MmRceDllXHg5NiIK ICAgICAgICAiXHg4MFx4ODdceGIzXHg4Mlx4MzZceGMxXHg0ZFx4MzlceDk4XHhiOFx4MWFceDkw XHgyOVx4N2JceGNmXHhhZFx4MjYiCiAgICAgICAgIlx4ZWFceDg2XHgxNVx4YWFceDc2XHgwYlx4 NDZceGVkXHg5Mlx4ZGVceGExXHhhM1x4MDFceDdkXHg4NFx4N2ZceDgwIgogICAgICAgICJceDE2 XHg1Y1x4NTRceDlhXHgxYlx4YmNceGI3XHhiZFx4MmRceDZlXHgzMFx4ZjFceDEzXHgzZFx4ZGFc eGVlXHhiOSIKICAgICAgICAiXHgwMlx4YjJceDgyXHhjOFx4NjJceDk4XHgxY1x4NTFceGZkXHgy MVx4NjhceGQ5XHhiYlx4NThceGFjXHg3Y1x4YWQiCiAgICAgICAgIlx4MTAiLAogICAgICAgIDQy NikpOwogICAgTk9ORkFJTElORygqKHVpbnQzMl90KikweDIwMDAwYjZhID0gLTEpOwogICAgTk9O RkFJTElORygqKHVpbnQ2NF90KikweDIwMDAwYjZlID0gLTEpOwogICAgTk9ORkFJTElORyhtZW1j cHkoCiAgICAgICAgKHZvaWQqKTB4MjAwMDBiNzYsCiAgICAgICAgIlx4NmJceDg1XHg0Mlx4ZGFc eDQ3XHgxMFx4OTJceDY2XHhhMlx4YWVceDJiXHgxMlx4OGVceGYyXHhjNVx4YTVceDlhIgogICAg ICAgICJceDU4XHhiZVx4NjBceDNjXHhhMlx4M2RceDEwXHgyZlx4ZmNceDg3XHgxN1x4ZWVceDNi XHhhZFx4OTBceDlkXHg4ZiIKICAgICAgICAiXHg4N1x4NmRceDU1XHg1OVx4YzZceDIyXHhlNVx4 ZDhceGZlXHg0MFx4NTJceGY1XHgxNVx4NWRceDNiXHgzM1x4NTAiCiAgICAgICAgIlx4MTdceDk2 XHhmNVx4MTZceDU0XHg0ZVx4ZWVceDI0XHg0Zlx4YWRceGZlXHhmN1x4ZWRceGRjXHgzZFx4Mjhc eDU5IgogICAgICAgICJceDdiXHhmMVx4Y2VceDc2XHhiNFx4NDZceDhmXHg1OVx4OGFceDEyXHg2 MFx4ZWVceDFhXHg4MFx4YTFceGY3XHgxMiIKICAgICAgICAiXHg1NVx4NTJceDM4XHg2Ylx4NmVc eDRkXHgyNVx4NDFceGZlXHhlMlx4YzBceGNhXHg1OFx4YzRceDUxXHhkNFx4ZDIiCiAgICAgICAg Ilx4OTZceGQ5XHg3Ylx4YWNceDQ4XHgyZFx4YzJceDRhXHgxYlx4ZmRceDQzXHgxOVx4OGZceDkw XHhhNFx4YzBceGU2IgogICAgICAgICJceGQ5XHhjNlx4NmNceDEwXHhjYVx4MzVceDQ3XHg5YVx4 MTdceGZlXHhjM1x4ZDZceDM3XHhiMFx4Y2FceDFkXHgzYSIKICAgICAgICAiXHg2NFx4ZTRceDEz XHhmNFx4MDlceDgzXHg0M1x4YWNceDA0XHg2ZVx4MmJceGQ0XHg5MVx4MGRceGFlXHhlZlx4Mjci CiAgICAgICAgIlx4ZjFceDEzXHg2OFx4ZTRceDk0XHhiYVx4MzFceDk3XHg5Zlx4OTFceGJhXHhh YVx4NGJceDE5XHhhZFx4NDFceGJiIgogICAgICAgICJceDM0XHgxNVx4NmFceDU3XHg2Zlx4OWNc eGMxXHg0YVx4M2VceGU4XHg5OFx4NGJceGY2XHg2Zlx4NTZceGJiXHg2NyIKICAgICAgICAiXHhj M1x4MTdceDljXHhiN1x4MDZceDg1XHhjZFx4ZGNceGU1XHg0Nlx4Y2JceDNkXHhkM1x4NGJceDYx XHgyMVx4N2IiCiAgICAgICAgIlx4ZGZceDhlXHgzZVx4YThceGY3XHhiZVx4MWFceDU0XHg2Y1x4 ZTVceDMwXHhkM1x4MGZceDg3XHg4MFx4MTVceGI2IgogICAgICAgICJceGMxXHhiMFx4YjBceDZi XHhmMFx4ODRceGYxXHgyNlx4YzJceDNlXHgwY1x4M2RceDcyXHg5Mlx4ZDZceDBkXHhkZCIKICAg ICAgICAiXHg0M1x4NTFceGJjXHhiNVx4MDFceDA0XHhkZlx4NTVceDdkXHg1Mlx4ZWVceDAyXHgz MFx4YjhceDlmXHg0Ylx4M2QiCiAgICAgICAgIlx4N2JceDY4XHhhNlx4NTZceGMzXHg3OFx4N2Vc eGQ0XHhhZFx4NzBceGE0XHhjOVx4ZWNceGYwXHhmNVx4NDBceGRmIgogICAgICAgICJceDA5XHhj M1x4MzRceDgzXHg5YVx4N2JceDU4XHhhMFx4MmRceDhkXHg3ZVx4MmJceDQ0XHg0M1x4YzVceDUx XHg2YiIKICAgICAgICAiXHhkNlx4ZjJceDVlXHhjMVx4NmJceGM1XHhmM1x4NGVceDNiXHgxMlx4 NDJceDcwXHg3Nlx4NTlceDBiXHg5OVx4N2YiCiAgICAgICAgIlx4MTZceGE2XHg3OVx4NmVceGNm XHg4NFx4NzhceDZhXHgzMlx4NDdceGQwXHg2Nlx4MjZceDgyXHgwMFx4NjNceGE1IgogICAgICAg ICJceGZhXHg1ZVx4NzhceDYyXHhjY1x4YTRceDBiXHg4Y1x4OGFceDI4XHgxMFx4OWZceDc3XHhl Nlx4ZjdceDE1XHgyZiIKICAgICAgICAiXHhhNFx4N2NceDUzXHhjZFx4NTJceDlmXHhhOVx4OWRc eDY2XHgzMlx4NmNceGQzXHhmOVx4YzZceGRiXHg2NVx4NjkiCiAgICAgICAgIlx4M2JceGI5XHg3 ZVx4MmVceDc2XHg0OVx4YTVceGFiXHg4OFx4N2ZceGYxXHg1N1x4YThceDE1XHhjOFx4MmFceGI4 IgogICAgICAgICJceDFkXHhiZlx4ZmJceDg0XHg0Y1x4MTdceDc5XHg5Nlx4ZDNceDYwXHg5Nlx4 OTJceGVmXHgxZlx4MDdceGIwXHgxZCIKICAgICAgICAiXHg3Zlx4MGFceDY4XHgzZlx4ZDNceDg2 XHgyMVx4YmRceDg3XHg2MFx4NjRceDg3XHg1Y1x4ZTRceDZjXHg2YVx4ZmEiCiAgICAgICAgIlx4 ZThceDJlXHhmMlx4NmRceDM1XHhmMFx4MjlceGExXHhkMVx4MDRceGEwXHg0NFx4YjZceDZjXHgz MFx4MzJceDg3IgogICAgICAgICJceGJjXHgyZFx4NzZceDcyXHg4OFx4YzdceGMzXHg4ZVx4YmJc eDAxXHgyMVx4MzJceGQyXHgxYlx4MTlceDhjXHgxNyIKICAgICAgICAiXHhkMVx4Y2NceDk4XHgy YVx4MDJceDM3XHhiZFx4YTlceDg0XHhjMFx4ZjlceDg1XHhhZVx4OTVceGY5XHgwOFx4NTIiCiAg ICAgICAgIlx4YzNceGFmXHg1OVx4MmFceDBlXHg1NFx4ZWVceDFkXHhjMlx4ZmZceDhhXHgyZFx4 M2ZceGM1XHhhMFx4ZWVceDRiIgogICAgICAgICJceGIwXHgyNFx4OTNceGFkXHgxMlx4ZTZceGNm XHhhOVx4MTBceDRkXHhmZlx4MTBceDZjXHgzMVx4ZTRceDNjXHhiMCIKICAgICAgICAiXHg0Ylx4 ZGFceDQwXHhiY1x4NzJceDc2XHgxY1x4Y2VceDk3XHgxY1x4MTJceGJmXHhkYlx4OWFceGE5XHg5 NVx4NWIiCiAgICAgICAgIlx4ZmVceDY3XHgyMlx4ZjlceDdhXHg5N1x4ZGJceGNkXHg0Nlx4NzZc eDdmXHg1OFx4ZDZceDZkXHg3Mlx4YTZceGQ1IgogICAgICAgICJceGUyXHhlNFx4ZjJceDZjXHgw M1x4NTJceGRkXHhiN1x4MTdceDIyXHg1Ylx4MDJceDljXHg0Y1x4NzVceDc4XHg2NiIKICAgICAg ICAiXHhhM1x4YmFceDE1XHg2MFx4ZjNceDA2XHgzN1x4ZDZceDIwXHhkZVx4ZjVceDA5XHhhZlx4 ODlceDA1XHhjMlx4YTEiCiAgICAgICAgIlx4YWFceDA3XHg3Ylx4MTBceDg2XHg0OFx4NDVceDcx XHhjOVx4NjRceDAzXHgxZFx4YjhceGNkXHg5ZVx4YTVceDYzIgogICAgICAgICJceDQ1XHgyMlx4 ZGVceDM1XHgwMlx4OGRceGVkXHhhYlx4YjRceGZkXHg2M1x4MGVceDFmXHg1Ylx4MmJceDFhXHhm YiIKICAgICAgICAiXHg2MVx4NjVceDAyXHg4Y1x4ZjVceGUxXHhmMFx4NWZceGQ3XHg3M1x4OTVc eDkxXHgwYVx4ZmNceDI5XHhkMVx4NWMiCiAgICAgICAgIlx4M2ZceDM2XHhlMlx4ZjVceDdjXHg3 ZFx4YjJceDM3XHg5MFx4MmNceGQ3XHgwN1x4MmNceGI3XHgyN1x4MTdceDA3IgogICAgICAgICJc eGE3XHg0Y1x4ZTlceDdiXHhiNlx4OGVceDM4XHhlMFx4NTlceDE5XHgxY1x4ODFceGRmXHgxNVx4 NmFceDIxXHhmMCIKICAgICAgICAiXHhkYVx4MDJceDk3XHhmYVx4YzRceDlmXHgwZFx4OGZceGY0 XHgwZlx4OTNceGU2XHhhYVx4ODVceDE0XHgxZVx4MDQiCiAgICAgICAgIlx4NmJceDZkXHgyZVx4 YjhceGVjXHhkMVx4N2RceDBmXHg5YVx4YzRceDg4XHhiZFx4MDNceDRkXHhiM1x4ZTJceDFmIgog ICAgICAgICJceDQxXHg3N1x4ODdceDdjXHg3Zlx4OTZceGRmXHg0NFx4MjJceDczXHhmY1x4YjNc eDk5XHgwOVx4YTVceDljXHhhMCIKICAgICAgICAiXHhkNVx4ZTFceDZlXHg3NVx4NTRceDQ5XHg5 Mlx4MWJceDUzXHgwY1x4ZDVceGY0XHhjOFx4YWNceDk2XHhjNlx4ZDUiCiAgICAgICAgIlx4NDRc eDk0XHgxN1x4YjRceDI3XHg0NVx4NTFceDRjXHgzOVx4MjlceDgwXHhlMFx4NWVceDc0XHgwMlx4 MDlceGQzIgogICAgICAgICJceDg4XHgwYVx4NGFceDcxXHgyOVx4ZDJceDJiXHgyNlx4Y2RceDhj XHgxY1x4YzRceDkxXHgyNFx4ZDlceDk1XHhmOCIKICAgICAgICAiXHhjZlx4ZjNceGQxXHg5N1x4 MWJceDNlXHhiYVx4NjFceGI3XHhiZlx4M2NceDI3XHgwMlx4N2ZceDlhXHhjOVx4ZDAiCiAgICAg ICAgIlx4NmJceDdkXHg3MVx4ZTBceDRlXHgyZFx4MjBceDY4XHhlN1x4NDRceDVkXHhjZVx4ZjNc eGYxXHgwNVx4MDBceDA0IgogICAgICAgICJceGY3XHhiZlx4YjJceDYxXHhlMlx4MTNceGUyXHhk MVx4M2RceDlkXHgzMVx4ZTdceDFjXHhlZFx4MGFceDJhXHhhYyIKICAgICAgICAiXHg1Ylx4YWZc eGMwXHhkOFx4YjJceGNlXHg5MFx4YjBceDAyXHg3OFx4NDRceGQ3XHhlMVx4MmFceDhhXHgxZVx4 NmYiCiAgICAgICAgIlx4MjRceGJkXHgwZlx4ODFceDQ2XHgyM1x4ZDlceDQ2XHg1ZVx4YTFceGYz XHhhY1x4Y2JceDVmXHgzYVx4NzBceGIzIgogICAgICAgICJceDI1XHg5Y1x4MmRceDNlXHg0Zlx4 OTJceDg1XHhiOFx4MDRceDlmXHg3Mlx4ZTBceDYxXHgwYVx4ODlceDU0XHhhNyIKICAgICAgICAi XHg2OFx4MjVceDc3XHg1Ylx4ODhceGYxXHg4Zlx4MWVceDYzXHg1NFx4NDhceGEwXHg4OVx4ODhc eDAxXHg4Mlx4ZGQiCiAgICAgICAgIlx4NzNceGUwXHgzOVx4YWZceGZjXHg5OVx4YWFceGRjXHg0 Zlx4Y2RceGIzXHg3NVx4OWJceGNkXHgzMVx4YWRceDZjIgogICAgICAgICJceGQ3XHg5OFx4ZDZc eDBmXHg4M1x4ZmJceGE4XHhmNlx4N2FceDU2XHg3ZFx4NDJceGRlXHgxZlx4MTZceGU4XHg4MyIK ICAgICAgICAiXHhjZFx4OWFceDlhXHgyNFx4OGRceGY5XHhmZVx4YWVceDNhXHg2NFx4YjJceDlj XHg5OFx4ODVceDhmXHhkOFx4ZjEiCiAgICAgICAgIlx4NzVceDUzXHg2ZFx4YzlceDQyXHg5NVx4 MDZceDM0XHgxMVx4ZjRceDczXHgzOVx4ZTFceDA5XHhmZVx4NzdceGVhIgogICAgICAgICJceGE4 XHg3N1x4ZmFceGI5XHhlMFx4ZmRceDcxXHhmNFx4ZjZceDkxXHhkOVx4YjhceDYxXHg4MFx4YTFc eDgxXHgzNSIKICAgICAgICAiXHhiZVx4ZWFceDE1XHhlZVx4YWZceGVjXHg2OVx4ZDhceDBiXHhm ZVx4ZDlceDY1XHhlZVx4NTNceDg4XHhkNFx4MTIiCiAgICAgICAgIlx4ZWFceDdhXHg4Y1x4Zjdc eGY1XHg0NVx4YTBceDNhXHgzMVx4MWJceDM3XHg4ZFx4MTFceDg3XHhhN1x4MWJceDEzIgogICAg ICAgICJceGVjXHhiZVx4MmFceGVhXHgxNVx4YmRceGQ4XHg0MFx4NmNceDQxXHhkOVx4OWRceDYw XHg2OFx4ZGRceDQyXHhkZCIKICAgICAgICAiXHg1OVx4YTlceGM4XHhkMVx4ZDFceDhkXHg1OVx4 ODhceDBiXHgzOVx4ZjdceDE2XHhhZFx4YmZceDE2XHg0N1x4Y2EiCiAgICAgICAgIlx4ZThceGY4 XHg5NVx4YTNceDljXHhiY1x4ODJceDcxXHhjZVx4ZTdceGYyXHhjNFx4ZTNceDJmXHhmNlx4MGNc eDUyIgogICAgICAgICJceDk4XHgyZVx4MGNceDJjXHhlMVx4NmZceDVmXHhmMlx4ODNceDAxXHhk MFx4NzVceDlmXHhjMFx4OGFceDJmXHgwMiIKICAgICAgICAiXHgzY1x4YjVceDY4XHgzNlx4MjFc eGRiXHg5OFx4OTFceDY3XHgzNlx4YTZceDg0XHhhYVx4Y2NceDQ3XHgzNFx4MzgiCiAgICAgICAg Ilx4MDFceDRhXHhjY1x4ODNceGQ3XHgzY1x4ZmJceGNmXHg3Nlx4YTNceDY3XHg5MFx4ODdceDA2 XHhiZFx4MzhceDMxIgogICAgICAgICJceDU2XHhmNFx4NjdceDFmXHhjZVx4NDZceDMzXHg0NVx4 NzhceDQzXHhkZFx4YTRceGY3XHhhNVx4YTBceGY2XHhlMyIKICAgICAgICAiXHgyOVx4NDJceDZh XHhjNFx4NWFceDYxXHg1Mlx4NjFceDUyXHhhZFx4MzVceGNkXHhkZVx4YzhceDJkXHg4M1x4Y2Yi CiAgICAgICAgIlx4M2VceDQzXHhmM1x4YmVceGQyXHgwOFx4NDlceDY1XHg4Y1x4ZDZceGZhXHgx ZVx4ODJceDZlXHg3YVx4NmVceDg1IgogICAgICAgICJceDMwXHg1MFx4OTdceDUwXHhkMlx4NThc eDliXHg0Nlx4MjlceGM1XHg0NVx4MTlceDE4XHg1NVx4ZTNceDkyXHhhMCIKICAgICAgICAiXHg3 Mlx4MGVceDZlXHhmN1x4ZWRceDc5XHgwNVx4NThceDdmXHg3Zlx4MThceDFlXHhlZFx4ZTVceDlh XHgyNlx4NmYiCiAgICAgICAgIlx4Y2JceDEyXHgwY1x4NjRceDg5XHg5MVx4MTZceGI3XHg3Ylx4 ZDhceDBhXHgxNVx4ZTJceGJiXHg2M1x4YzVceGRiIgogICAgICAgICJceDdmXHg2M1x4ZmVceDIx XHhjN1x4YTVceGEzXHgyNlx4OTBceDNkXHgwZVx4NmVceDliXHg0Nlx4MGJceDhhXHg2ZCIKICAg ICAgICAiXHhjYlx4OTlceGQ3XHhkMlx4MmNceDc2XHg4ZVx4N2JceGYxXHgxZlx4NjNceDM1XHhm OFx4OTdceDYzXHg5N1x4ZmQiCiAgICAgICAgIlx4YjNceDcwXHgyMVx4YTVceDFhXHg4N1x4ZjRc eDk2XHg4Zlx4MzJceDE1XHhlMVx4MGNceDNiXHgzY1x4MDNceDhiIgogICAgICAgICJceGEwXHgy Mlx4NWFceGU1XHgxMFx4MTFceGM3XHg3Zlx4NTBceDljXHgzZFx4MjhceDY4XHgxNFx4MWZceGEx XHhkZiIKICAgICAgICAiXHhiMlx4ZmFceDRlXHgxZlx4ZmFceGE5XHhhM1x4ODJceGM1XHg4MVx4 NWZceGRlXHgwOVx4Y2RceDk3XHg5NVx4MmYiCiAgICAgICAgIlx4YWZceGQ2XHhiOVx4NjJceDk2 XHg1YVx4NGJceDVkXHhkNVx4YmVceDFjXHgxNlx4NThceDI0XHg0N1x4OTJceGM2IgogICAgICAg ICJceDYwXHhjOFx4M2RceGI4XHgxNlx4OThceDZmXHgxYlx4N2JceDczXHg4NFx4OTJceDk5XHhj NVx4OWRceDZjXHg2MCIKICAgICAgICAiXHg5Ylx4MmFceDRhXHg1Zlx4MzlceGI2XHg2NFx4Mjhc eDllXHgxYVx4YzdceGE2XHhiYVx4MzNceGQ3XHgzZVx4NTYiCiAgICAgICAgIlx4NDdceDhkXHgw Mlx4YTJceDYwXHhhMlx4YmNceGY3XHgwNVx4NmFceDQwXHg3OVx4MGNceGI1XHgxNlx4YjhceDVl IgogICAgICAgICJceDBiXHgyZFx4NzBceDk5XHgxMFx4ZjNceDAxXHg4ZFx4ZjRceDUwXHgzOFx4 NWZceDVmXHg3Ylx4ZDdceDU1XHg1MyIKICAgICAgICAiXHg2Zlx4MTFceDU2XHgxZlx4ZGZceDBi XHg2ZVx4MzZceGM1XHgxMlx4MGRceGFkXHgwZlx4NzVceDE2XHg4MFx4NDUiCiAgICAgICAgIlx4 MTBceDRhXHhhYVx4NTJceDA4XHhiOFx4MzBceDQ2XHg1Mlx4NTdceGFlXHgzYVx4YzVceDllXHg3 YVx4OGVceDY1IgogICAgICAgICJceGUyXHgyMVx4MTVceDMwXHg1Ylx4MDNceGVmXHg2NVx4NTNc eDk2XHgwMFx4YTdceDc5XHgzMlx4MmVceDUyXHgyMSIKICAgICAgICAiXHg1M1x4YzBceDAxXHg5 YVx4YzlceDE2XHgzMFx4N2NceDcxXHhiNFx4ZTRceGI1XHgzZVx4ZDZceDY0XHg2NFx4ZDkiCiAg ICAgICAgIlx4YzNceDRiXHg1NVx4Y2RceDk4XHhlMVx4MjZceGQwXHhiN1x4YjlceGYwXHhjYlx4 NDRceDg5XHgxM1x4ZDhceDc1IgogICAgICAgICJceDAxXHg1MVx4Y2JceDExXHgwM1x4ZmJceDcx XHg3N1x4YzFceDA1XHgyZFx4YjFceDdkXHgwN1x4MzNceGJmXHg0ZCIKICAgICAgICAiXHhjY1x4 MGVceDgyXHg2Mlx4NzZceDEwXHg0Nlx4MmRceGFlXHg5MVx4YmZceGVjXHhlMVx4N2JceDdmXHhi YVx4ODciCiAgICAgICAgIlx4MDZceDc2XHg3Nlx4MjZceDlmXHhlMFx4ZWJceDJhXHg0OVx4MjJc eGNjXHhjZlx4MGRceDkwXHg2ZVx4NzJceDFhIgogICAgICAgICJceGY4XHg1Y1x4NjZceDljXHhm Ylx4OThceGM5XHhkM1x4YjVceGE1XHgxYlx4OTlceGFlXHhhN1x4ZDZceDYxXHg5MSIKICAgICAg ICAiXHg4NFx4OWZceGQwXHg5NFx4NGFceGMyXHhhZFx4NWZceDA1XHhkZlx4NzRceDJmXHg5ZVx4 YmJceDgxXHhlOVx4ZTQiCiAgICAgICAgIlx4NzVceGI5XHgyZVx4NjBceDEzXHg2ZFx4ZTJceDg1 XHg4Ylx4YzRceGY4XHg0YVx4ODdceDgxXHhjN1x4NTFceDc2IgogICAgICAgICJceDJjXHgyMFx4 Y2JceGFmXHhmNFx4NzBceDEyXHhhY1x4ZGVceDc3XHg0MFx4NTFceGQ0XHg0M1x4MzlceDM1XHg0 MiIKICAgICAgICAiXHhiM1x4Y2FceGEwXHg0OVx4YjZceGYwXHhmZVx4NWVceDZmXHgwM1x4NDhc eDk2XHg3Y1x4MTNceDUxXHg5NFx4NjEiCiAgICAgICAgIlx4YTZceDNjXHg2NFx4N2JceDdhXHg3 MVx4NDNceDc1XHhiMFx4NDZceDM1XHhkYlx4OTNceDc4XHg1ZVx4YzJceDU0IgogICAgICAgICJc eDEzXHgyMFx4Y2RceDZlXHhlNFx4M2FceDQwXHgxY1x4NWZceGUzXHhhY1x4MWVceGQyXHhiNlx4 N2RceGU3XHg4YSIKICAgICAgICAiXHhlYlx4NjRceGI1XHg3Ylx4ZDNceDA3XHgwYVx4YWVceDRk XHgwYVx4OTdceDAzXHg0OFx4NThceDExXHg3Ylx4ZjIiCiAgICAgICAgIlx4MTBceGYxXHg4M1x4 MjRceDA3XHhkMVx4Y2ZceDUxXHg2NVx4YmJceDFlXHg1Zlx4NDZceDNlXHg4MVx4NDNceDYyIgog ICAgICAgICJceGI0XHg2Zlx4M2RceDJlXHg1M1x4ZDlceDJlXHhkMFx4MDdceGRjXHg4N1x4YjBc eDc2XHg3YVx4MDdceGIxXHhiMCIKICAgICAgICAiXHg0MVx4N2JceGIyXHg3ZFx4NjdceDAxXHg4 OFx4OWFceDMxXHg5YVx4Y2JceDM5XHhhOVx4YzNceGZmXHhiMlx4MjkiCiAgICAgICAgIlx4NWRc eDRmXHg5MFx4NzhceDNlXHgzMVx4YTdceGI3XHg4M1x4MmZceGVjXHgxNVx4MGNceDMzXHgzZVx4 ODRceDMzIgogICAgICAgICJceDFmXHhmN1x4OTFceGNlXHgxMVx4NzZceDg1XHgxZVx4NzVceDU4 XHhiMFx4ZDRceGY1XHg4Nlx4ZjRceGQ3XHgzMyIKICAgICAgICAiXHhkN1x4NTRceGIzXHgxZVx4 YmZceDM5XHhjOFx4NTBceDQwXHhlZVx4ODhceGZjXHhlZlx4YzFceGZiXHhmMVx4OTEiCiAgICAg ICAgIlx4NTZceDE1XHg3NFx4MGVceDM4XHg3MFx4MmVceGM5XHg5Ylx4MjlceDAwXHg0NVx4MWNc eDMyXHgxM1x4ZDBceDhkIgogICAgICAgICJceGUwXHhhMlx4YmRceDlmXHhlY1x4ZTVceGY5XHgw NFx4N2ZceDJjXHhiNFx4NmNceDQxXHgxY1x4ZmZceDY2XHg2MCIKICAgICAgICAiXHg5NFx4ZmRc eGI0XHhlNlx4MWNceDE0XHhiN1x4YjdceGI4XHg1MFx4Y2NceDhhXHg2NFx4YzFceGI0XHgzYVx4 ZWEiCiAgICAgICAgIlx4MjJceDliXHg1Nlx4NGNceDZkXHg1NFx4ZDhceDkwXHgxYlx4NjlceGE1 XHg1MFx4YWVceDAxXHhiYVx4YTJceGIwIgogICAgICAgICJceDg5XHgxOVx4ZTBceGJlXHg5ZFx4 MjFceGRiXHg3ZFx4Y2JceDk3XHg0ZVx4NjZceDE1XHgyMFx4NThceDk5XHg3ZCIKICAgICAgICAi XHhlY1x4YmFceDljXHhiY1x4Y2ZceDU3XHhhNlx4MGFceDQ0XHg0MVx4MGVceDNlXHgwNVx4NDRc eDY1XHhkZlx4NTAiCiAgICAgICAgIlx4YzlceGE4XHg2MFx4MzBceDdiXHhjY1x4ZDFceDBiXHg5 OVx4YWJceDA3XHhkM1x4MzdceDlmXHg2ZFx4MzdceGE1IgogICAgICAgICJceDczXHg2ZVx4YmNc eGI1XHgxN1x4YjdceDk5XHhhY1x4ODlceGNmXHhlOFx4MTVceDhkXHg4ZFx4YzdceDdkXHhiZCIK ICAgICAgICAiXHhmZFx4YjdceGEzXHg5M1x4ZWZceDQ0XHgxOFx4NGFceGVhXHhmN1x4NzlceGRi XHhjZFx4YTlceDZmXHhlMFx4N2UiCiAgICAgICAgIlx4ZTRceDM3XHhjMlx4OGJceDNhXHhlZlx4 MWRceDYyXHhkM1x4OTVceDlkXHg1ZVx4NjNceDExXHg5Nlx4YzlceDkyIgogICAgICAgICJceDhi XHg4MFx4MGRceGZmXHg5OFx4OGJceDYzXHg2OFx4MTZceDAyXHgyOFx4N2ZceGZiXHg3MVx4ODlc eGUwXHg3ZCIKICAgICAgICAiXHgxOFx4MTlceDk3XHhkY1x4NDhceDFiXHg4MFx4ZThceDA0XHhk Zlx4MWJceGRkXHhmOFx4MDNceDdjXHhhYVx4MTEiCiAgICAgICAgIlx4NTNceGZkXHg3Mlx4Yjdc eGU3XHhhOFx4N2JceDk1XHg0Zlx4NDdceDUzXHgyOVx4NDRceGQ3XHgzM1x4OTlceGMyIgogICAg ICAgICJceDFkXHg1Zlx4ZGRceDg0XHhjOFx4NzdceDkxXHgwN1x4MzJceDVhXHg4NFx4NDBceDg0 XHgxZVx4ODlceDVkXHg2MyIKICAgICAgICAiXHgzZVx4OGRceDJkXHg1Nlx4ZTBceDFlXHgyNFx4 OTRceDkzXHg4Y1x4ZDlceGY1XHhlNFx4M2ZceDMxXHg0Nlx4ZTAiCiAgICAgICAgIlx4ZWNceDA3 XHg5YVx4MDZceDc1XHg2ZFx4NzNceDhlXHhlZVx4YmJceDdkXHhlZVx4ZGZceDEwXHhkNlx4MmNc eDRkIgogICAgICAgICJceDk1XHg0Nlx4N2JceGM4XHhhNFx4MzlceDE4XHhhOFx4ZmNceGNhXHg3 Y1x4MjFceDk5XHhkY1x4MzRceGFkXHg5YSIKICAgICAgICAiXHhhNFx4MTBceDFmXHgyZVx4NTRc eGQxXHg5Ylx4MzhceGRiXHhlNFx4OTFceDhkXHgzMFx4OGRceDcyXHhjZFx4ZmUiCiAgICAgICAg Ilx4NDFceGJhXHhjZVx4NmNceDlmXHgwY1x4ZGZceGZiXHg0MVx4Y2NceDI5XHg0MVx4OGNceGI2 XHg4Y1x4YzVceDNlIgogICAgICAgICJceGU2XHg5M1x4MTJceDE4XHg1MVx4OWFceDA1XHg1Nlx4 OTdceDRlXHgyOFx4ZjNceDFjXHhiZFx4ODNceDFjXHgxOCIKICAgICAgICAiXHhjMVx4ZDBceDQ2 XHg4ZVx4NTBceDVjXHgwZVx4YmRceGY5XHg0YVx4NTFceGQ2XHg2ZFx4OGNceDk3XHg3Zlx4Mzki CiAgICAgICAgIlx4NWVceGQ4XHhlNVx4ZTZceGRlXHg5Ylx4MjdceGIzXHg5Ylx4YjNceGI0XHgy OVx4MzdceDYxXHhhYlx4MDFceGRhIgogICAgICAgICJceGU4XHg5M1x4N2JceDE2XHhkNlx4OTdc eDY1XHg4MFx4YjJceDcwXHgwZFx4OThceDU3XHhkN1x4NzBceDAyXHg4MSIKICAgICAgICAiXHg2 N1x4MjFceGNkXHhjMVx4OTVceDhjXHhlNlx4MzhceDY3XHgwYVx4YjlceGNjXHg4YVx4NDdceGJi XHgyN1x4OTEiCiAgICAgICAgIlx4MmFceGUwXHgzY1x4MmZceDU4XHhlOFx4OGVceGEwXHhjYlx4 YjJceDQ4XHhlZlx4MDdceGVlXHg3NVx4MWZceGQ0IgogICAgICAgICJceGVlXHhmN1x4ZTNceGEw XHgwM1x4N2FceDQxXHhmMlx4YTVceDBkXHhjYVx4ZGZceDExXHgyZVx4YjJceGRmXHg3ZiIKICAg ICAgICAiXHg4Mlx4ODlceGRlXHg3Y1x4MDNceGUwXHgyMVx4ZTBceDdiXHg2OFx4OTdceDg5XHgy NVx4MzdceGQ2XHgwNFx4NWIiCiAgICAgICAgIlx4ZWVceDVjXHg4ZVx4NDhceDIyXHg3ZFx4ZjZc eDEzXHg2MVx4NjJceGExXHg2Zlx4ZjFceDE4XHhkMVx4ZWJceDhlIgogICAgICAgICJceDRjXHg5 M1x4MWFceGQyXHg5Ylx4OTNceGM2XHg0ZFx4NGJceGNkXHgyZlx4ZGRceDE1XHhhOVx4OGRceGFm XHg2YyIKICAgICAgICAiXHhjOVx4MjdceDBkXHgyYlx4OGVceDVmXHg3YVx4ZGFceDVmXHg0M1x4 ZDZceDc3XHg1MFx4NzZceGEyXHhhZFx4NjQiCiAgICAgICAgIlx4MzVceDBkXHhkZlx4OTNceDEy XHhmZlx4N2VceDZhXHhkM1x4MTRceGQwXHgzYlx4YWFceDU0XHg3Y1x4NWZceDlhIgogICAgICAg ICJceGJhXHgxYVx4ZDdceGExXHhlM1x4ZmNceDFkXHhlOVx4MDhceGY2XHg2Y1x4MmVceDJmXHg1 Ylx4YzJceDU0XHg5MyIKICAgICAgICAiXHg0Zlx4MWRceGUwXHhhY1x4NjNceDZmXHg3Mlx4YzFc eDZjXHhmYlx4N2NceGE2XHg3Zlx4ZThceDZkXHhhY1x4ZWMiCiAgICAgICAgIlx4Y2JceDRiXHhj N1x4YTJceDVkXHg0MFx4ZTZceGE4XHg2Y1x4MTlceDY5XHhjNFx4YWRceDI4XHgxZVx4NDBceGRl IgogICAgICAgICJceDc0XHhjN1x4ZDhceDQzXHhjNFx4NTBceGUwXHhkNVx4ODJceDM1XHhhNFx4 NWRceDE4XHhlMFx4NjlceGFhXHg4NCIKICAgICAgICAiXHg3N1x4YWVceGU0XHg1M1x4MDdceGRh XHg5N1x4ZjVceDE4XHg5Mlx4M2ZceGJhXHg0OVx4MzJceDMyXHg5Mlx4NTUiCiAgICAgICAgIlx4 ODlceGYwXHg5OVx4ZTJceGI4XHg1MFx4YTJceDJhXHhmMFx4MGNceDFiXHhkZVx4YjZceDBmXHg0 OVx4MzdceDZjIgogICAgICAgICJceDFmXHg1N1x4ZGNceDY0XHgxM1x4OTNceDA4XHg2OFx4ZDBc eDlhXHgxOVx4MTRceGJkXHgzNVx4MTVceDkxXHgxZCIKICAgICAgICAiXHhlZVx4OWZceDRhXHgz NFx4NjdceGEyXHgyMVx4Y2FceDQxXHg2Nlx4YWFceGY3XHhiYVx4ZjJceDJkXHhiY1x4NzAiCiAg ICAgICAgIlx4ZDZceDQwXHhiMVx4ZTlceDJhXHgzYVx4ZGNceDk1XHgzOVx4MjJceGFkXHg2YVx4 NTZceGE0XHgyN1x4NzlceGM1IgogICAgICAgICJceGIyXHgwNlx4NWVceDA3XHhjNlx4YTdceDRl XHhhNFx4YzFceDI0XHg0Y1x4YzZceGRjXHhjMlx4OGJceDMxXHhlZSIKICAgICAgICAiXHgyY1x4 OTRceDAyXHgyOFx4ZTJceDExXHhiOFx4NDdceDM2XHgwYVx4ZWNceDFiXHhhOFx4YmFceDhlXHhl M1x4NWIiCiAgICAgICAgIlx4NGJceDU0XHg5NFx4NzhceDI4XHgwYVx4YjNceDU5XHg4MFx4ZTlc eGEwXHgzY1x4ZmRceDkzXHhmNFx4OGJceDFjIgogICAgICAgICJceDEyXHg4OFx4MDhceDE4XHgx N1x4MGFceDkyXHg4NFx4YTBceDI4XHhlMFx4NWZceDZjXHhhOFx4YmNceDY1XHhkYSIKICAgICAg ICAiXHhkMlx4NjRceGRlXHgwNFx4YzlceDE1XHg2Zlx4OTNceGY3XHhiYlx4YWRceGFlXHhjMlx4 NGNceDZjXHgxOVx4ZTkiCiAgICAgICAgIlx4NWNceGU3XHg4YVx4ZTFceGMwXHgyYlx4YmRceGRl XHhlYlx4ZjZceDBkXHg2OFx4MDJceGQwXHg4M1x4YTFceDQ2IgogICAgICAgICJceGVmXHg5OVx4 NzVceGY2XHg5NVx4M2JceDdlXHg3YVx4ZGJceDVjXHhmNVx4NGRceDU0XHhjM1x4ZWNceDU4XHhh NyIKICAgICAgICAiXHhiNlx4M2JceDAyXHhkYlx4ODFceGZlXHhkYVx4MTVceGVkXHg4NVx4YTBc eDdlXHg4MVx4MmRceGNkXHg3YVx4M2IiCiAgICAgICAgIlx4M2JceGNhXHhiMlx4MzBceGY0XHhi Nlx4OTlceGI3XHg5OVx4OWZceDk0XHgzZlx4YzNceGRlXHhjNlx4ZjFceDc0IgogICAgICAgICJc eDYzXHg1Y1x4NTJceGZhXHhmZFx4ZTJceDgwXHg2Ylx4YzZceGY1XHg3N1x4Y2NceDAyXHgzYlx4 NTVceDc1XHgyMSIKICAgICAgICAiXHhmZFx4OThceDVjXHg2Ylx4ZDBceDlkXHg0Nlx4YzVceDE0 XHhiNFx4N2JceDg1XHg0OVx4MWZceDdiXHg3MFx4MjAiCiAgICAgICAgIlx4ZjJceGVhXHgzZFx4 ZDJceDBlXHg4NVx4YzhceDc3XHgwNlx4ZWVceGJmXHg4ZFx4NGZceDhmXHhhZFx4ZmFceDM2Igog ICAgICAgICJceDhlXHhhMVx4OThceDk1XHhhZFx4MzRceDcyXHgzYlx4MDdceDI0XHhiOVx4YjVc eDgyXHhjN1x4MmZceDc4XHg4YiIKICAgICAgICAiXHgzZFx4YmJceDkwXHhiN1x4NDlceGE0XHgy MVx4MzlceGY2XHg0M1x4NjdceDE3XHg1Nlx4NzdceDAzXHg4MVx4MzEiCiAgICAgICAgIlx4MmFc eGNlXHg5Ylx4OGJceDAwXHg5MFx4ZTNceGFlXHg4MFx4Y2VceDJjXHhlOFx4ZGRceDRlXHgwNVx4 NDZceDBkIgogICAgICAgICJceDBhXHhkYlx4OTZceDQ5XHgzN1x4NTNceDJkXHhmOVx4NTJceGJk XHgzZlx4YzZceDJiXHgyNlx4ZWJceGI2XHhjOSIKICAgICAgICAiXHgyMlx4YzBceGM0XHg1N1x4 NTJceDE3XHg3ZFx4YmJceDMwXHg1OFx4YTNceDg1XHgyNFx4YjRceGE3XHg3MVx4MTAiCiAgICAg ICAgIlx4OGFceDUzXHg0OFx4OWRceGRiXHg5Nlx4M2FceGYwXHhhOFx4ZTJceDBjXHhjN1x4MDNc eDNiXHgzNVx4YTVceGI5IgogICAgICAgICJceGYyXHhiMVx4ZDRceDQ3XHhlOFx4MzVceGEyXHgw Ylx4MzBceGYwXHhlYlx4MjFceGE0XHgxZVx4NjFceGI1XHgyMCIKICAgICAgICAiXHhhOFx4Zjlc eGMwXHg3MFx4MjJceGQwXHhkN1x4MWRceGNjXHg1Ylx4NTBceDcxXHg4OVx4NGRceGU1XHhlYlx4 YmQiCiAgICAgICAgIlx4YzJceDYwXHgwNVx4YTlceGI3XHgxMlx4MDRceDc2XHg4Mlx4NmNceGRi XHg4Mlx4OWNceGI5XHgzMFx4MGRceDFjIgogICAgICAgICJceDY0XHg5ZVx4ZDlceDMwXHhlZVx4 OGJceDBhXHhjZlx4MGNceDlkXHhkNVx4OGNceGVhXHg4Y1x4YWZceDAwXHhhNCIKICAgICAgICAi XHgyNlx4MTFceDc5XHhmMFx4NWZceDJkXHhjNFx4YTRceGIyXHhiMVx4NjFceDUwXHgzYlx4YjBc eDUyXHgzNFx4N2IiCiAgICAgICAgIlx4MjVceGFkXHg0ZVx4NjRceDNlXHgyMlx4NmVceGNiXHgy ZVx4YmZceDcwXHgyZlx4Y2FceDE1XHg0OFx4OWZceDE2IgogICAgICAgICJceGNmXHgwMVx4MThc eGZlXHhmZFx4MjRceDk0XHhhZVx4NjBceDI2XHg0Zlx4MDFceDA5XHhlYlx4ZWJceGYyXHg4MCIK ICAgICAgICAiXHhkM1x4ZGVceDM3XHhiMlx4M2VceGQzXHg1OVx4ZDBceGUyXHg2OFx4YTNceGRi XHgwMVx4MTBceDFiXHhlOFx4ODgiCiAgICAgICAgIlx4MjFceDdiXHgwM1x4MmZceDgwXHhhMFx4 ZDhceGYxXHgxOVx4OTFceDEzXHgxNlx4NDBceDY0XHhmN1x4MWRceDUzIgogICAgICAgICJceDFk XHgwZlx4ZDRceDQ1XHhjOVx4N2FceGIzXHhmOFx4ZDJceGM5XHg0M1x4NTJceGRjXHg2ZFx4NmZc eDVhXHg1ZCIKICAgICAgICAiXHhhNlx4MDFceDYzXHgwNVx4OTFceDJhXHhkYVx4ZjFceDI0XHg3 NFx4ZDBceGE2XHg4MVx4Y2VceDhmXHhkMlx4ZDYiCiAgICAgICAgIlx4Y2JceDI0XHg2M1x4ZmNc eGQxXHhiMlx4NjlceGNlXHg2MVx4MTRceDgzXHg0Nlx4OGNceDFkXHg1MFx4NDdceDQ1IgogICAg ICAgICJceDgyXHgwYlx4YTNceDFlXHhjMFx4YTRceGVlXHhmY1x4OGVceGVhXHg3OVx4YjFceDVm XHg4Y1x4MzJceDU4XHg0ZCIKICAgICAgICAiXHhlOFx4YTJceGQxXHhhZVx4ZGNceDc3XHgwZFx4 NzZceDJiXHg4NFx4NGZceDk0XHg0Zlx4MWNceGMwXHhjZFx4NmUiCiAgICAgICAgIlx4MWFceGM0 XHhlYlx4YjVceDYzXHg2ZVx4ZjZceDM0XHhjYVx4N2FceDkwXHgwZlx4YTVceDdjXHg5MFx4MGNc eDg0IgogICAgICAgICJceGEzXHg5Mlx4YmNceDE4XHgzOFx4ZjRceGFiXHhmN1x4MjVceGJkXHg3 M1x4MmFceGI1XHhhM1x4ODVceDY5XHgwYyIKICAgICAgICAiXHg1Y1x4MTRceDdiXHgxNlx4YWRc eDkzXHgyY1x4NWRceGZlXHg1ZVx4YWNceDViXHhmN1x4ZTRceGNmXHg0YVx4ZGYiCiAgICAgICAg Ilx4NWFceDg1XHg4ZVx4ZjlceDkyXHhkMFx4M2JceDJlXHhjMVx4ZjRceGQ1XHgxNVx4MjRceDkw XHhhYlx4ZWRceGIxIgogICAgICAgICJceDY0XHgxMFx4MDRceGM2XHhjZFx4MDNceGQ5XHhlMFx4 MzhceDBkXHg5ZVx4YzlceGFlXHgzMVx4YmNceDU4XHhlZiIKICAgICAgICAiXHgyZFx4MWRceGU1 XHgxMFx4M2FceGRiXHhhNlx4YjNceDg5XHg5Ylx4ODBceDMwXHhkOFx4M2ZceDIwXHgyOFx4Mjgi CiAgICAgICAgIlx4YWVceGRhXHg2YVx4ZjlceGRhXHhmZlx4NjlceGMxXHgzOFx4YTZceDNkXHg3 ZFx4NjNceGMzXHhiOVx4NmFceDRjIgogICAgICAgICJceDg2XHhiOFx4MzJceGVlXHg4Y1x4MWZc eDgxXHhkYlx4NzRceGVhXHgyNFx4NGJceDAyXHgyZlx4ZjNceDRkXHg2OSIKICAgICAgICAiXHgy Ylx4M2VceDk1XHgxMFx4YmFceGFiXHhkMlx4NTdceGZhXHhjZFx4M2ZceDM5XHg1ZFx4ZjBceDc1 XHhjZFx4YjIiCiAgICAgICAgIlx4YWNceDkxXHhiY1x4MjJceGE4XHg0Ylx4M2NceDVjXHhhMVx4 NjVceDA5XHhlOVx4Y2JceDliXHg4NVx4MTJceDdlIgogICAgICAgICJceGMzXHg5Zlx4ZjVceGRm XHg4Y1x4NzVceGVkXHgyY1x4YjRceDA2XHhlYVx4YmJceGNjXHg3Ylx4NjZceGQzXHg5ZSIKICAg ICAgICAiXHg1Mlx4ZjhceDI1XHhjMVx4Y2JceDY5XHhmOVx4MzRceDI2XHhhMFx4NDRceDdlXHg4 ZVx4YTdceDIwXHhhMFx4NGUiCiAgICAgICAgIlx4MTRceDNmXHhiOVx4ZmNceGE1XHgyNVx4Njlc eDllXHhjZlx4ZWFceDY2XHg0NVx4MDlceGRkXHgyMVx4ODlceGNmIgogICAgICAgICJceGI4XHg0 Y1x4OGZceDI5XHhmMlx4NDhceDdmXHg2Y1x4MDlceGI3XHg4YVx4YTVceDQzXHgyNVx4NzlceGJj XHgxNyIKICAgICAgICAiXHhlM1x4YzhceGQxXHhiOFx4ZDJceDNjXHgyYVx4MzdceDFjXHgwYVx4 NWFceDk5XHhhM1x4NGFceGM5XHgwNVx4NjYiCiAgICAgICAgIlx4ZDJceGIwXHgxYVx4ZDdceDlk XHg5Ylx4MDRceDVjXHgwNVx4ZDhceDdmXHg4Nlx4MjNceGYxXHhiNVx4NTVceDdiIgogICAgICAg ICJceGEzXHg4Y1x4ZmZceGYyXHhkOVx4MWRceDIzXHg3OVx4ZmJceGZhXHhmMlx4MWNceDRkXHg2 MFx4MGRceDQ4XHg1NSIKICAgICAgICAiXHgyOVx4YzVceGNjXHhiMlx4NWNceGEwXHgwY1x4MDFc eDZmXHgyOFx4M2VceGE1XHg1NFx4ODRceDNmXHgxMFx4NmEiCiAgICAgICAgIlx4OWRceDQwXHhj Mlx4ZmNceGU0XHhkOVx4N2JceDBhXHhhYlx4MDNceGE0XHhiYVx4NjZceGQzXHg3Ylx4MThceDgy IgogICAgICAgICJceDMyXHg4N1x4N2VceGUxXHhiN1x4ZDJceDk2XHg2Nlx4NTRceGFkXHhhYVx4 OWVceDM3XHhlNVx4NTRceDAyXHg0MCIKICAgICAgICAiXHhjOVx4ZTJceGNiXHgzNVx4MWZceDcx XHg4OVx4ZmRceDk1XHhlMFx4N2VceGFlXHg1M1x4MDFceDc5XHg1OVx4MzQiCiAgICAgICAgIlx4 ODVceDY4XHgwZFx4OGRceGYyXHg0N1x4YTNceGFhXHhlZVx4YmVceDQwXHgzYVx4MjNceDg5XHgx M1x4NjdceDExIgogICAgICAgICJceDVkXHg1MVx4ZTVceDliXHhlYVx4YzVceDIxXHgwZVx4ZTBc eDk5XHg1Ylx4NWRceDI1XHg1Y1x4ODNceDJhXHg4ZCIKICAgICAgICAiXHgxY1x4NWRceGQ2XHhm ZVx4NGFceGRkXHg5MFx4MGJceDI4XHg1OVx4ZDVceGUyXHgwZFx4NjNceDM0XHg5Y1x4MDQiCiAg ICAgICAgIlx4N2JceDMwXHhiNFx4MTdceDdjXHg5NVx4MmRceDZmXHgxMFx4MmJceGRhXHg1Ylx4 OWVceGZjXHhjYVx4YTVceGJjIgogICAgICAgICJceDNkXHhiNlx4NjBceGM5XHhjMFx4N2VceGQ4 XHgyN1x4ZThceDUxXHg2Nlx4YWVceDEwXHhkZFx4MTRceDc2XHg3MSIKICAgICAgICAiXHhhY1x4 ODdceDQ0XHhhN1x4OTBceGVkXHhjNlx4MjlceGRkXHgwN1x4M2FceDY1XHhlMVx4N2FceGM5XHhj Ylx4MTEiCiAgICAgICAgIlx4YzFceGMwXHhjM1x4NTRceDgwXHgzYlx4OTlceGMzXHg0YVx4NmVc eDNmXHg1YVx4NGRceDkwXHhiZlx4MWVceDlkIgogICAgICAgICJceDczXHhhOVx4ZWVceDFhXHgy M1x4ZjRceDI2XHg3Mlx4ODlceGJiXHhkY1x4ZTZceDE4XHhlOFx4MTRceGQ0XHhjOCIKICAgICAg ICAiXHhhM1x4MTJceDFkXHg3Mlx4OTJceDk2XHgyNFx4ODFceDdjXHgyNVx4YTBceDEyXHhjNlx4 YmVceDI4XHhhOVx4M2MiCiAgICAgICAgIlx4YjhceGJjXHhiOVx4ZWJceDRhXHhlNlx4NTJceDZh XHg5Ylx4MTNceDI4XHhhZVx4YjdceGIzXHgxZVx4MGZceGNlIgogICAgICAgICJceGUxXHg4Nlx4 YTlceGVjXHhhMVx4ZTBceGVkXHhlMVx4YzlceDc1XHgzMlx4ZGRceDJjXHgyNVx4NTVceGJhXHhl NiIKICAgICAgICAiXHhhNVx4N2VceDdkXHgyM1x4NjdceGFhXHhjM1x4YTRceDQ4XHg4Ylx4Y2Nc eGM4XHhlN1x4NzFceGMzXHgwYVx4MTkiCiAgICAgICAgIlx4MDdceDkyXHg5M1x4MmRceGM3XHhl MFx4ZTZceDk5XHgxZlx4YzBceDZmXHg4NFx4MjdceDYwXHgyOFx4NWRceGQxIgogICAgICAgICJc eDBmXHg4Ylx4M2NceDUxXHhlNlx4NWRceDhhXHhkYlx4OTdceGRlXHg1Y1x4ZjJceGEyXHgwOVx4 YTVceDJhXHhmNCIKICAgICAgICAiXHhmOVx4M2ZceGZlXHhhOVx4NjZceDA2XHg2Nlx4ZTVceDgz XHgxNVx4N2FceDE5XHhiOFx4ZmNceGQwXHgwYVx4NjUiCiAgICAgICAgIlx4YWVceGMwXHgxNlx4 OTZceGFmXHhhZlx4ODFceDJlXHg3YVx4MjVceGVjXHgwM1x4NTJceGU2XHhiZFx4OTJceDkyIgog ICAgICAgICJceDI5XHgzMFx4NWZceDMyXHg0Ylx4NjZceDcxXHg1OFx4NGRceDczXHgyOFx4NGNc eDk2XHgzN1x4MDRceDJhXHgxNSIKICAgICAgICAiXHhhNFx4OGFceGFmXHhlNFx4ZjlceDk2XHgy MVx4MTlceGYyXHhhZlx4ZTRceDNiXHhiOFx4YWJceGViXHg3ZFx4YmQiCiAgICAgICAgIlx4NWVc eDU4XHg4Ylx4OThceGYzXHgxZlx4ZjNceGI1XHg5Y1x4ZDRceDQ3XHg4N1x4NDdceDFlXHg2OFx4 ZmFceDZhIgogICAgICAgICJceDA4XHg1NVx4MTFceGVkXHgyNVx4MWFceDVmXHhkY1x4YTBceGNk XHg4NFx4YzlceDg5XHhiYlx4ZTJceGRhXHhlMCIKICAgICAgICAiXHg5N1x4ZTRceDY5XHhlOVx4 NjRceDQxXHhhZlx4YjBceDY2XHgwOVx4NzlceDhlXHg1ZFx4ZWFceDQ4XHgwZVx4NTAiCiAgICAg ICAgIlx4NzFceDE1XHg0OVx4N2NceDRlXHhjZVx4NmJceDI5XHhlY1x4OTdceDcyXHg4Nlx4ZWJc eDk5XHhhY1x4YjhceDU4IgogICAgICAgICJceDMxXHg0M1x4OWNceDM4XHgzZlx4YTVceDg3XHg5 Ylx4ZjJceDNkXHhiYlx4YTlceDg2XHg4Y1x4MjVceGNmXHhkOSIKICAgICAgICAiXHg0OFx4NDZc eDAwXHhlOVx4ZTdceDYyXHgyZFx4ODRceDYzXHhmZVx4ODhceDhmXHg5Mlx4YWFceGE0XHgzN1x4 N2QiCiAgICAgICAgIlx4MTNceGRmXHg2Zlx4YmVceGQ3XHg5Y1x4ODBceGVmXHgxY1x4MDFceDM3 XHgxZlx4ZDVceDY2XHhiNFx4MDdceDM2IgogICAgICAgICJceGIyXHhhNVx4ZThceDZlXHhmMVx4 MzRceGEyXHgxZlx4ZTVceDAyXHhlNlx4YzZceDAwXHhhZlx4ZDlceGUwXHhkYSIKICAgICAgICAi XHgzOFx4ZGFceGJiXHhjZlx4OGRceGU1XHg1Zlx4N2NceDg4XHhlOVx4MTZceDgxXHhmMVx4NmNc eGRlXHg1MVx4NWYiCiAgICAgICAgIlx4MGNceDBlXHgxY1x4NGRceDBkXHhjZFx4ZWZceGNkXHg4 Mlx4NjlceDE1XHg5Y1x4ODFceDM0XHgwMVx4ZWRceGZkIgogICAgICAgICJceDYyXHg4N1x4ZmVc eDlkXHhlNVx4NTFceDg1XHgyOVx4YmVceDk5XHg3Y1x4ODZceDY4XHhmMFx4MzFceGUwXHgzMCIK ICAgICAgICAiXHgwZFx4MzlceGMyXHg1OFx4NWJceDQxXHhmN1x4MmVceDI1XHg2MFx4ZTNceGMz XHhjNVx4NTNceDIzXHg3ZFx4YzgiCiAgICAgICAgIlx4OTBceGZkXHg5Y1x4MDRceDgyXHhlNVx4 OGRceDhhXHhkN1x4MzhceDZhXHhmNVx4YmNceDQ1XHhmYlx4YzNceGUzIgogICAgICAgICJceDgz XHhkMlx4MzlceDEyXHg5MFx4YTJceGNiXHhjZVx4OGVceDg3XHg2ZVx4NDJceDJkXHgxN1x4YjNc eDcwXHhlZSIKICAgICAgICAiXHgzMlx4MzVceDMyXHhjZlx4NWJceDhhXHgwYlx4YzVceGRjXHg4 Y1x4ODRceDkyXHhlOVx4ZDZceGY5XHgwMVx4MGUiCiAgICAgICAgIlx4ZWZceDIwXHg5NFx4NWJc eGU3XHg5ZFx4NTFceDg4XHhlY1x4NmVceGM4XHg2Nlx4NmVceDQwXHgyOVx4Y2RceDM1IgogICAg ICAgICJceDhmXHhmNFx4YmZceGUwXHg0NVx4OWRceGJlXHgyYVx4OWFceGYxXHhkNlx4ODdceDUw XHgyOVx4ZWFceDlkXHgxOSIKICAgICAgICAiXHhkY1x4OTFceDUzXHhhNlx4Y2VceGEzXHhjOVx4 YjNceGRlXHgxYVx4MjZceGI4XHg0Zlx4ZjFceGM5XHg2Zlx4Y2QiCiAgICAgICAgIlx4MjdceDNi XHg4ZVx4NThceGE4XHhhNFx4N2JceGQyXHgzYVx4N2FceDcxXHg4YVx4ZWJceGFlXHhkMFx4ZTNc eGY4IgogICAgICAgICJceDE2XHg5Mlx4MjNceDJhXHgxNlx4YTlceDJjXHg5MFx4ODZceDcwXHhj MVx4MDBceGEzXHg0OVx4NzBceGFiXHgwMiIKICAgICAgICAiXHgzNVx4YzFceDRmXHhjNFx4OTJc eDE1XHg4N1x4OTVceGZlXHgyN1x4ZGFceGMwXHgyNVx4YjdceDQwXHgzZFx4NGMiCiAgICAgICAg Ilx4NmZceDc2XHhiNlx4MTFceDE0XHhjMVx4YmRceGNjXHg4MVx4MmRceGE0XHg0NFx4Y2RceDQ5 XHgwYVx4NmVceGY3IgogICAgICAgICJceGZiXHhlYlx4MDZceDU3XHgwZlx4M2RceDRhXHg5MFx4 Y2RceDMxXHg3OFx4YTlceGNiXHg1ZFx4YWJceDVjXHg5OCIKICAgICAgICAiXHgyM1x4NzlceGNl XHhjNlx4NzZceDJiXHg5YVx4ODNceDlhXHhhZVx4Y2RceGY4XHg4OFx4YzFceDczXHgyZFx4NjAi CiAgICAgICAgIlx4MTZceGQxXHg5ZVx4MDVceDNkXHhjY1x4NDBceGFkXHgwY1x4NDdceDA4XHhi M1x4ZjVceDliXHg1YVx4ZjhceDc0IgogICAgICAgICJceDUzXHgzM1x4ODBceGE2XHgwOFx4ZWFc eGIzXHgwOFx4YjVceDk3XHgzZFx4ZGRceDNmXHg5M1x4NTFceDczXHg3ZiIKICAgICAgICAiXHg5 M1x4ODZceDA4XHg3Ylx4YzJceDg1XHg2M1x4NGNceGU4XHhlN1x4NDJceGI5XHgzZlx4MjRceGFh XHgxY1x4MmIiCiAgICAgICAgIlx4MTdceDYwXHhhM1x4NWVceDZjXHg4M1x4ZjBceGFmXHhlMVx4 NDRceDcwXHhiMlx4YTRceDRiXHhmY1x4MTAiLAogICAgICAgIDQwOTYpKTsKICAgIE5PTkZBSUxJ TkcoKih1aW50NjRfdCopMHgyMDAwMWI3NiA9IHJbMF0pOwogICAgTk9ORkFJTElORyhtZW1jcHko CiAgICAgICAgKHZvaWQqKTB4MjAwMDJhODAsCiAgICAgICAgIlx4NzhceDljXHhlY1x4ZGNceDRm XHg4Ylx4MWJceDY1XHgxY1x4MDdceGYwXHhkZlx4YzZceGFkXHhkZFx4NmVceGRkIgogICAgICAg ICJceDNmXHhkNlx4NWFceDZkXHgwZlx4ZmFceGEwXHgxN1x4NGZceDQzXHg3N1x4MGZceDllXHgw NFx4NTlceDY0XHgwYiIKICAgICAgICAiXHhiMlx4MDFceGE1XHg3Nlx4ODVceDU2XHgxMFx4YTZc eGVlXHg0NFx4NDNceGM2XHgyNFx4NjRceGMyXHg0Mlx4NDQiCiAgICAgICAgIlx4YWNceDllXHhi Y1x4ZmFceDNhXHhjNFx4YTNceDM3XHg0MVx4N2NceDAzXHg3Ylx4ZTlceDZiXHhmMFx4YjZceDE3 IgogICAgICAgICJceDhmXHgzZFx4ODhceDIzXHg0ZFx4YjZceGI2XHg2OVx4ZDNceGNhXHhjMlx4 ZDZceDgwXHhmZFx4N2NceDJlXHhmMyIKICAgICAgICAiXHgyM1x4Y2ZceGYzXHhjZFx4M2NceDkz XHg5MFx4ODFceDA5XHhmM1x4OWJceGMzXHg3N1x4N2VceGY4XHhiMlx4ZDMiCiAgICAgICAgIlx4 YWFceGIyXHg1Nlx4M2VceDhjXHhjNlx4YzJceDQyXHgzNFx4ZmFceDExXHhlOVx4NGVceDhhXHgx NFx4OGRceGI4IgogICAgICAgICJceGU3XHhiNVx4OWRceGM5XHhmNlx4ZmFceDhkXHg5ZFx4YWRc eDY2XHg3M1x4ZmJceDZhXHg0YVx4NTdceGI2XHhhZSIKICAgICAgICAiXHg2ZFx4YmNceDlkXHg1 Mlx4NWFceDdkXHhmZFx4ZDdceDRmXHhiZVx4ZmVceGU5XHg4ZFx4ZGZceDg2XHg2N1x4M2YiCiAg ICAgICAgIlx4ZmVceDc5XHhmNVx4OTdceGQzXHg3MVx4YjBceGZlXHhlOVx4ZTFceDFmXHg5Ylx4 YmZceDFmXHg1Y1x4MzhceGI4IgogICAgICAgICJceDc4XHhmOFx4ZDdceGI1XHgyZlx4ZGFceDU1 XHg2YVx4NTdceGE5XHhkYlx4MWJceGE2XHgzY1x4ZGRceGVjXHhmNSIKICAgICAgICAiXHg4Nlx4 ZjlceGNkXHhiMlx4NDhceDdiXHhlZFx4YWFceDkzXHhhNVx4ZjRceDYxXHg1OVx4ZTRceDU1XHg5 MVx4ZGEiCiAgICAgICAgIlx4ZGRceGFhXHgxOFx4NGNceDhkXHhiN1x4Y2FceDVlXHhiZlx4M2Zc eDRhXHg3OVx4NzdceDZmXHg2NVx4YjlceDNmIgogICAgICAgICJceDI4XHhhYVx4MmFceGU1XHhk ZFx4NTFceGVhXHgxNFx4YTNceDM0XHhlY1x4YTVceGUxXHg2MFx4OTRceGYyXHhjZiIKICAgICAg ICAiXHhmM1x4NzZceDM3XHg2NVx4NTlceDk2XHg1Nlx4OTZceDgzXHhjN1x4M2FceGY1XHhlZlx4 NTNceDc2XHg3Zlx4YmMiCiAgICAgICAgIlx4NTNceGQ3XHg3NVx4NDRceDVkXHg5Zlx4OGFceGU3 XHhhM1x4YWVceGViXHhmYVx4NGNceDJjXHhjN1x4ZDlceDc4IgogICAgICAgICJceDIxXHg1Nlx4 NjJceDM1XHhiZVx4OGRceDg4XHgxN1x4ZTNceDVjXHhiY1x4MTRceGU3XHhlM1x4ZTVceGI4XHgx MCIKICAgICAgICAiXHhhZlx4YzRceGFiXHg3MVx4MzFceDE2XHhlMlx4NmVceDAyXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDM4XHgzOVx4NGZceGVhXHhmZlx4NWZceDhiXHhmNVx4MTlceGZkIgogICAgICAgICJc eGZmXHg3NVx4YWRceGZmXHgxZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHg0ZVx4ZDZceDQ3XHhkN1x4NmZceGVj XHg2Y1x4MzVceDliXHhkYlx4NTdceDUzXHg1YVx4OGEiCiAgICAgICAgIlx4MjhceGJmXHhkZlx4 ZGZceGRkXHhkZlx4OWRceDZjXHgyN1x4ZTNceDViXHhhZFx4NjhceDQ3XHgxOVx4NDVceDVjIgog ICAgICAgICJceDhlXHhiNVx4ZjhceDMzXHhjNlx4ZGRceGZmXHgxM1x4OTNceGZhXHhjYVx4ZmJc eGNkXHhlZFx4Y2JceDY5XHg2YyIKICAgICAgICAiXHgzZFx4YmVceDJiXHg2Zlx4MWRceGU1XHg2 Zlx4ZWRceGVmXHgzZVx4MzdceDlkXHhkZlx4MThceDNmXHg0ZVx4ZTAiCiAgICAgICAgIlx4Mjhc eGJmXHgzOFx4MWVceGJiXHg5N1x4ZGZceDk4XHhlNFx4ZDNceDc0XHhmZVx4NzRceDJjXHgzZlx4 OThceGRmIgogICAgICAgICJceDhjXHhiNVx4MzhceDNmXHg3Ylx4ZmZceDliXHgzM1x4ZjNceDRi XHhmMVx4ZDZceDliXHgwZlx4ZTRceGIzXHg1OCIKICAgICAgICAiXHg4Ylx4ZGJceDlmXHg0NVx4 MmZceGNhXHhkOFx4MWJceGVmXHhmYlx4N2VceGZlXHg5Ylx4OGRceDk0XHhkZVx4ZmIiCiAgICAg ICAgIlx4YTBceGY5XHg1MFx4ZmVceGQyXHg3OFx4MWVceDAwXHgwMFx4MDBceGZjXHgxZlx4NjRc eGU5XHgxZlx4MzNceGFmIgogICAgICAgICJceGRmXHhiM1x4ZWNceDcxXHhlM1x4OTNceGZjXHgz MVx4ZmVceDFmXHg3OFx4ZThceGZhXHg3YVx4MzFceDJlXHgyZCIKICAgICAgICAiXHhjZVx4Zjdc eGQ4XHg4OVx4YThceDQ2XHg1Zlx4NzVceGYyXHhiMlx4MmNceDA2XHhkM1x4YzVceGQyXHgyM1x4 YWYiCiAgICAgICAgIlx4M2NceDIzXHg0NVx4MWRceDI3XHhmMFx4M2VceDhkXHhhN1x4YjRceGMy XHg0Nlx4Y2NceGZkXHhmM1x4NzlceGE2IgogICAgICAgICJceDhiXHgzM1x4NDdceDNmXHg5YVx4 NjNceGM2XHhlZlx4OWVceGU2XHhlNlx4YmZceGY4XHg0N1x4OGFceGRiXHhlNyIKICAgICAgICAi XHg5ZVx4MzhceDY3XHhjZVx4MjdceDI2XHhmZVx4MTNceGY3XHhiZlx4ZjRceDc5XHhhZlx4MDRc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHg4MFx4ZTNceDc4XHhj YVx4NzdceDFhXHgyZVx4YzZceDhjXHgzYlx4Y2JceGRlIgogICAgICAgICJceDlkXHhjZlx4YTFc eDAyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAg ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAg ICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAg ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAg ICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAg ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAg ICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAg Ilx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAi CiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAg ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAg ICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAg ICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAg ICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAg ICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMCIK ICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAgICJceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhm Y1x4Y2RceDBlXHgxY1x4MGJceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDA4XHhmM1x4Yjdc eDRlXHhhM1x4NjNceDAzXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAg ICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMCIKICAgICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiCiAgICAgICAgIlx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAgICJceDAwXHgwMFx4MDBceDAwXHgwMFx4NjBceGE4XHgwMFx4MDBceDAwXHhm Zlx4ZmZceGIyXHgyYlx4YzZceDZlIiwKICAgICAgICA0NjIzKSk7CiAgICBOT05GQUlMSU5HKHN5 el9tb3VudF9pbWFnZSgKICAgICAgICAvKmZzPSovMHgyMDAwMDNjMCwgLypkaXI9Ki8weDIwMDAw MDQwLAogICAgICAgIC8qZmxhZ3M9TVNfSV9WRVJTSU9OfE1TX1JFQ3xNU19TWU5DSFJPTk9VU3xN U19TSUxFTlR8TVNfUkVMQVRJTUV8MHgyZDRlKi8KICAgICAgICAweGEwZWQ1ZSwgLypvcHRzPSov MHgyMDAwMDljMCwgLypjaGRpcj0qLzEsIC8qc2l6ZT0qLzB4MTIwZiwKICAgICAgICAvKmltZz0q LzB4MjAwMDJhODApKTsKICAgIGJyZWFrOwogIGNhc2UgNToKICAgIE5PTkZBSUxJTkcobWVtY3B5 KCh2b2lkKikweDIwMDAwNWMwLCAiLi9idXNcMDAwIiwgNikpOwogICAgc3lzY2FsbCgKICAgICAg ICBfX05SX29wZW4sIC8qZmlsZT0qLzB4MjAwMDA1YzB1bCwKICAgICAgICAvKmZsYWdzPU9fU1lO Q3xPX05PTkJMT0NLfE9fTk9BVElNRXxPX0RJUkVDVHxPX0NSRUFUfDB4MiovIDB4MTQ1ODQydWws CiAgICAgICAgLyptb2RlPSovMHVsKTsKICAgIGJyZWFrOwogIGNhc2UgNjoKICAgIE5PTkZBSUxJ TkcobWVtY3B5KCh2b2lkKikweDIwMDAwMTAwLCAiLi9idXNcMDAwIiwgNikpOwogICAgcmVzID0g c3lzY2FsbChfX05SX2NyZWF0LCAvKmZpbGU9Ki8weDIwMDAwMTAwdWwsIC8qbW9kZT0qLzB1bCk7 CiAgICBpZiAocmVzICE9IC0xKQogICAgICByWzFdID0gcmVzOwogICAgYnJlYWs7CiAgY2FzZSA3 OgogICAgc3lzY2FsbChfX05SX3dyaXRlLCAvKmZkPSovclsxXSwgLypkYXRhPSovMHgyMDAwMDMw MHVsLCAvKmxlbj0qLzB4ZmQxNHVsKTsKICAgIGJyZWFrOwogIGNhc2UgODoKICAgIE5PTkZBSUxJ TkcobWVtY3B5KCh2b2lkKikweDIwMDAwMTgwLCAibXNkb3NcMDAwIiwgNikpOwogICAgTk9ORkFJ TElORyhtZW1jcHkoKHZvaWQqKTB4MjAwMDAxMDAsICIuXDAwMCIsIDIpKTsKICAgIE5PTkZBSUxJ TkcoKih1aW50MTZfdCopMHgyMDAwMDNjMCA9IC0xKTsKICAgIE5PTkZBSUxJTkcoc3ByaW50Zigo Y2hhciopMHgyMDAwMDNjMiwgIjB4JTAxNmxseCIsIChsb25nIGxvbmcpLTEpKTsKICAgIE5PTkZB SUxJTkcoc3ByaW50ZigoY2hhciopMHgyMDAwMDNkNCwgIiUwMjNsbG8iLCAobG9uZyBsb25nKS0x KSk7CiAgICBOT05GQUlMSU5HKG1lbWNweSgKICAgICAgICAodm9pZCopMHgyMDAwMDNlYiwKICAg ICAgICAiXHhmMVx4YmNceGNhXHgwNVx4ZWRceDU4XHg4ZFx4NjNceGE1XHg3Nlx4Y2NceDNhXHhm ZFx4NTFceGJhXHhmMlx4OWMiCiAgICAgICAgIlx4ZGVceDIyXHg4MVx4YThceDQzXHg5Mlx4ZjRc eGU2XHg2Zlx4ZjdceGVmXHgyMlx4YWFceDlhXHhmN1x4MjdceGNlIgogICAgICAgICJceGFlXHg4 YVx4OGVceGM5XHg1Zlx4YzFceGI3XHgzMFx4ODNceGRlXHgyZFx4ZThceDI1XHhhMFx4Y2JceDJi XHgwYiIKICAgICAgICAiXHhlN1x4NzRceGZkXHhiM1x4MzZceDUwXHhkN1x4ZGFceGNlXHgyN1x4 YzFceDZiXHhjMlx4M2JceDJmXHg3Y1x4N2YiCiAgICAgICAgIlx4YjdceDI1XHg4NVx4NTRceDg5 XHgzOVx4NjlceDhmXHgyOFx4MGRceDEzXHg4YVx4YTlceDI1XHg1YVx4OGFceDkyIgogICAgICAg ICJceDQwXHgwOFx4ZjhceDQ3XHg3ZVx4ODJceGJhXHgxMVx4Y2RceGIxXHgxZVx4ZmRceDVjXHhh Mlx4ZjFceGFiXHgwNCIKICAgICAgICAiXHg5Y1x4ZTJceGNjXHhjNFx4MTVceGQyXHhkYVx4Zjhc eGRhXHhjN1x4MjVceDUzXHgzYVx4NTVceDhkXHg1Nlx4MTYiCiAgICAgICAgIlx4NTRceGZhXHhm NVx4ZTBceDkyXHg0Zlx4MTNceDc2XHgxN1x4NGZceDM3XHg0ZFx4NjZceDRmXHhhZFx4NGFceDZh IgogICAgICAgICJceGIyXHg0ZVx4YzBceGU4XHgyMlx4ZTdceGY5XHg0Mlx4NmVceDhlXHg1ZFx4 ZTFceGZlXHg1OFx4MDhceDVhXHgwYSIKICAgICAgICAiXHhlOFx4NmZceGQwXHgyYVx4MTFceDhi XHg5M1x4NjVceDk2XHgxOFx4MzRceGQ0XHg2Mlx4MDhceGI5XHhmYlx4NGMiCiAgICAgICAgIlx4 YjFceGIxXHhmYVx4OTZceDJhXHgwMlx4NWFceDAwXHhkY1x4MmVceDMxXHg5M1x4NzlceDExXHhl YVx4MWVceDVhIgogICAgICAgICJceDA3XHhhZVx4YjNceGY5XHhjZFx4NGVceDY0XHg4ZFx4ZjRc eGRkXHgxOFx4ZTZceDI1XHgzZVx4N2JceDZlXHhkNCIKICAgICAgICAiXHg4N1x4NWFceDYzXHhh Mlx4MzJceGEyXHhhNFx4MDdceDU4XHgwMlx4NjBceDZlXHg3MFx4MWNceDYzXHhhOFx4ODYiCiAg ICAgICAgIlx4MzdceDg3XHg4OFx4OWJceGYxXHhjOVx4MGZceGNjXHhmM1x4MTlceDU0XHhhOVx4 NDBceGM4XHhiNVx4ODRceGNhIgogICAgICAgICJceDg5XHhhNVx4MTJceGYyXHg4ZVx4ZGVceGMw XHg4Nlx4YjFceGMwXHg4Mlx4M2NceDAyXHg4OFx4NDBceGVlXHhhZiIKICAgICAgICAiXHgzZlx4 NWRceDg3XHg2OVx4MDJceDNjXHgwMVx4MjFceDg2XHgxNFx4ZjRceGZhXHg0MFx4YmVceDk4XHg5 Mlx4ZTciCiAgICAgICAgIlx4YTJceDg1XHhhY1x4NjNceGY3XHhmOVx4N2FceGFhXHg1Ylx4OGVc eGNjXHg4Nlx4ZTJceDhjXHg2MVx4OTNceGJjIgogICAgICAgICJceDIxXHhhMlx4YjhceDMzXHgw N1x4MDBceDAwXHgwMFx4YzRceGNmXHhhMFx4NjNceDNkXHg3YVx4YzNceDczXHhhYiIKICAgICAg ICAiXHgwNFx4YjZceDJiXHg0MVx4MTFceGI1XHg5ZVx4YWJceGQ0XHgzNlx4ZGRceDk3XHhlN1x4 ODhceGEzXHg2ZVx4ZjIiCiAgICAgICAgIlx4NWJceGFkXHg5OVx4YmVceDJhXHhhOVx4MjRceDk0 XHg5NVx4NThceGM4XHhjN1x4MDRceGE3XHgyYVx4NjFceDQzIgogICAgICAgICJceDhhXHg3ZVx4 NTJceDQ2XHg3NFx4OTRceGZmXHgxYlx4NTNceGQxXHg1Zlx4ZDhceDgxXHg3Nlx4ZWZceGMzXHhm OCIKICAgICAgICAiXHgwYlx4MzBceDIyXHg4ZFx4MTFceDRmXHg0Nlx4Y2JceDE3XHg3MVx4YmVc eGFlXHhiZFx4NWZceDI1XHhhOVx4ZTkiCiAgICAgICAgIlx4ZThceGI3XHg1Y1x4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDdlXHhmM1x4MzVceGQ0IgogICAgICAgICJc eDNhIiwKICAgICAgICAzOTIpKTsKICAgIE5PTkZBSUxJTkcoc3ByaW50ZigoY2hhciopMHgyMDAw MDU3MywgIjB4JTAxNmxseCIsIChsb25nIGxvbmcpLTEpKTsKICAgIE5PTkZBSUxJTkcoKih1aW50 OF90KikweDIwMDAwNTg1ID0gLTEpOwogICAgTk9ORkFJTElORygqKHVpbnQ2NF90KikweDIwMDAw NTg2ID0gLTEpOwogICAgTk9ORkFJTElORygqKHVpbnQzMl90KikweDIwMDAwNThlID0gLTEpOwog ICAgTk9ORkFJTElORygqKHVpbnQzMl90KikweDIwMDAwNTkyID0gLTEpOwogICAgTk9ORkFJTElO RyhzcHJpbnRmKChjaGFyKikweDIwMDAwNTk2LCAiJTAyMGxsdSIsIChsb25nIGxvbmcpLTEpKTsK ICAgIE5PTkZBSUxJTkcoc3l6X21vdW50X2ltYWdlKAogICAgICAgIC8qZnM9Ki8weDIwMDAwMTgw LCAvKmRpcj0qLzB4MjAwMDAxMDAsCiAgICAgICAgLypmbGFncz1NU19JX1ZFUlNJT058TVNfUFJJ VkFURXxNU19TWU5DSFJPTk9VU3xNU19TSUxFTlR8TVNfUkVNT1VOVHxNU19SRUxBVElNRXwweDI0 MGMqLwogICAgICAgIDB4YTRhNDNjLCAvKm9wdHM9Ki8weDIwMDAwM2MwLCAvKmNoZGlyPSovMSwg LypzaXplPSovMCwKICAgICAgICAvKmltZz0qLzB4MjAwMDAwMDApKTsKICAgIGJyZWFrOwogIH0K fQppbnQgbWFpbih2b2lkKQp7CiAgc3lzY2FsbChfX05SX21tYXAsIC8qYWRkcj0qLzB4MWZmZmYw MDB1bCwgLypsZW49Ki8weDEwMDB1bCwgLypwcm90PSovMHVsLAogICAgICAgICAgLypmbGFncz1N QVBfRklYRUR8TUFQX0FOT05ZTU9VU3xNQVBfUFJJVkFURSovIDB4MzJ1bCwgLypmZD0qLy0xLAog ICAgICAgICAgLypvZmZzZXQ9Ki8wdWwpOwogIHN5c2NhbGwoX19OUl9tbWFwLCAvKmFkZHI9Ki8w eDIwMDAwMDAwdWwsIC8qbGVuPSovMHgxMDAwMDAwdWwsCiAgICAgICAgICAvKnByb3Q9UFJPVF9X UklURXxQUk9UX1JFQUR8UFJPVF9FWEVDKi8gN3VsLAogICAgICAgICAgLypmbGFncz1NQVBfRklY RUR8TUFQX0FOT05ZTU9VU3xNQVBfUFJJVkFURSovIDB4MzJ1bCwgLypmZD0qLy0xLAogICAgICAg ICAgLypvZmZzZXQ9Ki8wdWwpOwogIHN5c2NhbGwoX19OUl9tbWFwLCAvKmFkZHI9Ki8weDIxMDAw MDAwdWwsIC8qbGVuPSovMHgxMDAwdWwsIC8qcHJvdD0qLzB1bCwKICAgICAgICAgIC8qZmxhZ3M9 TUFQX0ZJWEVEfE1BUF9BTk9OWU1PVVN8TUFQX1BSSVZBVEUqLyAweDMydWwsIC8qZmQ9Ki8tMSwK ICAgICAgICAgIC8qb2Zmc2V0PSovMHVsKTsKICBzZXR1cF9zeXNjdGwoKTsKICBzZXR1cF9jZ3Jv dXBzKCk7CiAgc2V0dXBfYmluZm10X21pc2MoKTsKICBzZXR1cF91c2IoKTsKICBzZXR1cF84MDIx NTQoKTsKICBzZXR1cF9zd2FwKCk7CiAgaW5zdGFsbF9zZWd2X2hhbmRsZXIoKTsKICBmb3IgKHBy b2NpZCA9IDA7IHByb2NpZCA8IDQ7IHByb2NpZCsrKSB7CiAgICBpZiAoZm9yaygpID09IDApIHsK ICAgICAgdXNlX3RlbXBvcmFyeV9kaXIoKTsKICAgICAgZG9fc2FuZGJveF9ub25lKCk7CiAgICB9 CiAgfQogIHNsZWVwKDEwMDAwMDApOwogIHJldHVybiAwOwp9Cg== ------=ALIBOUNDARY_1730_7ff67b661700_666188e5_19617d--