{"id":"54b9dbad-4a04-4bf6-b694-7185ce90312c","shortId":"LQMUet","kind":"skill","title":"asc-release-flow","tagline":"Determine whether an app is ready to submit, then drive the current App Store release flow with asc, including validation, staging, review submission, first-time availability, subscriptions, IAP, Game Center, and App Privacy checks.","description":"# Release flow (readiness-first)\n\nUse this skill when the question is \"Can my app be submitted now?\" or when the user wants to prepare and submit an App Store version with the current `asc` command surface.\n\n## Preconditions\n\n- Resolve `APP_ID`, version string, `VERSION_ID` when needed, and `BUILD_ID` up front.\n- Ensure auth is configured with `asc auth login` or `ASC_*` environment variables.\n- Have canonical metadata in `./metadata` when using metadata-driven staging.\n- Treat `asc web ...` commands as optional experimental escape hatches for flows not covered by the public API.\n\n## Answer order\n\n1. Say whether the app is ready right now.\n2. Name the blocking issues.\n3. Separate public-API fixes from web-session or manual fixes.\n4. Give the next exact command to run.\n\nBlockers usually fall into:\n\n- API-fixable: build validity, metadata, screenshots, review details, content rights, encryption, version/build attachment, IAP readiness, Game Center version and review-submission items.\n- Web-session-fixable: initial app availability bootstrap, first-review subscription attachment, App Privacy publish state.\n- Manual fallback: first-time IAP selection on the app-version page when no CLI attach flow exists, or any flow the user does not want to run through experimental web-session commands.\n\n## Canonical current path\n\n### 1. Readiness check\n\nUse `asc validate`; the old submit-preflight shortcut is not part of the current CLI.\n\n```bash\nasc validate --app \"APP_ID\" --version \"1.2.3\" --platform IOS --output table\n```\n\nUse strict mode when warnings should block automation:\n\n```bash\nasc validate --app \"APP_ID\" --version \"1.2.3\" --platform IOS --strict --output table\n```\n\nFor apps selling digital goods, run the product readiness checks too:\n\n```bash\nasc validate iap --app \"APP_ID\" --output table\nasc validate subscriptions --app \"APP_ID\" --output table\n```\n\n### 2. Stage without submitting\n\nUse `asc release stage` when the user wants to prepare the version, apply/copy metadata, attach the build, and validate, while stopping before review submission.\n\n```bash\nasc release stage \\\n  --app \"APP_ID\" \\\n  --version \"1.2.3\" \\\n  --build \"BUILD_ID\" \\\n  --metadata-dir \"./metadata/version/1.2.3\" \\\n  --dry-run \\\n  --output table\n```\n\nApply the staging mutations after the plan looks correct:\n\n```bash\nasc release stage \\\n  --app \"APP_ID\" \\\n  --version \"1.2.3\" \\\n  --build \"BUILD_ID\" \\\n  --metadata-dir \"./metadata/version/1.2.3\" \\\n  --confirm\n```\n\nUse `--copy-metadata-from \"1.2.2\"` instead of `--metadata-dir` when carrying metadata forward from an existing version.\n\n### 3. Submit an already prepared version\n\nUse `asc review submit` for explicit App Store review submission. It wraps build attachment plus review submission creation.\n\n```bash\nasc review submit --app \"APP_ID\" --version \"1.2.3\" --build \"BUILD_ID\" --dry-run --output table\nasc review submit --app \"APP_ID\" --version \"1.2.3\" --build \"BUILD_ID\" --confirm\n```\n\nUse `--version-id \"VERSION_ID\"` instead of `--version` when you already resolved the exact version ID.\n\n### 4. One-command upload and submit\n\nUse `asc publish appstore` when upload/build/local-build and submission should be one high-level flow.\n\n```bash\nasc publish appstore --app \"APP_ID\" --ipa \"./App.ipa\" --version \"1.2.3\" --submit --dry-run --output table\nasc publish appstore --app \"APP_ID\" --ipa \"./App.ipa\" --version \"1.2.3\" --submit --confirm\n```\n\nAdd `--wait` when the command should wait for build processing before attaching/submitting.\n\n### 5. Monitor and cancel\n\n```bash\nasc status --app \"APP_ID\"\nasc submit status --version-id \"VERSION_ID\"\nasc submit status --id \"SUBMISSION_ID\"\nasc submit cancel --id \"SUBMISSION_ID\" --confirm\n```\n\n## First-time submission blockers\n\n### Initial app availability does not exist\n\nSymptoms:\n\n- `asc pricing availability view --app \"APP_ID\"` reports no availability.\n- `asc pricing availability edit ...` cannot update because there is no existing availability record.\n\nCheck:\n\n```bash\nasc pricing availability view --app \"APP_ID\"\n```\n\nBootstrap the first availability record with the experimental web-session flow:\n\n```bash\nasc web apps availability create \\\n  --app \"APP_ID\" \\\n  --territory \"USA,GBR\" \\\n  --available-in-new-territories true\n```\n\nAfter bootstrap, use the public API for ongoing changes:\n\n```bash\nasc pricing availability edit \\\n  --app \"APP_ID\" \\\n  --territory \"USA,GBR\" \\\n  --available true \\\n  --available-in-new-territories true\n```\n\n### Subscriptions are ready but not attached to first review\n\nCheck subscription readiness first:\n\n```bash\nasc validate subscriptions --app \"APP_ID\" --output table\n```\n\nIf diagnostics report missing metadata, fix those prerequisites before attaching. Common misses are broad pricing coverage, review screenshots, promotional images, and app/build evidence.\n\nList first-review subscription state:\n\n```bash\nasc web review subscriptions list --app \"APP_ID\"\n```\n\nAttach a group for first review:\n\n```bash\nasc web review subscriptions attach-group \\\n  --app \"APP_ID\" \\\n  --group-id \"GROUP_ID\" \\\n  --confirm\n```\n\nAttach one subscription instead:\n\n```bash\nasc web review subscriptions attach \\\n  --app \"APP_ID\" \\\n  --subscription-id \"SUB_ID\" \\\n  --confirm\n```\n\nFor later reviews, submit subscriptions through the public review path:\n\n```bash\nasc subscriptions review submit --subscription-id \"SUB_ID\" --confirm\n```\n\n### In-app purchases need review readiness or first-version inclusion\n\n```bash\nasc validate iap --app \"APP_ID\" --output table\n```\n\nUpload missing review screenshots:\n\n```bash\nasc iap review-screenshots create --iap-id \"IAP_ID\" --file \"./review.png\"\n```\n\nFor IAPs on a published app:\n\n```bash\nasc iap submit --iap-id \"IAP_ID\" --confirm\n```\n\nFor the first IAP on an app, or the first time adding a new IAP type, Apple may require selecting the IAP from the app version's \"In-App Purchases and Subscriptions\" section before submitting the app version. Prepare the IAP with localization, pricing, and review screenshot data first.\n\n### Game Center needs app-version and review-submission items\n\n```bash\nasc game-center app-versions list --app \"APP_ID\"\nasc game-center app-versions create --app-store-version-id \"VERSION_ID\"\n```\n\nIf Game Center component versions must ship with the app version, use the explicit review-submission API so all items can be added before submission:\n\n```bash\nasc review submissions-create --app \"APP_ID\" --platform IOS\nasc review items-add --submission \"SUBMISSION_ID\" --item-type appStoreVersions --item-id \"VERSION_ID\"\nasc review items-add --submission \"SUBMISSION_ID\" --item-type gameCenterLeaderboardVersions --item-id \"GC_LEADERBOARD_VERSION_ID\"\nasc review submissions-submit --id \"SUBMISSION_ID\" --confirm\n```\n\n`asc review items-add` also supports `gameCenterAchievementVersions`, `gameCenterActivityVersions`, `gameCenterChallengeVersions`, and `gameCenterLeaderboardSetVersions`.\n\n### App Privacy is still unpublished\n\nThe public API can surface privacy advisories, but it cannot fully verify App Privacy publish state.\n\n```bash\nasc web privacy pull --app \"APP_ID\" --out \"./privacy.json\"\nasc web privacy plan --app \"APP_ID\" --file \"./privacy.json\"\nasc web privacy apply --app \"APP_ID\" --file \"./privacy.json\"\nasc web privacy publish --app \"APP_ID\" --confirm\n```\n\nIf the user avoids experimental web-session commands, confirm App Privacy manually in App Store Connect:\n\n```text\nhttps://appstoreconnect.apple.com/apps/APP_ID/appPrivacy\n```\n\n### Review details are incomplete\n\n```bash\nasc review details-for-version --version-id \"VERSION_ID\"\n```\n\nCreate or update details:\n\n```bash\nasc review details-create \\\n  --version-id \"VERSION_ID\" \\\n  --contact-first-name \"Dev\" \\\n  --contact-last-name \"Support\" \\\n  --contact-email \"dev@example.com\" \\\n  --contact-phone \"+1 555 0100\" \\\n  --notes \"Explain the reviewer access path here.\"\n\nasc review details-update \\\n  --id \"DETAIL_ID\" \\\n  --notes \"Updated reviewer instructions.\"\n```\n\nOnly set demo-account fields when App Review truly needs demo credentials.\n\n## Ready checklist\n\nAn app is effectively ready when:\n\n- `asc validate --app \"APP_ID\" --version \"VERSION\" --platform IOS` has no blocking issues.\n- `asc release stage --dry-run` produces the expected plan, or `asc release stage --confirm` has successfully prepared the target version.\n- The build is `VALID` and attached to the target version.\n- Metadata, screenshots, app info, content rights, encryption, age rating, and review details are complete.\n- App availability exists.\n- Digital goods have localization, pricing, review screenshots, and any first-review attachments or manual selections handled.\n- Game Center app-version and component review items are included when needed.\n- App Privacy is confirmed or published.\n\n## Notes\n\n- Do not use the legacy submit-preflight, submit-create, or release-run shortcuts; they are not part of the current CLI.\n- Use `asc validate` for readiness.\n- Use `asc release stage` for pre-submit preparation.\n- Use `asc review submit` for explicit App Store review submission.\n- Use `asc publish appstore --submit --confirm` for high-level upload plus submission.\n- Use `asc status` and `asc submit status` after submission.","tags":["asc","release","flow","app","store","connect","cli","skills","rorkai","agent-skills","ai-skills","app-store-connect"],"capabilities":["skill","source-rorkai","skill-asc-release-flow","topic-agent-skills","topic-ai-skills","topic-app-store-connect","topic-apple","topic-asc","topic-automation","topic-cicd","topic-cli","topic-devops","topic-ios","topic-macos","topic-testflight"],"categories":["app-store-connect-cli-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-release-flow","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add rorkai/app-store-connect-cli-skills","source_repo":"https://github.com/rorkai/app-store-connect-cli-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 801 github stars · SKILL.md body (9,142 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:53:26.665Z","embedding":null,"createdAt":"2026-04-18T21:56:48.284Z","updatedAt":"2026-05-18T18:53:26.665Z","lastSeenAt":"2026-05-18T18:53:26.665Z","tsv":"'+1':1178 '/app.ipa':526,542 '/apps/app_id/appprivacy':1129 '/metadata':108 '/metadata/version/1.2.3':375,405 '/privacy.json':1082,1091,1100 '/review.png':853 '0100':1180 '1':134,252 '1.2.2':412 '1.2.3':278,298,368,398,458,474,528,544 '2':143,332 '3':148,426 '4':161,496 '5':559 '555':1179 'access':1185 'account':1204 'ad':881,981 'add':547,999,1016,1044 'advisori':1063 'age':1272 'alreadi':429,490 'also':1045 'answer':132 'api':131,152,174,669,975,1059 'api-fix':173 'app':8,17,37,54,68,79,138,202,210,224,274,275,294,295,305,319,320,327,328,364,365,394,395,438,454,455,470,471,522,523,538,539,566,567,596,606,607,631,632,649,652,653,678,679,709,710,749,750,766,767,785,786,817,831,832,859,876,894,899,907,924,937,940,941,948,952,967,990,991,1052,1069,1078,1079,1087,1088,1096,1097,1105,1106,1119,1123,1207,1216,1223,1224,1267,1279,1302,1312,1363 'app-store-version-id':951 'app-vers':223,923,936,947,1301 'app/build':735 'appl':886 'appli':381,1095 'apply/copy':348 'appstor':506,521,537,1370 'appstoreconnect.apple.com':1128 'appstoreconnect.apple.com/apps/app_id/appprivacy':1127 'appstorevers':1006 'asc':2,22,74,97,101,116,256,272,292,316,324,337,361,391,433,451,467,504,519,535,564,569,577,583,602,612,627,647,674,706,744,759,780,805,828,841,861,932,943,985,995,1012,1031,1040,1074,1083,1092,1101,1135,1151,1188,1221,1234,1245,1344,1349,1358,1368,1381,1384 'asc-release-flow':1 'attach':186,209,230,350,445,697,723,752,764,775,784,1260,1294 'attach-group':763 'attaching/submitting':558 'auth':93,98 'autom':290 'avail':31,203,597,604,611,614,623,629,637,650,659,676,684,687,1280 'available-in-new-territori':658,686 'avoid':1112 'bash':271,291,315,360,390,450,518,563,626,646,673,705,743,758,779,804,827,840,860,931,984,1073,1134,1150 'block':146,289,1232 'blocker':169,594 'bootstrap':204,634,665 'broad':727 'build':88,176,352,369,370,399,400,444,459,460,475,476,555,1256 'cancel':562,585 'cannot':616,1066 'canon':105,249 'carri':419 'center':35,190,921,935,946,960,1300 'chang':672 'check':39,254,313,625,701 'checklist':1214 'cli':229,270,1342 'command':75,118,166,248,499,551,1117 'common':724 'complet':1278 'compon':961,1305 'configur':95 'confirm':406,478,546,589,774,793,814,869,1039,1108,1118,1248,1315,1372 'connect':1125 'contact':1162,1167,1172,1176 'contact-email':1171 'contact-first-nam':1161 'contact-last-nam':1166 'contact-phon':1175 'content':182,1269 'copi':409 'copy-metadata-from':408 'correct':389 'cover':127 'coverag':729 'creat':651,846,950,989,1146,1155,1329 'creation':449 'credenti':1212 'current':16,73,250,269,1341 'data':918 'demo':1203,1211 'demo-account':1202 'detail':181,1131,1138,1149,1154,1191,1194,1276 'details-cr':1153 'details-for-vers':1137 'details-upd':1190 'determin':5 'dev':1165 'dev@example.com':1174 'diagnost':715 'digit':307,1282 'dir':374,404,417 'dri':377,463,531,1238 'drive':14 'driven':113 'dry-run':376,462,530,1237 'edit':615,677 'effect':1218 'email':1173 'encrypt':184,1271 'ensur':92 'environ':102 'escap':122 'evid':736 'exact':165,493 'exist':232,424,600,622,1281 'expect':1242 'experiment':121,244,641,1113 'explain':1182 'explicit':437,971,1362 'fall':171 'fallback':215 'field':1205 'file':852,1090,1099 'first':29,44,206,217,591,636,699,704,739,756,824,872,879,919,1163,1292 'first-review':205,738,1291 'first-tim':28,216,590 'first-vers':823 'fix':153,160,719 'fixabl':175,200 'flow':4,20,41,125,231,235,517,645 'forward':421 'front':91 'fulli':1067 'game':34,189,920,934,945,959,1299 'game-cent':933,944 'gamecenterachievementvers':1047 'gamecenteractivityvers':1048 'gamecenterchallengevers':1049 'gamecenterleaderboardsetvers':1051 'gamecenterleaderboardvers':1023 'gbr':657,683 'gc':1027 'give':162 'good':308,1283 'group':754,765,770,772 'group-id':769 'handl':1298 'hatch':123 'high':515,1375 'high-level':514,1374 'iap':33,187,219,318,830,842,848,850,855,862,865,867,873,884,891,911 'iap-id':847,864 'id':80,84,89,276,296,321,329,366,371,396,401,456,461,472,477,482,484,495,524,540,568,574,576,580,582,586,588,608,633,654,680,711,751,768,771,773,787,790,792,811,813,833,849,851,866,868,942,955,957,992,1002,1009,1011,1019,1026,1030,1036,1038,1080,1089,1098,1107,1143,1145,1158,1160,1193,1195,1225 'imag':733 'in-app':815,897 'includ':23,1309 'inclus':826 'incomplet':1133 'info':1268 'initi':201,595 'instead':413,485,778 'instruct':1199 'io':280,300,994,1229 'ipa':525,541 'issu':147,1233 'item':196,930,978,998,1004,1008,1015,1021,1025,1043,1307 'item-id':1007,1024 'item-typ':1003,1020 'items-add':997,1014,1042 'last':1168 'later':795 'leaderboard':1028 'legaci':1323 'level':516,1376 'list':737,748,939 'local':913,1285 'login':99 'look':388 'manual':159,214,1121,1296 'may':887 'metadata':106,112,178,349,373,403,410,416,420,718,1265 'metadata-dir':372,402,415 'metadata-driven':111 'miss':717,725,837 'mode':285 'monitor':560 'must':963 'mutat':384 'name':144,1164,1169 'need':86,819,922,1210,1311 'new':661,689,883 'next':164 'note':1181,1196,1318 'old':259 'one':498,513,776 'one-command':497 'ongo':671 'option':120 'order':133 'output':281,302,322,330,379,465,533,712,834 'page':226 'part':266,1338 'path':251,803,1186 'phone':1177 'plan':387,1086,1243 'platform':279,299,993,1228 'plus':446,1378 'pre':1354 'pre-submit':1353 'precondit':77 'preflight':262,1326 'prepar':64,345,430,909,1251,1356 'prerequisit':721 'price':603,613,628,675,728,914,1286 'privaci':38,211,1053,1062,1070,1076,1085,1094,1103,1120,1313 'process':556 'produc':1240 'product':311 'promot':732 'public':130,151,668,801,1058 'public-api':150 'publish':212,505,520,536,858,1071,1104,1317,1369 'pull':1077 'purchas':818,900 'question':50 'rate':1273 'readi':10,43,140,188,253,312,694,703,821,1213,1219,1347 'readiness-first':42 'record':624,638 'releas':3,19,40,338,362,392,1235,1246,1332,1350 'release-run':1331 'report':609,716 'requir':888 'resolv':78,491 'review':26,180,194,207,358,434,440,447,452,468,700,730,740,746,757,761,782,796,802,807,820,838,844,916,928,973,986,996,1013,1032,1041,1130,1136,1152,1184,1189,1198,1208,1275,1287,1293,1306,1359,1365 'review-screenshot':843 'review-submiss':193,927,972 'right':141,183,1270 'run':168,242,309,378,464,532,1239,1333 'say':135 'screenshot':179,731,839,845,917,1266,1288 'section':903 'select':220,889,1297 'sell':306 'separ':149 'session':157,199,247,644,1116 'set':1201 'ship':964 'shortcut':263,1334 'skill':47 'skill-asc-release-flow' 'source-rorkai' 'stage':25,114,333,339,363,383,393,1236,1247,1351 'state':213,742,1072 'status':565,571,579,1382,1386 'still':1055 'stop':356 'store':18,69,439,953,1124,1364 'strict':284,301 'string':82 'sub':791,812 'submiss':27,195,359,441,448,510,581,587,593,929,974,983,988,1000,1001,1017,1018,1034,1037,1366,1379,1388 'submissions-cr':987 'submissions-submit':1033 'submit':12,56,66,261,335,427,435,453,469,502,529,545,570,578,584,797,808,863,905,1035,1325,1328,1355,1360,1371,1385 'submit-cr':1327 'submit-preflight':260,1324 'subscript':32,208,326,692,702,708,741,747,762,777,783,789,798,806,810,902 'subscription-id':788,809 'success':1250 'support':1046,1170 'surfac':76,1061 'symptom':601 'tabl':282,303,323,331,380,466,534,713,835 'target':1253,1263 'territori':655,662,681,690 'text':1126 'time':30,218,592,880 'topic-agent-skills' 'topic-ai-skills' 'topic-app-store-connect' 'topic-apple' 'topic-asc' 'topic-automation' 'topic-cicd' 'topic-cli' 'topic-devops' 'topic-ios' 'topic-macos' 'topic-testflight' 'treat':115 'true':663,685,691 'truli':1209 'type':885,1005,1022 'unpublish':1056 'updat':617,1148,1192,1197 'upload':500,836,1377 'upload/build/local-build':508 'usa':656,682 'use':45,110,255,283,336,407,432,479,503,666,969,1321,1343,1348,1357,1367,1380 'user':61,237,342,1111 'usual':170 'valid':24,177,257,273,293,317,325,354,707,829,1222,1258,1345 'variabl':103 'verifi':1068 'version':70,81,83,191,225,277,297,347,367,397,425,431,457,473,481,483,487,494,527,543,573,575,825,895,908,925,938,949,954,956,962,968,1010,1029,1140,1142,1144,1157,1159,1226,1227,1254,1264,1303 'version-id':480,572,1141,1156 'version/build':185 'view':605,630 'wait':548,553 'want':62,240,343 'warn':287 'web':117,156,198,246,643,648,745,760,781,1075,1084,1093,1102,1115 'web-sess':155,245,642,1114 'web-session-fix':197 'whether':6,136 'without':334 'wrap':443","prices":[{"id":"8e2d0c6e-8c03-4e96-9763-76f0d8d08f98","listingId":"54b9dbad-4a04-4bf6-b694-7185ce90312c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"rorkai","category":"app-store-connect-cli-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:48.284Z"}],"sources":[{"listingId":"54b9dbad-4a04-4bf6-b694-7185ce90312c","source":"github","sourceId":"rorkai/app-store-connect-cli-skills/asc-release-flow","sourceUrl":"https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-release-flow","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:48.284Z","lastSeenAt":"2026-05-18T18:53:26.665Z"},{"listingId":"54b9dbad-4a04-4bf6-b694-7185ce90312c","source":"skills_sh","sourceId":"rorkai/app-store-connect-cli-skills/asc-release-flow","sourceUrl":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-release-flow","isPrimary":true,"firstSeenAt":"2026-05-07T20:42:07.956Z","lastSeenAt":"2026-05-07T22:41:24.939Z"}],"details":{"listingId":"54b9dbad-4a04-4bf6-b694-7185ce90312c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"rorkai","slug":"asc-release-flow","github":{"repo":"rorkai/app-store-connect-cli-skills","stars":801,"topics":["agent-skills","ai-skills","app-store-connect","apple","asc","automation","cicd","cli","devops","ios","macos","testflight","xcode"],"license":"mit","html_url":"https://github.com/rorkai/app-store-connect-cli-skills","pushed_at":"2026-05-03T17:28:47Z","description":"Skills to automate app store deployed and everything related to it using the asc cli","skill_md_sha":"fb1da3a46394087290e016a0f7406741782c3a6f","skill_md_path":"skills/asc-release-flow/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/rorkai/app-store-connect-cli-skills/tree/main/skills/asc-release-flow"},"layout":"multi","source":"github","category":"app-store-connect-cli-skills","frontmatter":{"name":"asc-release-flow","description":"Determine whether an app is ready to submit, then drive the current App Store release flow with asc, including validation, staging, review submission, first-time availability, subscriptions, IAP, Game Center, and App Privacy checks."},"skills_sh_url":"https://skills.sh/rorkai/app-store-connect-cli-skills/asc-release-flow"},"updatedAt":"2026-05-18T18:53:26.665Z"}}