Jewish Relief Agency
Client Survey 2026-
This summary compiles information on survey data collected
anonymously from JRA recipients in 2026. Surveys included demographics
questions, food insecurity questions, and satisfaction questions
regarding JRA services. In January, the survey was sent to 1,800
households.
Demographics
JRA Services
What is your overall satisfaction with the food box you receive from
JRA?
|
|
Total (n)
|
Percentage (%)
|
|
Very satisfied
|
76
|
52.1
|
|
Satisfied
|
68
|
46.6
|
|
Dissatisfied
|
1
|
0.7
|
|
Very dissatisfied
|
1
|
0.7
|
How important is the delivery aspect of JRA’s services?
|
|
Total (n)
|
Percentage (%)
|
|
Absolutely Essential
|
92
|
63.4
|
|
Important
|
53
|
36.6
|
|
Not Important
|
0
|
0.0
|
Because of the relief I receive from JRA services, I am able to save
money to put towards paying my monthly bills
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
72
|
50.3
|
|
Agree
|
56
|
39.2
|
|
Disagree
|
15
|
10.5
|
|
Strongly Disagree
|
0
|
0.0
|
Because of the JRA food box, I am less worried about having enough food
each month.
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
56
|
39.2
|
|
Agree
|
75
|
52.4
|
|
Disagree
|
12
|
8.4
|
|
Strongly Disagree
|
0
|
0.0
|
Because of the JRA food box, I have access to more nutritious food.
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
58
|
40.8
|
|
Agree
|
69
|
48.6
|
|
Disagree
|
15
|
10.6
|
|
Strongly Disagree
|
0
|
0.0
|
Because of a current illness or disability, I am unable to get to a food
store and therefore consider JRA’s services critical.
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
62
|
43.4
|
|
Agree
|
60
|
42.0
|
|
Disagree
|
19
|
13.3
|
|
Strongly Disagree
|
2
|
1.4
|
The food and other supplies delivered by JRA improve the health of the
individuals in my household
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
59
|
41.3
|
|
Agree
|
72
|
50.3
|
|
Disagree
|
11
|
7.7
|
|
Strongly Disagree
|
1
|
0.7
|
Because of the food and other critical supplies delivered by JRA, I am
able to live more independently
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
55
|
38.5
|
|
Agree
|
72
|
50.3
|
|
Disagree
|
16
|
11.2
|
|
Strongly Disagree
|
0
|
0.0
|
Because of JRA’s services, I feel less isolated
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
62
|
43.4
|
|
Agree
|
71
|
49.7
|
|
Disagree
|
10
|
7.0
|
|
Strongly Disagree
|
0
|
0.0
|
I look forward to interacting with the JRA volunteer who delivers my
food
|
|
Total (n)
|
Percentage (%)
|
|
Strongly Agree
|
58
|
41.1
|
|
Agree
|
74
|
52.5
|
|
Disagree
|
9
|
6.4
|
|
Strongly Disagree
|
0
|
0.0
|
Select up to 5 items from the JRA Food Box from the following list that
are your favorite or most helpful.
|
Items
|
Total (n)
|
Percentage (%)
|
|
Nuts
|
113
|
76.9
|
|
Toilet paper
|
111
|
75.5
|
|
Salmon
|
108
|
73.5
|
|
Oil
|
105
|
71.4
|
|
Oatmeal
|
83
|
56.5
|
|
Applesauce
|
78
|
53.1
|
|
Canned Fruit
|
77
|
52.4
|
|
Mayonaisse
|
77
|
52.4
|
|
Canned tuna
|
65
|
44.2
|
|
Pasta/noodles
|
65
|
44.2
|
|
Canned Beans
|
41
|
27.9
|
|
Cereal
|
40
|
27.2
|
|
Canned Vegetables
|
36
|
24.5
|
|
Peanut butter
|
30
|
20.4
|
|
Dry Soup Mix
|
30
|
20.4
|
|
Dry Beans
|
22
|
15
|
|
Canned soup
|
19
|
12.9
|
Challenges you may
face
Within the past 12 months, we worried whether our food would run out
before we got money to buy more
|
|
Total (n)
|
Percentage (%)
|
|
Often true
|
30
|
26.1
|
|
Sometimes true
|
64
|
55.7
|
|
Never true
|
21
|
18.3
|
|
Don’t know
|
0
|
0.0
|
Within the past 12 months, the food that we bought just didn’t last and
we didn’t have money to get more
|
|
Total (n)
|
Percentage (%)
|
|
Often true
|
13
|
11.7
|
|
Sometimes true
|
52
|
46.8
|
|
Never true
|
46
|
41.4
|
|
Don’t know
|
0
|
0.0
|
Which of the following expenses has the greatest impact on your
household’s ability to buy enough food?
|
Items
|
Total (n)
|
Percentage (%)
|
|
Housing costs
|
111
|
75.5
|
|
Childcare costs
|
108
|
73.5
|
|
Taxes
|
83
|
56.5
|
|
Medical expenses
|
65
|
44.2
|
|
transportation costs
|
40
|
27.2
|
|
Utility costs
|
22
|
15
|
How often in the last 12 months did you or someone your household visit
a food pantry?
|
|
Total (n)
|
Percentage (%)
|
|
More than once a month
|
10
|
7.7
|
|
Once a month
|
35
|
26.9
|
|
Once every few months
|
7
|
5.4
|
|
Once or twice a year
|
8
|
6.2
|
|
Never
|
70
|
53.8
|
How often in the last 12 months did your household have food delivered
from a pantry other than JRA?
|
|
Total (n)
|
Percentage (%)
|
|
More than once a month
|
10
|
7.3
|
|
Once a month
|
40
|
29.2
|
|
Once every few months
|
4
|
2.9
|
|
Once or twice a year
|
2
|
1.5
|
|
Never
|
81
|
59.1
|
Culture and the
Jewish Community
Do you or anyone in your household identify as Jewish?
|
|
Total (n)
|
Percentage (%)
|
|
Yes
|
147
|
100
|
|
No
|
0
|
0
|
Does receiving a box of kosher food from JRA make you feel cared for by
the Jewish community?
|
|
Total (n)
|
Percentage (%)
|
|
Yes
|
138
|
96.5
|
|
No
|
5
|
3.5
|
Does receiving special foods for Jewish holidays in the JRA box enable
you to have a more meaningful celebration?
|
|
Total (n)
|
Percentage (%)
|
|
Yes
|
140
|
97.9
|
|
No
|
3
|
2.1
|
|
I do not identify as Jewish
|
0
|
0.0
|
Do you keep a kosher home?
|
|
Total (n)
|
Percentage (%)
|
|
Yes
|
47
|
33.8
|
|
No
|
92
|
66.2
|
Do you or someone currently living in your household identify as a
Holocaust Survivor?
|
|
Total (n)
|
Percentage (%)
|
|
Yes
|
147
|
100
|
|
No
|
0
|
0
|
LS0tDQp0aXRsZTogIjIwMjYgSlJBIEV4ZWN1dGl2ZSBTdW1tYXJ5IEhvbG9jYXVzdCBTdXJ2aXZvciBIb3VzZWhvbGRzIg0KYXV0aG9yOiAiIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIHRvY19mbG9hdDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBzbW9vdGhfc2Nyb2xsOiB5ZXMNCiAgICB0aGVtZTogbHVtZW4NCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogMw0KICAgIGZpZ19oZWlnaHQ6IDMNCiAgd29yZF9kb2N1bWVudDogDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6IDQNCiAgICBmaWdfY2FwdGlvbjogeWVzDQogICAga2VlcF9tZDogeWVzDQplZGl0b3Jfb3B0aW9uczogDQogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUNCi0tLQ0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQojVE9DOjpiZWZvcmUgew0KICBjb250ZW50OiAiVGFibGUgb2YgQ29udGVudHMiOw0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1zaXplOiAxLjJlbTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiBuYXZ5Ow0KICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KfQ0KDQoNCmRpdiNUT0MgbGkgeyAgICAgLyogdGFibGUgb2YgY29udGVudCAgKi8NCiAgICBsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsNCn0NCg0KaDEudGl0bGUgeyAgICAvKiBsZXZlbCAxIGhlYWRlciBvZiB0aXRsZSAgKi8NCiAgZm9udC1zaXplOiAyMnB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgY29sb3I6IERhcmtSZWQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KfQ0KDQpoNC5hdXRob3IgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICBmb250LXNpemU6IDE1cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LWZhbWlseTogc3lzdGVtLXVpOw0KICBjb2xvcjogbmF2eTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoNC5kYXRlIHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1mYW1pbHk6ICJHaWxsIFNhbnMiLCBzYW5zLXNlcmlmOw0KICBjb2xvcjogRGFya0JsdWU7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDEgeyAvKiBIZWFkZXIgMSAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBjb2xvcjogZGFya3JlZDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KfQ0KDQpoMiB7IC8qIEhlYWRlciAyIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IG5hdnk7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KaDQgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KLyogQWRkIGRvdHMgYWZ0ZXIgbnVtYmVyZWQgaGVhZGVycyAqLw0KLmhlYWRlci1zZWN0aW9uLW51bWJlcjo6YWZ0ZXIgew0KICBjb250ZW50OiAiLiI7DQoNCmJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCi5oaWdobGlnaHRtZSB7IGJhY2tncm91bmQtY29sb3I6eWVsbG93OyB9DQoNCnAgeyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB9DQoNCn0NCmBgYA0KDQpgYGB7ciBzZXR1cCwgY29tbWVudD1OQSwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgY29tbWVudD1OQSkNCg0Kc2V0d2QoIkM6L1VzZXJzLzc1TFBZT1RUL09uZURyaXZlIC0gV2VzdCBDaGVzdGVyIFVuaXZlcnNpdHkgb2YgUEEvRGVza3RvcC9KUkEyMDIyIikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHN1bW1hcnl0b29scykNCmxpYnJhcnkocXVlc3Rpb25yKQ0KbGlicmFyeShrYWJsZUV4dHJhKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNwbGl0c3RhY2tzaGFwZSkNCg0KDQpkYXRhPXJlYWQuY3N2KCJKUkEgZGF0YSB3aXRoIGxhYmVscyAyMDI2LmNzdiIsIGhlYWRlcj1UKQ0KdG90YWxuPW5yb3coZGF0YSkNCnJlc3BvbnNlcmF0ZT1yb3VuZCgxMDAqKHRvdGFsbi8yMzAwKSwgMSkNCmBgYA0KDQoNCiMgSmV3aXNoIFJlbGllZiBBZ2VuY3kgQ2xpZW50IFN1cnZleSAyMDI2LQ0KDQpUaGlzIHN1bW1hcnkgY29tcGlsZXMgaW5mb3JtYXRpb24gb24gc3VydmV5IGRhdGEgY29sbGVjdGVkIGFub255bW91c2x5IGZyb20gSlJBIHJlY2lwaWVudHMgaW4gMjAyNi4gU3VydmV5cyBpbmNsdWRlZCBkZW1vZ3JhcGhpY3MgcXVlc3Rpb25zLCBmb29kIGluc2VjdXJpdHkgcXVlc3Rpb25zLCBhbmQgc2F0aXNmYWN0aW9uIHF1ZXN0aW9ucyByZWdhcmRpbmcgSlJBIHNlcnZpY2VzLiBJbiBKYW51YXJ5LCB0aGUgc3VydmV5IHdhcyBzZW50IHRvIDEsODAwIGhvdXNlaG9sZHMuICANCg0KDQoNCmBgYHtyIHN1bW1hcnksIGluY2x1ZGU9RkFMU0V9DQoNCiNIQyBIb2xvY2F1c3Q9eWVzIGlzIHJlc3BvbmRlbnRzIHdobyBpZGVudGlmaWVkIGFzIEhDDQpkYXRhID0gZmlsdGVyKGRhdGEsIFEyMz09IlllcyIpDQp0b3RhbEhDPW5yb3coZGF0YSkNCg0KYGBgDQoNCg0KDQojIyBEZW1vZ3JhcGhpY3MNCg0KDQoNCiMjIEpSQSBTZXJ2aWNlcw0KDQpgYGAge3IgZGVtb2d9DQoNCg0KDQoNCg0KDQpgYGANCg0KDQoNCmBgYHtyIFEzfQ0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRM0YgPSBmYWN0b3IoDQogICAgUTMsDQogICAgbGV2ZWxzID0gYygiVmVyeSBzYXRpc2ZpZWQiLCAiU2F0aXNmaWVkIiwgIkRpc3NhdGlzZmllZCIsICJWZXJ5IGRpc3NhdGlzZmllZCIpKSkNCg0KcWMzPXRhYmxlKGRhdGEkUTNGKQ0KcXAzPTEwMCpwcm9wLnRhYmxlKHFjMykNCg0KcTM9Y2JpbmQocWMzLCBxcDMpDQoNCnEzICU+JQ0KICBrYmwoZGlnaXRzPTEsY2FwdGlvbj0iV2hhdCBpcyB5b3VyIG92ZXJhbGwgc2F0aXNmYWN0aW9uIHdpdGggdGhlIGZvb2QgYm94IHlvdSByZWNlaXZlIGZyb20gSlJBPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0KIA0KDQpgYGB7ciBRNH0NCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTRGID0gZmFjdG9yKA0KICAgIFE0LA0KICAgIGxldmVscyA9IGMoIkFic29sdXRlbHkgRXNzZW50aWFsIiwgIkltcG9ydGFudCIsICJOb3QgSW1wb3J0YW50IikpKQ0KDQpxYzQ9dGFibGUoZGF0YSRRNEYpDQpxcDQ9MTAwKnByb3AudGFibGUocWM0KQ0KDQpxND1jYmluZChxYzQsIHFwNCkNCnE0ICU+JQ0KIGtibChkaWdpdHM9MSxjYXB0aW9uPSJIb3cgaW1wb3J0YW50IGlzIHRoZSBkZWxpdmVyeSBhc3BlY3Qgb2YgSlJB4oCZcyBzZXJ2aWNlcz8iLCBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCiANCg0KDQpgYGB7ciBRNX0NCiMjI1F1ZXN0aW9uIDUgQmVjYXVzZSBvZiB0aGUgcmVsaWVmIEkgcmVjZWl2ZSBmcm9tIEpSQSBzZXJ2aWNlcywgSSBhbSBhYmxlIHRvIHNhdmUgbW9uZXkgdG8gcHV0ICMjIHRvd2FyZHMgcGF5aW5nIG15IG1vbnRobHkgYmlsbHMiDQoNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFE1RiA9IGZhY3RvcigNCiAgICBRNSwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWM1PXRhYmxlKGRhdGEkUTVGKQ0KcXA1PTEwMCpwcm9wLnRhYmxlKHFjNSkNCg0KcTU9Y2JpbmQocWM1LCBxcDUpDQpxNSAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJCZWNhdXNlIG9mIHRoZSByZWxpZWYgSSByZWNlaXZlIGZyb20gSlJBIHNlcnZpY2VzLCBJIGFtIGFibGUgdG8gc2F2ZSBtb25leSB0byBwdXQgdG93YXJkcyBwYXlpbmcgbXkgbW9udGhseSBiaWxscyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCiANCg0KDQpgYGB7ciBRNn0NCg0KIyNCZWNhdXNlIG9mIHRoZSBKUkEgZm9vZCBib3gsIEkgYW0gbGVzcyB3b3JyaWVkIGFib3V0IGhhdmluZyBlbm91Z2ggZm9vZCBlYWNoIG1vbnRoLg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTZGID0gZmFjdG9yKA0KICAgIFE2LA0KICAgIGxldmVscyA9IGMoIlN0cm9uZ2x5IEFncmVlIiwgIkFncmVlIiwgIkRpc2FncmVlIiwgIlN0cm9uZ2x5IERpc2FncmVlIikpKQ0KDQpxYzY9dGFibGUoZGF0YSRRNkYpDQpxcDY9MTAwKnByb3AudGFibGUocWM2KQ0KDQpxNj1jYmluZChxYzYsIHFwNikNCnE2ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkJlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBhbSBsZXNzIHdvcnJpZWQgYWJvdXQgaGF2aW5nIGVub3VnaCBmb29kIGVhY2ggbW9udGguIiwgDQogICAgICBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCmBgYHtyIFE3fQ0KDQojI0JlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBoYXZlIGFjY2VzcyB0byBtb3JlIG51dHJpdGlvdXMgZm9vZC4NCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFE3RiA9IGZhY3RvcigNCiAgICBRNywNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWM3PXRhYmxlKGRhdGEkUTdGKQ0KcXA3PTEwMCpwcm9wLnRhYmxlKHFjNykNCg0KDQpxNz1jYmluZChxYzcsIHFwNykNCnE3ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkJlY2F1c2Ugb2YgdGhlIEpSQSBmb29kIGJveCwgSSBoYXZlIGFjY2VzcyB0byBtb3JlIG51dHJpdGlvdXMgZm9vZC4iLCANCiAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0KDQogDQoNCmBgYHtyIFE4fQ0KDQojIEJlY2F1c2Ugb2YgYSBjdXJyZW50IGlsbG5lc3Mgb3IgZGlzYWJpbGl0eSwgSSBhbSB1bmFibGUgdG8gZ2V0IHRvIGEgZm9vZCBzdG9yZSBhbmQgdGhlcmVmb3JlIGNvbnNpZGVyIEpSQeKAmXMgc2VydmljZXMgY3JpdGljYWwuDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShROEYgPSBmYWN0b3IoDQogICAgUTgsDQogICAgbGV2ZWxzID0gYygiU3Ryb25nbHkgQWdyZWUiLCAiQWdyZWUiLCAiRGlzYWdyZWUiLCAiU3Ryb25nbHkgRGlzYWdyZWUiKSkpDQoNCnFjOD10YWJsZShkYXRhJFE4RikNCnFwOD0xMDAqcHJvcC50YWJsZShxYzgpDQoNCnE4PWNiaW5kKHFjOCwgcXA4KQ0KcTglPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJCZWNhdXNlIG9mIGEgY3VycmVudCBpbGxuZXNzIG9yIGRpc2FiaWxpdHksIEkgYW0gdW5hYmxlIHRvIGdldCB0byBhIGZvb2Qgc3RvcmUgYW5kIHRoZXJlZm9yZSBjb25zaWRlciBKUkHigJlzIHNlcnZpY2VzIGNyaXRpY2FsLiIsDQogICAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQpgYGANCg0KIA0KDQpgYGB7ciBROX0NCiMjVGhlIGZvb2QgYW5kIG90aGVyIHN1cHBsaWVzIGRlbGl2ZXJlZCBieSBKUkEgaW1wcm92ZSB0aGUgaGVhbHRoIG9mIHRoZSBpbmRpdmlkdWFscyBpbiBteSBob3VzZWhvbGQuDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShROUYgPSBmYWN0b3IoDQogICAgUTksDQogICAgbGV2ZWxzID0gYygiU3Ryb25nbHkgQWdyZWUiLCAiQWdyZWUiLCAiRGlzYWdyZWUiLCAiU3Ryb25nbHkgRGlzYWdyZWUiKSkpDQpxYzk9dGFibGUoZGF0YSRROUYpDQpxcDk9MTAwKnByb3AudGFibGUocWM5KQ0KDQpxOT1jYmluZChxYzksIHFwOSkNCnE5JT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iVGhlIGZvb2QgYW5kIG90aGVyIHN1cHBsaWVzIGRlbGl2ZXJlZCBieSBKUkEgaW1wcm92ZSB0aGUgaGVhbHRoIG9mIHRoZSBpbmRpdmlkdWFscyBpbiBteSBob3VzZWhvbGQiLA0KICAgICAgICBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCiANCg0KDQpgYGB7ciBRMTB9DQojQmVjYXVzZSBvZiB0aGUgZm9vZCBhbmQgb3RoZXIgY3JpdGljYWwgc3VwcGxpZXMgZGVsaXZlcmVkIGJ5IEpSQSwgSSBhbSBhYmxlIHRvIGxpdmUgbW9yZSBpbmRlcGVuZGVudGx5Lg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTBGID0gZmFjdG9yKA0KICAgIFExMCwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWMxMD10YWJsZShkYXRhJFExMEYpDQpxcDEwPTEwMCpwcm9wLnRhYmxlKHFjMTApDQoNCnExMD1jYmluZChxYzEwLCBxcDEwKQ0KcTEwICU+JQ0KICBrYmwoZGlnaXRzPTEsY2FwdGlvbj0iQmVjYXVzZSBvZiB0aGUgZm9vZCBhbmQgb3RoZXIgY3JpdGljYWwgc3VwcGxpZXMgZGVsaXZlcmVkIGJ5IEpSQSwgSSBhbSBhYmxlIHRvIGxpdmUgbW9yZSBpbmRlcGVuZGVudGx5IiwgDQogICAgICAgICAgICAgIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQpgYGB7ciBRMTF9DQoNCiNCZWNhdXNlIG9mIEpSQeKAmXMgc2VydmljZXMsIEkgZmVlbCBsZXNzIGlzb2xhdGVkLg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTFGID0gZmFjdG9yKA0KICAgIFExMSwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCnFjMTE9dGFibGUoZGF0YSRRMTFGKQ0KcXAxMT0xMDAqcHJvcC50YWJsZShxYzExKQ0KDQoNCnExMT1jYmluZChxYzExLCBxcDExKQ0KDQpxMTEgJT4lDQogIGtibChkaWdpdHM9MSxjYXB0aW9uPSJCZWNhdXNlIG9mIEpSQeKAmXMgc2VydmljZXMsIEkgZmVlbCBsZXNzIGlzb2xhdGVkIiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIgKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQoNCmBgYHtyIFExMn0NCiNJIGxvb2sgZm9yd2FyZCB0byBpbnRlcmFjdGluZyB3aXRoIHRoZSBKUkEgdm9sdW50ZWVyIHdobyBkZWxpdmVycyBteSBmb29kLg0KDQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMTJGID0gZmFjdG9yKA0KICAgIFExMiwNCiAgICBsZXZlbHMgPSBjKCJTdHJvbmdseSBBZ3JlZSIsICJBZ3JlZSIsICJEaXNhZ3JlZSIsICJTdHJvbmdseSBEaXNhZ3JlZSIpKSkNCg0KcWMxMj10YWJsZShkYXRhJFExMkYpDQpxcDEyPTEwMCpwcm9wLnRhYmxlKHFjMTIpDQoNCnExMj1jYmluZChxYzEyLCBxcDEyKQ0KcTEyICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkkgbG9vayBmb3J3YXJkIHRvIGludGVyYWN0aW5nIHdpdGggdGhlIEpSQSB2b2x1bnRlZXIgd2hvIGRlbGl2ZXJzIG15IGZvb2QiLCBjb2wubmFtZXM9YygiVG90YWwgKG4pIiwgIlBlcmNlbnRhZ2UgKCUpIikpICU+JQ0KICBrYWJsZV9jbGFzc2ljXzIoZnVsbF93aWR0aD1GLCBodG1sX2ZvbnQ9IkNhbWJyaWEiKSAlPiUNCiAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQpgYGB7ciBRMTN9DQoNCnRvdGFsRkY9bnJvdyhkYXRhKQ0KDQpGRml0ZW1zIDwtIGRhdGEgJT4lDQogIG11dGF0ZSh0cD1jYXNlX3doZW4oZ3JlcGwoIlRvaWxldCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUoZHJ5YmVhbnM9Y2FzZV93aGVuKGdyZXBsKCJEcnkgQmVhbnMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKGNlcmVhbD1jYXNlX3doZW4oZ3JlcGwoIkNlcmVhbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUodHVuYT1jYXNlX3doZW4oZ3JlcGwoIlR1bmEiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHNhbG1vbj1jYXNlX3doZW4oZ3JlcGwoIlNhbG1vbiIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUob2F0bWVhbD1jYXNlX3doZW4oZ3JlcGwoIk9hdG1lYWwiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHBhc3RhPWNhc2Vfd2hlbihncmVwbCgiUGFzdGEiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHNvdXA9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgU291cCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JQ0KICBtdXRhdGUobnV0cz1jYXNlX3doZW4oZ3JlcGwoIk51dHMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHBiPWNhc2Vfd2hlbihncmVwbCgiUGVhbnV0IiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lICANCiAgICBtdXRhdGUoYXNhdWNlPWNhc2Vfd2hlbihncmVwbCgiQXBwbGVzYXVjZSIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKGNhbmJlYW5zPWNhc2Vfd2hlbihncmVwbCgiQ2FubmVkIEJlYW5zIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lICANCiAgICBtdXRhdGUoY2FuZnJ1aXQ9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgRnJ1aXQiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUgIA0KICAgIG11dGF0ZShjYW52ZWc9Y2FzZV93aGVuKGdyZXBsKCJDYW5uZWQgVmVnZXRhYmxlcyIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKGRyeXNvdXA9Y2FzZV93aGVuKGdyZXBsKCJEcnkgU291cCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKG9pbD1jYXNlX3doZW4oZ3JlcGwoIk9pbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpICU+JSAgDQogICAgbXV0YXRlKG1heW89Y2FzZV93aGVuKGdyZXBsKCJNYXlvbm5haXNlIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkNCg0KdDEzMSA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyR0cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzIgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkZHJ5YmVhbnMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTMzIDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNlcmVhbCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzQgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkdHVuYSwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzUgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkc2FsbW9uLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzNjwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJG9hdG1lYWwsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTM3PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkcGFzdGEsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTM4PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkc291cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzk8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRudXRzLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRwYiwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzExPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkYXNhdWNlLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTI8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRjYW5iZWFucywgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzEzPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkY2FuZnJ1aXQsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTMxNDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNhbnZlZywgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzE1PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkZHJ5c291cCwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxMzE2PC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkb2lsLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDEzMTM8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRtYXlvLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KDQpsYWJlbHMxMz1jKCJUb2lsZXQgcGFwZXIiLCAiRHJ5IEJlYW5zIiwgIkNlcmVhbCIsICJDYW5uZWQgdHVuYSIsICJTYWxtb24iLCAiT2F0bWVhbCIsDQogICAgICAgICAgICJQYXN0YS9ub29kbGVzIiwgIkNhbm5lZCBzb3VwIiwgIk51dHMiLCAiUGVhbnV0IGJ1dHRlciIsICJBcHBsZXNhdWNlIiwNCiAgICAgICAgICAgIkNhbm5lZCBCZWFucyIsICJDYW5uZWQgRnJ1aXQiLCAiQ2FubmVkIFZlZ2V0YWJsZXMiLCAiRHJ5IFNvdXAgTWl4IiwgIk9pbCIsICJNYXlvbmFpc3NlIikNCiAgICAgICAgICAgDQogICAgICAgICAgIA0KY291bnRzMTM9Yyh0MTMxJG4gWzJdLCB0MTMyJG4gWzJdLCB0MTMzJG4gWzJdLCB0MTM0JG4gWzJdLCB0MTM1JG4gWzJdLCB0MTM2JG4gWzJdLCB0MTM3JG5bMl0sIHQxMzgkblsyXSwNCiAgICAgICAgICAgdDEzOSRuIFsyXSwgdDEzMTAkbiBbMl0sIHQxMzExJG4gWzJdLCB0MTMxMiRuIFsyXSwgdDEzMTMkbiBbMl0sIHQxMzE0JG4gWzJdLCB0MTMxNSRuWzJdLCB0MTMxNiRuWzJdLCB0MTMxMyRuWzJdKQ0KcGVyY2VudHMxMz1jKHQxMzEkblsyXS90b3RhbEZGLCB0MTMyJG5bMl0vdG90YWxGRiwgDQogICAgICAgICAgICAgdDEzMyRuWzJdL3RvdGFsRkYsIHQxMzQkblsyXS90b3RhbEZGLCANCiAgICAgICAgICAgICB0MTM1JG5bMl0vdG90YWxGRiwgdDEzNiRuWzJdL3RvdGFsRkYsDQogICAgICAgICAgICAgdDEzNyRuWzJdL3RvdGFsRkYsIHQxMzgkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzkkblsyXS90b3RhbEZGLCB0MTMxMCRuWzJdL3RvdGFsRkYsIA0KICAgICAgICAgICAgIHQxMzExJG5bMl0vdG90YWxGRiwgdDEzMTIkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzEzJG5bMl0vdG90YWxGRiwgdDEzMTQkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzE1JG5bMl0vdG90YWxGRiwgdDEzMTYkblsyXS90b3RhbEZGLA0KICAgICAgICAgICAgIHQxMzEzJG5bMl0vdG90YWxGRikNCg0KcGVyY2VudHMxMz0xMDAqcm91bmQocGVyY2VudHMxMywgMykNCg0KdGFibGUxMz1hcy5kYXRhLmZyYW1lKGNiaW5kKGxhYmVsczEzLCBjb3VudHMxMywgcGVyY2VudHMxMykpDQoNCnRhYmxlMTMgPSB0YWJsZTEzICU+JSBhcnJhbmdlKGRlc2MocGVyY2VudHMxMykpDQoNCnRhYmxlMTMgJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iU2VsZWN0IHVwIHRvIDUgaXRlbXMgZnJvbSB0aGUgSlJBIEZvb2QgQm94IGZyb20gdGhlIGZvbGxvd2luZyBsaXN0IHRoYXQgYXJlIHlvdXIgZmF2b3JpdGUgb3IgbW9zdCBoZWxwZnVsLiIsIGNvbC5uYW1lcz1jKCJJdGVtcyIsICJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQojIyBDaGFsbGVuZ2VzIHlvdSBtYXkgZmFjZQ0KDQoNCmBgYHtyIFExNH0NCg0KI1dpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMsIHdlIHdvcnJpZWQgd2hldGhlciBvdXIgZm9vZCB3b3VsZCBydW4gb3V0IGJlZm9yZSB3ZSBnb3QgbW9uZXkgdG8gYnV5IG1vcmUuDQoNCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE0RiA9IGZhY3RvcigNCiAgICBRMTQsDQogICAgbGV2ZWxzID0gYygiT2Z0ZW4gdHJ1ZSIsICJTb21ldGltZXMgdHJ1ZSIsICJOZXZlciB0cnVlIiwgIkRvbid0IGtub3ciKSkpDQoNCnFjMTQ9dGFibGUoZGF0YSRRMTRGKQ0KcXAxND0xMDAqcHJvcC50YWJsZShxYzE0KQ0KDQpxMTQ9Y2JpbmQocWMxNCwgcXAxNCkNCnExNCAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJXaXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzLCB3ZSB3b3JyaWVkIHdoZXRoZXIgb3VyIGZvb2Qgd291bGQgcnVuIG91dCBiZWZvcmUgd2UgZ290IG1vbmV5IHRvIGJ1eSBtb3JlIiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCmBgYHtyIFExNX0NCiNXaXRoaW4gdGhlIHBhc3QgMTIgbW9udGhzLCB0aGUgZm9vZCB0aGF0IHdlIGJvdWdodCBqdXN0IGRpZG7igJl0IGxhc3QgYW5kIHdlIGRpZG7igJl0IGhhdmUgbW9uZXkgdG8gZ2V0IG1vcmUuDQoNCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFExNUYgPSBmYWN0b3IoDQogICAgUTE1LA0KICAgIGxldmVscyA9IGMoIk9mdGVuIHRydWUiLCAiU29tZXRpbWVzIHRydWUiLCAiTmV2ZXIgdHJ1ZSIsICJEb24ndCBrbm93IikpKQ0KDQpxYzE1PXRhYmxlKGRhdGEkUTE1RikNCnFwMTU9MTAwKnByb3AudGFibGUocWMxNSkNCg0KDQpxMTU9Y2JpbmQocWMxNSwgcXAxNSkNCnExNSAlPiUNCiAga2JsKGRpZ2l0cz0xLGNhcHRpb249IldpdGhpbiB0aGUgcGFzdCAxMiBtb250aHMsIHRoZSBmb29kIHRoYXQgd2UgYm91Z2h0IGp1c3QgZGlkbuKAmXQgbGFzdCBhbmQgd2UgZGlkbuKAmXQgaGF2ZSBtb25leSB0byBnZXQgbW9yZSIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KYGBgDQoNCg0KDQpgYGB7ciBRMTZ9DQojV2hpY2ggb2YgdGhlIGZvbGxvd2luZyBleHBlbnNlcyBoYXMgdGhlIGdyZWF0ZXN0IGltcGFjdCBvbiB5b3VyIGhvdXNlaG9sZOKAmXMgYWJpbGl0eSB0byBidXkgZW5vdWdoIGZvb2Q/DQoNCnRvdGFsRkY9bnJvdyhkYXRhKQ0KDQpGRml0ZW1zIDwtIGRhdGEgJT4lDQogIG11dGF0ZShob3VzaW5nPWNhc2Vfd2hlbihncmVwbCgiVG9pbGV0IiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lDQogIG11dGF0ZSh1dGlsaXRpZXM9Y2FzZV93aGVuKGdyZXBsKCJEcnkgQmVhbnMiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHRyYW5zcG89Y2FzZV93aGVuKGdyZXBsKCJDZXJlYWwiLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKG1lZGljYWw9Y2FzZV93aGVuKGdyZXBsKCJUdW5hIiwgUTEzKX4iWWVzIiwgVFJVRX4iTm8iKSkgJT4lDQogIG11dGF0ZShjaGlsZGNhcmU9Y2FzZV93aGVuKGdyZXBsKCJTYWxtb24iLCBRMTMpfiJZZXMiLCBUUlVFfiJObyIpKSAlPiUNCiAgbXV0YXRlKHRheGVzPWNhc2Vfd2hlbihncmVwbCgiT2F0bWVhbCIsIFExMyl+IlllcyIsIFRSVUV+Ik5vIikpDQoNCg0KdDE2MSA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyRob3VzaW5nLCBjdW09RkFMU0UsIHRvdGFsPUZBTFNFKQ0KdDE2MiA8LSBxdWVzdGlvbnI6OmZyZXEoRkZpdGVtcyR1dGlsaXRpZXMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTYzIDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJHRyYW5zcG8sIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTY0IDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJG1lZGljYWwsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQp0MTY1IDwtIHF1ZXN0aW9ucjo6ZnJlcShGRml0ZW1zJGNoaWxkY2FyZSwgY3VtPUZBTFNFLCB0b3RhbD1GQUxTRSkNCnQxNjYgPC0gcXVlc3Rpb25yOjpmcmVxKEZGaXRlbXMkdGF4ZXMsIGN1bT1GQUxTRSwgdG90YWw9RkFMU0UpDQoNCg0KbGFiZWxzMTY9YygiSG91c2luZyBjb3N0cyIsICJVdGlsaXR5IGNvc3RzIiwgInRyYW5zcG9ydGF0aW9uIGNvc3RzIiwgIk1lZGljYWwgZXhwZW5zZXMiLA0KICAgICAgICAgICAiQ2hpbGRjYXJlIGNvc3RzIiwgIlRheGVzIikNCiAgICAgICAgICAgDQogICAgICAgICAgIA0KY291bnRzMTY9Yyh0MTYxJG4gWzJdLCB0MTYyJG4gWzJdLCB0MTYzJG4gWzJdLCB0MTY0JG4gWzJdLCB0MTY1JG4gWzJdLCB0MTY2JG4gWzJdKQ0KcGVyY2VudHMxNj1jKHQxNjEkblsyXS90b3RhbEZGLCB0MTYyJG5bMl0vdG90YWxGRiwgDQogICAgICAgICAgICAgdDE2MyRuWzJdL3RvdGFsRkYsIHQxNjQkblsyXS90b3RhbEZGLCANCiAgICAgICAgICAgICB0MTY1JG5bMl0vdG90YWxGRiwgdDE2NiRuWzJdL3RvdGFsRkYpDQoNCnBlcmNlbnRzMTY9MTAwKnJvdW5kKHBlcmNlbnRzMTYsIDMpDQoNCnRhYmxlMTY9YXMuZGF0YS5mcmFtZShjYmluZChsYWJlbHMxNiwgY291bnRzMTYsIHBlcmNlbnRzMTYpKQ0KDQp0YWJsZTE2ID0gdGFibGUxNiAlPiUgYXJyYW5nZShkZXNjKHBlcmNlbnRzMTYpKQ0KDQp0YWJsZTE2ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IldoaWNoIG9mIHRoZSBmb2xsb3dpbmcgZXhwZW5zZXMgaGFzIHRoZSBncmVhdGVzdCBpbXBhY3Qgb24geW91ciBob3VzZWhvbGTigJlzIGFiaWxpdHkgdG8gYnV5IGVub3VnaCBmb29kPyIsIGNvbC5uYW1lcz1jKCJJdGVtcyIsICJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgIGNvbHVtbl9zcGVjKDEsIHdpZHRoPSIzLjBpbiIpDQoNCmBgYA0KDQoNCiANCg0KYGBge3IgUTE3fQ0KI0hvdyBvZnRlbiBpbiB0aGUgbGFzdCAxMiBtb250aHMgZGlkIHlvdSBvciBzb21lb25lIHlvdXIgaG91c2Vob2xkIHZpc2l0IGEgZm9vZCBwYW50cnk/DQoNCg0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE3RiA9IGZhY3RvcigNCiAgICBRMTcsDQogICAgbGV2ZWxzID0gYygiTW9yZSB0aGFuIG9uY2UgYSBtb250aCIsICJPbmNlIGEgbW9udGgiLCAiT25jZSBldmVyeSBmZXcgbW9udGhzIiwgDQogICAgICAgICAgICAgICAiT25jZSBvciB0d2ljZSBhIHllYXIiLCAiTmV2ZXIiKSkpDQoNCnFjMTc9dGFibGUoZGF0YSRRMTdGKQ0KcXAxNz0xMDAqcHJvcC50YWJsZShxYzE3KQ0KDQoNCnExNz1jYmluZChxYzE3LCBxcDE3KQ0KcTE3ICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkhvdyBvZnRlbiBpbiB0aGUgbGFzdCAxMiBtb250aHMgZGlkIHlvdSBvciBzb21lb25lIHlvdXIgaG91c2Vob2xkIHZpc2l0IGEgZm9vZCBwYW50cnk/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCmBgYHtyIFExOH0NCiNIb3cgb2Z0ZW4gaW4gdGhlIGxhc3QgMTIgbW9udGhzIGRpZCB5b3VyIGhvdXNlaG9sZCBoYXZlIGZvb2QgZGVsaXZlcmVkIGZyb20gYSBwYW50cnkgb3RoZXIgdGhhbiBKUkE/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMThGID0gZmFjdG9yKA0KICAgIFExOCwNCiAgICBsZXZlbHMgPSBjKCJNb3JlIHRoYW4gb25jZSBhIG1vbnRoIiwgIk9uY2UgYSBtb250aCIsICJPbmNlIGV2ZXJ5IGZldyBtb250aHMiLCANCiAgICAgICAgICAgICAgICJPbmNlIG9yIHR3aWNlIGEgeWVhciIsICJOZXZlciIpKSkNCg0KcWMxOD10YWJsZShkYXRhJFExOEYpDQpxcDE4PTEwMCpwcm9wLnRhYmxlKHFjMTgpDQoNCg0KcTE4PWNiaW5kKHFjMTgsIHFwMTgpDQpxMTggJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iSG93IG9mdGVuIGluIHRoZSBsYXN0IDEyIG1vbnRocyBkaWQgeW91ciBob3VzZWhvbGQgaGF2ZSBmb29kIGRlbGl2ZXJlZCBmcm9tIGEgcGFudHJ5IG90aGVyIHRoYW4gSlJBPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KDQpgYGANCg0KIyMgQ3VsdHVyZSBhbmQgdGhlIEpld2lzaCBDb21tdW5pdHkNCg0KYGBge3IgUTE5fQ0KI0RvZXMgcmVjZWl2aW5nIGEgYm94IG9mIGtvc2hlciBmb29kIGZyb20gSlJBIG1ha2UgeW91IGZlZWwgY2FyZWQgZm9yIGJ5IHRoZSBKZXdpc2ggY29tbXVuaXR5Pw0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTE5RiA9IGZhY3RvcigNCiAgICBRMTksDQogICAgbGV2ZWxzID0gYygiWWVzIiwgIk5vIikpKQ0KDQpxYzE5PXRhYmxlKGRhdGEkUTE5RikNCnFwMTk9MTAwKnByb3AudGFibGUocWMxOSkNCg0KcTE5PWNiaW5kKHFjMTksIHFwMTkpDQpxMTkgJT4lDQogIGtibChkaWdpdHM9MSwgY2FwdGlvbj0iRG8geW91IG9yIGFueW9uZSBpbiB5b3VyIGhvdXNlaG9sZCBpZGVudGlmeSBhcyBKZXdpc2g/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KDQpgYGANCg0KDQoNCg0KYGBge3IgUTIwfQ0KDQojRG9lcyByZWNlaXZpbmcgYSBib3ggb2Yga29zaGVyIGZvb2QgZnJvbSBKUkEgbWFrZSB5b3UgZmVlbCBjYXJlZCBmb3IgYnkgdGhlIEpld2lzaCBjb21tdW5pdHk/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMjBGID0gZmFjdG9yKA0KICAgIFEyMCwNCiAgICBsZXZlbHMgPSBjKCJZZXMiLCAiTm8iKSkpDQoNCnFjMjA9dGFibGUoZGF0YSRRMjBGKQ0KcXAyMD0xMDAqcHJvcC50YWJsZShxYzIwKQ0KDQoNCnEyMD1jYmluZChxYzIwLCBxcDIwKQ0KcTIwICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvZXMgcmVjZWl2aW5nIGEgYm94IG9mIGtvc2hlciBmb29kIGZyb20gSlJBIG1ha2UgeW91IGZlZWwgY2FyZWQgZm9yIGJ5IHRoZSBKZXdpc2ggY29tbXVuaXR5PyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCg0KDQpgYGANCg0KDQoNCmBgYHtyIFEyMX0NCiNEb2VzIHJlY2VpdmluZyBzcGVjaWFsIGZvb2RzIGZvciBKZXdpc2ggaG9saWRheXMgaW4gdGhlIEpSQSBib3ggZW5hYmxlIHlvdSB0byBoYXZlIGEgbW9yZSBtZWFuaW5nZnVsIGNlbGVicmF0aW9uPw0KZGF0YSA8LSBkYXRhICU+JQ0KICBtdXRhdGUoUTIxRiA9IGZhY3RvcigNCiAgICBRMjEsDQogICAgbGV2ZWxzID0gYygiWWVzIiwgIk5vIiwgIkkgZG8gbm90IGlkZW50aWZ5IGFzIEpld2lzaCIpKSkNCg0KcWMyMT10YWJsZShkYXRhJFEyMUYpDQpxcDIxPTEwMCpwcm9wLnRhYmxlKHFjMjEpDQoNCnEyMT1jYmluZChxYzIxLCBxcDIxKQ0KcTIxICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvZXMgcmVjZWl2aW5nIHNwZWNpYWwgZm9vZHMgZm9yIEpld2lzaCBob2xpZGF5cyBpbiB0aGUgSlJBIGJveCBlbmFibGUgeW91IHRvIGhhdmUgYSBtb3JlIG1lYW5pbmdmdWwgY2VsZWJyYXRpb24/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCmBgYHtyIFEyMn0NCmRhdGEgPC0gZGF0YSAlPiUNCiAgbXV0YXRlKFEyMkYgPSBmYWN0b3IoDQogICAgUTIyLA0KICAgIGxldmVscyA9IGMoIlllcyIsICJObyIpKSkNCg0KcWMyMj10YWJsZShkYXRhJFEyMkYpDQpxcDIyPTEwMCpwcm9wLnRhYmxlKHFjMjIpDQoNCnEyMj1jYmluZChxYzIyLCBxcDIyKQ0KcTIyICU+JQ0KICBrYmwoZGlnaXRzPTEsIGNhcHRpb249IkRvIHlvdSBrZWVwIGEga29zaGVyIGhvbWU/IiwgY29sLm5hbWVzPWMoIlRvdGFsIChuKSIsICJQZXJjZW50YWdlICglKSIpKSAlPiUNCiAga2FibGVfY2xhc3NpY18yKGZ1bGxfd2lkdGg9RiwgaHRtbF9mb250PSJDYW1icmlhIikgJT4lDQogICBjb2x1bW5fc3BlYygxLCB3aWR0aD0iMy4waW4iKQ0KYGBgDQoNCg0KIA0KYGBge3IgUTIzfQ0KI0RvIHlvdSBvciBzb21lb25lIGN1cnJlbnRseSBsaXZpbmcgaW4geW91ciBob3VzZWhvbGQgaWRlbnRpZnkgYXMgYSBIb2xvY2F1c3QgU3Vydml2b3I/DQpkYXRhIDwtIGRhdGEgJT4lDQogIG11dGF0ZShRMjNGID0gZmFjdG9yKA0KICAgIFEyMywNCiAgICBsZXZlbHMgPSBjKCJZZXMiLCAiTm8iKSkpDQoNCnFjMjM9dGFibGUoZGF0YSRRMjNGKQ0KcXAyMz0xMDAqcHJvcC50YWJsZShxYzIzKQ0KDQpxMjM9Y2JpbmQocWMyMywgcXAyMykNCnEyMyAlPiUNCiAga2JsKGRpZ2l0cz0xLCBjYXB0aW9uPSJEbyB5b3Ugb3Igc29tZW9uZSBjdXJyZW50bHkgbGl2aW5nIGluIHlvdXIgaG91c2Vob2xkIGlkZW50aWZ5IGFzIGEgSG9sb2NhdXN0IFN1cnZpdm9yPyIsIGNvbC5uYW1lcz1jKCJUb3RhbCAobikiLCAiUGVyY2VudGFnZSAoJSkiKSkgJT4lDQogIGthYmxlX2NsYXNzaWNfMihmdWxsX3dpZHRoPUYsIGh0bWxfZm9udD0iQ2FtYnJpYSIpICU+JQ0KICAgY29sdW1uX3NwZWMoMSwgd2lkdGg9IjMuMGluIikNCmBgYA0K