From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4AACF2E54D1 for ; Sat, 8 Aug 2026 19:51:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786218693; cv=none; b=fZk4Ty6BHeUYNnkx+TsoMjbCYHTQ4OZRApsuT1iH5IkBmsCCO7iESD0VnVIXO+wQUv8U1LsSLIlmMZcifxzvc+hWkf4uFVfBEflb8K8YrN4s+cyfrYfP+wfNR8WH9P6glxGCvdrQOH+3UdTuKzjd+PPiufqDi9hvQc8Hvc9qXHo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786218693; c=relaxed/simple; bh=7EtxaSuHRoyCN5v4DwOm2JnubmV0Z6AEXY9nx7Q/Fag=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=e637YdLwGEhK6nZRagGjADJz3bsccNyhzQ3+ccuy1LeZ9rBdV6c34eMLhMTJ1n2WfxdG4fxgQmI2MCqhhGDXN1X290Y4GVsBI7eyi+c+HGzutxAJAlYdjiHP4QNJUu2Kwz8vaabgI28dO5yEo0fe8G8VFOZtX1y63pUjmXdD7Tg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LFPfYKwA; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LFPfYKwA" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2cfff5f88dbso10426405ad.3 for ; Sat, 08 Aug 2026 12:51:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786218691; x=1786823491; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=7EtxaSuHRoyCN5v4DwOm2JnubmV0Z6AEXY9nx7Q/Fag=; b=LFPfYKwAyvJBF56uUFkTbtyAZ4XywHhPp9JfE3DnJvKMYXNgmHH802SuFB1kfZqDa/ 0jprYE/mB8xKwAyt4/F9QzUeagZoQ5myHvk/2RjtuaaaiuZKK0J/Dnk5INF7j2vIf6/M j0PgibaNnhc8FwW9TW4WF48xFjHvwhYTjv9NYfFk2l+cM7ADNSyNLa7akTW/sKU7Quwe e9UNVpirlQvU9PDdOG0vDbx00rfuIJjbrKf/2Eaf+Lm/jR9vkQXqqMoyE14Qz1i4LRqH ITBwlMUkemg6YMB/zUzB1H3tVJj+zW0n+TJnBfV/maKcobeDLY//ViF9vRSujk94jTQq muIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786218691; x=1786823491; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=7EtxaSuHRoyCN5v4DwOm2JnubmV0Z6AEXY9nx7Q/Fag=; b=bUIhx1FCpByFE/7cgysuAeQUGZ6iX7ZJveSwfb5sDGZWa6buWkNkUoPR1q/e68R7e2 lzH2TbWz2HeH6rA7zAhQEEvlSM8ThPZL+qYYpjZt6tb9vs+tBjtqZU3OdwvraSW+r6zr lnyMUQxoMevYHuRwp9ZiTXd30C3pXZPMeN87P9pPcIqRfQP68s64591zYv4v1IKuQapq Ue4B/WwR35XR688F0dKGZ1+vzrxRiVSNI/ag3JChUDO4wuglG8JrAE31tXJq9zu2dwYO JUqxb90bS2f3yGR7Gj0KJ9/rhKs6LHyCtPPmqXhB3OqnWQ9yzKHb5dVfre5qGClGCgZP 84pQ== X-Gm-Message-State: AOJu0Yyk1Lo7ZBlTS01kKG9dM8qBh1CaMRhIS9S1KK7jEYaFB9Q+m+ht 1Ht6w8ziH4F7zVrhZPZDE+1jRjQVcCxQIVIyKZtCnSsqGVbmWC0RCDJGS3Pfbg== X-Gm-Gg: AR+sD12wRVjDBnEeH/MOmw1a5OeDMxr/64Z1NUFMG/zFgRAatyiJUqYJXFYonCVcDUt WRo7escAIstBtEqWmZOa8QgEloCjhJqoqni71wLNqo7X4dSnDeABjJ6GFwXmeIr2Vf816h/q4mv UBQKvzz5NlLuOKuXzztWEeO8FM70hNNI1tFlSRFvzdn+t9q6ADFfHnSWOIPKJxlq3uIfFi+S7gx 3Bs+ATUA20+wDraRIkZ8pxjLuh4HpYeSNWXhJBMqZl6aI7FDDhGtxMGaiiNNEC6yYGEAkoAkE1Y WT5VFdR+G4jrcij2jX1CKapedkphZsah0fJ1ieRqz2LUs06jrdltOUHcuY1Jpr2GESYH8xz77YM 03+WmJJJB3Z2oR761fjmtp5qb8JRSb6W9wQy0blR4qY3zSIc/JquW+8uHx/IttB6G6Js/A7x2y3 uHLgsIKlghXo/duBCH5HRh+GDbs7pSaiP077KPRzmezsQNqqzjkrdX7U9Qt2vwgutoZg== X-Received: by 2002:a17:902:f682:b0:2d2:ae04:5712 with SMTP id d9443c01a7336-2d2ae0457f3mr94860615ad.21.1786218690164; Sat, 08 Aug 2026 12:51:30 -0700 (PDT) Received: from [172.17.0.2] ([13.83.167.49]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-315be8d60f4sm22938873eec.13.2026.08.08.12.51.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 12:51:29 -0700 (PDT) Message-ID: <6a7788c1.6c5720b3.b2c5.c00b@mx.google.com> Date: Sat, 08 Aug 2026 12:51:29 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============6555906665951573750==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, z4pdyy@gmail.com Subject: RE: [BlueZ] client: Avoid scan prompt when discovery is already active In-Reply-To: <20260808190329.126211-1-z4pdyy@gmail.com> References: <20260808190329.126211-1-z4pdyy@gmail.com> Reply-To: linux-bluetooth@vger.kernel.org --===============6555906665951573750== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9MTE0Mjc2NgoKLS0t VGVzdCByZXN1bHQtLS0KClRlc3QgU3VtbWFyeToKQ2hlY2tQYXRjaCAgICAgICAgICAgICAgICAg ICAgUEFTUyAgICAgIDAuMzMgc2Vjb25kcwpHaXRMaW50ICAgICAgICAgICAgICAgICAgICAgICBQ QVNTICAgICAgMC4yMCBzZWNvbmRzCkJ1aWxkRWxsICAgICAgICAgICAgICAgICAgICAgIFBBU1Mg ICAgICAyMC41MSBzZWNvbmRzCkJsdWV6TWFrZSAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAg ICA1MzkuODggc2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MjAyLjcyIHNlY29uZHMKYmx1ZXptYWtlZXh0ZWxsICAgICAgICAgICAgICAgRkFJTCAgICAgIDc2 LjM5IHNlY29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgRkFJTCAgICAgIDU0NS42 OCBzZWNvbmRzClNjYW5CdWlsZCAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAyODkuOTEg c2Vjb25kcwoKRGV0YWlscwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQmx1 ZXpNYWtlIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rl ci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEzMTMxOjU6 IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZh ci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMzEzMSB8IGludCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2 ZHRwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBu b3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXIt dHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA3NjYgfCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdnJj cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzo5ODk6NTogbm90 ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRy YWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTg5IHwgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpjbGllbnQvbWFpbi5jOiBJ biBmdW5jdGlvbiDigJhjbWRfY29ubmVjdOKAmToKY2xpZW50L21haW4uYzoyMzAwOjM6IGVycm9y OiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRl Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KIDIzMDAgfCAgIGRidXNfYm9vbF90IGRpc2NvdmVy aW5nOwogICAgICB8ICAgXn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRl ZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3MDY2OiBjbGllbnQvbWFpbi5vXSBF cnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnVuaXQv dGVzdC1yYXAuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LXJhcC5jOjk5Nzo1 OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2 YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA5OTcgfCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+Cm1ha2U6ICoqKiBb TWFrZWZpbGU6NDE3NzogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0b29sIHdpdGggc291 cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVy cy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9z aGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzM1OjMxOiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzox MzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9nYXR0LXNlcnZlci5jOjI3MToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTQ6MjU6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzEyOjI1OiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzoz MTg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9i YXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTog d2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Jl YWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24n Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6Mjcx OjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9j cnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpz cmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMu YzoxMzM1OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LWhlbHBlcnMuYzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJy YXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3MToyNTogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTQ6 MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtc2VydmVyLmM6NzEyOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTg6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0 cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMv c2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJl cwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0 eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6 MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0 aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBu b24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnRv b2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNlcXVl bmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9s aWIvYmx1ZXRvb3RoL2JsdWV0b290aC5oOjIzMjoxNTogd2FybmluZzogYXJyYXkgb2YgZmxleGli bGUgc3RydWN0dXJlcwouL2xpYi9ibHVldG9vdGgvYmx1ZXRvb3RoLmg6MjM3OjMxOiB3YXJuaW5n OiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnRvb2xzL2JuZXB0ZXN0LmM6NjM0OjM5OiB3 YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0b29scy9zZXEyYnNlcS5jOjU3 OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdG9vbHMvb2JleC1j bGllbnQtdG9vbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVk ZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMu aDozNToyMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ0Z1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM2OjI1OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnVkZ1bmN0 aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM3OjI3OiB3YXJuaW5nOiBu b24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BGdW5jdGlvbicKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozODoyOTogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQUEZ1bmN0aW9uJwpjbGllbnQvYnRw Y2xpZW50L2dhdHQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2J0cC5o OjMzNTo0MTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL3NyYy9zaGFy ZWQvYnRwLmg6MzQwOjU1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCi4v c3JjL3NoYXJlZC9idHAuaDozNjM6NDc6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVj dHVyZXMKLi9zcmMvc2hhcmVkL2J0cC5oOjM5Mjo0Mjogd2FybmluZzogYXJyYXkgb2YgZmxleGli bGUgc3RydWN0dXJlcwpzcmMvYWR2ZXJ0aXNpbmcuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToK Li9zcmMvc2hhcmVkL21nbXQuaDo5NToyNTogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNpZ25l ZCBpbnQgZW51bSBtZ210X2lvX2NhcGFiaWxpdHkKc3JjL2FnZW50LmM6IG5vdGU6IGluIGluY2x1 ZGVkIGZpbGU6CnNyYy9zaGFyZWQvcXVldWUuaDoxOToyMDogZXJyb3I6IHJlZGVmaW5pdGlvbiBv ZiBzdHJ1Y3QgcXVldWVfZW50cnkKc3JjL2Fkdl9tb25pdG9yLmM6IG5vdGU6IGluIGluY2x1ZGVk IGZpbGU6Ci4vc3JjL3NoYXJlZC9tZ210Lmg6OTU6MjU6IGVycm9yOiByZWRlZmluaXRpb24gb2Yg dW5zaWduZWQgaW50IGVudW0gbWdtdF9pb19jYXBhYmlsaXR5CnVuaXQvYXZjdHAuYzo1MDU6MzQ6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2Y3RwLmM6NTU2 OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0LWF2 cmNwLmM6MzczOjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5p dC90ZXN0LWF2cmNwLmM6Mzk4OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6NDE0OjI0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxMDg1OjM0OiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxNTgzOjM0OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIuYzoxNjEyOjM0 OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC9hdnJjcC1saWIu YzoxNjM4OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL2Fk dmVydGlzaW5nLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vc3JjL3NoYXJlZC9tZ210Lmg6 OTU6MjU6IGVycm9yOiByZWRlZmluaXRpb24gb2YgdW5zaWduZWQgaW50IGVudW0gbWdtdF9pb19j YXBhYmlsaXR5CnNyYy9hZ2VudC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgpzcmMvc2hhcmVk L3F1ZXVlLmg6MTk6MjA6IGVycm9yOiByZWRlZmluaXRpb24gb2Ygc3RydWN0IHF1ZXVlX2VudHJ5 CnNyYy9hZHZfbW9uaXRvci5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQv bWdtdC5oOjk1OjI1OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2lnbmVkIGludCBlbnVtIG1n bXRfaW9fY2FwYWJpbGl0eQpzcmMvbWFpbi5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJv dWdoIHNyYy9kZXZpY2UuaCk6Ci4vc3JjL3NoYXJlZC9xdWV1ZS5oOjE5OjIwOiBlcnJvcjogcmVk ZWZpbml0aW9uIG9mIHN0cnVjdCBxdWV1ZV9lbnRyeQptZXNoL21lc2gtaW8tbWdtdC5jOjUyNTo2 Nzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmNsaWVudC9kaXNwbGF5 LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmNsaWVudC9tYWluLmM6MjMwMDox Nzogd2FybmluZzogbWl4aW5nIGRlY2xhcmF0aW9ucyBhbmQgY29kZQpjbGllbnQvbWFpbi5jOiBJ biBmdW5jdGlvbiDigJhjbWRfY29ubmVjdOKAmToKY2xpZW50L21haW4uYzoyMzAwOjM6IGVycm9y OiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRl Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KIDIzMDAgfCAgIGRidXNfYm9vbF90IGRpc2NvdmVy aW5nOwogICAgICB8ICAgXn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRl ZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3MDY2OiBjbGllbnQvbWFpbi5vXSBF cnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6 ICoqKiBbTWFrZWZpbGU6NDE3NzogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwpUZXN0OiBibHVlem1ha2VleHRlbGwgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWV6IHdp dGggRXh0ZXJuYWwgRUxMCk91dHB1dDoKCmNsaWVudC9tYWluLmM6IEluIGZ1bmN0aW9uIOKAmGNt ZF9jb25uZWN04oCZOgpjbGllbnQvbWFpbi5jOjIzMDA6MzogZXJyb3I6IElTTyBDOTAgZm9yYmlk cyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXIt c3RhdGVtZW50XQogMjMwMCB8ICAgZGJ1c19ib29sX3QgZGlzY292ZXJpbmc7CiAgICAgIHwgICBe fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtl WzFdOiAqKiogW01ha2VmaWxlOjcwNjY6IGNsaWVudC9tYWluLm9dIEVycm9yIDEKbWFrZVsxXTog KioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0 MTc3OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IElu Y3JlbWVudGFsQnVpbGQgLSBGQUlMCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdpdGggdGhlIHBh dGNoZXMgaW4gdGhlIHNlcmllcwpPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5j dGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEzMTMxOjU6IG5vdGU6IHZhcmlh YmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1h c3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMzEzMSB8IGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1 bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJs ZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNz aWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5j dGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzo5ODk6NTogbm90ZTogdmFyaWFibGUg dHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2ln bm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTg5IHwgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpjbGllbnQvbWFpbi5jOiBJbiBmdW5jdGlvbiDi gJhjbWRfY29ubmVjdOKAmToKY2xpZW50L21haW4uYzoyMzAwOjM6IGVycm9yOiBJU08gQzkwIGZv cmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFm dGVyLXN0YXRlbWVudF0KIDIzMDAgfCAgIGRidXNfYm9vbF90IGRpc2NvdmVyaW5nOwogICAgICB8 ICAgXn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMK bWFrZVsxXTogKioqIFtNYWtlZmlsZTo3MDY2OiBjbGllbnQvbWFpbi5vXSBFcnJvciAxCm1ha2Vb MV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnVuaXQvdGVzdC1yYXAuYzog SW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LXJhcC5jOjk5Nzo1OiBub3RlOiB2YXJp YWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmct YXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA5OTcgfCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+Cm1ha2U6ICoqKiBbTWFrZWZpbGU6NDE3 NzogYWxsXSBFcnJvciAyCltCbHVlWl0gY2xpZW50OiBBdm9pZCBzY2FuIHByb21wdCB3aGVuIGRp c2NvdmVyeSBpcyBhbHJlYWR5IGFjdGl2ZQoKdG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rp b24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMzEzMTo1OiBub3RlOiB2YXJpYWJs ZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNz aWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTMxMzEgfCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdmR0cC5jOiBJbiBmdW5j dGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3NjY6NTogbm90ZTogdmFyaWFibGUg dHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2ln bm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZyY3AuYzogSW4gZnVuY3Rp b24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2cmNwLmM6OTg5OjU6IG5vdGU6IHZhcmlhYmxlIHRy YWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25t ZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDk4OSB8IGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KY2xpZW50L21haW4uYzogSW4gZnVuY3Rpb24g4oCY Y21kX2Nvbm5lY3TigJk6CmNsaWVudC9tYWluLmM6MjMwMDozOiBlcnJvcjogSVNPIEM5MCBmb3Ji aWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnRdCiAyMzAwIHwgICBkYnVzX2Jvb2xfdCBkaXNjb3ZlcmluZzsKICAgICAgfCAg IF5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1h a2VbMV06ICoqKiBbTWFrZWZpbGU6NzA2NjogY2xpZW50L21haW4ub10gRXJyb3IgMQptYWtlWzFd OiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgp1bml0L3Rlc3QtcmFwLmM6IElu IGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQvdGVzdC1yYXAuYzo5OTc6NTogbm90ZTogdmFyaWFi bGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFz c2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTk3IHwgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgptYWtlOiAqKiogW01ha2VmaWxlOjQxNzc6 IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogU2NhbkJ1 aWxkIC0gRkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6NDQ3OjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzo2OTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAg ICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6OTkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMDk4OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3Ms IGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjkyOjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUo b3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzU3OjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlf b3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxNjMyOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2OTM6NTY6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBub3RpZnlfZGF0YS0+Y2hyYy0+Y2Nj X3dyaXRlX2lkID0gbm90aWZ5X2RhdGEtPmF0dF9pZCA9IGF0dF9pZDsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fiBeCnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyMTQ2OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU0Ojg6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzMzMjoyOiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9u Z19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMzU0 OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1 ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEzIHdhcm5pbmdzIGdl bmVyYXRlZC4Kc3JjL3NoYXJlZC9yYXAuYzozNTU0OjEzOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgYXR0YWNoZWQgPSBxdWV1ZV9maW5kKHNlc3Npb25z LCBOVUxMLCByYXApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE1NDM6ODogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGJhcCA9IGJ0X2Jh cF9yZWZfc2FmZShiYXApOwogICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvYmFwLmM6MjM1NDoyMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJlYW1zLCBOVUxM LCBzdHJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDQ3OjIxOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91 bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTI6Mjogd2Fybmlu ZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9j b21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTkyOjI6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zl cnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoxMDk4OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxMjkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9l Y29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzU3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1 Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjMyOjY6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNo KG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoxNjM3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjE2OTM6NTY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBub3RpZnlfZGF0YS0+Y2hyYy0+Y2NjX3dyaXRlX2lkID0gbm90aWZ5 X2RhdGEtPmF0dF9pZCA9IGF0dF9pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fiBeCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoy MTQ2OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBp ZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzoyMTU0Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MzMzMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3Ms IDAsIGZhbHNlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMzU0OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEzIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJl ZC9yYXAuYzozNTU0OjEzOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgYXR0YWNoZWQgPSBxdWV1ZV9maW5kKHNlc3Npb25zLCBOVUxMLCByYXApOwogICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2guYzo4MTc6Nzogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChu ID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICBeICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjU6Nzogd2Fy bmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5j bG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20g J24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsK ICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0 YWNoLmM6ODg3Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlz IHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0 dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZl bnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkwOTo3OiB3YXJuaW5nOiBB bHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Npbmcg ZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAg ICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAg ICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5 MzA6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBp biB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSBy ZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQp KSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvaGNpYXR0YWNoLmM6OTc0Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQg dG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMg bmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2 ZW50KGZkLCByZXNwLCA2KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE1NDM6 ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGJhcCA9 IGJ0X2JhcF9yZWZfc2FmZShiYXApOwogICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvYmFwLmM6MjM1NDoyMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJlYW1z LCBOVUxMLCBzdHJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdk Yl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9v dWkuYzo1MzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQK ICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvcmZjb21tLmM6MjM0OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnaScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgaSA9 IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MjM0Ojc6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAg ICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzozNTQ6ODog d2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhl IGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBm cm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZ IHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjQ5NzoxNDogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICByZXEuY2hhbm5l bCA9IHJhZGRyLnJjX2NoYW5uZWw7CiAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL3JmY29tbS5jOjUxNTo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3Rv cmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1 ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAgICAgaWYgKChm ZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAgICAg ICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJu aW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRvb2wuYzozNTE6Nzogd2FybmluZzogNXRoIGZ1bmN0 aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHNrID0g ZG9fY29ubmVjdChjdGwsIGRldl9pZCwgJnNyYywgJmRzdCwgcHNtLCAoMSA8PCBDTVRQX0xPT1BC QUNLKSk7CiAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwLXht bC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmlu ZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAg ICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDY6MTE6IHdhcm5pbmc6IEFzc2ln bmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAg IGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+ fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjM0NDoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUg aXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0g ZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+ CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9zZHB0b29sLmM6OTQxOjI2OiB3YXJuaW5nOiBS ZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICd1aW50 MzJfdCcsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ2lu dCcKICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbHVlX2ludCA9IG1hbGxvYyhz aXplb2YoaW50KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn4gICAgICAgICAg ICBefn5+fn4gfn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAxc3Qg ZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAg ICAgICAgICAgICAgICAgIGZyZWUoYWxsb2NBcnJheVtpXSk7CiAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjM3Nzc6Mjogd2FybmluZzog UG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3NpLm5hbWUnCiAgICAgICAg cmV0dXJuIGFkZF9zZXJ2aWNlKDAsICZzaSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjQxMTI6NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2Yg bWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2NvbnRleHQuc3ZjJwogICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgo0IHdhcm5pbmdz IGdlbmVyYXRlZC4KdG9vbHMvYXZ0ZXN0LmM6MjQzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjUzOjU6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjYyOjU6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjc2 OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoy ODM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjI5MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6Mjk3OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzozMDk6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzozMTM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjI6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjY6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMzU6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNDI6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzozNjQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzozNjg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzozNzc6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0 ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozODE6NTogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTQ6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTg6NTogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo0 MDU6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjQxNTo0OiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTgwOjM6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjU4ODozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgaW52YWxp ZCA/IDIgOiAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjAyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0 ICsgbWVkaWFfdHJhbnNwb3J0X3NpemUpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MTU6Mzogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjI1OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAz KTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjYzNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NTI6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvYXZ0ZXN0LmM6NjY0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY3MzozOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2ODA6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIp OwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6 NzE2OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgQVZDVFBfSEVBREVSX0xFTkdUSCArIHNpemVvZihwbGF5 X3ByZXNzZWQpKTsKICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMv YnRwcm94eS5jOjgzNjoxNTogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFy YW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAgICAgICAgdGNwX3Bv cnQgPSBhdG9pKG9wdGFyZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+CnRvb2xzL2J0cHJveHkuYzo4Mzk6ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBh c3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHN0cmxlbihvcHRhcmcpID4gMyAmJiAhc3RybmNtcChvcHRhcmcsICJoY2ki LCAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2Fybmlu Z3MgZ2VuZXJhdGVkLgp0b29scy9jcmVhdGUtaW1hZ2UuYzo3NjozOiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAg ICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0x OwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo5MjozOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBm ZCA9IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzoxMDU6 Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgIGZk ID0gLTE7CiAgICAgICAgXiAgICB+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2hlY2st c2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3B0cicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgcHRyID0gZmdldHMocmVzdWx0LCBzaXplb2YocmVzdWx0KSwg ZnApOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1jbGllbnQuYzoxODIyOjI6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3Yg Kz0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRv b2xzL2J0Z2F0dC1zZXJ2ZXIuYzoxMjA0OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJn dicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3YgLT0gb3B0aW5kOwogICAgICAgIF4gICAgICAg fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2dhdHQtc2VydmljZS5jOjI5NDoyOiB3 YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZh bHVlCiAgICAgICAgY2hyX3dyaXRlKGNociwgdmFsdWUsIGxlbik7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvb2JleC1zZXJ2ZXIt dG9vbC5jOjEzMzoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1l dGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19X Uk9OTFkgfCBPX0NSRUFUIHwgT19OT0NUVFksIDA2MDApOwogICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvb2JleC1z ZXJ2ZXItdG9vbC5jOjE5MjoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3Qg cGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFt ZSwgT19SRE9OTFkgfCBPX05PQ1RUWSwgMCk7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy90ZXN0 LXJ1bm5lci5jOjEzNjc6Mjogd2FybmluZzogQWRkcmVzcyBvZiBzdGFjayBtZW1vcnkgYXNzb2Np YXRlZCB3aXRoIGxvY2FsIHZhcmlhYmxlICdrZXJuZWxfcGF0aCcgaXMgc3RpbGwgcmVmZXJyZWQg dG8gYnkgdGhlIGdsb2JhbCB2YXJpYWJsZSAna2VybmVsX2ltYWdlJyB1cG9uIHJldHVybmluZyB0 byB0aGUgY2FsbGVyLiAgVGhpcyB3aWxsIGJlIGEgZGFuZ2xpbmcgcmVmZXJlbmNlCiAgICAgICAg cmV0dXJuIEVYSVRfU1VDQ0VTUzsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCmNsaWVudC9idHBjbGllbnQvYnRwY2xpZW50Y3RsLmM6NDAyOjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnYml0JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBi aXQgPSAwOwogICAgICAgICAgICAgICAgXiAgICAgfgpjbGllbnQvYnRwY2xpZW50L2J0cGNsaWVu dGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1l dGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEsIGFkX2RhdGEs IGFkX2xlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2Fy bmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwLWNsaWVudC5jOjM1MzoxNDogd2FybmluZzogQWNjZXNz IHRvIGZpZWxkICdjYicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVy CiAgICAgICAgKCpjdHh0KS0+Y2IgPSBjYjsKICAgICAgICB+fn5+fn5+fn5+fn5efn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCnNyYy9zZHBkLXJlcXVlc3QuYzoyMDk6MTM6IHdhcm5pbmc6IFJlc3Vs dCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3 aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICd1aW50MTZfdCcK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWlu dDE2X3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zZHBkLXJlcXVlc3QuYzoyMzc6MTM6IHdhcm5pbmc6IFJlc3Vs dCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ2NoYXInLCB3 aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFuZCB0eXBlICd1aW50MzJfdCcK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxlbSA9IG1hbGxvYyhzaXplb2YodWlu dDMyX3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fiB+ fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvZ2F0dC1kYXRhYmFzZS5j OjExNzE6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0cycgZHVyaW5nIGl0cyBpbml0 aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgdWludDhfdCBiaXRzW10gPSB7IEJUX0dB VFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElORywKICAgICAgICAgICAgICAgIF5+fn4gICAg IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpzcmMvZ2F0dC1jbGllbnQuYzoxNTY5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBub3RpZnlfY2xpZW50X3VucmVmKGNsaWVudCk7CiAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnVuaXQv YXZyY3AtbGliLmM6MTk2ODozOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBp cyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICBnX2ZyZWUodGV4dFtpXSk7 CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdW5p dC9hdmR0cC5jOjc1NjoyNTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNl c3Npb24tPnByaW9fcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp1bml0L2F2ZHRw LmM6NzYzOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgICAgICAgICBzZXNzaW9uLT5yZXFfcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5y ZXFfcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CnVuaXQvdGVzdC11dGlsLmM6MzM6ODogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5 IHBvaW50ZWQgdG8gYnkgJ3AxJwogICAgICAgIHAyWzBdID0gMTsKICAgICAgICB+fn5+fn5efn4K dW5pdC90ZXN0LXV0aWwuYzozNjozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkg cG9pbnRlZCB0byBieSAncDInCiAgICAgICAgICAgICAgICBfY2xlYW51cF9mcmVlXyB1aW50OF90 ICpkYXRhID0gTlVMTDsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDoxMzQ6MjQ6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8g J19jbGVhbnVwX2ZyZWVfJwojZGVmaW5lIF9jbGVhbnVwX2ZyZWVfIF9jbGVhbnVwXyhmcmVlcCkK ICAgICAgICAgICAgICAgICAgICAgICBeCi4vc3JjL3NoYXJlZC91dGlsLmg6MTMyOjIyOiBub3Rl OiBleHBhbmRlZCBmcm9tIG1hY3JvICdfY2xlYW51cF8nCiNkZWZpbmUgX2NsZWFudXBfKGYpIF9f YXR0cmlidXRlX18oKGNsZWFudXAoZikpKQogICAgICAgICAgICAgICAgICAgICBeCnVuaXQvdGVz dC11dGlsLmM6NDI6Mzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQg dG8gYnkgJ2RhdGEnCiAgICAgICAgICAgICAgICBhc3NlcnQoaXNfbnVsbF90b28gPT0gTlVMTCk7 CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRl L2Fzc2VydC5oOjEwODoxMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYXNzZXJ0JwogICgo dm9pZCkgc2l6ZW9mICgoZXhwcikgPyAxIDogMCksIF9fZXh0ZW5zaW9uX18gKHsgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp1bml0L3Rlc3Qt dXRpbC5jOjUwOjI6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRv IGJ5ICdkYXRhJwogICAgICAgIGFzc2VydChpc19udWxsID09IE5VTEwpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9hc3NlcnQuaDoxMDg6MTE6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ2Fzc2VydCcKICAoKHZvaWQpIHNpemVvZiAoKGV4cHIpID8gMSA6 IDApLCBfX2V4dGVuc2lvbl9fICh7ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlv L2F2ZHRwLmM6ODk1OjI1OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgICAgICAgICBzZXNzaW9uLT5wcmlvX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vz c2lvbi0+cHJpb19xdWV1ZSwgcmVxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1 ZGlvL2F2ZHRwLmM6OTAyOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5yZXFfcXVldWUgPSBnX3NsaXN0X3JlbW92ZShz ZXNzaW9uLT5yZXFfcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2EyZHAuYzo0NDI6ODogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgaWYgKCFjYi0+cmVzdW1lX2Ni KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2EyZHAu YzozMzYxOjIwOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ3N0YXJ0aW5nJyByZXN1bHRzIGlu IGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdz dHJlYW0nKQogICAgICAgICAgICAgICAgc3RyZWFtLT5zdGFydGluZyA9IFRSVUU7CiAgICAgICAg ICAgICAgICB+fn5+fn4gICAgICAgICAgIF4KcHJvZmlsZXMvYXVkaW8vYTJkcC5jOjMzNjQ6ODog d2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdzdXNwZW5kaW5nJyByZXN1bHRzIGluIGEgZGVyZWZl cmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdzdHJlYW0nKQog ICAgICAgICAgICAgICAgaWYgKCFzdHJlYW0tPnN1c3BlbmRpbmcgJiYgc3RyZWFtLT5zdXNwZW5k X3RpbWVyKSB7CiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxl cy9hdWRpby9hMmRwLmM6MzQyNDoyMjogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdzdXNwZW5k aW5nJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBm cm9tIHZhcmlhYmxlICdzdHJlYW0nKQogICAgICAgICAgICAgICAgc3RyZWFtLT5zdXNwZW5kaW5n ID0gVFJVRTsKICAgICAgICAgICAgICAgIH5+fn5+fiAgICAgICAgICAgICBeCjQgd2FybmluZ3Mg Z2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hdnJjcC5jOjE5Njg6Mjogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdvcGVyYW5kcycgaXMgbmV2ZXIgcmVhZAogICAgICAgIG9wZXJhbmRzICs9IHNp emVvZigqcGR1KTsKICAgICAgICBeICAgICAgICAgICB+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KYXR0cmliL2dhdHQuYzo5NzA6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2Yg bWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2xvbmdfd3JpdGUnCiAgICAgICAgcmV0dXJuIHByZXBhcmVf d3JpdGUobG9uZ193cml0ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIwOToxMzogd2Fybmlu ZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAn Y2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3Vp bnQxNl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNp emVvZih1aW50MTZfdCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NkcGQtcmVxdWVzdC5jOjIzNzoxMzogd2Fybmlu ZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAn Y2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3Vp bnQzMl90JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNp emVvZih1aW50MzJfdCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHAtY2xp ZW50LmM6MzUzOjE0OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ2NiJyByZXN1bHRzIGluIGEg ZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIKICAgICAgICAoKmN0eHQpLT5jYiA9IGNiOwog ICAgICAgIH5+fn5+fn5+fn5+fl5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwu YzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVk CiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAg ICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzA2OjExOiB3YXJuaW5nOiBBc3NpZ25l ZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBi dWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+ fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozNDQ6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlz IGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRh dGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgoz IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL2dhdHQtZGF0YWJhc2UuYzoxMTcxOjEwOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2JpdHMnIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2 ZXIgcmVhZAogICAgICAgIHVpbnQ4X3QgYml0c1tdID0geyBCVF9HQVRUX0NIUkNfQ0xJX0ZFQVRf Uk9CVVNUX0NBQ0hJTkcsCiAgICAgICAgICAgICAgICBefn5+ICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL2dhdHQtY2xp ZW50LmM6MTU2OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgbm90aWZ5X2NsaWVudF91bnJlZihjbGllbnQpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo5 NToyOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0 aW5nICdub25udWxsJwogICAgICAgIG1lbWNweSh0bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRy YW5zZmVyLmM6NDIzOjc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBpZiAoIWdfc2xpc3RfZmluZCh0cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVk LgptZXNoL21haW4uYzoxNjI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdvcHRhcmcnIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIG9wdGFyZyArPSBzdHJsZW4oImF1dG8iKTsKICAg ICAgICAgICAgICAgIF4gICAgICAgICB+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVk LgpjbGllbnQvbWFpbi5jOiBJbiBmdW5jdGlvbiDigJhjbWRfY29ubmVjdOKAmToKY2xpZW50L21h aW4uYzoyMzAwOjM6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFu ZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KIDIzMDAgfCAgIGRi dXNfYm9vbF90IGRpc2NvdmVyaW5nOwogICAgICB8ICAgXn5+fn5+fn5+fn4KY2MxOiBhbGwgd2Fy bmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3MDY2 OiBjbGllbnQvbWFpbi5vXSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlz aGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDE3NzogYWxsXSBFcnJvciAyCgoKaHR0 cHM6Ly9naXRodWIuY29tL2JsdWV6L2JsdWV6L3B1bGwvMjM5MQoKLS0tClJlZ2FyZHMsCkxpbnV4 IEJsdWV0b290aAoK --===============6555906665951573750==--