[{"data":1,"prerenderedAt":740},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Frate-limits":3,"docs-navigation":373,"docs-surround:\u002Fdocs\u002Frate-limits":513,"icon:building-bank":518,"icon:building-store":544,"icon:chart-bar":559,"icon:chart-pie":572,"icon:code":579,"icon:discount":589,"icon:heart-handshake":603,"icon:mail-forward":616,"icon:messages":629,"icon:microphone-2":636,"icon:photo":643,"icon:plug-connected":656,"icon:school":675,"icon:speakerphone":682,"icon:stethoscope":692,"icon:trophy":708,"icon:user-plus":727},{"id":4,"title":5,"body":6,"description":361,"extension":362,"group":363,"meta":364,"navTitle":365,"navigation":132,"path":366,"rawbody":367,"seo":368,"status":369,"stem":370,"updated":371,"__hash__":372},"docs\u002Fdocs\u002F05.rate-limits.md","Rate limits",{"type":7,"value":8,"toc":358},"minimark",[9,13,44,47,58,63,69,88,337,354],[10,11,12],"p",{},"The REST API v1 can answer any request with:",[14,15,16,29],"table",{},[17,18,19],"thead",{},[20,21,22,26],"tr",{},[23,24,25],"th",{},"Status",[23,27,28],{},"Meaning",[30,31,32],"tbody",{},[20,33,34,41],{},[35,36,37],"td",{},[38,39,40],"code",{},"429",[35,42,43],{},"API calls quota exceeded.",[10,45,46],{},"That status is the only thing the current documentation says about limits.",[48,49,52],"callout",{"type":50,"question":51},"pending","OQ-8",[10,53,54,55,57],{},"The quota itself is not documented: whether it is counted per API key or per account, per second, minute or day, and whether short codes or long codes have their own throughput limits. The HTTP API documents no ",[38,56,40],{}," equivalent. This page will list the numbers once engineering confirms them.",[59,60,62],"h2",{"id":61},"handling-429","Handling 429",[10,64,65,66,68],{},"Until the limits are published, write clients that cope with a ",[38,67,40],{}," without losing messages:",[70,71,72,79,85],"ol",{},[73,74,75,76,78],"li",{},"Stop sending on the first ",[38,77,40],{},".",[73,80,81,82,84],{},"Wait before retrying, and double the wait after each further ",[38,83,40],{}," (for example 1 s, 2 s, 4 s, up to a minute).",[73,86,87],{},"Retry the same request. Keep the messages you have not sent yet in your own queue, not in memory only.",[89,90,96],"pre",{"className":91,"code":92,"filename":93,"language":94,"meta":95,"style":95},"language-python shiki shiki-themes github-light-high-contrast github-dark-high-contrast","import time\nimport urllib.error\nimport urllib.request\n\n\ndef send_with_retry(request, attempts=6):\n    delay = 1\n    for _ in range(attempts):\n        try:\n            with urllib.request.urlopen(request, timeout=30) as response:\n                return response.status, response.read().decode(\"utf-8\")\n        except urllib.error.HTTPError as error:\n            if error.code != 429:\n                return error.code, error.read().decode(\"utf-8\")\n        time.sleep(delay)\n        delay = min(delay * 2, 60)\n    raise RuntimeError(\"Still rate limited after retrying\")\n","Python 3","python","",[38,97,98,111,119,127,134,139,162,173,191,200,227,243,257,274,286,292,320],{"__ignoreMap":95},[99,100,103,107],"span",{"class":101,"line":102},"line",1,[99,104,106],{"class":105},"sHUrx","import",[99,108,110],{"class":109},"suds8"," time\n",[99,112,114,116],{"class":101,"line":113},2,[99,115,106],{"class":105},[99,117,118],{"class":109}," urllib.error\n",[99,120,122,124],{"class":101,"line":121},3,[99,123,106],{"class":105},[99,125,126],{"class":109}," urllib.request\n",[99,128,130],{"class":101,"line":129},4,[99,131,133],{"emptyLinePlaceholder":132},true,"\n",[99,135,137],{"class":101,"line":136},5,[99,138,133],{"emptyLinePlaceholder":132},[99,140,142,145,149,152,155,159],{"class":101,"line":141},6,[99,143,144],{"class":105},"def",[99,146,148],{"class":147},"sKwhi"," send_with_retry",[99,150,151],{"class":109},"(request, attempts",[99,153,154],{"class":105},"=",[99,156,158],{"class":157},"s-5SL","6",[99,160,161],{"class":109},"):\n",[99,163,165,168,170],{"class":101,"line":164},7,[99,166,167],{"class":109},"    delay ",[99,169,154],{"class":105},[99,171,172],{"class":157}," 1\n",[99,174,176,179,182,185,188],{"class":101,"line":175},8,[99,177,178],{"class":105},"    for",[99,180,181],{"class":109}," _ ",[99,183,184],{"class":105},"in",[99,186,187],{"class":157}," range",[99,189,190],{"class":109},"(attempts):\n",[99,192,194,197],{"class":101,"line":193},9,[99,195,196],{"class":105},"        try",[99,198,199],{"class":109},":\n",[99,201,203,206,209,213,215,218,221,224],{"class":101,"line":202},10,[99,204,205],{"class":105},"            with",[99,207,208],{"class":109}," urllib.request.urlopen(request, ",[99,210,212],{"class":211},"soyes","timeout",[99,214,154],{"class":105},[99,216,217],{"class":157},"30",[99,219,220],{"class":109},") ",[99,222,223],{"class":105},"as",[99,225,226],{"class":109}," response:\n",[99,228,230,233,236,240],{"class":101,"line":229},11,[99,231,232],{"class":105},"                return",[99,234,235],{"class":109}," response.status, response.read().decode(",[99,237,239],{"class":238},"sT6z2","\"utf-8\"",[99,241,242],{"class":109},")\n",[99,244,246,249,252,254],{"class":101,"line":245},12,[99,247,248],{"class":105},"        except",[99,250,251],{"class":109}," urllib.error.HTTPError ",[99,253,223],{"class":105},[99,255,256],{"class":109}," error:\n",[99,258,260,263,266,269,272],{"class":101,"line":259},13,[99,261,262],{"class":105},"            if",[99,264,265],{"class":109}," error.code ",[99,267,268],{"class":105},"!=",[99,270,271],{"class":157}," 429",[99,273,199],{"class":109},[99,275,277,279,282,284],{"class":101,"line":276},14,[99,278,232],{"class":105},[99,280,281],{"class":109}," error.code, error.read().decode(",[99,283,239],{"class":238},[99,285,242],{"class":109},[99,287,289],{"class":101,"line":288},15,[99,290,291],{"class":109},"        time.sleep(delay)\n",[99,293,295,298,300,303,306,309,312,315,318],{"class":101,"line":294},16,[99,296,297],{"class":109},"        delay ",[99,299,154],{"class":105},[99,301,302],{"class":157}," min",[99,304,305],{"class":109},"(delay ",[99,307,308],{"class":105},"*",[99,310,311],{"class":157}," 2",[99,313,314],{"class":109},", ",[99,316,317],{"class":157},"60",[99,319,242],{"class":109},[99,321,323,326,329,332,335],{"class":101,"line":322},17,[99,324,325],{"class":105},"    raise",[99,327,328],{"class":157}," RuntimeError",[99,330,331],{"class":109},"(",[99,333,334],{"class":238},"\"Still rate limited after retrying\"",[99,336,242],{"class":109},[48,338,340],{"type":339},"note",[10,341,342,343,345,346,349,350,353],{},"Retrying a send that timed out (rather than one that got a ",[38,344,40],{},") can send the message twice: the documentation describes no idempotency key. Log the message ",[38,347,348],{},"ID"," from each ",[38,351,352],{},"201"," response so you can check what was queued.",[355,356,357],"style",{},"html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":95,"searchDepth":121,"depth":121,"links":359},[360],{"id":61,"depth":113,"text":62},"What the Wire2Air APIs document about request quotas and the 429 status, and how to retry safely.","md","Getting started",{},null,"\u002Fdocs\u002Frate-limits","---\ntitle: Rate limits\ndescription: What the Wire2Air APIs document about request quotas and the 429 status, and how to retry safely.\ngroup: Getting started\nupdated: '2026-10-06'\n---\n\nThe REST API v1 can answer any request with:\n\n| Status | Meaning |\n|---|---|\n| `429` | API calls quota exceeded. |\n\nThat status is the only thing the current documentation says about limits.\n\n::callout{type=\"pending\" question=\"OQ-8\"}\nThe quota itself is not documented: whether it is counted per API key or per account, per second, minute or day, and whether short codes or long codes have their own throughput limits. The HTTP API documents no `429` equivalent. This page will list the numbers once engineering confirms them.\n::\n\n## Handling 429\n\nUntil the limits are published, write clients that cope with a `429` without losing messages:\n\n1. Stop sending on the first `429`.\n2. Wait before retrying, and double the wait after each further `429` (for example 1 s, 2 s, 4 s, up to a minute).\n3. Retry the same request. Keep the messages you have not sent yet in your own queue, not in memory only.\n\n```python [Python 3]\nimport time\nimport urllib.error\nimport urllib.request\n\n\ndef send_with_retry(request, attempts=6):\n    delay = 1\n    for _ in range(attempts):\n        try:\n            with urllib.request.urlopen(request, timeout=30) as response:\n                return response.status, response.read().decode(\"utf-8\")\n        except urllib.error.HTTPError as error:\n            if error.code != 429:\n                return error.code, error.read().decode(\"utf-8\")\n        time.sleep(delay)\n        delay = min(delay * 2, 60)\n    raise RuntimeError(\"Still rate limited after retrying\")\n```\n\n::callout{type=\"note\"}\nRetrying a send that timed out (rather than one that got a `429`) can send the message twice: the documentation describes no idempotency key. Log the message `ID` from each `201` response so you can check what was queued.\n::\n",{"title":5,"description":361},"current","docs\u002F05.rate-limits","2026-10-06","y1V_y08SEyTEFAQJYnYaMSirLcOHhNpgSgcbXAYUzIE",[374],{"title":375,"path":376,"stem":377,"children":378,"navTitle":380,"group":365,"status":369},"Wire2Air developer docs","\u002Fdocs","docs\u002F01.index",[379,381,384,388,392,393,412,435,453,496,509],{"title":375,"path":376,"stem":377,"navTitle":380,"group":365,"status":369},"Overview",{"title":363,"path":382,"stem":383,"navTitle":365,"group":363,"status":369},"\u002Fdocs\u002Fgetting-started","docs\u002F02.getting-started",{"title":385,"path":386,"stem":387,"navTitle":365,"group":363,"status":369},"Authentication","\u002Fdocs\u002Fauthentication","docs\u002F03.authentication",{"title":389,"path":390,"stem":391,"navTitle":365,"group":363,"status":369},"Errors","\u002Fdocs\u002Ferrors","docs\u002F04.errors",{"title":5,"path":366,"stem":370,"navTitle":365,"group":363,"status":369},{"title":394,"navTitle":365,"group":365,"status":369,"path":395,"stem":396,"children":397,"page":411},"Guides","\u002Fdocs\u002Fguides","docs\u002F06.guides",[398,403,407],{"title":399,"path":400,"stem":401,"navTitle":402,"group":365,"status":369},"Character encoding and message length","\u002Fdocs\u002Fguides\u002Fencoding","docs\u002F06.guides\u002F01.encoding","Encoding and length",{"title":404,"path":405,"stem":406,"navTitle":365,"group":365,"status":369},"Bulk messaging","\u002Fdocs\u002Fguides\u002Fbulk-messaging","docs\u002F06.guides\u002F02.bulk-messaging",{"title":408,"path":409,"stem":410,"navTitle":365,"group":365,"status":369},"Scheduling messages","\u002Fdocs\u002Fguides\u002Fscheduling","docs\u002F06.guides\u002F03.scheduling",false,{"title":413,"path":414,"stem":415,"children":416,"navTitle":365,"group":365,"status":369},"REST API v1","\u002Fdocs\u002Frest","docs\u002F07.rest\u002F01.index",[417,418,431],{"title":413,"path":414,"stem":415,"navTitle":380,"group":365,"status":369},{"title":419,"navTitle":365,"group":365,"status":369,"path":420,"stem":421,"children":422,"page":411},"Messages","\u002Fdocs\u002Frest\u002Fmessages","docs\u002F07.rest\u002F02.messages",[423,427],{"title":424,"path":425,"stem":426,"navTitle":365,"group":365,"status":369},"Send a message","\u002Fdocs\u002Frest\u002Fmessages\u002Fsend","docs\u002F07.rest\u002F02.messages\u002F01.send",{"title":428,"path":429,"stem":430,"navTitle":365,"group":365,"status":369},"List received messages","\u002Fdocs\u002Frest\u002Fmessages\u002Flist","docs\u002F07.rest\u002F02.messages\u002F02.list",{"title":432,"path":433,"stem":434,"navTitle":365,"group":365,"status":369},"Campaigns","\u002Fdocs\u002Frest\u002Fcampaigns","docs\u002F07.rest\u002F03.campaigns",{"title":436,"path":437,"stem":438,"children":439,"navTitle":365,"group":365,"status":369},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F08.webhooks\u002F01.index",[440,441,445,449],{"title":436,"path":437,"stem":438,"navTitle":380,"group":365,"status":369},{"title":442,"path":443,"stem":444,"navTitle":365,"group":365,"status":369},"Inbound SMS","\u002Fdocs\u002Fwebhooks\u002Finbound-sms","docs\u002F08.webhooks\u002F02.inbound-sms",{"title":446,"path":447,"stem":448,"navTitle":365,"group":365,"status":369},"Inbound SMS and MMS","\u002Fdocs\u002Fwebhooks\u002Finbound-mms","docs\u002F08.webhooks\u002F03.inbound-mms",{"title":450,"path":451,"stem":452,"navTitle":365,"group":365,"status":369},"Delivery reports","\u002Fdocs\u002Fwebhooks\u002Fdelivery-reports","docs\u002F08.webhooks\u002F04.delivery-reports",{"title":454,"path":455,"stem":456,"children":457,"navTitle":365,"group":365,"status":459},"HTTP API","\u002Fdocs\u002Fhttp-api","docs\u002F09.http-api\u002F01.index",[458,460,464,468,472,476,480,484,488,492],{"title":454,"path":455,"stem":456,"navTitle":380,"group":365,"status":459},"legacy",{"title":461,"path":462,"stem":463,"navTitle":365,"group":365,"status":459},"Send SMS","\u002Fdocs\u002Fhttp-api\u002Fsend-sms","docs\u002F09.http-api\u002F02.send-sms",{"title":465,"path":466,"stem":467,"navTitle":365,"group":365,"status":459},"Send MMS","\u002Fdocs\u002Fhttp-api\u002Fsend-mms","docs\u002F09.http-api\u002F03.send-mms",{"title":469,"path":470,"stem":471,"navTitle":365,"group":365,"status":459},"Credit balance","\u002Fdocs\u002Fhttp-api\u002Fcredit-balance","docs\u002F09.http-api\u002F04.credit-balance",{"title":473,"path":474,"stem":475,"navTitle":365,"group":365,"status":459},"Carrier lookup","\u002Fdocs\u002Fhttp-api\u002Fcarrier-lookup","docs\u002F09.http-api\u002F05.carrier-lookup",{"title":477,"path":478,"stem":479,"navTitle":365,"group":365,"status":459},"Keyword lookup","\u002Fdocs\u002Fhttp-api\u002Fkeyword-lookup","docs\u002F09.http-api\u002F06.keyword-lookup",{"title":481,"path":482,"stem":483,"navTitle":365,"group":365,"status":459},"Keyword register","\u002Fdocs\u002Fhttp-api\u002Fkeyword-register","docs\u002F09.http-api\u002F07.keyword-register",{"title":485,"path":486,"stem":487,"navTitle":365,"group":365,"status":459},"Keyword credits","\u002Fdocs\u002Fhttp-api\u002Fkeyword-credits","docs\u002F09.http-api\u002F08.keyword-credits",{"title":489,"path":490,"stem":491,"navTitle":365,"group":365,"status":459},"Subscribe user","\u002Fdocs\u002Fhttp-api\u002Fsubscribe-user","docs\u002F09.http-api\u002F09.subscribe-user",{"title":493,"path":494,"stem":495,"navTitle":365,"group":365,"status":459},"Send invitation","\u002Fdocs\u002Fhttp-api\u002Fsend-invitation","docs\u002F09.http-api\u002F10.send-invitation",{"title":497,"navTitle":365,"group":365,"status":369,"path":498,"stem":499,"children":500,"page":411},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F10.integrations",[501,505],{"title":502,"path":503,"stem":504,"navTitle":365,"group":365,"status":369},"RSA Authentication Manager","\u002Fdocs\u002Fintegrations\u002Frsa-authentication-manager","docs\u002F10.integrations\u002F01.rsa-authentication-manager",{"title":506,"path":507,"stem":508,"navTitle":365,"group":365,"status":369},"Zapier","\u002Fdocs\u002Fintegrations\u002Fzapier","docs\u002F10.integrations\u002F02.zapier",{"title":510,"path":511,"stem":512,"navTitle":365,"group":365,"status":369},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F11.changelog",[514,516],{"title":389,"path":390,"stem":391,"description":515,"children":-1},"HTTP status codes and application error codes for the REST API v1 and the legacy HTTP API, and how to handle them.",{"title":399,"path":400,"stem":401,"description":517,"children":-1},"Which characters fit the GSM 03.38 alphabet, when a message switches to Unicode, how long messages are split into parts, and how to URL-encode text.",[519,523,526,529,532,535,538,541],[520,521],"path",{"d":522},"M3 21l18 0",[520,524],{"d":525},"M3 10l18 0",[520,527],{"d":528},"M5 6l7 -3l7 3",[520,530],{"d":531},"M4 10l0 11",[520,533],{"d":534},"M20 10l0 11",[520,536],{"d":537},"M8 14l0 3",[520,539],{"d":540},"M12 14l0 3",[520,542],{"d":543},"M16 14l0 3",[545,547,550,553,556],[520,546],{"d":522},[520,548],{"d":549},"M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4",[520,551],{"d":552},"M5 21l0 -10.15",[520,554],{"d":555},"M19 21l0 -10.15",[520,557],{"d":558},"M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4",[560,563,566,569],[520,561],{"d":562},"M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -6",[520,564],{"d":565},"M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -10",[520,567],{"d":568},"M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -14",[520,570],{"d":571},"M4 20h14",[573,576],[520,574],{"d":575},"M10 3.2a9 9 0 1 0 10.8 10.8a1 1 0 0 0 -1 -1h-6.8a2 2 0 0 1 -2 -2v-7a.9 .9 0 0 0 -1 -.8",[520,577],{"d":578},"M15 3.5a9 9 0 0 1 5.5 5.5h-4.5a1 1 0 0 1 -1 -1v-4.5",[580,583,586],[520,581],{"d":582},"M7 8l-4 4l4 4",[520,584],{"d":585},"M17 8l4 4l-4 4",[520,587],{"d":588},"M14 4l-4 16",[590,593,597,600],[520,591],{"d":592},"M9 15l6 -6",[520,594],{"d":595,"fill":596},"M9 9.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0","currentColor",[520,598],{"d":599,"fill":596},"M14 14.5a.5 .5 0 1 0 1 0a.5 .5 0 1 0 -1 0",[520,601],{"d":602},"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",[604,607,610,613],[520,605],{"d":606},"M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572",[520,608],{"d":609},"M12 6l-3.293 3.293a1 1 0 0 0 0 1.414l.543 .543c.69 .69 1.81 .69 2.5 0l1 -1a3.182 3.182 0 0 1 4.5 0l2.25 2.25",[520,611],{"d":612},"M12.5 15.5l2 2",[520,614],{"d":615},"M15 13l2 2",[617,620,623,626],[520,618],{"d":619},"M12 18h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",[520,621],{"d":622},"M3 6l9 6l9 -6",[520,624],{"d":625},"M15 18h6",[520,627],{"d":628},"M18 15l3 3l-3 3",[630,633],[520,631],{"d":632},"M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10",[520,634],{"d":635},"M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2",[637,640],[520,638],{"d":639},"M15 12.9a5 5 0 1 0 -3.902 -3.9",[520,641],{"d":642},"M15 12.9l-3.902 -3.899l-7.513 8.584a2 2 0 1 0 2.827 2.83l8.588 -7.515",[644,647,650,653],[520,645],{"d":646},"M15 8h.01",[520,648],{"d":649},"M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12",[520,651],{"d":652},"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5",[520,654],{"d":655},"M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3",[657,660,663,666,669,672],[520,658],{"d":659},"M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1 -5 -5l1.5 -1.5",[520,661],{"d":662},"M17 12l-5 -5l1.5 -1.5a3.536 3.536 0 1 1 5 5l-1.5 1.5",[520,664],{"d":665},"M3 21l2.5 -2.5",[520,667],{"d":668},"M18.5 5.5l2.5 -2.5",[520,670],{"d":671},"M10 11l-2 2",[520,673],{"d":674},"M13 14l-2 2",[676,679],[520,677],{"d":678},"M22 9l-10 -4l-10 4l10 4l10 -4v6",[520,680],{"d":681},"M6 10.6v5.4a6 3 0 0 0 12 0v-5.4",[683,686,689],[520,684],{"d":685},"M18 8a3 3 0 0 1 0 6",[520,687],{"d":688},"M10 8v11a1 1 0 0 1 -1 1h-1a1 1 0 0 1 -1 -1v-5",[520,690],{"d":691},"M12 8l4.524 -3.77a.9 .9 0 0 1 1.476 .692v12.156a.9 .9 0 0 1 -1.476 .692l-4.524 -3.77h-8a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h8",[693,696,699,702,705],[520,694],{"d":695},"M6 4h-1a2 2 0 0 0 -2 2v3.5a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1",[520,697],{"d":698},"M8 15a6 6 0 1 0 12 0v-3",[520,700],{"d":701},"M11 3v2",[520,703],{"d":704},"M6 3v2",[520,706],{"d":707},"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[709,712,715,718,721,724],[520,710],{"d":711},"M8 21l8 0",[520,713],{"d":714},"M12 17l0 4",[520,716],{"d":717},"M7 4l10 0",[520,719],{"d":720},"M17 4v8a5 5 0 0 1 -10 0v-8",[520,722],{"d":723},"M3 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[520,725],{"d":726},"M17 9a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",[728,731,734,737],[520,729],{"d":730},"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",[520,732],{"d":733},"M16 19h6",[520,735],{"d":736},"M19 16v6",[520,738],{"d":739},"M6 21v-2a4 4 0 0 1 4 -4h4",3529977955]