Coverage for fastapi/routing.py: 100%

377 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-09-22 00:03 +0000

1import dataclasses 1efabcd

2import email.message 1efabcd

3import inspect 1efabcd

4import json 1efabcd

5import sys 1efabcd

6from contextlib import AsyncExitStack, asynccontextmanager 1efabcd

7from enum import Enum, IntEnum 1efabcd

8from typing import ( 1efabcd

9 Any, 

10 AsyncIterator, 

11 Callable, 

12 Collection, 

13 Coroutine, 

14 Dict, 

15 List, 

16 Mapping, 

17 Optional, 

18 Sequence, 

19 Set, 

20 Tuple, 

21 Type, 

22 Union, 

23) 

24 

25from fastapi import params 1efabcd

26from fastapi._compat import ( 1efabcd

27 ModelField, 

28 Undefined, 

29 _get_model_config, 

30 _model_dump, 

31 _normalize_errors, 

32 lenient_issubclass, 

33) 

34from fastapi.datastructures import Default, DefaultPlaceholder 1efabcd

35from fastapi.dependencies.models import Dependant 1efabcd

36from fastapi.dependencies.utils import ( 1efabcd

37 _should_embed_body_fields, 

38 get_body_field, 

39 get_dependant, 

40 get_flat_dependant, 

41 get_parameterless_sub_dependant, 

42 get_typed_return_annotation, 

43 solve_dependencies, 

44) 

45from fastapi.encoders import jsonable_encoder 1efabcd

46from fastapi.exceptions import ( 1efabcd

47 FastAPIError, 

48 RequestValidationError, 

49 ResponseValidationError, 

50 WebSocketRequestValidationError, 

51) 

52from fastapi.types import DecoratedCallable, IncEx 1efabcd

53from fastapi.utils import ( 1efabcd

54 create_cloned_field, 

55 create_model_field, 

56 generate_unique_id, 

57 get_value_or_default, 

58 is_body_allowed_for_status_code, 

59) 

60from pydantic import BaseModel 1efabcd

61from starlette import routing 1efabcd

62from starlette.concurrency import run_in_threadpool 1efabcd

63from starlette.exceptions import HTTPException 1efabcd

64from starlette.requests import Request 1efabcd

65from starlette.responses import JSONResponse, Response 1efabcd

66from starlette.routing import ( 1efabcd

67 BaseRoute, 

68 Match, 

69 compile_path, 

70 get_name, 

71 request_response, 

72 websocket_session, 

73) 

74from starlette.routing import Mount as Mount # noqa 1efabcd

75from starlette.types import AppType, ASGIApp, Lifespan, Scope 1efabcd

76from starlette.websockets import WebSocket 1efabcd

77from typing_extensions import Annotated, Doc, deprecated 1efabcd

78 

79if sys.version_info >= (3, 13): # pragma: no cover 1efabcd

80 from inspect import iscoroutinefunction 1d

81else: # pragma: no cover 

82 from asyncio import iscoroutinefunction 1efabc

83 

84 

85def _prepare_response_content( 1efabcd

86 res: Any, 

87 *, 

88 exclude_unset: bool, 

89 exclude_defaults: bool = False, 

90 exclude_none: bool = False, 

91) -> Any: 

92 if isinstance(res, BaseModel): 2GfOgygPg[inbUmQg`pw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjob;mVg=my z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhlb/kGgbqs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaimbplLgcqu v V bicitn9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jpbundhdqA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkqbYniheqC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

93 read_with_orm_mode = getattr(_get_model_config(res), "read_with_orm_mode", None) 2nbQg`pw x 2 ' VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFjIfJf~eobVg=my z 3 ( ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.jffgf^elbGgbqs t U 8 :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}hifjf`embLgcqu v V 9 qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOilfmf|epbdhdqA B 4 ) vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkUfVfcfqbiheqC D 5 * Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kYfZfef

94 if read_with_orm_mode: 2nbQg`pw x 2 ' VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFjIfJf~eobVg=my z 3 ( ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.jffgf^elbGgbqs t U 8 :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}hifjf`embLgcqu v V 9 qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOilfmf|epbdhdqA B 4 ) vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkUfVfcfqbiheqC D 5 * Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kYfZfef

95 # Let from_orm extract the data from this model instead of converting 

96 # it now to a dict. 

97 # Otherwise, there's no way to extract lazy data that requires attribute 

98 # access instead of dict iteration, e.g. lazy relationships. 

99 return res 2' IfJf( ffgf8 ifjf9 lfmf) UfVf* YfZf

100 return _model_dump( 2nbQg`pw x 2 VmWmXm|i}i,qYmZm0m1m2mbj-q3m4m.q5m6m7m8m9maggj!mbghj#m$m%m'm(m)m*m+mrhshrjsj,m-m.m/m:mcgdgegfgzhRgSgAhBhChEjFj~eobVg=my z 3 ?m@m[mNjOjxq]m^m_m`m{mRjyq|m}mzq~manbncndnggWjenhgXjfngnhninjnknlnmnKhLh7j8jnnonpnqnrnigjgkglgShWgXgThYgZg-j.j^elbGgbqs t U :k;k=k1h2h/q?k@k[k]k^k5h:q_k`k;q{k|k}k~kal-f!hbl.f#hcldlelflglhliljl6g7g.h/hklllmlnlol/f:f;f=f'gHgIg(g)g*g|h}h`embLgcqu v V qlrlslgihi=qtlulvlwlxlki?qylzl@qAlBlClDlEl?fpiFl@fqiGlHlIlJlKlLlMlNl=g?gAiBiOlPlQlRlSl[f]f^f_f{gMgNg|g}g~gNiOi|epbdhdqA B 4 vnwnxn_j`j[qynznAnBnCn}j]qDnEn^qFnGnHnInJnmgdkKnngekLnMnNnOnPnQnRnSnWiXiokpkTnUnVnWnXnogpgqgrg4iehfh5i6i7iBkCkcfqbiheqC D 5 Zn0n1nKkLk_q2n3n4n5n6nOk`q7n8n{q9n!n#n$n%nsgTk'ntgUk(n)n*n+n,n-n.n/n(i)i4k5k:n;n=n?n@nugvgwgxg:ijhkh;i=i?i*k+kef

101 res, 

102 by_alias=True, 

103 exclude_unset=exclude_unset, 

104 exclude_defaults=exclude_defaults, 

105 exclude_none=exclude_none, 

106 ) 

107 elif isinstance(res, list): 2GfOgygPg[iUmQg`p2 ]i^i?p_i`i{ilhmhnh|i}i~iajsqbjcjdjtqejfjuqgjhjijjjkjlj` G M k l mjnjohojpjphqjqhrhshrjsjtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDjEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHj;mVg=m3 IjJj@pKjLjMjEhFhGhNjOjPjQj{pRjSjTj|pUjVj}pWjXjYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJhKhLh7j8j9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVh/kGgbqU WhXhsnYhZh0h0g1g2g1h2h3h4hAq5h6h7hBq8h9hCq!h#h$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g6g7g.h/h:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiplLgcqV bicitndieifi,g-g.ggihiiijiFqkilimiGqnioiHqpiqirisitiui_ F L i j viwi/gxiyi:gzi;g=g?gAiBiCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMiNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jundhdq4 ?j@j^p[j]j^jQiRiSi_j`j{j|jKq}j~jakLqbkckMqdkekfkgkhkik| I O o p jkkkTilkmkUinkViWiXiokpkqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkYniheq5 FkGk_pHkIkJk9i!i#iKkLkMkNkPqOkPkQkQqRkSkRqTkUkVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i(i)i4k5k6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)k*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

108 return [ 22 ]i^i?plhmhnh|i}ibjgjhjohphqhrjsjthHfuhvh}ewhxhyhEjFjIfJffqWqgqYqDh3 IjJj@pEhFhGhNjOjRjWjXjHhIhJh7j8jMhLfNhOhafPhQhRh-j.jffgf[phq]pjqUhU WhXhsn0g1g2g1h2h5h!h#h3g4g5g.h/h8ghf9g!g_e#g$g%g|h}hifjfQ kqZqlq1q+gV bicitn,g-g.ggihikipiqi/g:g;gAiBi@gkf[g]g{e^g_g`gNiOilfmfR mq2qnq4qah4 ?j@j^pQiRiSi_j`j}jdkekTiUiViokpkYiTfZi0ibf1i2i3iBkCkUfVfW oq5qpq7q8i5 FkGk_p9i!i#iKkLkOkTkUk$i%i'i4k5k*iXf+i,idf-i.i/i*k+kYfZfX qq8qrq!q@i

109 _prepare_response_content( 

110 item, 

111 exclude_unset=exclude_unset, 

112 exclude_defaults=exclude_defaults, 

113 exclude_none=exclude_none, 

114 ) 

115 for item in res 

116 ] 

117 elif isinstance(res, dict): 2GfOgygPg[iUmQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojpjphqjqhrhshtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHj;mVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJhKhLh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVh/kGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g6g7g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiplLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxiyi:gzi;g=g?gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jundhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilkmkUinkViWiXiqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkYniheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i(i)i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i

118 return { 2[iUmQg`p_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M mjnjohojqjqhrhshtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqGjgqwqYqDhHj;mVg=mKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N 2j3jHh4j6jJhKhLh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phq/j]paqjqUhVh/kGgbqYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K )h*h3g+h-h5g6g7g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq~hlqEq1q+gaiplLgcqdieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L viwi/gxizi;g=g?gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2qPinqJq4qah=jundhdq[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O jkkkTilknkViWiXiqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5qDkpqOq7q8iEkYniheqHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P Zk0k$i1k3k'i(i)i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q,krqTq!q@i

119 k: _prepare_response_content( 

120 v, 

121 exclude_unset=exclude_unset, 

122 exclude_defaults=exclude_defaults, 

123 exclude_none=exclude_none, 

124 ) 

125 for k, v in res.items() 

126 } 

127 elif dataclasses.is_dataclass(res): 2GfOgygPg[iQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojpjphqjqhtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j5jIh6jJh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h,h4g-h5g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxiyi:gzi;gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jdhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilkmkUinkViqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkiheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k2k%i3k'i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i

128 assert not isinstance(res, type) 2pjph}e5jIhaf,h4g_eyi:g{emkUibf2k%idf

129 return dataclasses.asdict(res) 2pjph}e5jIhaf,h4g_eyi:g{emkUibf2k%idf

130 return res 2GfOgygPg[iQg`p]i^i_i`i{ilhmhnh~iajsqcjdjtqejfjuqijjjkjlj` G M k l mjnjohojqjqhtjujvjwjthHfuhvh}exjyjwhzjxh5f6fyhAjBjCjDj~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjVg=mIjJjKjLjMjEhFhGhPjQj{pSjTj|pUjVj}pYjZj0j1j{ H N m n 2j3jHh4j6jJh9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8fRh)j*j+j,j^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhGgbqWhXhYhZh0h0g1g2g3h4hAq6h7hBq8h9hCq$h%h'h(h^ E K g h )h*h3g+h-h5g:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf%g^h_h`h{h`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaiLgcqbicidieifi,g-g.giijiFqlimiGqnioiHqrisitiui_ F L i j viwi/gxizi;gCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf`gJiKiLiMi|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jdhdq?j@j[j]j^jQiRiSi{j|jKq~jakLqbkckMqfkgkhkik| I O o p jkkkTilknkViqkrksktkYiTfZi0ibfukvk1iwk2i9f!f3ixkykzkAkcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkiheqFkGkHkIkJk9i!i#iMkNkPqPkQkQqRkSkRqVkWkXkYk} J P q r Zk0k$i1k3k'i6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$f/i%k'k(k)kefX qqSq8q9q,kUlrqTq!q@i

131 

132 

133def _merge_lifespan_context( 1efabcd

134 original_context: Lifespan[Any], nested_context: Lifespan[Any] 

135) -> Lifespan[Any]: 

136 @asynccontextmanager 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

137 async def merged_lifespan( 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

138 app: AppType, 

139 ) -> AsyncIterator[Optional[Mapping[str, Any]]]: 

140 async with original_context(app) as maybe_original_state: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'

141 async with nested_context(app) as maybe_nested_state: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'

142 if maybe_nested_state is None and maybe_original_state is None: 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsoswUxUG M yU6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRszUAUH N BU7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrCUDUE K EU8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rFUGUF L HU9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sIUJUI O KU!'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtLUMUJ P NU#'

143 yield None # old ASGI compatibility 210jr:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsosxUG 6'20krpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsAUH 7'30|qrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrDUE 8'40}qUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.r/rGUF 9'50lrSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-sJUI !'60mr.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtMUJ #'

144 else: 

145 yield {**(maybe_nested_state or {}), **(maybe_original_state or {})} 2wUM yUzUN BUCUK EUFUL HUIUO KULUP NU

146 

147 return merged_lifespan # type: ignore[return-value] 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

148 

149 

150async def serialize_response( 1efabcd

151 *, 

152 field: Optional[ModelField] = None, 

153 response_content: Any, 

154 include: Optional[IncEx] = None, 

155 exclude: Optional[IncEx] = None, 

156 by_alias: bool = True, 

157 exclude_unset: bool = False, 

158 exclude_defaults: bool = False, 

159 exclude_none: bool = False, 

160 is_coroutine: bool = True, 

161) -> Any: 

162 if field: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

163 errors = [] 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

164 if not hasattr(field, "serialize"): 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

165 # pydantic v1 

166 response_content = _prepare_response_content( 2GfOgygPg[inbUmQg`pw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUgHjob;mVg=my z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFgVhlb/kGgbqs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKgaimbplLgcqu v V bicitn9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch=jpbundhdqA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghhEkqbYniheqC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

167 response_content, 

168 exclude_unset=exclude_unset, 

169 exclude_defaults=exclude_defaults, 

170 exclude_none=exclude_none, 

171 ) 

172 if is_coroutine: 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

173 value, errors_ = field.validate(response_content, {}, loc=("response",)) 2GfOgygPgQg`par~v9maggj!mbghjij#mtjujvjwjthHfuh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhCh~eKfTgzgUgVg=mcrIudnggWjenhgXjYjfn9j!j#j$jMhLfNhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg^eMfEgAgFgGgbq'qZwal-f!hbl.f#h$hcl:h;h=h?h8ghf9g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g`ePfJgBgKgLgcq)qIAEl?fpiFl@fqiriGlCiDiEiFi@gkf[g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~g|eSfbhCgchdhdqer7DJnmgdkKnngekfkLnqkrksktkYiTfZibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7icfWfghDghhiheqgr!D%nsgTk'ntgUkVk(n6k7k8k9k*iXf+idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?ief

174 else: 

175 value, errors_ = await run_in_threadpool( 2- ~q[inbtbUmw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mvhEjFjIfJffqvqWqXqGj-kgqwqYqDh. brHjobub;my z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrnOh-j.jffgf[p~phqiq/j.k]paqjqUh+ %qVhlbrb/ks t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kdl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol!g|h}hifjfQ kqDqZq0q~h:jlqEq1q+g, (qaimbsbplu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSl]gNiOilfmfR mqIq2q3qPi;jnqJq4qah/ dr=jpbvbunA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0iBkCkUfVfW oqNq5q6qDkTlpqOq7q8i: frEkqbwbYnC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n,i*k+kYfZfX qqSq8q9q,kUlrqTq!q@i

176 field.validate, response_content, {}, loc=("response",) 

177 ) 

178 if isinstance(errors_, list): 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

179 errors.extend(errors_) 2~vsq,qtq-quq.qfqvqWqXqgqwqYqIu{pxq|pyq}pzq[p~phqiq]paqjqZwAq/qBq:qCq;qkqDqZq0qlqEq1qIAFq=qGq?qHq@qmqIq2q3qnqJq4q7DKq[qLq]qMq^qoqNq5q6qpqOq7q!DPq_qQq`qRq{qqqSq8q9qrqTq!q

180 elif errors_: 2GfOgygPg- ~q[inbtbUmQg`parw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqXqGj-kgqwqDhKfTgzgUg. brHjobub;mVg=mcry z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~piq/j.k]paqUhMfEgAgFg+ %qVhlbrb/kGgbq'qs t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDq0q~h:jlqEq+gPfJgBgKg, (qaimbsbplLgcq)qu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq3qPi;jnqJqahSfbhCgch/ dr=jpbvbundhdqerA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq6qDkTlpqOq8iWfghDghh: frEkqbwbYniheqgrC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq9q,kUlrqTq@i

181 errors.append(errors_) 2`psq,qtq-quq.qfqvqXqgqwq=m{pxq|pyq}pzq[p~piq]paqbqAq/qBq:qCq;qkqDq0qlqEqcqFq=qGq?qHq@qmqIq3qnqJqdqKq[qLq]qMq^qoqNq6qpqOqeqPq_qQq`qRq{qqqSq9qrqTq

182 if errors: 2GfOgygPg- ~q[inbtbUmQg`par~vw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajsq,qYmZm0m1m2mbjcjdjtq-q3m4mejfjuq.q5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~efqvqWqXqGj-kgqwqYqDhKfTgzgUg. brHjobub;mVg=mcrIuy z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj{pxq]m^m_m`m{mRjSjTj|pyq|m}mUjVj}pzq~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e[p~phqiq/j.k]paqjqUhMfEgAgFg+ %qVhlbrb/kGgbq'qZws t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4hAq/q?k@k[k]k^k5h6h7hBq:q_k`k8h9hCq;q{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ kqDqZq0q~h:jlqEq1q+gPfJgBgKg, (qaimbsbplLgcq)qIAu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijiFq=qtlulvlwlxlkilimiGq?qylzlnioiHq@qAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR mqIq2q3qPi;jnqJq4qahSfbhCgch/ dr=jpbvbundhdqer7DA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jKq[qynznAnBnCn}j~jakLq]qDnEnbkckMq^qFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW oqNq5q6qDkTlpqOq7q8iWfghDghh: frEkqbwbYniheqgr!DC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNkPq_q2n3n4n5n6nOkPkQkQq`q7n8nRkSkRq{q9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX qqSq8q9q,kUlrqTq!q@i

183 raise ResponseValidationError( 2`p~vsq,qtq-quq.qfqvqWqXqgqwqYq=mIu{pxq|pyq}pzq[p~phqiq]paqjqbqZwAq/qBq:qCq;qkqDqZq0qlqEq1qcqIAFq=qGq?qHq@qmqIq2q3qnqJq4qdq7DKq[qLq]qMq^qoqNq5q6qpqOq7qeq!DPq_qQq`qRq{qqqSq8q9qrqTq!q

184 errors=_normalize_errors(errors), body=response_content 

185 ) 

186 

187 if hasattr(field, "serialize"): 2GfOgygPg- ~q[inbtbUmQgarw x 2 ]i^i?p? ' _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUg. brHjobub;mVgcry z 3 IjJj@p@ ( KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFg+ %qVhlbrb/kGg'qs t U WhXhsn; 8 YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKg, (qaimbsbplLg)qu v V bicitn= 9 dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch/ dr=jpbvbundherA B 4 ?j@j^p[ ) [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghh: frEkqbwbYnihgrC D 5 FkGk_p] * HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i

188 return field.serialize( 2GfOgygPg- ~q[itbUmarw x 2 ]i^i?p? _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUg. brHjub;mcry z 3 IjJj@p@ KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFg+ %qVhrb/k'qs t U WhXhsn; YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKg, (qaisbpl)qu v V bicitn= dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch/ dr=jvbunerA B 4 ?j@j^p[ [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghh: frEkwbYngrC D 5 FkGk_p] HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i

189 value, 

190 include=include, 

191 exclude=exclude, 

192 by_alias=by_alias, 

193 exclude_unset=exclude_unset, 

194 exclude_defaults=exclude_defaults, 

195 exclude_none=exclude_none, 

196 ) 

197 

198 return jsonable_encoder( 2GfOgygPg[inbUmQgw x 2 ]i^i?p' _i`i{ilhmhnhVmWmXm|i}i~iajYmZm0m1m2mbjcjdj3m4mejfj5m6m7m8m9maggj!mbghjij#m$mjj%mkj'mlj` G M k l mjnjohojpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mtjujvjwjthHfuhvh}exjyjwhzjxh5f6fcgdgegfgyhAjBjCjDjzhRgSgAhBhChEjFjIfJf~eGj-kDhKfTgzgUgHjob;mVgy z 3 IjJj@p( KjLjMjEhFhGh?m@m[mNjOjPjQj]m^m_m`m{mRjSjTj|m}mUjVj~manbncndnggWjenhgXjYjfngnZjhn0jin1j{ H N m n 2j3jHh4j5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn9j!j#j$jMhLfNhOhaf%j'jPh(jQh7f8figjgkglgRh)j*j+j,jShWgXgThYgZg-j.jffgf^e/j.kUhMfEgAgFgVhlb/kGgs t U WhXhsn8 YhZh0h0g1g2g:k;k=k1h2h3h4h?k@k[k]k^k5h6h7h_k`k8h9h{k|k}k~kal-f!hbl.f#h$hcldl%hel'hfl(h^ E K g h )h*h3g+h,h4g-h5gglhliljl6g7g.h/hklllmlnlol:h;h=h?h8ghf9g!g_e@h[h#g]h$gNfOf/f:f;f=f%g^h_h`h{h'gHgIg(g)g*g|h}hifjf`eQ ~h:j+gPfJgBgKgaimbplLgu v V bicitn9 dieifi,g-g.gqlrlslgihiiijitlulvlwlxlkilimiylzlnioiAlBlClDlEl?fpiFl@fqiriGlHlsiIltiJlui_ F L i j viwi/gxiyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlCiDiEiFi@gkf[g]g{eGiHi^gIi_gQfRf[f]f^f_f`gJiKiLiMi{gMgNg|g}g~gNiOilfmf|eR Pi;jahSfbhCgch=jpbundhA B 4 ?j@j^p) [j]j^jQiRiSivnwnxn_j`j{j|jynznAnBnCn}j~jakDnEnbkckFnGnHnInJnmgdkKnngekfkLnMngkNnhkOnik| I O o p jkkkTilkmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXnqkrksktkYiTfZi0ibfukvk1iwk2i9f!fogpgqgrg3ixkykzkAk4iehfh5i6i7iBkCkUfVfcfW DkTl8iWfghDghhEkqbYnihC D 5 FkGk_p* HkIkJk9i!i#iZn0n1nKkLkMkNk2n3n4n5n6nOkPkQk7n8nRkSk9n!n#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk} J P q r Zk0k$i1k2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@n6k7k8k9k*iXf+i,idf!k#k-i$k.i#f$fugvgwgxg/i%k'k(k)k:ijhkh;i=i?i*k+kYfZfefX ,kUl@i

199 value, 

200 include=include, 

201 exclude=exclude, 

202 by_alias=by_alias, 

203 exclude_unset=exclude_unset, 

204 exclude_defaults=exclude_defaults, 

205 exclude_none=exclude_none, 

206 ) 

207 else: 

208 return jsonable_encoder(response_content) 2$D%D'D(D)D[n]n*D+D,D-D.DCc8vicY }v/D:Dhbjr;D=DXb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEosuE|nvEwE}n{t|t}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOE! PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtF9vuFdovF!v#vwFxFyFzFAFBFCFDFEFYbFFGFbbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeGeofGfohugohogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosolcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvoSGTGUGVGWGXGYGZG0G1G2G3Gwo4G5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHAHzoAoBoCoBHDuCHRgSgDHDoEoEHFHIfJfGHHHIHJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoUHVHWHXHYHJoKoZH0H1H2H3HDc%vmcZ bw4H5Hibkr6H7HZbpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbIRscIPodIeIQoGuHuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwI# xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJ'vcJVodJ(v)veJfJgJhJiJjJkJlJmJ0bnJoJcbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:JWo;JXoSuYoZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!opcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oAKBKCKDKEKFKGKHKIKJKKKLK'oMKNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9K!K#K$K%K'K(K)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLiL*o+o,o-ojL'ukLWgXglL.o/omLnLffgfoLpLqLrLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?odwewfwgwhwVlWliwjwkwlwmwEc+v{bS ,vnwowdb|qpwqwBbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwTrWw1lXwYw2lntotptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*w6 +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxCbDb~bacUxVxWx*uXx7lYx+u,uZx0x1x2x3x4x5x6x7xEb8x9x~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzyAyByCyDyEyFyGyHy8lIy9lyt!l#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/lbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l.y/y:y;y=y?y@y[y]y^y_y`y?l{y|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z3z]l^l_l`l4zUt5zHgIg6z{l|l7z8zifjf9z!z#z$z%zxb'z(z)z*z+z,z-z.z/z}l~lVtWtambm:z;z=z?z@zcmdm[z]z^z_z`zFc.vccT /v{z|zeb}q}z~zFbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEA/rFAimGAHAjmXtYtZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0A7 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBGbHbfcgcDBEBFB.uGBomHB/u:uIBJBKBLBMBNBOBPBQBIbRBSBabTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCpmrCqm8trmsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDmhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm4C5C6C7C8C9C!C#C$C%C'C(CHm)C*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLDMDKmLmMmNmND^tODMgNgPDOmPmQDRDlfmfSDTDUDVDWDybXDYDZD0D1D2D3D4D5DQmRm_t`tSmTmCLDLELFLGL@o[oHLILJLKLLLGc;vqc0 6DMLNLjblrOLPL1bSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-L-s.L{o/L:L|o=u?u@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeM$ fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M2b3btcuc+M,M-M=v.Mcp/M?v@v:M;M=M?M@M[M]M^M_M4b`M{Mfb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5Ndp6Nep~ufpgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupiOjOkOlOmOnOoOpOqOrOsOtOvpuOvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?O@OypzpApBp[Ovv]Oehfh^OCpDp_O`OUfVf{O|O}O~OaPJbbPcPdPePfPgPhPiPjPEpFpwvxvGpHpkPlPmPnPoPIpJppPqPrPsPtPHc]vwc1 9DuPvPkbmrwPxP5b.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2Pmt3POp4P5PPpyvzvAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:P% ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ6b7bzcAc0Q1Q2Q^v3QUp4Q_v`v5Q6Q7Q8Q9Q!Q#Q$Q%Q8b'Q(Qgb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRVpORWpJvXpYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9pBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p@R[R]R^R_R`R{R|R}R~RaSbS%pcSdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8S9S)p*p+p,p!S5v#Sjhkh$S-p.p%S'SYfZf(S)S*S+S,SKb-S.S/S:S;S=S?S@S[S/p:p6v7v;p=p

209 

210 

211async def run_endpoint_function( 1efabcd

212 *, dependant: Dependant, values: Dict[str, Any], is_coroutine: bool 

213) -> Any: 

214 # Only called by get_request_handler. Has been split into its own function to 

215 # facilitate profiling endpoints, since inner functions are harder to profile. 

216 assert dependant.call is not None, "dependant.call must be a function" 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

217 

218 if is_coroutine: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

219 return await dependant.call(**values) 2$D%D'D(D)D]n+D,D-D.DGfOgygPgCc8vicY =D?D@D[D]D^D708090_D`D{D!0}D(0)0*0aE^n_n`ndEeEfEgEhEiEjEkElEmEnEoEpEQg`par~vxE~nyEzEAEBECEMETEUEVEWEXE9v!v#v9maggj!mbghjij#mFF%F'F.F/F:F;F=F?F~F;0aG=0?0@0fGtjCVujDVvjEVwjFVnrhogGhGiuiGjGkGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHfyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVRVQGRGvouh}eSGTGUGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCuegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChEHFHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VUHVHWHXHYHKo0H1H2H3HKfTgzgUgDc%vmcZ 7H8H9H!H#H$HsXtXuX%H'H(HvX*HAXBXCX,HLoMoNo/H:H;H=H?H@H[H]H^H_H`H{H|HVg=mcrIufIRogIhIiIjIkIuIBICIDIEIFI'v(v)vdnggWjenhgXjYjfnnJVJWJ3J4J5J6J7J8J+JJX,JKXLXMX;J9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V:VyKzK%oNhafAKBKCKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%ukglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZgmLnLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VdwewfwgwhwWljwkwlwmwMfEgAgFgEc+v{bS qwrwswtwuwvwi1j1k1wwxwywl1Awq1r1s1CwXlYlZlFwGwHwIwJwKwLwMwNwOwPwQwRwGgbq'qZw0w3l1w2w3w4w5w(w/w:w;w=w?wCbDb~bac*u+u,ual-f!hbl.f#h$hcl8xfygynyoypyqyrysyCyz1DyA1B1C1Iy:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghf1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U9U,y-y=l9g_e.y/y:y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g7z8zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U:z;z=z?z@zdm]z^z_z`zPfJgBgKgFc.vccT ~zaAbAcAdAeAU1V1W1fAgAhAX1jA213141lAemfmgmoApAqArAsAtAuAvAwAxAyAzAAALgcq)qIAJAkmKALAMANAOAYA5A6A7A8A9AGbHbfcgc.u/u:uEl?fpiFl@fqiriGlRB=B?B{B|B}B~BaCbClC#1mC$1%1'1rCCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVfV2C3CGm[g{e4C5C6C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gQDRDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrVCLDLELFLGL[oILJLKLLLSfbhCgchGc;vqc0 PLQLRLSLTLUL`1{1|1VLWLXL}1ZLd2e2f21L]o^o_o4L5L6L7L8L9L!L#L$L%L'L(L)Ldhdqer7D;L}o=L?L@L[L]LcMjMkMlMmMnM2b3btcuc=v?v@vJnmgdkKnngekfkLn`MDNENLNMNNNONPNQN0Nm21Nn2o2p26NqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTf=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWtWgOhOupZibfiOjOkOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuvqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i_O`OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWkPlPmPnPoPJpqPrPsPtPWfghDghhHc]vwc1 xPyPzPAPBPCPH2I2J2DPEPFPK2HPP2Q2R2JPKpLpMpMPNPOPPPQPRPSPTPUPVPWPXPYPiheqgr!D6PQp7P8P9P!P#P.P[P]P^P_P`P6b7bzcAc^v_v`v%nsgTk'ntgUkVk(n'QlRmRtRuRvRwRxRyRIRY2JRZ20212OR6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXf7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYW0W=R?R$p+idf@R[R]R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4vwgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i%S'SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W

220 else: 

221 return await run_in_threadpool(dependant.call, **values) 2[n*D}v/D:Dhb- ~qjr;D[iXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns#0$0%0|D~D'0+0,0-0bEcE]S{nqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|t}t~taubucuduDEEEFEGEHEIEJEKEjckcaoboLEcoNEOEw ! x 2 PEQERESEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtFuFdovF_i`i{ilhmhnhVmWmXm|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m$mjj%mkj'mljEFYb` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu(F)F*Ffu+F,F-Fgu@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:mbGcGdGeGeofohugolGmGnGoGpGlcQVvhVG^0_0]WWG`0^WXG{0|0}0yo;G$vUVyHVVzHDHDoEjEoFjIfJfGHHHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhJoZHbw4H5Hib. brkr6HHjZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQswXxXyX)H+HzXDXEXFX-H.H|vOo}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuJuKuLuMuNuOulImInIoIpIqIrIsIncocSoTotIUovIwIy # z 3 xIyIzIAIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJcJVodJKjLjMjEhFhGh?m@m[mNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncngnZjhn0jin1jmJ0b{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuXJYJZJQu0J1J2JRu9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn-J.J/J:JWoXoSuYo^J_J`J{J|Jpc/VOhDKPXQX:WEKRX;WFKSXTXUX)o6K*v?VgL@VhLlL.o-j/o.jffgfoLpLBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhVliw,vnwowdb+ %q|qpwVhBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrm1n1o1zwBwp1t1u1v1DwEw^S0lSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotptqtrtstttut6w7w8w9w!w#w$w%w|b}b4l5l'w6l)w*ws 6 t U +w,w-w.w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 UxVxWxXx7lYxYhZh0h0g1g2g:k;k=k1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kdl%hel'hfl(h7xEb^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvthyiyjywtkylymyxttyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolEyFyGyHy8l9lyt!lOyPyQyRySybc8U!g;yF1G1=W=yH1?W?yI1J1K1[lqz-u$U1z%U2z6z{l|h|l}hifjf9z!z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+gcm[z/v{z|zeb, (q}q}zaiFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.rY1Z101iAkA11516171mAnA_ShmBACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtZt0t1t2t3t4tPAQARASATAUAVAWAdceclmmmXAnmZA0Au 7 v V 1A2A3A4A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 DBEBFBGBomHBdieifi,g-g.gqlrlslgi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlHlsiIltiJluiQBIb_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t@B[B]B6t^B_B`B7tcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSlnCoCpCqCpmqm8trmxCyCzCACBChceV]g7C*1+1@W8C,1[W9C-1.1/1Jm~C;uiVKDjVLDPDOmNiPmOilfmfSDTD5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qah@oHL6DMLNLjb/ drlrOL=j1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s~1a2b2YL0Lc2g2h2i22L3L`S`o*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?u@u[u]u^u_u`u^L_L`L{L|L}L~LaMrcsc~oapbMbpdMeMA $ B 4 fMgMhMiMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) +M,M-M.Mcp/M[j]j^jQiRiSivnwnxn_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInMngkNnhkOnik_M4b| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uFNGNHN|uINJNKN}uRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn2N3N4N5Ndpep~ufp$N%N'N(N)NvcsW0ilOs2t2gXmOu2hXnOv2w2x2xpOO[vwW=OxW?O^OCpBkDpCkUfVf{O|OjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8iIppP9DuPvPkb: frmrwPEk5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltL2M2N2GPIPO2S2T2U2KPLP{SNpZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzvAvBvCvDvEvFv$P%P'P(P)P*P+P,PxcycRpSp-PTp/P:PC % D 5 ;P=P?P@P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 0Q1Q2Q3QUp4QHkIkJk9i!i#iZn0n1nKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n)nWk*nXk+nYk%Q8b} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvnRoRpRHvqRrRsRIvzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nKRLRMRNRVpWpJvXpURVRWRXRYRBcZW,i^R4252mX_R62nX`R728292(pwS{v3W7S4W8S$S-p*k.p+kYfZf(S)S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

222 

223 

224def get_request_handler( 1efabcd

225 dependant: Dependant, 

226 body_field: Optional[ModelField] = None, 

227 status_code: Optional[int] = None, 

228 response_class: Union[Type[Response], DefaultPlaceholder] = Default(JSONResponse), 

229 response_field: Optional[ModelField] = None, 

230 response_model_include: Optional[IncEx] = None, 

231 response_model_exclude: Optional[IncEx] = None, 

232 response_model_by_alias: bool = True, 

233 response_model_exclude_unset: bool = False, 

234 response_model_exclude_defaults: bool = False, 

235 response_model_exclude_none: bool = False, 

236 dependency_overrides_provider: Optional[Any] = None, 

237 embed_body_fields: bool = False, 

238) -> Callable[[Request], Coroutine[Any, Any, Response]]: 

239 assert dependant.call is not None, "dependant.call must be a function" 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

240 is_coroutine = iscoroutinefunction(dependant.call) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

241 is_body_form = body_field and isinstance(body_field.field_info, params.Form) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

242 if isinstance(response_class, DefaultPlaceholder): 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

243 actual_response_class: Type[Response] = response_class.value 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]czbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudKbX

244 else: 

245 actual_response_class = response_class 2e Mcf Nca Ocb Pcc Qcd Rc

246 

247 async def app(request: Request) -> Response: 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

248 response: Union[Response, None] = None 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

249 async with AsyncExitStack() as file_stack: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

250 try: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

251 body: Any = None 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

252 if body_field: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

253 if is_body_form: 2[n|S]nGfOgygPghb- 10jrXb^n_n}S`n]S{n|n}n{t|t}t~taubu4X5Xcudu~nao~SaTbobTcow ! x ? ' cT6Xdoagbgbbeu7X8X9Xfu!X#X$X%Xgu'X(XeodTfo)XhueTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdg-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYegfgzoAoBoCoDu_W`Wzh{W|WRgSgAhBhChDoEoIfJf~eFoGojYkYEuFuHoIoJooTKoKfTgzgUgib. 20krZbLoMopTNo|vOoPoQoGuHuJuKuLuMulYmYNuOuRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbPuoYpYqYQurYsYtYuYRuvYwYWouTXoxYSuvTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Ykglg*o+o,o-o'u,W-WSh.W/WWgXgThYgZg.o/offgf^e:o;o1Y2Y(u)u=o?oVlFTWlMfEgAgFgdb+ 30|qBbXlYlGTZl^S0l1l2lntotptqtrtst3Y4Yttut3l4lHTIT5lJT6ls 6 t ; 8 CbDbIcKT5Y7l-f.f~ vt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y8lLT9l(YytMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ;f=f]l^l_l`lUt}W~W'gaXbXHgIg(g)g*g{l|lifjf`eQ }l~liZjZVtWtambmcmWTdmPfJgBgKgeb, 40}qFbemfmXTgm_ShmimjmXtYtZt0t1t2tkZlZ3t4tkmlmYTZTmm0Tnmu 7 v = 9 GbHbJc1TmZom?f@fab5tnZoZpZ6tqZrZsZtZ7tuZvZpm2TqmwZ8t3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]fAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^f_fKmLmMmNm^tcXdX{geXfXMgNg|g}g~gOmPmlfmf|eR QmRm0Z1Z_t`tSmTm@o%T[oSfbhCgchjb/ 50lr1b]o^o'T_o`S`o{o|o=u?u@u[u]u^u2Z3Z_u`u}o~o(T)Tap*TbpA $ B [ ) 2b3bKc+T4Zcpmgngfb{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Zdp,Tep'Z~u-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]Txpogpg+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0qgrgypzpApBpvviXjX4ikXlXehfh5i6i7iCpDpUfVfcfW EpFph0i0wvxvGpHpIp^TJpWfghDghhkb: 60mr5bKpLp_TMp{SNpOpPpyvzvAvBvCvDvj0k0EvFvQpRp`T{TSp|TTpC % D ] * 6b7bLc}Tl0UpsgtggbGvm0n0o0Hvp0q0r0s0Ivt0u0Vp~TWpv0JvaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0wgxg)p*p+p,p5voXpX:iqXrXjhkh;i=i?i-p.pYfZfefX /p:pZ0006v7v;p=p

254 body = await request.form() 210jrXb{t|t}t~taubu4X5Xcudueu7X8X9Xfu!X#X$X%Xgu'X(X)Xhu-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYDu_W`Wzh{W|WRgSgAhBhChjYkYEuFu20krZbGuHuJuKuLuMulYmYNuOuPuoYpYqYQurYsYtYuYRuvYwYxYSuBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y'u,W-WSh.W/WWgXgThYgZg1Y2Y(u)u30|qBbntotptqtrtst3Y4YttutCbDbIcvt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y(Yyt,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZUt}W~W'gaXbXHgIg(g)g*giZjZVtWt40}qFbXtYtZt0t1t2tkZlZ3t4tGbHbJc5tnZoZpZ6tqZrZsZtZ7tuZvZwZ8tAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^tcXdX{geXfXMgNg|g}g~g0Z1Z_t`t50lr1b=u?u@u[u]u^u2Z3Z_u`u2b3bKc{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Z'Z~u+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0vviXjX4ikXlXehfh5i6i7ih0i0wvxv60mr5byvzvAvBvCvDvj0k0EvFv6b7bLcGvm0n0o0Hvp0q0r0s0Ivt0u0v0Jvz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y05voXpX:iqXrXjhkh;i=i?iZ0006v7v

255 file_stack.push_async_callback(body.close) 2jrXb{t|t}t~taubu4X5Xcudueu7X8X9Xfu!X#X$X%Xgu'X(X)Xhu-Xlu.Xmunuoupuqurusutu/Xuu:Xvuwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiYDu_W`Wzh{W|WRgSgAhBhChjYkYEuFukrZbGuHuJuKuLuMulYmYNuOuPuoYpYqYQurYsYtYuYRuvYwYxYSuBYWuCYXuYuZu0u1u2u3u4uDY5uEY6u7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y'u,W-WSh.W/WWgXgThYgZg1Y2Y(u)u|qBbntotptqtrtst3Y4YttutCbDbIcvt6Y7Y8Ywt9Y!Y#Y$Yxt%Y'Y(Yyt,YCt-YDtEtFtGtHtItJtKt.YLt/YMtNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZUt}W~W'gaXbXHgIg(g)g*giZjZVtWt}qFbXtYtZt0t1t2tkZlZ3t4tGbHbJc5tnZoZpZ6tqZrZsZtZ7tuZvZwZ8tAZ$tBZ%t't(t)t*t+t,t-tCZ.tDZ/t:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ^tcXdX{geXfXMgNg|g}g~g0Z1Z_t`tlr1b=u?u@u[u]u^u2Z3Z_u`u2b3bKc{u5Z6Z7Z|u8Z9Z!Z#Z}u$Z%Z'Z~u+Zdv,Zevfvgvhvivjvkvlv-Zmv.Znvovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0vviXjX4ikXlXehfh5i6i7ih0i0wvxvmr5byvzvAvBvCvDvj0k0EvFv6b7bLcGvm0n0o0Hvp0q0r0s0Ivt0u0v0Jvz0NvA0OvPvQvRvSvTvUvVvB0WvC0XvYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y05voXpX:iqXrXjhkh;i=i?iZ0006v7v

256 else: 

257 body_bytes = await request.body() 2[n|S]nGfOgygPghb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cT6XdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfTgzgUgib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfEgAgFgdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT5Y7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfJgBgKgeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1TmZom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfbhCgchjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +T4Zcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfghDghhkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }Tl0UpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

258 if body_bytes: 2[n|S]nGfOgygPghb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cT6XdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfTgzgUgib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTnYVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfEgAgFgdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT5Y7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfJgBgKgeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1TmZom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfbhCgchjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +T4Zcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfghDghhkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }Tl0UpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

259 json_body: Any = Undefined 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

260 content_type_value = request.headers.get("content-type") 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

261 if not content_type_value: 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qsV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqtV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVquV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

262 json_body = await request.json() 2#q$qUqVq*q+q

263 else: 

264 message = email.message.Message() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

265 message["content-type"] = content_type_value 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

266 if message.get_content_maintype() == "application": 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

267 subtype = message.get_content_subtype() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

268 if subtype == "json" or subtype.endswith("+json"): 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)WqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*WsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WuUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

269 json_body = await request.json() 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojokosV'WfTgThTlomonoiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2oOU%WwTxTyT3o4o5ozT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'ltV(WNTOTPT(l)l*lQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmuV)W4T5T6Twmxmym7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-TfpprgphpipjpvV*W.T/T:Tkplpmp;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1pwV+WbUcUdU2p3p4peU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

270 if json_body != Undefined: 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qkUfTgThTlomonolUiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qmUwTxTyT3o4o5onUzT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqoUNTOTPT(l)l*lpUQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVqqU4T5T6TwmxmymrU7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*qsU.T/T:TkplpmptU;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+quUbUcUdU2p3p4pvUeU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

271 body = json_body 2[n|S]nGfhb- ^n_n}S`n]S{n|n}n~nao~SaTbobTcow ! x ? ' cTdoagbgbbeodTfoeTgonrhoiojoko#qfTgThTlomonoiToopoqojTrosokTHftouolTmTvo}ewo5f6fxonTyocgdgegfgzoAoBoCoDoEoIfJf~eFoGoHoIoJooTKoKfib. LoMopTNo|vOoPoQoRoSoqTrTTosTUoy # z @ ( tTVogghgcbWouTXovTYoorZo0o1o2o$qwTxTyT3o4o5ozT6o7o8oAT9o!oBTLf#o$oCTDT%oaf'o7f8f(oET)oigjgkglg*o+o,o-o.o/offgf^e:o;o=o?oVlFTWlMfdb+ XlYlGTZl^S0l1l2l3l4lHTIT5lJT6ls 6 t ; 8 KT7l-f.f~ 8lLT9lMT!lhr#l$l%l'lUqNTOTPT(l)l*lQT+l,l-lRT.l/lSThf:l;lTTUT=l_e?lNfOf@lVT[l/f:f;f=f]l^l_l`l{l|lifjf`eQ }l~lambmcmWTdmPfeb, emfmXTgm_ShmimjmkmlmYTZTmm0Tnmu 7 v = 9 1Tom?f@fabpm2Tqm3TrmirsmtmumvmVq4T5T6Twmxmym7TzmAmBm8TCmDm9TkfEmFm!T#TGm{eHmQfRfIm$TJm[f]f^f_fKmLmMmNmOmPmlfmf|eR QmRmSmTm@o%T[oSfjb/ ]o^o'T_o`S`o{o|o}o~o(T)Tap*TbpA $ B [ ) +Tcpmgngfbdp,Tep-Tfpprgphpipjp*q.T/T:Tkplpmp;Tnpoppp=Tqprp?TTfsptp@T[Tupbfvp9f!fwp]TxpogpgqgrgypzpApBpCpDpUfVfcfW EpFpGpHpIp^TJpWfkb: KpLp_TMp{SNpOpPpQpRp`T{TSp|TTpC % D ] * }TUpsgtggbVp~TWpaUXpqrYpZp0p1p+qbUcUdU2p3p4peU5p6p7pfU8p9pgUXf!p#phUiU$pdf%p#f$f'pjU(pugvgwgxg)p*p+p,p-p.pYfZfefX /p:p;p=p

272 else: 

273 body = body_bytes 2kUlUmUnUoUpUqUrUsUtUuUvU

274 except json.JSONDecodeError as e: 210sV'W20OU%W30tV(W40uV)W50vV*W60wV+W

275 validation_error = RequestValidationError( 2'W%W(W)W*W+W

276 [ 

277 { 

278 "type": "json_invalid", 

279 "loc": ("body", e.pos), 

280 "msg": "JSON decode error", 

281 "input": {}, 

282 "ctx": {"error": e.msg}, 

283 } 

284 ], 

285 body=e.doc, 

286 ) 

287 raise validation_error from e 2'W%W(W)W*W+W

288 except HTTPException: 210sV20OU30tV40uV50vV60wV

289 # If a middleware raises an HTTPException, it should be raised again 

290 raise 2102030405060

291 except Exception as e: 2sVOUtVuVvVwV

292 http_error = HTTPException( 2sVOUtVuVvVwV

293 status_code=400, detail="There was an error parsing the body" 

294 ) 

295 raise http_error from e 2sVOUtVuVvVwV

296 errors: List[Any] = [] 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

297 async with AsyncExitStack() as async_exit_stack: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

298 solved_result = await solve_dependencies( 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

299 request=request, 

300 dependant=dependant, 

301 body=body, 

302 dependency_overrides_provider=dependency_overrides_provider, 

303 async_exit_stack=async_exit_stack, 

304 embed_body_fields=embed_body_fields, 

305 ) 

306 errors = solved_result.errors 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGT3U3sGV3W3tG]0X3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG^0_0]WWG`0^WXG{0|0}06373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JX4Y4aKZ404bKOX14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDKPXQX:WEKRX;WFKSXTXUX!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1Uy1525Vy3545WyE155Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;yF1G1=W=yH1?W?yI1J1K1'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DC5666EC7686FC)196GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C*1+1@W8C,1[W9C-1.1/1+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N97!7,N#7$7-Nr2%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOs2t2gXmOu2hXnOv2w2x2/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R%8'81R(8)82R32*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^R4252mX_R62nX`R728292?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

307 if not errors: 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGT3U3sGV3W3tG]0X3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG^0_0]WWG`0^WXG{0|0}06373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JX4Y4aKZ404bKOX14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDKPXQX:WEKRX;WFKSXTXUX!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1Uy1525Vy3545WyE155Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;yF1G1=W=yH1?W?yI1J1K1'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DC5666EC7686FC)196GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C*1+1@W8C,1[W9C-1.1/1+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N97!7,N#7$7-Nr2%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOs2t2gXmOu2hXnOv2w2x2/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R%8'81R(8)82R32*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^R4252mX_R62nX`R728292?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

308 raw_response = await run_endpoint_function( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n`n]S{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE.0/0:0|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqG[0rGsGtG]0uGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG^0_0]WWG`0^WXG{0|0}0YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc1xo9Gd1!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDu_W`WCHzh{W|WRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}JNX~JaKbKOXcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKPXQX:WEKRX;WFKSXTXUXGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'u,W-WkLSh.W/WWgXgThYgZglL.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlZl^S0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWww1x1y11lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyD1UyVyWyE1XyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;yF1G1=W=yH1?W?yI1J1K1@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1@lbzP1czdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt}W~W5z'gaXbXHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmgm_ShmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFA8191!1imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCC(1DCECFC)1GCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C*1+1@W8C,1[W9C-1.1/1!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1Im.C@1/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tcXdXOD{geXfXMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o_o`S`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.Lj2k2l2{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*Nq2+N,N-Nr2.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOs2t2gXmOu2hXnOv2w2x2oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2wpzOC2AOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[OvviXjX]O4ikXlXehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLpMp{SNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3PV2W2X2Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR220R1R2R323R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R4252mX_R62nX`R728292{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2'phS'2iSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5voXpX#S:iqXrXjhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

309 dependant=dependant, 

310 values=solved_result.values, 

311 is_coroutine=is_coroutine, 

312 ) 

313 if isinstance(raw_response, Response): 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

314 if raw_response.background is None: 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W

315 raw_response.background = solved_result.background_tasks 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W

316 response = raw_response 2e xVyVzVAVBVCVDVEVFVnriuGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2Vf 3V4V5V6V7V8V9V!V#VorTu$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}Va PUQURUSUTUUUVUWUXUhrztYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U'U(U)U*U+U,U-U.Ub /U:U;U=U?U@U[U]U^Uir9t_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVc ~VaWbWcWdWeWfWgWhWpraviWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWd GWHWIWJWKWLWMWNWOWqrKvPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W!W#W$W

317 else: 

318 response_args: Dict[str, Any] = { 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

319 "background": solved_result.background_tasks 

320 } 

321 # If status_code was set, use it, otherwise use the default from the 

322 # response class, in the case of redirect it's 307 

323 current_status_code = ( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

324 status_code 

325 if status_code 

326 else solved_result.response.status_code 

327 ) 

328 if current_status_code is not None: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

329 response_args["status_code"] = current_status_code 2}v9v!v#vYbaw$vbw'v(v)v0bcw*v,v*u+u,uEb-v-u/v.u/u:uIb:v;u6D=v?v@v4b8D[v9D^v_v`v8b#D{v

330 if solved_result.response.status_code: 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

331 response_args["status_code"] = ( 29v!v$v'v(v*v*u+u-u.u/u;u=v?v[v^v_v{v

332 solved_result.response.status_code 

333 ) 

334 content = await serialize_response( 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQg`par~v}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGgbq'qZwptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLgcq)qIAZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udhdqer7D@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzviheqgr!DAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=pqqSq8q9q,kUlrqTq!q@i

335 field=response_field, 

336 response_content=raw_response, 

337 include=response_model_include, 

338 exclude=response_model_exclude, 

339 by_alias=response_model_by_alias, 

340 exclude_unset=response_model_exclude_unset, 

341 exclude_defaults=response_model_exclude_defaults, 

342 exclude_none=response_model_exclude_none, 

343 is_coroutine=is_coroutine, 

344 ) 

345 response = actual_response_class(content, **response_args) 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o/j.kUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i

346 if not is_body_allowed_for_status_code(response.status_code): 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeIQoGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o/j.kUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i

347 response.body = b"" 2#vYb)v0b,uEb:uIb@v4b`v8b

348 response.headers.raw.extend(solved_result.response.headers.raw) 2$D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwE}n{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|i}i~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjujvjwjhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGJGtoKGuoLGMGNGOGPGawQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuuuvuwuxuyuzuAuBuCu$vyHzHegfgAHyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSHTHFoGoEuFuHoIoGj-kDhUHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMoNo|vOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIGXHXIXg9PodIeIQoGuHuVg=mcrIuJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNjOjPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuG9H9VJI9J9WJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JXoSuYo9j!j#j$jZo=J?JTu@J[J]J^J_J`J{J|J}JM9NXN9~JaKO9bKOXP9cKdKeKfKQ90o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqKrK#osK$otKuKvKwKxKcwyKzK%oNhOhafAKBKR9S9CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX(oRKZXSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u5u6u7u8u9u!u#u$u%u*vgLhLkglgiLRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLALBL:o;o(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYw2lntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1h2h3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:h;h=h?h#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#y$y:l%y;l'y(y)y*y+y-v,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTt-u1z2z;f=f3z%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z/zQ }l~lVtWtambm~h:j+g:z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHAjmXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugihiiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCiDiEiFismsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUCVCEmWCFmXCYCZC0C1C:v2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-t.t/t:t;t=t?t@t[t]t;uKDLD^f_fMD`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4D5DR QmRm_t`tSmTmPi;jahCLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L|o=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_j`j{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkrksktkgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}N~NspaOtpbOcOdOeOfO8DgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;Odvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuv[v=O?Oqgrg@O3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPjPW EpFpwvxvGpHpDkTl8ikPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PPpyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkLkMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6k7k8k9kYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*R+R!p,R#p-R.R/R:R;R#D=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v{v7S8Swgxg9S/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S[SX /p:p6v7v;p=p,kUl@i

349 if errors: 2e $D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n}S`n{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE`2|nvEwExVyV}nzV{t|tQgar}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu7X8X9X%F'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGT3U3sGV3W3tGX3uGY3vGZ3wG03xG13iojoko#qkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG53UGVG]WWG^WXG6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8G83xonT9G93!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIoGj-kDhf UHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMopTNoOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cI~3PodIeI3V4VQo5VGuHuVgcrJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuoYpYqYVJWJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JX4Y4aKZ404bK14cK24dK34eK44fK540o1o2o$qmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBK94CKDK:WEK;WFK!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK$4(oETRK%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o/j.kUha dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlGTZl0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Wwd51lXwYwPUQU2lRUntotGg'qptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUy1525Vy3545Wy55Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;y=W=y?W?y'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz)5@lVTbz*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambm~h:j+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmXTgmhm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FAh6imGAHA/U:Ujm;UXtYtLg)qZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDC5666EC7686FC96GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C@W8C[W9C+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-C-6Im$T.C.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmPi;jahc CLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o'T_o`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Ll7{o/L:L~VaW|obW=u?udher@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{u5Z6Z7ZDNENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N97!7,N#7$7-N%7.N'7/N(7:N)7;N*7hpipjp*qsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO.7kOlOgXmOhXnO/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyO;7wp]TzO=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpDkTl8id kPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLp_TMpNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83Pp8Op4P5PGWHWPpIWyvzvihgrAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvm0n0o0lRmRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R%8'81R(8)82R*83R+84R,85R-86R.8Zp0p1p+quUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[R=8]R^RmX_RnX`R?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS[8'pjUhS]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=p,kUl@i

350 validation_error = RequestValidationError( 2|SGfygCc8v}S,2-2.2/2:2;2=2?2@2[2]2^2_2`24X5X~SaTbT{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3cT6XR3S37X8X9X!X#X$X%X'X(XdT)XeTT3U3V3W3X3Y3Z30313kUfT*XgThTlUiT+XjT,XkT233343lTmT53637383nT93!3#3$3%3'3(3)3*3+3,3-3.3/3-X.X/X:X;X=X?X@X[X]X^X_X`X{X|X}X~XaYbYcYdYeYfYgYhYiYjYkYoTKfzgDc%vpT:3;3=3?3@3[3]3^3_3`3{3|3}3~3lYmYqTrTsTa4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4tTnYV4W4oYpYqYrYsYtYuYvYwYuTxYvTX4Y4Z4041424344454mUwTyYxTyTnUzTzYATAYBT647484CTDT94!4#4$4ET%4'4(4)4*4+4,4-4.4/4:4;4=4?4BYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2YFTMfAgEc+vGT@4[4]4^4_4`4{4|4}4~4a5b5c5d53Y4YHTITJTe5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5IcScKT5YZ5056Y7Y8Y9Y!Y#Y$Y%Y'YLT(YMT152535455565758595oUNT)YOTPTpUQT*YRT+YST!5#5$5TTUT%5'5(5)5VT*5+5,5-5.5/5:5;5=5?5@5[5]5^5,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZWTPfBgFc.vXT_5`5{5|5}5~5a6b6c6d6e6f6g6h6kZlZYTZT0Ti6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6061626JcTc1TmZ3646nZoZpZqZrZsZtZuZvZ2TwZ3T5666768696!6#6$6%6qU4TxZ5T6TrU7TyZ8TzZ9T'6(6)6!T#T*6+6,6-6$T.6/6:6;6=6?6@6[6]6^6_6`6{6|6AZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z%TSfCgGc;v'T}6~6a7b7c7d7e7f7g7h7i7j7k7l72Z3Z(T)T*Tm7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767KcUc+T4Z77875Z6Z7Z8Z9Z!Z#Z$Z%Z,T'Z-T97!7#7$7%7'7(7)7*7sU.T(Z/T:TtU;T)Z=T*Z?T+7,7-7@T[T.7/7:7;7]T=7?7@7[7]7^7_7`7{7|7}7~7a8b8+Z,Z-Z.Z/Z:Z;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0^TWfDgHc]v_Tc8d8e8f8g8h8i8j8k8l8m8n8o8p8j0k0`T{T|Tq8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z808182838485868788898!8LcVc}Tl0#8$8m0n0o0p0q0r0s0t0u0~Tv0aU%8'8(8)8*8+8,8-8.8uUbUw0cUdUvUeUx0fUy0gU/8:8;8hUiU=8?8@8[8jU]8^8_8`8{8|8}8~8a9b9c9d9e9f9z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000

351 _normalize_errors(errors), body=body 

352 ) 

353 raise validation_error 2|SGfygCc8v}S,2-2.2/2:2;2=2?2@2[2]2^2_2`24X5X~SaTbT{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3cT6XR3S37X8X9X!X#X$X%X'X(XdT)XeTT3U3V3W3X3Y3Z30313kUfT*XgThTlUiT+XjT,XkT233343lTmT53637383nT93!3#3$3%3'3(3)3*3+3,3-3.3/3-X.X/X:X;X=X?X@X[X]X^X_X`X{X|X}X~XaYbYcYdYeYfYgYhYiYjYkYoTKfzgDc%vsXtXuXvXwXxXyXzXAXBXCXDXEXFXpT|v:3;3=3?3@3[3]3^3_3`3{3|3}3GX~3HXIXg9=mIulYmYqTrTsTa4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4tTnYV4W4{pxq|pyq}pzqh9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9y9z9A9B9C9D9E9F9oYpYqYG9H9I9J9rYsYtYuYvYwYK9L9JXKXLXMXuTxYvTM9NXN9X4Y4O9Z404OXP914243444Q954OU%WmUwTyYxTyTnUzTzYATAYBT647484CTDTR9S994PXQXRXSXTXUXT9U9V9W9!4#4VXWXXXYX$4ETZX%4'4(4)4*4+40X1X2X3X,4-4.4/4:4;4=4?4BYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0YX9Y9Z90919,W-W293949.W/W5969YgZg798999!9#9$9ffgf^e1Y2Y[p~phqiq]paqjqa dwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlGTZl0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Wwd51lXwYwPUQU2lRUntotGg'qptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvt6Y7Y8Yfygyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'Ynyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUy1525Vy3545Wy55Xy65Yy75Zy850y95$l%l'lUqoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/y%5:y;y=W=y?W?y'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz)5@lVTbz*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambm~h:j+gb :z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmXTgmhm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FAh6imGAHA/U:Ujm;UXtYtLg)qZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5tnZoZpZ=B?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDC5666EC7686FC96GC!6HC#6IC$6JC%6tmumvmVqqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5C*66C7C@W8C[W9C+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-C-6Im$T.C.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmPi;jah%TSfCgGc;v'T}6~6a7b7c7d7e7f7g7h7i7j7k7l72Z3Z(T)T*Tm7n7o7p7q7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767KcUc+T4Z77875Z6Z7Z8Z9Z!Z#Z$Z%Z,T'Z-T97!7#7$7%7'7(7)7*7sU.T(Z/T:TtU;T)Z=T*Z?T+7,7-7@T[T.7/7:7;7]T=7?7@7[7]7^7_7`7{7|7}7~7a8b8+Z,Z-Z.Z/Z:Z;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0^TWfDgHc]v_Tc8d8e8f8g8h8i8j8k8l8m8n8o8p8j0k0`T{T|Tq8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z808182838485868788898!8LcVc}Tl0#8$8m0n0o0p0q0r0s0t0u0~Tv0aU%8'8(8)8*8+8,8-8.8uUbUw0cUdUvUeUx0fUy0gU/8:8;8hUiU=8?8@8[8jU]8^8_8`8{8|8}8~8a9b9c9d9e9f9z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000

354 if response is None: 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVG]WWG^WXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIoGj-kDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDK:WEK;WFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o/j.kUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=W=y?W?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambm~h:j+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C@W8C[W9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmPi;jahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOgXmOhXnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpDkTl8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^RmX_RnX`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=p,kUl@i

355 raise FastAPIError( 2]W^W:W;W=W?W@W[WgXhXmXnX

356 "No response object was returned. There's a high chance that the " 

357 "application code is raising an exception and a dependency with yield " 

358 "has a block with a bare except, or a block with except Exception, " 

359 "and is not raising the exception again. Read more about it in the " 

360 "docs: https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#dependencies-with-yield-and-except" 

361 ) 

362 return response 2e $D%D'D(D)D[n]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~qjr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D_D`D{D|D}D~DaEbEcE^n_n`n{ndEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEUmosuE|nvEwExVyV}nzV{t|tQgar}t~taubucuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcaoboLEMEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiF]i^i?pjFkFlFmFnFoFpFqF? ' rFsFtF9vuFdovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajYmZm0m1mwFxF2mbjcjdj3m4mejfj5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFF` G M GFk l bbHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F!F#F$Feu%F'F(F)F*Ffu+F,F-Fgu.F/F:F;F=F?F@F[F]F^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~FaGbGcGdGeGeofGfohugotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGiojoko#qlomonooopoqojukurosothHflcyGzGAGBGCGDGEGFGGGHGIGGVHVIVJGJVKVLVtoKGuoLGMGNGMVNVOGOVPGawPVQVRVQGRGvouhvh}eSGTGUGVGWGXGYGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G6G7G8Gxo9G!G#G$G%G'G(G)G*G+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^G_G`G{Gdg|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHlumunuoupuqurusutuSVuuvuTVwuxuyuzuAuBuCu$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCoBHDuCHzhRgSgAhBhChDHDoEjEoFjEHFHIfJfGHHHIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGoEuFuHoIoGj-kDhf UHVHWHXHYHJoKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. brkr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$H%H'H(H)H*H+H,H-H.HLoMoNoOo/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIbI;mRscIPodIeI3V4VQo5VGuHuVgcrJuKuLuMuNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoTotIuIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@IIjJj@p[I]I^I_I`I{I|I}I@ ( ~IaJbJ'vcJVodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj]m^m_m`meJfJ{mRjSjTj|m}mUjVj~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJ{ H N oJm n cbpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJPuVJWJXJYJZJQu0J1J2JRu3J4J5J6J7J8J9J!J#J$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+J,J-J.J/J:JWo;JXoSuYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfK0o1o2o$q3o4o5o6o7o8oUuVu9o!oMhLfpcgKhKiKjKkKlKmKnKoKpKqK$V%V'VrK(V)V*V#osK$otKuKvK+V,VwK-VxKcw.V/V:VyKzK%oNhOhafAKBKCKDKEKFKGKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKOKPKQK(oRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K)o6K7K8K9Kig!K#K$K%K'K(Kjg)K*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLWuXuYuZu0u1u2u3u4u;V5u6u=V7u8u9u!u#u$u%u*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-ojL'ukLShWgXgThYgZglL.o-j/o.jmLnLffgfoLpLqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o(u)u=o?o/j.kUha dwewfwgwhwVlWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwwwxwywzwAwBwCwDwEwXlYlZl0lFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVw/kTrWw1lXwYwPUQU2lRUntotGg'qptqtrtstttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4l5l'w(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzxAxBxCxDxExFxGxHxIxJxKxLxWhXhsnMxNxOxPxQxRxSxTx; 8 CbDb~bacUxVxWx*uXx7lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4h?k@k[k]kZx0x^k5h6h7h_k`k8h9h{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8x^ E K 9xg h ~ !x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@x[x]x^x_x`x{x|x}x~xaybycydyeyvtfygyhyiyjywtkylymyxtnyoypyqyrysytyuyvywyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyDyEyFyGyHy8lIy9lyt!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y$l%l'lUq(l)l*l+l,l-lAtBt.l/l8ghfbc1y2y3y4y5y6y7y8y9y!y#yYUZU0U$y1U2U3U:l%y;l'y(y)y4U5U*y6U+y-v7U8U9U,y-y=l9g!g_e.y/y:y;y=y?y@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|y}y~yaz@lbzczdzezfzgzhzizjzkzlzmznzozpz[lqzrzsztz/fuzvzwzxzyzzz:fAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0zCtDtEtFtGtHtItJtKt!ULtMt#UNtOtPtQtRtStTt-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`l4zUt5z'gHgIg(g)g*g6z{l|h|l}h7z8zifjf9z!z#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~lVtWtambm~h:j+gb :z;z=z?z@zcmdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAfAgAhAiAjAkAlAmAnAemfmgmhmoApAqArAsAtAuAvAwAxAyAzAAABACADAEApl/rFAimGAHA/U:Ujm;UXtYtLg)qZt0t1t2t3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmmmXAYAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBbicitnvBwBxByBzBABBBCB= 9 GbHbfcgcDBEBFB.uGBomHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijitlulvlwlIBJBxlkilimiylzlnioiAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRB_ F L SBi j abTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B5t=B?B@B[B]B6t^B_B`B7t{B|B}B~BaCbCcCdCeCfCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllCmCnCoCpCqCpmrCqm8trmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyCzCACBCCCDCECFCGCHCICJCtmumvmVqwmxmymzmAmBm!t#tCmDm@gkfhcKCLCMCNCOCPCQCRCSCTCUC_U`U{UVC|U}U~UEmWCFmXCYCZCaVbV0CcV1C:vdVeVfV2C3CGm[g]g{e4C5C6C7C8C9C!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C+C,C-CIm.C/C:C;C=C?C@C[C]C^C_C`C{C|C}CJm~CaDbDcD[fdDeDfDgDhDiD]fjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJD$t%t't(t)t*t+t,t-tgV.t/thV:t;t=t?t@t[t]t;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmND^tOD{gMgNg|g}g~gPDOmNiPmOiQDRDlfmfSDTDUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm_t`tSmTmPi;jahc CLDLELFLGL@o[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ drlrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLULVLWLXLYLZL0L1L2L3L]o^o_o`o4L5L6L7L8L9L!L#L$L%L'L(L)L*L+L,L-Lun-s.L{o/L:L~VaW|obW=u?udher@u[u]u^u_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~oapbMcMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M?j@j^p!M#M$M%M'M(M)M*M[ ) 2b3btcuc+M,M-M=v.Mcp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jynznAnBn:M;MCn}j~jakDnEnbkckFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`M| I O {Mo p fb|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN{uDNENFNGNHN|uINJNKN}uLNMNNNONPNQNRNSNTNUNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0N1N2N3N4N5Ndp6Nep~ufpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N'N(N)N*N+N,N-N.N/N:N;Nhpipjp*qkplpmpnpopppbvcvqprpYiTfvc=N?N@N[N]N^N_N`N{N|N}NiWjWkW~NlWmWnWspaOtpbOcOdOoWpWeOqWfO8DrWsWtWgOhOupZi0ibfiOjOkOlOmOnOoOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOwOxOyOwpzOAOBOCODOEOFOGOHOIOJOKOLOMONOxpOOPOQOROogSOTOUOVOWOXOpgYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;OdvevfvgvhvivjvkvlvuWmvnvvWovpvqvrvsvtvuv[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp[Ovv]O4iehfh5i6i7i^OCpBkDpCk_O`OUfVf{O|O}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFpwvxvGpHpDkTl8id kPlPmPnPoPIpJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: frmrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPDPEPFPGPHPIPJPKPLPKpLpMpNpMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2PYnmt3POp4P5PGWHWPpIWyvzvihgrAvBvCvDvEvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRpSp-P.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQFkGk_pSQTQUQVQWQXQYQZQ] * 6b7bzcAc0Q1Q2Q^v3QUp4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNk2n3n4n5n5Q6Q6nOkPkQk7n8nRkSk9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'Q} J P (Qq r gb)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRGvlRmRnRoRpRHvqRrRsRIvtRuRvRwRxRyRzRARBRCRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRJRKRLRMRNRVpORWpJvXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6RZp0p1p+q2p3p4p5p6p7pLvMv8p9p*iXfBc7R8R9R!R#R$R%R'R(R)R*RPWQWRW+RSWTWUW!p,R#p-R.R/RVWWW:RXW;R#DYWZW0W=R?R$p+i,idf@R[R]R^R_R`R{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdSeSfSgS'phSiSjSkSlSmSnSoSpSqSrSsStSuSvS(pwSxSySzSugASBSCSDSESFSvgGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S3S4S5S6SNvOvPvQvRvSvTvUvVv1WWvXv2WYvZv0v1v2v3v4v{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,p!S5v#S:ijhkh;i=i?i$S-p*k.p+k%S'SYfZf(S)S*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:p6v7v;p=p,kUl@i

363 

364 return app 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

365 

366 

367def get_websocket_app( 1efabcd

368 dependant: Dependant, 

369 dependency_overrides_provider: Optional[Any] = None, 

370 embed_body_fields: bool = False, 

371) -> Callable[[WebSocket], Coroutine[Any, Any, Any]]: 

372 async def app(websocket: WebSocket) -> None: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

373 async with AsyncExitStack() as async_exit_stack: 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'

374 # TODO: remove this scope later, after a few releases 

375 # This scope fastapi_astack is no longer used by FastAPI, kept for 

376 # compatibility, just in case 

377 websocket.scope["fastapi_astack"] = async_exit_stack 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'

378 solved_result = await solve_dependencies( 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'

379 request=websocket, 

380 dependant=dependant, 

381 dependency_overrides_provider=dependency_overrides_provider, 

382 async_exit_stack=async_exit_stack, 

383 embed_body_fields=embed_body_fields, 

384 ) 

385 if solved_result.errors: 2%9'9(9)9*9$%+9,9-9.9,%-%.%nf0f/%:%;%=%?%/9:9;9=9?9@9[9]9^9_9`9@%[%]%ofpf^%_%`%{%|%{9|9}9~9a!%%b!c!d!e!f!~%a'b'qf1fc'd'e'f'g'g!h!i!j!k!'%l!m!n!o!p!i'j'k'rf2fl'm'n'o'p'q!r!s!t!u!(%v!w!x!y!z!r's't'sf3fu'v'w'x'y'A!B!C!D!E!)%F!G!H!I!J!A'B'C'tf4fD'E'F'G'H'

386 raise WebSocketRequestValidationError( 2$%0f@9pf%%1f'%2f(%3f)%4f

387 _normalize_errors(solved_result.errors) 

388 ) 

389 assert dependant.call is not None, "dependant.call must be a function" 2%9'9(9)9*9+9,9-9.9,%-%.%nf/%:%;%=%?%/9:9;9=9?9[9]9^9_9`9@%[%]%of^%_%`%{%|%{9|9}9~9a!b!c!d!e!f!~%a'b'qfc'd'e'f'g'g!h!i!j!k!l!m!n!o!p!i'j'k'rfl'm'n'o'p'q!r!s!t!u!v!w!x!y!z!r's't'sfu'v'w'x'y'A!B!C!D!E!F!G!H!I!J!A'B'C'tfD'E'F'G'H'

390 await dependant.call(**solved_result.values) 2%9'9(9)9*9+9,9-9.9,%-%.%nf/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!b!c!d!e!f!~%a'b'qfc'd'e'f'g'g!h!i!j!k!l!m!n!o!p!i'j'k'rfl'm'n'o'p'q!r!s!t!u!v!w!x!y!z!r's't'sfu'v'w'x'y'A!B!C!D!E!F!G!H!I!J!A'B'C'tfD'E'F'G'H'

391 

392 return app 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

393 

394 

395class APIWebSocketRoute(routing.WebSocketRoute): 1efabcd

396 def __init__( 1efabcd

397 self, 

398 path: str, 

399 endpoint: Callable[..., Any], 

400 *, 

401 name: Optional[str] = None, 

402 dependencies: Optional[Sequence[params.Depends]] = None, 

403 dependency_overrides_provider: Optional[Any] = None, 

404 ) -> None: 

405 self.path = path 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

406 self.endpoint = endpoint 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

407 self.name = get_name(endpoint) if name is None else name 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

408 self.dependencies = list(dependencies or []) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

409 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

410 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

411 for depends in self.dependencies[::-1]: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

412 self.dependant.dependencies.insert( 1efabcd

413 0, 

414 get_parameterless_sub_dependant(depends=depends, path=self.path_format), 

415 ) 

416 self._flat_dependant = get_flat_dependant(self.dependant) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

417 self._embed_body_fields = _should_embed_body_fields( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

418 self._flat_dependant.body_params 

419 ) 

420 self.app = websocket_session( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

421 get_websocket_app( 

422 dependant=self.dependant, 

423 dependency_overrides_provider=dependency_overrides_provider, 

424 embed_body_fields=self._embed_body_fields, 

425 ) 

426 ) 

427 

428 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd

429 match, child_scope = super().matches(scope) 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'

430 if match != Match.NONE: 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'

431 child_scope["route"] = self 2%9'9(9)9*9$%+%+9,9-9.9,%-%.%nf`f0f/%:%;%=%?%/9:9;9=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%_%`%{%|%{9|9}9~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'd'e'f'g'g!h!i!j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl'm'n'o'p'q!r!s!t!u!(%q'v!w!x!y!z!r's't'sf}f3fu'v'w'x'y'A!B!C!D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'E'F'G'H'

432 return match, child_scope 2%9'9I'O'(9P')9*9$%+%+9,9-9.9,%-%.%nf`f0f/%+':%;%=%?%,'/9:9J'Q';9R'=9?9@9*%[9]9^9_9`9@%[%]%of%fpf^%-'_%`%{%|%.'{9|9K'S'}9T'~9a!%%}%b!c!d!e!f!~%a'b'qf{f1fc'/'d'e'f'g':'g!h!L'U'i!V'j!k!'%h'l!m!n!o!p!i'j'k'rf|f2fl';'m'n'o'p'='q!r!M'W's!X't!u!(%q'v!w!x!y!z!r's't'sf}f3fu'?'v'w'x'y'@'A!B!N'Y'C!Z'D!E!)%z'F!G!H!I!J!A'B'C'tf~f4fD'['E'F'G'H']'

433 

434 

435class APIRoute(routing.Route): 1efabcd

436 def __init__( 1efabcd

437 self, 

438 path: str, 

439 endpoint: Callable[..., Any], 

440 *, 

441 response_model: Any = Default(None), 

442 status_code: Optional[int] = None, 

443 tags: Optional[List[Union[str, Enum]]] = None, 

444 dependencies: Optional[Sequence[params.Depends]] = None, 

445 summary: Optional[str] = None, 

446 description: Optional[str] = None, 

447 response_description: str = "Successful Response", 

448 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, 

449 deprecated: Optional[bool] = None, 

450 name: Optional[str] = None, 

451 methods: Optional[Union[Set[str], List[str]]] = None, 

452 operation_id: Optional[str] = None, 

453 response_model_include: Optional[IncEx] = None, 

454 response_model_exclude: Optional[IncEx] = None, 

455 response_model_by_alias: bool = True, 

456 response_model_exclude_unset: bool = False, 

457 response_model_exclude_defaults: bool = False, 

458 response_model_exclude_none: bool = False, 

459 include_in_schema: bool = True, 

460 response_class: Union[Type[Response], DefaultPlaceholder] = Default( 

461 JSONResponse 

462 ), 

463 dependency_overrides_provider: Optional[Any] = None, 

464 callbacks: Optional[List[BaseRoute]] = None, 

465 openapi_extra: Optional[Dict[str, Any]] = None, 

466 generate_unique_id_function: Union[ 

467 Callable[["APIRoute"], str], DefaultPlaceholder 

468 ] = Default(generate_unique_id), 

469 ) -> None: 

470 self.path = path 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

471 self.endpoint = endpoint 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

472 if isinstance(response_model, DefaultPlaceholder): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

473 return_annotation = get_typed_return_annotation(endpoint) 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb

474 if lenient_issubclass(return_annotation, Response): 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb

475 response_model = None 1efabcd

476 else: 

477 response_model = return_annotation 2e Cc'ficY hb- Xb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 +evdwdYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 -exdyd0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~bac/ezdAdEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT eb, FbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgc;eBdCdIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 jb/ 1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcuc?eDdEd4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 kb: 5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAc[eFdGd8b} J P q r gb=ctd,cBc]eudRcKb

478 self.response_model = response_model 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

479 self.summary = summary 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

480 self.response_description = response_description 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

481 self.deprecated = deprecated 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

482 self.operation_id = operation_id 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

483 self.response_model_include = response_model_include 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

484 self.response_model_exclude = response_model_exclude 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

485 self.response_model_by_alias = response_model_by_alias 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

486 self.response_model_exclude_unset = response_model_exclude_unset 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

487 self.response_model_exclude_defaults = response_model_exclude_defaults 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

488 self.response_model_exclude_none = response_model_exclude_none 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

489 self.include_in_schema = include_in_schema 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

490 self.response_class = response_class 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

491 self.dependency_overrides_provider = dependency_overrides_provider 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

492 self.callbacks = callbacks 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

493 self.openapi_extra = openapi_extra 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

494 self.generate_unique_id_function = generate_unique_id_function 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

495 self.tags = tags or [] 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

496 self.responses = responses or {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

497 self.name = get_name(endpoint) if name is None else name 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

498 self.path_regex, self.path_format, self.param_convertors = compile_path(path) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

499 if methods is None: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

500 methods = ["GET"] 1efabcd

501 self.methods: Set[str] = {method.upper() for method in methods} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

502 if isinstance(generate_unique_id_function, DefaultPlaceholder): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

503 current_generate_unique_id: Callable[[APIRoute], str] = ( 2e Cc'ficY hb- XbnbtbLbMbjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. ZbobubNbObncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ BblbrbPbQb|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, FbmbsbRbSbdcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvbTbUbrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwbVbWbxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

504 generate_unique_id_function.value 

505 ) 

506 else: 

507 current_generate_unique_id = generate_unique_id_function 2e 9b8c!b#b$bLbMb?cf %b9c'b(b)bNbOb^ca *b!c+b,b-bPbQb|cb .b#c/b:b;bRbSbddc =b$c?b@b[bTbUbjdd ]b%c^b_b`bVbWbpd

508 self.unique_id = self.operation_id or current_generate_unique_id(self) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

509 # normalize enums e.g. http.HTTPStatus 

510 if isinstance(status_code, IntEnum): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

511 status_code = int(status_code) 2e Ybf 0ba Ebb Ibc 4bd 8b

512 self.status_code = status_code 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

513 if self.response_model: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

514 assert is_body_allowed_for_status_code(status_code), ( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX

515 f"Status code {status_code} must not have a response body" 

516 ) 

517 response_name = "Response_" + self.unique_id 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX

518 self.response_field = create_model_field( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' +eufvf` G M k l ,ef . obub%b9c'b(b)bNbOby # z YcZc3 @ ( -ewfxf{ H N m n .ea + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 /eyfzf^ E K g h :eQ b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 ;eAfBf_ F L i j =eR c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) ?eCfDf| I O o p @eW d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * [eEfFf} J P q r ]eX

519 name=response_name, 

520 type_=self.response_model, 

521 mode="serialization", 

522 ) 

523 # Create a clone of the field, so that a Pydantic submodel is not returned 

524 # as is just because it's an instance of a subclass of a more limited class 

525 # e.g. UserInDB (containing hashed_password) could be a subclass of User 

526 # that doesn't have the hashed_password. But because it's a subclass, it 

527 # would pass the validation and be returned as is. 

528 # By being a new field, no inheritance will be passed as is. A new model 

529 # will always be created. 

530 # TODO: remove when deprecating Pydantic v1 

531 self.secure_cloned_response_field: Optional[ModelField] = ( 2e - nbtb9b8c!b#b$bLbMbw ! x WcXc2 ? ' ` G M k l f . obub%b9c'b(b)bNbOby # z YcZc3 @ ( { H N m n a + lbrb*b!c+b,b-bPbQbs 6 t 0c1cU ; 8 ^ E K g h Q b , mbsb.b#c/b:b;bRbSbu 7 v 2c3cV = 9 _ F L i j R c / pbvb=b$c?b@b[bTbUbA $ B 4c5c4 [ ) | I O o p W d : qbwb]b%c^b_b`bVbWbC % D 6c7c5 ] * } J P q r X

532 create_cloned_field(self.response_field) 

533 ) 

534 else: 

535 self.response_field = None # type: ignore 2e Cc'ficY hbXb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 vdwdYbbb-c[c'clc]cMczbf Dc(fmcZ ibZb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 xdyd0bcb.c`c(cpc{cNcAba Ec)f{bS dbBb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~baczdAdEb~ /cbd)cbccdOcxbb Fc*fccT ebFbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgcBdCdIbab:chd*chcidPcybc Gc+fqc0 jb1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcucDdEd4bfb;cnd+cvcodQcJbd Hc,fwc1 kb5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAcFdGd8bgb=ctd,cBcudRcKb

536 self.secure_cloned_response_field = None 2e Cc'ficY hbXb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 vdwdYbbb-c[c'clc]cMczbf Dc(fmcZ ibZb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 xdyd0bcb.c`c(cpc{cNcAba Ec)f{bS dbBb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU Cb~cDbIcadSc~baczdAdEb~ /cbd)cbccdOcxbb Fc*fccT ebFbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV GbfdHbJcgdTcfcgcBdCdIbab:chd*chcidPcybc Gc+fqc0 jb1bjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 2bld3bKcmdUctcucDdEd4bfb;cnd+cvcodQcJbd Hc,fwc1 kb5bpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 6brd7bLcsdVczcAcFdGd8bgb=ctd,cBcudRcKb

537 self.dependencies = list(dependencies or []) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX

538 self.description = description or inspect.cleandoc(self.endpoint.__doc__ or "") 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX

539 # if a "form feed" character (page break) is found in the description text, 

540 # truncate description text to the content preceding the first "form feed" 

541 self.description = self.description.split("\f")[0].strip() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX

542 response_fields = {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX

543 for additional_status_code, response in self.responses.items(): 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' vdwdYb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( xdyd0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~baczdAdEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcBdCdIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcucDdEd4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAcFdGd8b} J P q r gb=ctd,cBcudRcKbX

544 assert isinstance(response, dict), "An additional response must be a dict" 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

545 model = response.get("model") 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

546 if model: 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

547 assert is_body_allowed_for_status_code(additional_status_code), ( 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

548 f"Status code {additional_status_code} must not have a response body" 

549 ) 

550 response_name = f"Response_{additional_status_code}_{self.unique_id}" 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

551 response_field = create_model_field( 2e 9b8c!b#b$bLbMbw ! x WcXc2 vdwdf %b9c'b(b)bNbOby # z YcZc3 xdyda *b!c+b,b-bPbQbs 6 t 0c1cU zdAdb .b#c/b:b;bRbSbu 7 v 2c3cV BdCdc =b$c?b@b[bTbUbA $ B 4c5c4 DdEdd ]b%c^b_b`bVbWbC % D 6c7c5 FdGd

552 name=response_name, type_=model, mode="serialization" 

553 ) 

554 response_fields[additional_status_code] = response_field 2e 9b8c!b#b$bLbMbw ! x WcXc2 f %b9c'b(b)bNbOby # z YcZc3 a *b!c+b,b-bPbQbs 6 t 0c1cU b .b#c/b:b;bRbSbu 7 v 2c3cV c =b$c?b@b[bTbUbA $ B 4c5c4 d ]b%c^b_b`bVbWbC % D 6c7c5

555 if response_fields: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

556 self.response_fields: Dict[Union[int, str], ModelField] = response_fields 2e 9b8c!b#b$bLbMbw ! x WcXc2 f %b9c'b(b)bNbOby # z YcZc3 a *b!c+b,b-bPbQbs 6 t 0c1cU b .b#c/b:b;bRbSbu 7 v 2c3cV c =b$c?b@b[bTbUbA $ B 4c5c4 d ]b%c^b_b`bVbWbC % D 6c7c5

557 else: 

558 self.response_fields = {} 2e Cc'ficY hb- Xbnbtb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, FbmbsbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

559 

560 assert callable(endpoint), "An endpoint must be a callable" 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

561 self.dependant = get_dependant(path=self.path_format, call=self.endpoint) 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

562 for depends in self.dependencies[::-1]: 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

563 self.dependant.dependencies.insert( 1efabcd

564 0, 

565 get_parameterless_sub_dependant(depends=depends, path=self.path_format), 

566 ) 

567 self._flat_dependant = get_flat_dependant(self.dependant) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

568 self._embed_body_fields = _should_embed_body_fields( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

569 self._flat_dependant.body_params 

570 ) 

571 self.body_field = get_body_field( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

572 flat_dependant=self._flat_dependant, 

573 name=self.unique_id, 

574 embed_body_fields=self._embed_body_fields, 

575 ) 

576 self.app = request_response(self.get_route_handler()) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

577 

578 def get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]: 1efabcd

579 return get_request_handler( 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

580 dependant=self.dependant, 

581 body_field=self.body_field, 

582 status_code=self.status_code, 

583 response_class=self.response_class, 

584 response_field=self.secure_cloned_response_field, 

585 response_model_include=self.response_model_include, 

586 response_model_exclude=self.response_model_exclude, 

587 response_model_by_alias=self.response_model_by_alias, 

588 response_model_exclude_unset=self.response_model_exclude_unset, 

589 response_model_exclude_defaults=self.response_model_exclude_defaults, 

590 response_model_exclude_none=self.response_model_exclude_none, 

591 dependency_overrides_provider=self.dependency_overrides_provider, 

592 embed_body_fields=self._embed_body_fields, 

593 ) 

594 

595 def matches(self, scope: Scope) -> Tuple[Match, Scope]: 1efabcd

596 match, child_scope = super().matches(scope) 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ![Sq(X /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

597 if match != Match.NONE: 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ![Sq(X /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

598 child_scope["route"] = self 2$D%D'D(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyEzEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2MEcoNEOEw ! x 2 PEQERESETEUEVEWEXEYEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHflcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGHHHMcIH~eJHKHzbLHMHNHOHPHQHRHSH0V1V2VTHFoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWHXHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogIhIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uIUovIwIy # z 3 xIyIzIAIBICIDIEIFIGIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLfpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoLpLNcqL^erLsLAbtLuLvLwLxLyLzLAL`V{V|V}VBL:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfwgwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w2w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(w6l)w*ws 6 t U +w,w-w.w/w:w;w=w?w@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghfbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9z!zOc#z`e$z%zxb'z(z)z*z+z,z-z.z+U,U-U.U/zQ }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=z?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKALAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAnmZA0Au 7 v V 1A2A3A4A5A6A7A8A9A!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkfhcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDTDPcUD|eVDWDybXDYDZD0D1D2D3D4DoVpVqVrV5DR QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELFLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=L?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMbpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMoMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTfvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{O|OQc}Ocf~OaPJbbPcPdPePfPgPhPiPCWDWEWFWjPW EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPnPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7P8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.PTp/P:PC % D 5 ;P=P?P@P[P]P^P_P`P{P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXfBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(S)SRc*Sef+S,SKb-S.S/S:S;S=S?S@S9W!W#W$W[SX /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

599 return match, child_scope 2$D%D'D%9(D)D[n|S]n*D+D,D-D.DGfOgygPgCc8vicY }v/D:Dhb- ~q10jr;D[i=DXbnbtb:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsns?D@D[D]D^D708090_D`D{D!0#0$0%0|D}D~D'0(0)0*0aE+0,0-0bEcE^n_n}S`n]S{n,2dEeE-2fEgEhE.2/2iE:2;2jE=2kE?2@2lE[2]2mEnE^2oEpEqErEsEtEUmos_2uE.0`2/0:0K!|nvEwExVyV}nzV{t|tQg`par~v}t~taubu4X5XcuduxE~nyE'9zEAEBECEDEEEFEGEHEIEJEKEjckcao~SaTbobTLE{2ME^'coNEOEw ! x 2 PEQERESETEUEVEWEXE_'YEZE|2}20E1E2E~23E4E5Ea3b36E7Ec3d3e38Ef39E!Eg3h3#E$Ei3%Ej3'Ek3l3(E)E*Em3+E,E-En3.E/Eo3:Ep3;Eq3=Er3s3?E@Et3u3[Ev3w3]Ex3y3^Ez3A3_EB3C3`ED3E3{E|E}E~EaFbFcFF3dFG3eFfFH3I3gFhFJ3iFK3L3]i^i?pM3N3jFkFlFmFnFO3P3oFQ3pFqF? ' rFsFtF9vcT6XR3uFS3dovF_i`i{ilhmhnhVmWmXm!v#v|iAV}iBV~iajsq,qYmZm0m1mwFxF2mbjcjdjtq-q3m4mejfjuq.q5m6myFzFAFBFCFDF7m8m9maggj!mbghjij#m$mjj%mkj'mljEFYbFFI'O'(9P'` G M GFk l bbHFL!IFM!JFKFLFN!MFO!NFOFPFP!QFQ!RFSFTFR!UFS!VFWFXFT!YFU!ZFV!W!X!0FY!Z!0!1F1!2!2F3!4!3F4F5F6F5!6!7F7!8!8F9F!F#F9!$Feu7X8X9X!!#!%F$!%!'F(F)F*Ffu!X#X$X+F,F-F%Xgu'X(X.F/F:F;F=F?F@F'![F]F(!^F_F`F{Fmjnjohoj|F}Fpjphqjqh(m)m*m+mrhshrjsj,m-m.m/m:m~F;0aG=0?0@0bGcGdGeGeofGdTfo)XhueTgotjCVujDVvjEVwjFVnrhogGhGiuiGjGkGlGmG$'nGoGpGqG)![0*!rGT3U3sG+!V3W3tG]0,!X3uGY3vGZ3wG03xG-!13iojoko#qsV'WkUfT*XgThTlomonolUiToopoqo+XjukujT,XrosokTthHf'clcyGzGAGBGCGDG23EGFG3343GGHGIGGVHVIVJGJVKVLVtoKGuolTLGMGNGMVNVOGOVPGawPVQVRVQGRGmTvouhvh}eSGTG.!/!53UGVG^0_0]WWG`0^WXG{0|0}0:!;!=!?!6373YGZG0G1G2G3Gwoxjyjwhzj4Gxh5f6f5G~06Ga17Gb18Gc183xonT9Gd193!G#G$G!3%G'G#3$3(G)G*G%3'3+G,G-G.G/G:Gyo;G=G?G@Gcg[G]G^Ge1f1_Gg1h1`G{Gdg|G}G~GaH(3bHcHdHeHfH)3gHhH*3+3iH,3jH-3kH.3lHmHnHoHpHqHrHsHtHuH/3vHwHxH-Xlu.XmunuoupuqurusutuSV/Xuu:XvuTVwuxuyu;X=X?X@X[Xzu]X^X_X`X{XAu|X}X~XaYBubYcYdYeYfYgYCuhYiY$vUVyHVVzHegfgWVXVYVAHZVyhAjBjCjDjzoAoBoCo@![!BH]!^!_!Du_W`W`!CH{!|!zh{W|W}!RgSg~!AhBhCha#b#c#DHd#e#f#DoEjEoFjEHFHIfJfGH`'HHMcIH~eJHKH)9zbLHMHNHOHPHQHRHSH0V*91V$%+%+9,9-92V.9TH{'FoGojYkYEuFuHoIofqvqWqXqGj-kgqwqYqDhUHVHWH/9XHYHJooTKoZH0H1H2H3HKfTgzgUgDc%vmcZ bw4H5Hib. br20kr6HHj7HZbobubpsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQs8H9H!H#H$HsXtXuX%H'H(HvXwXxXyX)H*H+HzXAXBXCX,HDXEXFX-H.HLoMopTNo|vOo:3/H:H;3;H=H?H=3?3@H@3[3[H]3]H^3_3^H`3{3_H`H|3{H|H}H~HaIbI;mRs}3cIGX~3HXIXg9PodIeI3V4VQo5VGuHuVg=mcrIuJuKuLuMulYmYNuOufIRogI:9hIiIjIkIlImInIoIpIqIrIsIncocSoqTrTTosTtIa4uI|'UovIwIy # z 3 xIyIzIAIBICIDIEIFI}'GIHIb4c4IIJIKId4LIMINIe4f4OIPIg4h4i4QIj4RISIk4l4TIUIm4VIn4WIo4p4XIYIZIq40I1I2Ir43I4Is45It46Iu47Iv4w48I9Ix4y4!Iz4A4#IB4C4$ID4E4%IF4G4'IH4I4(I)I*I+I,I-I.IJ4/IK4:I;IL4M4=I?IN4@IO4P4IjJj@pQ4R4[I]I^I_I`IS4T4{IU4|I}I@ ( ~IaJbJ'vtTnYV4cJW4VodJKjLjMjEhFhGh?m@m[m(v)vNj6VOj7VPjQj{pxq]m^m_m`meJfJ{mRjSjTj|pyq|m}mUjVj}pzq~mangJhJiJjJkJlJbncndnggWjenhgXjYjfngnZjhn0jin1jmJ0bnJJ'Q';9R'{ H N oJm n cbpJh9qJi9rJsJtJj9uJk9vJwJxJl9yJm9zJAJBJn9CJo9DJEJFJp9GJq9HJr9s9t9IJu9v9w9JJx9y9KJz9A9LJMJNJOJB9C9PJD9E9QJRJSJTJF9UJPuoYpYqYG9H9VJI9J9WJXJYJZJQurYsYtY0J1J2JuYRuvYwY3J4J5J6J7J8J9JK9!J#JL9$J%J'J(J2j3jHh4j)J*J5jIh6jJhjnknlnmnKhLh7j8jnnonpnqnrn+JJX,JKXLXMX-J.J/J:JWo;JuTXoxYSuvTYo9j8V!j9V#j!V$j#VorZo=J?JTu@J[J]J^J_J%'`J{J|J}JM9NXN9~JX4Y4aKO9Z404bKOXP914cK24dK34eK44fKQ9540o1o2o$qOU%WmUwTyYxTyT3o4o5onUzT6o7o8ozYUuVuATAY9o!oBTMhLf(cpcgKhKiKjKkKlK64mKnK7484oKpKqK$V%V'VrK(V)V*V#osK$oCTtKuKvK+V,VwK-VxKcw.V/V:VyKzKDT%oNhOhafAKBKR9S994CKDKPXQX:WEKRX;WFKSXTXUXT9U9V9W9!4#4GKHKIKJKKKLK'o%j'jPh(jMKQh7f8fNKVXOKWXPKXXQKYX$4(oETRKZX%4SKTKUK'4VKWK(4)4XKYKZK*4+40K1K2K3K4K5K)o6K7K8K9Kig!K#K$K0X1X%K2X3X'K(Kjg)K*K+K,K,4-K.K/K:K;K-4=K?K.4/4@K:4[K;4]K=4^K_K`K{K|K}K~KaLbLcL?4dLeLfLBYWuCYXuYuZu0u1u2u3u4u;VDY5uEY6u=V7u8u9uFYGYHYIYJY!uKYLYMYNYOY#uPYQYRYSY$uTYUYVYWYXYYY%uZY0Y*v?VgL@VhLkglg[V]V^ViL_VRh)j*j+j,j*o+o,o-oX9Y9jLZ90919'u,W-W29kL3949Sh.W/W59WgXg69ThYgZg798999lL!9#9$9.o-j/o.jmLnLffgfoL~'pLNcqL^erLsL=9AbtLuLvLwLxLyLzLAL`V?9{V@9*%[9]9^9|V_9}V`9BLa(:o;o1Y2Y(u)u=o?o[p~phqiq/j.k]paqjqUhdwewfw{9gwhwVlFTWliwjwkwlwmwMfEgAgFgEc+v{bS ,vnwowdb+ %q30|qpwVhqwBblbrbrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrrwswtwuwvwi1j1k1wwxwywl1m1n1o1zwAwBwp1q1r1s1Cwt1u1v1DwEwXlYlGTZl^S0l@4FwGw[4HwIwJw]4^4Kw_4`4Lw{4Mw|4}4Nw~4a5OwPwb5QwRwSwTwUwVw/kTrc5Www1d5x1y1g#1lXwYwPUQU2lRUntotGgbq'qZwptqtrtst3Y4Yttut0w3l1w|92w3w4w5w6w7w8w9w!w#w$w%w|b}b4lHTIT5lJT'we5(wb(6l)w*ws 6 t U +w,w-w.w/w:w;w=w?wc(@w[wf5g5]w^w_wh5`w{w|wi5j5}w~wk5l5m5axn5bxcxo5p5dxexq5fxr5gxs5t5hxixjxu5kxlxmxv5nxoxw5pxx5qxy5rxz5A5sxtxB5C5uxD5E5vxF5G5wxH5I5xxJ5K5yxL5M5zxAxBxCxDxExFxN5GxO5HxIxP5Q5JxKxR5LxS5T5WhXhsnU5V5MxNxOxPxQxW5X5RxY5SxTx; 8 CbDbIcSc~bacUxVxWx*uKT5YZ5Xx057lYxYhZh0h0g1g2g:k;k=k+u,u1hSU2hTU3h4hAq/q?k@k[k]kZx0x^k5h6h7hBq:q_k`k8h9hCq;q{k|k1x2x3x4x5x6x}k~kal-f!hbl.f#h$hcldl%hel'hfl(h7xEb8xK'S'}9T'^ E K 9xg h ~ !xh##xi#$x%x'xj#(xk#)x*x+xl#,xm#-x.x/xn#:xo#;x=x?xp#@xq#[xr#s#t#]xu#v#w#^xx#y#_xz#A#`x{x|x}xB#C#~xD#E#aybycydyF#eyvt6Y7Y8YG#H#fyI#J#gyhyiyjywt9Y!Y#Ykylymy$Yxt%Y'YnyoypyqyrysytyK#uyvyL#wyxyyyzy)h*h3g+hAyBy,h4g-h5gglhliljl6g7g.h/hklllmlnlolCyz1DyA1B1C1EyFyGyHy8lIyLT9l(YytMT!l:hUU;hVU=hWU?hXUhr#lJyKyztLyMyNyOyPy''QyRySyTyM#D1N#Uy1525VyO#3545WyE1P#55Xy65Yy75Zy850yQ#95$l%l'lUqtV(WoUNT)YOTPT(l)l*lpUQT+l,l-l*YAtBtRT+Y.l/lST8ghf)cbc1y2y3y4y5y6y!57y8y#5$59y!y#yYUZU0U$y1U2U3U:l%y;lTT'y(y)y4U5U*y6U+y-v7U8U9U,y-yUT=l9g!g_e.y/yR#S#%5:y;yF1G1=W=yH1?W?yI1J1K1T#U#V#W#'5(5@y[y]y^y_y`y?l@h[h#g]h{y$gNfOf|yL1}yM1~yN1azO1)5@lVTbzP1*5czdzez+5fzgz,5-5hzizjz.5/5kzlzmznzozpz[lqzrzsztz/fuzvzwzQ1R1xzS1T1yzzz:fAzBzCzDz:5EzFzGzHzIz;5JzKz=5?5Lz@5Mz[5Nz]5OzPzQzRzSzTzUzVzWzXz^5YzZz0z,YCt-YDtEtFtGtHtItJtKt!U.YLt/YMt#UNtOtPt:Y;Y=Y?Y@YQt[Y]Y^Y_Y`YRt{Y|Y}Y~YStaZbZcZdZeZfZTtgZhZ-u$U1z%U2z;f=f'U(U)U3z*U%g^h_h`h{h]l^l_l`lX#Y#4zZ#0#1#Ut}W~W2#5z3#4#'gaXbX5#HgIg6#(g)g*g7#8#9#6z!###$#{l|h|l}h7z8zifjf9zd(!zOc#z`e$z%z~9xb'z(z)z*z+z,z-z.z+Ua!,U%%}%b!c!d!-Ue!.Uf!/ze(Q }l~liZjZVtWtambmkqDqZq0q~h:jlqEq1q+g:z;z=zg!?z@zcmWTdm[z]z^z_z`zPfJgBgKgFc.vccT /v{z|zeb, (q40}q}zai~zFbmbsbUrVrWrXrYrZr0r1r2r3r4r5r6r7r8r9r!r#r$r%r'r(r)r*r+r,r-r.raAbAcAdAeAU1V1W1fAgAhAX1Y1Z101iAjAkA11213141lA516171mAnAemfmXTgm_Shm_5oApA`5qArAsA{5|5tA}5~5uAa6vAb6c6wAd6e6xAyAf6zAAABACADAEApl/rg6FA81h691!1%#imGAHA/U:Ujm;UXtYtLgcq)qIAZt0t1t2tkZlZ3t4tJAkmKAh!LAMANAOAPAQARASATAUAVAWAdceclmYTZTmm0TXAi6YAf(nmZA0Au 7 v V 1A2A3A4A5A6A7A8A9Ag(!A#Aj6k6$A%A'Al6(A)A*Am6n6+A,Ao6p6q6-Ar6.A/As6t6:A;Au6=Av6?Aw6x6@A[A]Ay6^A_A`Az6{A|AA6}AB6~AC6aBD6E6bBcBF6G6dBH6I6eBJ6K6fBL6M6gBN6O6hBP6Q6iBjBkBlBmBnBoBR6pBS6qBrBT6U6sBtBV6uBW6X6bicitnY6Z6vBwBxByBzB0616AB26BBCB= 9 GbHbJcTcfcgcDBEBFB.u1TmZ36GB46omHBdieifi,g-g.gqlrlsl/u:ugi=Uhi?UiijiFq=qtlulvlwlIBJBxlkilimiGq?qylzlnioiHq@qAlBlKBLBMBNBOBPBClDlEl?fpiFl@fqiriGlHlsiIltiJluiQBIbRBL'U'i!V'_ F L SBi j abTB'#UB(#VBWBXB)#YB*#ZB0B1B+#2B,#3B4B5B-#6B.#7B8B9B/#!B:##B;#=#?#$B@#[#]#%B^#_#'B`#{#(B)B*B+B|#}#,B~#a$-B.B/B:Bb$;B5tnZoZpZc$d$=Be$f$?B@B[B]B6tqZrZsZ^B_B`BtZ7tuZvZ{B|B}B~BaCbCcCg$dCeCh$fCgChCiCviwi/gxijCkCyi:gzi;gKlLlMlNl=g?gAiBiOlPlQlRlSllC#1mC$1%1'1nCoCpCqCpmrC2TqmwZ8t3TrmCi@UDi[UEi]UFi^UirsmsCtC9tuCvCwCxCyC('zCACBCCCi$(1j$DC5666ECk$7686FC)1l$96GC!6HC#6IC$6JCm$%6tmumvmVquV)WqU4TxZ5T6TwmxmymrU7TzmAmBmyZ!t#t8TzZCmDm9T@gkf*chcKCLCMCNCOCPC'6QCRC(6)6SCTCUC_U`U{UVC|U}U~UEmWCFm!TXCYCZCaVbV0CcV1C:vdVeVfV2C3C#TGm[g]g{e4C5Cn$o$*66C7C*1+1@W8C,1[W9C-1.1/1p$q$r$s$+6,6!C#C$C%C'C(CHmGiHi^gIi)C_gQfRf*C:1+C;1,C=1-C?1-6Im$T.C@1.6/C:C;C/6=C?C:6;6@C[C]C=6?6^C_C`C{C|C}CJm~CaDbDcD[fdDeDfD[1]1gD^1_1hDiD]fjDkDlDmD@6nDoDpDqDrD[6sDtD]6^6uD_6vD`6wD{6xDyDzDADBDCDDDEDFDGD|6HDIDJDAZ$tBZ%t't(t)t*t+t,t-tgVCZ.tDZ/thV:t;t=tEZFZGZHZIZ?tJZKZLZMZNZ@tOZPZQZRZ[tSZTZUZVZWZXZ]tYZZZ;uiVKDjVLD^f_fkVlVmVMDnV`gJiKiLiMiKmLmMmNmt$u$NDv$w$x$^tcXdXy$ODz$A${geXfXB$MgNgC$|g}g~gD$E$F$PDG$H$I$OmNiPmOiQDRDlfmfSDh(TDPcUD|eVDWDj!ybXDYDZD0D1D2D3D4DoVk!pV'%h'l!m!n!qVo!rVp!5Di(R QmRm0Z1Z_t`tSmTmmqIq2q3qPi;jnqJq4qahCLDLELq!FLGL@o%T[oHLILJLKLLLSfbhCgchGc;vqc0 6DMLNLjb/ dr50lrOL=jPL1bpbvbSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,sQLRLSLTLUL`1{1|1VLWLXL}1~1a2b2YLZL0Lc2d2e2f21Lg2h2i22L3L]o^o'T_o`S`o}64L5L~66L7L8La7b79Lc7d7!Le7#Lf7g7$Lh7i7%L'Lj7(L)L*L+L,L-Lun-sk7.Lj2l7k2l2J${o/L:L~VaW|obW=u?udhdqer7D@u[u]u^u2Z3Z_u`u;L}o=Lr!?L@L[L]L^L_L`L{L|L}L~LaMrcsc~o(T)Tap*TbMm7cMj(bpdMeMA $ B 4 fMgMhMiMjMkMlMmMnMk(oMpMn7o7qMrMsMp7tMuMvMq7r7wMxMs7t7u7yMv7zMAMw7x7BMCMy7DMz7EMA7B7FMGMHMC7IMJMKMD7LMMME7NMF7OMG7PMH7I7QMRMJ7K7SML7M7TMN7O7UMP7Q7VMR7S7WMT7U7XMYMZM0M1M2M3MV74MW75M6MX7Y77M8MZ79M0717?j@j^p2737!M#M$M%M'M4757(M67)M*M[ ) 2b3bKcUctcuc+M,M-M=v+T4Z77.M87cp/M[j]j^jQiRiSivnwnxn?v@v_jcW`jdW{j|jKq[qynznAnBn:M;MCn}j~jakLq]qDnEnbkckMq^qFnGn=M?M@M[M]M^MHnInJnmgdkKnngekfkLnMngkNnhkOnik_M4b`MM'W's!X'| I O {Mo p fb|MK$}ML$~MaNbNM$cNN$dNeNfNO$gNP$hNiNjNQ$kNR$lNmNnNS$oNT$pNU$V$W$qNX$Y$Z$rN0$1$sN2$3$tNuNvNwN4$5$xN6$7$yNzNANBN8$CN{u5Z6Z7Z9$!$DN#$$$ENFNGNHN|u8Z9Z!ZINJNKN#Z}u$Z%ZLNMNNNONPNQNRN%$SNTN'$UNVNWNXNjkkkTilkYNZNmkUinkViPnQnRnSnWiXiokpkTnUnVnWnXn0Nm21Nn2o2p22N3N4N5Ndp6N,Tep'Z~u-TfpqkeWrkfWskgWtkhWprgp7N8Nav9N!N#N$N%N)''N(N)N*N($q2)$+N97!7,N*$#7$7-Nr2+$%7.N'7/N(7:N)7;N,$*7hpipjp*qvV*WsU.T(Z/T:TkplpmptU;Tnpoppp)Zbvcv=T*Zqprp?TYiTf+cvc=N?N@N[N]N^N+7_N`N,7-7{N|N}NiWjWkW~NlWmWnWspaOtp@TbOcOdOoWpWeOqWfO8DrWsWtWgOhO[TupZi0ibfiOjO-$.$.7kOlOs2t2gXmOu2hXnOv2w2x2/$:$;$=$/7:7oOpOqOrOsOtOvpukvk1iwkuO2i9f!fvOy2wOz2xOA2yOB2;7wp]TzOC2=7AOBOCO?7DOEO@7[7FOGOHO]7^7IOJOKOLOMONOxpOOPOQOROogSOTOUOD2E2VOF2G2WOXOpgYOZO0O1O_72O3O4O5O6O`77O8O{7|79O}7!O~7#Oa8$O%O'O(O)O*O+O,O-O.Ob8/O:O;O+Zdv,ZevfvgvhvivjvkvlvuW-Zmv.ZnvvWovpvqv/Z:Z;Z=Z?Zrv@Z[Z]Z^Z_Zsv`Z{Z|Z}Ztv~Za0b0c0d0e0uvf0g0[vwW=OxW?OqgrgyWzWAW@OBW3ixkykzkAkypzpApBp?$@$[O[$]$^$vviXjX_$]O`${$4ikXlX|$ehfh}$5i6i7i~$a%b%^Oc%d%e%CpBkDpCk_O`OUfVf{Ol(|OQc}Ocf~OaPt!JbbPcPdPePfPgPhPiPCWu!DW(%q'v!w!x!EWy!FWz!jPm(W EpFph0i0wvxvGpHpoqNq5q6qDkTlpqOq7q8ikPlPmPA!nPoPIp^TJppPqPrPsPtPWfghDghhHc]vwc1 9DuPvPkb: fr60mrwPEkxP5bqbwb.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltyPzPAPBPCPH2I2J2DPEPFPK2L2M2N2GPHPIPO2P2Q2R2JPS2T2U2KPLPKpLp_TMp{SNpc8MPNPd8OPPPQPe8f8RPg8h8SPi8TPj8k8UPl8m8VPWPn8XPYPZP0P1P2PYnmto83PV2p8W2X2f%Op4P5PGWHWPpIWyvzviheqgr!DAvBvCvDvj0k0EvFv6PQp7PB!8P9P!P#P$P%P'P(P)P*P+P,PxcycRp`T{TSp|T-Pq8.Pn(Tp/P:PC % D 5 ;P=P?P@P[P]P^P_P`Po({P|Pr8s8}P~PaQt8bQcQdQu8v8eQfQw8x8y8gQz8hQiQA8B8jQkQC8lQD8mQE8F8nQoQpQG8qQrQsQH8tQuQI8vQJ8wQK8xQL8M8yQzQN8O8AQP8Q8BQR8S8CQT8U8DQV8W8EQX8Y8FQGQHQIQJQKQLQZ8MQ08NQOQ1828PQQQ38RQ4858FkGk_p6878SQTQUQVQWQ8898XQ!8YQZQ] * 6b7bLcVczcAc0Q1Q2Q^v}Tl0#83Q$8Up4QHkIkJk9i!i#iZn0n1n_v`vKkJWLkKWMkNkPq_q2n3n4n5n5Q6Q6nOkPkQkQq`q7n8nRkSkRq{q9n!n7Q8Q9Q!Q#Q$Q#n$n%nsgTk'ntgUkVk(n)nWk*nXk+nYk%Q8b'QN'Y'C!Z'} J P (Qq r gb)Qg%*Qh%+Q,Q-Qi%.Qj%/Q:Q;Qk%=Ql%?Q@Q[Qm%]Qn%^Q_Q`Qo%{Qp%|Qq%r%s%}Qt%u%v%~Qw%x%aRy%z%bRcRdReRA%B%fRC%D%gRhRiRjRE%kRGvm0n0o0F%G%lRH%I%mRnRoRpRHvp0q0r0qRrRsRs0Ivt0u0tRuRvRwRxRyRzRJ%ARBRK%CRDRERFRZk0k$i1kGRHR2k%i3k'i,n-n.n/n(i)i4k5k:n;n=n?n@nIRY2JRZ20212KRLRMRNRVpOR~TWpv0JvaUXp6kLW7kMW8kNW9kOWqrYpPRQRKvRRSRTRURVR*'WRXRYRZRL%22M%0R%8'81RN%(8)82R32O%*83R+84R,85R-86RP%.8Zp0p1p+qwV+WuUbUw0cUdU2p3p4pvUeU5p6p7px0LvMvfUy08p9pgU*iXf,cBc7R8R9R!R#R$R/8%R'R:8;8(R)R*RPWQWRW+RSWTWUW!p,R#phU-R.R/RVWWW:RXW;R#DYWZW0W=R?RiU$p+i,idf@R[RQ%R%=8]R^R4252mX_R62nX`R728292S%T%U%V%?8@8{R|R}R~RaSbS%p!k#k-i$kcS.i#f$fdS!2eS#2fS$2gS%2[8'pjUhS'2]8iSjSkS^8lSmS_8`8nSoSpS{8|8qSrSsStSuSvS(pwSxSySzSugASBSCS(2)2DS*2+2ESFSvgGSHSISJS}8KSLSMSNSOS~8PSQSa9b9RSc9SSd9TSe9USVSWSXSYSZS0S1S2S3Sf94S5S6Sz0NvA0OvPvQvRvSvTvUvVv1WB0WvC0Xv2WYvZv0vD0E0F0G0H01vI0J0K0L0M02vN0O0P0Q03vR0S0T0U0V0W04vX0Y0{v3W7S4W8Swgxg5W6W7W9S8W/i%k'k(k)k)p*p+p,pW%X%!SY%Z%0%5voXpX1%#S2%3%:iqXrX4%jhkh5%;i=i?i6%7%8%$S9%!%#%-p*k.p+k%S'SYfZf(Sp()SRc*Sef+S,SD!Kb-S.S/S:S;S=S?S@S9WE!!W)%z'F!G!H!#WI!$WJ![Sq(X /p:pZ0006v7v;p=pqqSq8q9q,kUlrqTq!q@i

600 

601 

602class APIRouter(routing.Router): 1efabcd

603 """ 

604 `APIRouter` class, used to group *path operations*, for example to structure 

605 an app in multiple files. It would then be included in the `FastAPI` app, or 

606 in another `APIRouter` (ultimately included in the app). 

607 

608 Read more about it in the 

609 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/). 

610 

611 ## Example 

612 

613 ```python 

614 from fastapi import APIRouter, FastAPI 

615 

616 app = FastAPI() 

617 router = APIRouter() 

618 

619 

620 @router.get("/users/", tags=["users"]) 

621 async def read_users(): 

622 return [{"username": "Rick"}, {"username": "Morty"}] 

623 

624 

625 app.include_router(router) 

626 ``` 

627 """ 

628 

629 def __init__( 1efabcd

630 self, 

631 *, 

632 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "", 

633 tags: Annotated[ 

634 Optional[List[Union[str, Enum]]], 

635 Doc( 

636 """ 

637 A list of tags to be applied to all the *path operations* in this 

638 router. 

639 

640 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

641 

642 Read more about it in the 

643 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

644 """ 

645 ), 

646 ] = None, 

647 dependencies: Annotated[ 

648 Optional[Sequence[params.Depends]], 

649 Doc( 

650 """ 

651 A list of dependencies (using `Depends()`) to be applied to all the 

652 *path operations* in this router. 

653 

654 Read more about it in the 

655 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

656 """ 

657 ), 

658 ] = None, 

659 default_response_class: Annotated[ 

660 Type[Response], 

661 Doc( 

662 """ 

663 The default response class to be used. 

664 

665 Read more in the 

666 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class). 

667 """ 

668 ), 

669 ] = Default(JSONResponse), 

670 responses: Annotated[ 

671 Optional[Dict[Union[int, str], Dict[str, Any]]], 

672 Doc( 

673 """ 

674 Additional responses to be shown in OpenAPI. 

675 

676 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

677 

678 Read more about it in the 

679 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/). 

680 

681 And in the 

682 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

683 """ 

684 ), 

685 ] = None, 

686 callbacks: Annotated[ 

687 Optional[List[BaseRoute]], 

688 Doc( 

689 """ 

690 OpenAPI callbacks that should apply to all *path operations* in this 

691 router. 

692 

693 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

694 

695 Read more about it in the 

696 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

697 """ 

698 ), 

699 ] = None, 

700 routes: Annotated[ 

701 Optional[List[BaseRoute]], 

702 Doc( 

703 """ 

704 **Note**: you probably shouldn't use this parameter, it is inherited 

705 from Starlette and supported for compatibility. 

706 

707 --- 

708 

709 A list of routes to serve incoming HTTP and WebSocket requests. 

710 """ 

711 ), 

712 deprecated( 

713 """ 

714 You normally wouldn't use this parameter with FastAPI, it is inherited 

715 from Starlette and supported for compatibility. 

716 

717 In FastAPI, you normally would use the *path operation methods*, 

718 like `router.get()`, `router.post()`, etc. 

719 """ 

720 ), 

721 ] = None, 

722 redirect_slashes: Annotated[ 

723 bool, 

724 Doc( 

725 """ 

726 Whether to detect and redirect slashes in URLs when the client doesn't 

727 use the same format. 

728 """ 

729 ), 

730 ] = True, 

731 default: Annotated[ 

732 Optional[ASGIApp], 

733 Doc( 

734 """ 

735 Default function handler for this router. Used to handle 

736 404 Not Found errors. 

737 """ 

738 ), 

739 ] = None, 

740 dependency_overrides_provider: Annotated[ 

741 Optional[Any], 

742 Doc( 

743 """ 

744 Only used internally by FastAPI to handle dependency overrides. 

745 

746 You shouldn't need to use it. It normally points to the `FastAPI` app 

747 object. 

748 """ 

749 ), 

750 ] = None, 

751 route_class: Annotated[ 

752 Type[APIRoute], 

753 Doc( 

754 """ 

755 Custom route (*path operation*) class to be used by this router. 

756 

757 Read more about it in the 

758 [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router). 

759 """ 

760 ), 

761 ] = APIRoute, 

762 on_startup: Annotated[ 

763 Optional[Sequence[Callable[[], Any]]], 

764 Doc( 

765 """ 

766 A list of startup event handler functions. 

767 

768 You should instead use the `lifespan` handlers. 

769 

770 Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

771 """ 

772 ), 

773 ] = None, 

774 on_shutdown: Annotated[ 

775 Optional[Sequence[Callable[[], Any]]], 

776 Doc( 

777 """ 

778 A list of shutdown event handler functions. 

779 

780 You should instead use the `lifespan` handlers. 

781 

782 Read more in the 

783 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

784 """ 

785 ), 

786 ] = None, 

787 # the generic to Lifespan[AppType] is the type of the top level application 

788 # which the router cannot know statically, so we use typing.Any 

789 lifespan: Annotated[ 

790 Optional[Lifespan[Any]], 

791 Doc( 

792 """ 

793 A `Lifespan` context manager handler. This replaces `startup` and 

794 `shutdown` functions with a single context manager. 

795 

796 Read more in the 

797 [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/). 

798 """ 

799 ), 

800 ] = None, 

801 deprecated: Annotated[ 

802 Optional[bool], 

803 Doc( 

804 """ 

805 Mark all *path operations* in this router as deprecated. 

806 

807 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

808 

809 Read more about it in the 

810 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

811 """ 

812 ), 

813 ] = None, 

814 include_in_schema: Annotated[ 

815 bool, 

816 Doc( 

817 """ 

818 To include (or not) all the *path operations* in this router in the 

819 generated OpenAPI. 

820 

821 This affects the generated OpenAPI (e.g. visible at `/docs`). 

822 

823 Read more about it in the 

824 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

825 """ 

826 ), 

827 ] = True, 

828 generate_unique_id_function: Annotated[ 

829 Callable[[APIRoute], str], 

830 Doc( 

831 """ 

832 Customize the function used to generate unique IDs for the *path 

833 operations* shown in the generated OpenAPI. 

834 

835 This is particularly useful when automatically generating clients or 

836 SDKs for your API. 

837 

838 Read more about it in the 

839 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

840 """ 

841 ), 

842 ] = Default(generate_unique_id), 

843 ) -> None: 

844 super().__init__( 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

845 routes=routes, 

846 redirect_slashes=redirect_slashes, 

847 default=default, 

848 on_startup=on_startup, 

849 on_shutdown=on_shutdown, 

850 lifespan=lifespan, 

851 ) 

852 if prefix: 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

853 assert prefix.startswith("/"), "A path prefix must start with '/'" 1eYfZaSbTc0d1

854 assert not prefix.endswith("/"), ( 1eYfZaSbTc0d1

855 "A path prefix must not end with '/', as the routes will start with '/'" 

856 ) 

857 self.prefix = prefix 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

858 self.tags: List[Union[str, Enum]] = tags or [] 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

859 self.dependencies = list(dependencies or []) 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

860 self.deprecated = deprecated 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

861 self.include_in_schema = include_in_schema 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

862 self.responses = responses or {} 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

863 self.callbacks = callbacks or [] 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

864 self.dependency_overrides_provider = dependency_overrides_provider 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

865 self.route_class = route_class 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

866 self.default_response_class = default_response_class 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

867 self.generate_unique_id_function = generate_unique_id_function 2e icY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` wUxUG M yUk l bb-c[c'clc,e]cMczbnf`f0ff mcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ zUAUH N BUm n cb.c`c(cpc.e{cNcAbof%fpfa {bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ CUDUE K EUg h ~ /cbd)cbc:ecdOcxbQ qf{f1fb ccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ FUGUF L HUi j ab:chd*chc=eidPcybR rf|f2fc qc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| IUJUI O KUo p fb;cnd+cvc@eodQcJbW sf}f3fd wc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} LUMUJ P NUq r gb=ctd,cBc]eudRcKbX tf~f4f

868 

869 def route( 1efabcd

870 self, 

871 path: str, 

872 methods: Optional[Collection[str]] = None, 

873 name: Optional[str] = None, 

874 include_in_schema: bool = True, 

875 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

876 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd

877 self.add_route( 1efabcd

878 path, 

879 func, 

880 methods=methods, 

881 name=name, 

882 include_in_schema=include_in_schema, 

883 ) 

884 return func 1efabcd

885 

886 return decorator 1efabcd

887 

888 def add_api_route( 1efabcd

889 self, 

890 path: str, 

891 endpoint: Callable[..., Any], 

892 *, 

893 response_model: Any = Default(None), 

894 status_code: Optional[int] = None, 

895 tags: Optional[List[Union[str, Enum]]] = None, 

896 dependencies: Optional[Sequence[params.Depends]] = None, 

897 summary: Optional[str] = None, 

898 description: Optional[str] = None, 

899 response_description: str = "Successful Response", 

900 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, 

901 deprecated: Optional[bool] = None, 

902 methods: Optional[Union[Set[str], List[str]]] = None, 

903 operation_id: Optional[str] = None, 

904 response_model_include: Optional[IncEx] = None, 

905 response_model_exclude: Optional[IncEx] = None, 

906 response_model_by_alias: bool = True, 

907 response_model_exclude_unset: bool = False, 

908 response_model_exclude_defaults: bool = False, 

909 response_model_exclude_none: bool = False, 

910 include_in_schema: bool = True, 

911 response_class: Union[Type[Response], DefaultPlaceholder] = Default( 

912 JSONResponse 

913 ), 

914 name: Optional[str] = None, 

915 route_class_override: Optional[Type[APIRoute]] = None, 

916 callbacks: Optional[List[BaseRoute]] = None, 

917 openapi_extra: Optional[Dict[str, Any]] = None, 

918 generate_unique_id_function: Union[ 

919 Callable[[APIRoute], str], DefaultPlaceholder 

920 ] = Default(generate_unique_id), 

921 ) -> None: 

922 route_class = route_class_override or self.route_class 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

923 responses = responses or {} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

924 combined_responses = {**self.responses, **responses} 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

925 current_response_class = get_value_or_default( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

926 response_class, self.default_response_class 

927 ) 

928 current_tags = self.tags.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

929 if tags: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

930 current_tags.extend(tags) 1efabcd

931 current_dependencies = self.dependencies.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

932 if dependencies: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

933 current_dependencies.extend(dependencies) 1efabcd

934 current_callbacks = self.callbacks.copy() 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

935 if callbacks: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

936 current_callbacks.extend(callbacks) 2e 8cf 9ca !cb #cc $cd %c

937 current_generate_unique_id = get_value_or_default( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

938 generate_unique_id_function, self.generate_unique_id_function 

939 ) 

940 route = route_class( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

941 self.prefix + path, 

942 endpoint=endpoint, 

943 response_model=response_model, 

944 status_code=status_code, 

945 tags=current_tags, 

946 dependencies=current_dependencies, 

947 summary=summary, 

948 description=description, 

949 response_description=response_description, 

950 responses=combined_responses, 

951 deprecated=deprecated or self.deprecated, 

952 methods=methods, 

953 operation_id=operation_id, 

954 response_model_include=response_model_include, 

955 response_model_exclude=response_model_exclude, 

956 response_model_by_alias=response_model_by_alias, 

957 response_model_exclude_unset=response_model_exclude_unset, 

958 response_model_exclude_defaults=response_model_exclude_defaults, 

959 response_model_exclude_none=response_model_exclude_none, 

960 include_in_schema=include_in_schema and self.include_in_schema, 

961 response_class=current_response_class, 

962 name=name, 

963 dependency_overrides_provider=self.dependency_overrides_provider, 

964 callbacks=current_callbacks, 

965 openapi_extra=openapi_extra, 

966 generate_unique_id_function=current_generate_unique_id, 

967 ) 

968 self.routes.append(route) 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

969 

970 def api_route( 1efabcd

971 self, 

972 path: str, 

973 *, 

974 response_model: Any = Default(None), 

975 status_code: Optional[int] = None, 

976 tags: Optional[List[Union[str, Enum]]] = None, 

977 dependencies: Optional[Sequence[params.Depends]] = None, 

978 summary: Optional[str] = None, 

979 description: Optional[str] = None, 

980 response_description: str = "Successful Response", 

981 responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, 

982 deprecated: Optional[bool] = None, 

983 methods: Optional[List[str]] = None, 

984 operation_id: Optional[str] = None, 

985 response_model_include: Optional[IncEx] = None, 

986 response_model_exclude: Optional[IncEx] = None, 

987 response_model_by_alias: bool = True, 

988 response_model_exclude_unset: bool = False, 

989 response_model_exclude_defaults: bool = False, 

990 response_model_exclude_none: bool = False, 

991 include_in_schema: bool = True, 

992 response_class: Type[Response] = Default(JSONResponse), 

993 name: Optional[str] = None, 

994 callbacks: Optional[List[BaseRoute]] = None, 

995 openapi_extra: Optional[Dict[str, Any]] = None, 

996 generate_unique_id_function: Callable[[APIRoute], str] = Default( 

997 generate_unique_id 

998 ), 

999 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1000 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

1001 self.add_api_route( 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

1002 path, 

1003 func, 

1004 response_model=response_model, 

1005 status_code=status_code, 

1006 tags=tags, 

1007 dependencies=dependencies, 

1008 summary=summary, 

1009 description=description, 

1010 response_description=response_description, 

1011 responses=responses, 

1012 deprecated=deprecated, 

1013 methods=methods, 

1014 operation_id=operation_id, 

1015 response_model_include=response_model_include, 

1016 response_model_exclude=response_model_exclude, 

1017 response_model_by_alias=response_model_by_alias, 

1018 response_model_exclude_unset=response_model_exclude_unset, 

1019 response_model_exclude_defaults=response_model_exclude_defaults, 

1020 response_model_exclude_none=response_model_exclude_none, 

1021 include_in_schema=include_in_schema, 

1022 response_class=response_class, 

1023 name=name, 

1024 callbacks=callbacks, 

1025 openapi_extra=openapi_extra, 

1026 generate_unique_id_function=generate_unique_id_function, 

1027 ) 

1028 return func 2e CcicY hb- Xbnbtb9b8c!b#b$bLbMb?cjckc@cw ! x WcXc2 ? ' Yb` G M k l bb-c[c'clc]cMczbf DcmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc_cy # z YcZc3 @ ( 0b{ H N m n cb.c`c(cpc{cNcAba Ec{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bacEb^ E K g h ~ /cbd)cbccdOcxbQ b FcccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgcIb_ F L i j ab:chd*chcidPcybR c Gcqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcsckdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc4b| I O o p fb;cnd+cvcodQcJbW d Hcwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc8b} J P q r gb=ctd,cBcudRcKbX

1029 

1030 return decorator 2e Cc'ficY hb- Xbnbtb9b8c!b#b$bLbMb?cjckcHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ ib. Zbobub%b9c'b(b)bNbOb^cncoc2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS db+ Bblbrb*b!c+b,b-bPbQb|c|b}b:d;d=d?d@d[d]d^d_d`d{d|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIcadSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbQ b Fc*fccT eb, Fbmbsb.b#c/b:b;bRbSbdddcecheiejekelemeneoepeqereseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcgdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybR c Gc+fqc0 jb/ 1bpbvb=b$c?b@b[bTbUbjdrcscCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcmdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbW d Hc,fwc1 kb: 5bqbwb]b%c^b_b`bVbWbpdxcycXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcsdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKbX

1031 

1032 def add_api_websocket_route( 1efabcd

1033 self, 

1034 path: str, 

1035 endpoint: Callable[..., Any], 

1036 name: Optional[str] = None, 

1037 *, 

1038 dependencies: Optional[Sequence[params.Depends]] = None, 

1039 ) -> None: 

1040 current_dependencies = self.dependencies.copy() 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1041 if dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1042 current_dependencies.extend(dependencies) 1efabcd

1043 

1044 route = APIWebSocketRoute( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1045 self.prefix + path, 

1046 endpoint=endpoint, 

1047 name=name, 

1048 dependencies=current_dependencies, 

1049 dependency_overrides_provider=self.dependency_overrides_provider, 

1050 ) 

1051 self.routes.append(route) 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1052 

1053 def websocket( 1efabcd

1054 self, 

1055 path: Annotated[ 

1056 str, 

1057 Doc( 

1058 """ 

1059 WebSocket path. 

1060 """ 

1061 ), 

1062 ], 

1063 name: Annotated[ 

1064 Optional[str], 

1065 Doc( 

1066 """ 

1067 A name for the WebSocket. Only used internally. 

1068 """ 

1069 ), 

1070 ] = None, 

1071 *, 

1072 dependencies: Annotated[ 

1073 Optional[Sequence[params.Depends]], 

1074 Doc( 

1075 """ 

1076 A list of dependencies (using `Depends()`) to be used for this 

1077 WebSocket. 

1078 

1079 Read more about it in the 

1080 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/). 

1081 """ 

1082 ), 

1083 ] = None, 

1084 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1085 """ 

1086 Decorate a WebSocket function. 

1087 

1088 Read more about it in the 

1089 [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/). 

1090 

1091 **Example** 

1092 

1093 ## Example 

1094 

1095 ```python 

1096 from fastapi import APIRouter, FastAPI, WebSocket 

1097 

1098 app = FastAPI() 

1099 router = APIRouter() 

1100 

1101 @router.websocket("/ws") 

1102 async def websocket_endpoint(websocket: WebSocket): 

1103 await websocket.accept() 

1104 while True: 

1105 data = await websocket.receive_text() 

1106 await websocket.send_text(f"Message text was: {data}") 

1107 

1108 app.include_router(router) 

1109 ``` 

1110 """ 

1111 

1112 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd

1113 self.add_api_websocket_route( 1efabcd

1114 path, func, name=name, dependencies=dependencies 

1115 ) 

1116 return func 1efabcd

1117 

1118 return decorator 1efabcd

1119 

1120 def websocket_route( 1efabcd

1121 self, path: str, name: Union[str, None] = None 

1122 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1123 def decorator(func: DecoratedCallable) -> DecoratedCallable: 1efabcd

1124 self.add_websocket_route(path, func, name=name) 1efabcd

1125 return func 1efabcd

1126 

1127 return decorator 1efabcd

1128 

1129 def include_router( 1efabcd

1130 self, 

1131 router: Annotated["APIRouter", Doc("The `APIRouter` to include.")], 

1132 *, 

1133 prefix: Annotated[str, Doc("An optional path prefix for the router.")] = "", 

1134 tags: Annotated[ 

1135 Optional[List[Union[str, Enum]]], 

1136 Doc( 

1137 """ 

1138 A list of tags to be applied to all the *path operations* in this 

1139 router. 

1140 

1141 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1142 

1143 Read more about it in the 

1144 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1145 """ 

1146 ), 

1147 ] = None, 

1148 dependencies: Annotated[ 

1149 Optional[Sequence[params.Depends]], 

1150 Doc( 

1151 """ 

1152 A list of dependencies (using `Depends()`) to be applied to all the 

1153 *path operations* in this router. 

1154 

1155 Read more about it in the 

1156 [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

1157 """ 

1158 ), 

1159 ] = None, 

1160 default_response_class: Annotated[ 

1161 Type[Response], 

1162 Doc( 

1163 """ 

1164 The default response class to be used. 

1165 

1166 Read more in the 

1167 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class). 

1168 """ 

1169 ), 

1170 ] = Default(JSONResponse), 

1171 responses: Annotated[ 

1172 Optional[Dict[Union[int, str], Dict[str, Any]]], 

1173 Doc( 

1174 """ 

1175 Additional responses to be shown in OpenAPI. 

1176 

1177 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1178 

1179 Read more about it in the 

1180 [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/). 

1181 

1182 And in the 

1183 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies). 

1184 """ 

1185 ), 

1186 ] = None, 

1187 callbacks: Annotated[ 

1188 Optional[List[BaseRoute]], 

1189 Doc( 

1190 """ 

1191 OpenAPI callbacks that should apply to all *path operations* in this 

1192 router. 

1193 

1194 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1195 

1196 Read more about it in the 

1197 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

1198 """ 

1199 ), 

1200 ] = None, 

1201 deprecated: Annotated[ 

1202 Optional[bool], 

1203 Doc( 

1204 """ 

1205 Mark all *path operations* in this router as deprecated. 

1206 

1207 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1208 

1209 Read more about it in the 

1210 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1211 """ 

1212 ), 

1213 ] = None, 

1214 include_in_schema: Annotated[ 

1215 bool, 

1216 Doc( 

1217 """ 

1218 Include (or not) all the *path operations* in this router in the 

1219 generated OpenAPI schema. 

1220 

1221 This affects the generated OpenAPI (e.g. visible at `/docs`). 

1222 """ 

1223 ), 

1224 ] = True, 

1225 generate_unique_id_function: Annotated[ 

1226 Callable[[APIRoute], str], 

1227 Doc( 

1228 """ 

1229 Customize the function used to generate unique IDs for the *path 

1230 operations* shown in the generated OpenAPI. 

1231 

1232 This is particularly useful when automatically generating clients or 

1233 SDKs for your API. 

1234 

1235 Read more about it in the 

1236 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1237 """ 

1238 ), 

1239 ] = Default(generate_unique_id), 

1240 ) -> None: 

1241 """ 

1242 Include another `APIRouter` in the same current `APIRouter`. 

1243 

1244 Read more about it in the 

1245 [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/). 

1246 

1247 ## Example 

1248 

1249 ```python 

1250 from fastapi import APIRouter, FastAPI 

1251 

1252 app = FastAPI() 

1253 internal_router = APIRouter() 

1254 users_router = APIRouter() 

1255 

1256 @users_router.get("/users/") 

1257 def read_users(): 

1258 return [{"name": "Rick"}, {"name": "Morty"}] 

1259 

1260 internal_router.include_router(users_router) 

1261 app.include_router(internal_router) 

1262 ``` 

1263 """ 

1264 if prefix: 2e Y 0'9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z 1'%b'b(b)bNbObzUAUH N BUm n of%fpfa S 2'*b+b,b-bPbQbCUDUE K EUg h qf{f1fb T 3'.b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 4'=b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 5']b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1265 assert prefix.startswith("/"), "A path prefix must start with '/'" 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1266 assert not prefix.endswith("/"), ( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1267 "A path prefix must not end with '/', as the routes will start with '/'" 

1268 ) 

1269 else: 

1270 for r in router.routes: 2e Y 0'9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z 1'%b'b(b)bNbObzUAUH N BUm n of%fpfa S 2'*b+b,b-bPbQbCUDUE K EUg h qf{f1fb T 3'.b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 4'=b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 5']b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1271 path = getattr(r, "path") # noqa: B009 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f

1272 name = getattr(r, "name", "unknown") 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f

1273 if path is not None and not path: 2e Y 0'9b!b#b$bLbMbk l nf`f0ff Z 1'%b'b(b)bNbObm n of%fpfa S 2'*b+b,b-bPbQbg h qf{f1fb T 3'.b/b:b;bRbSbi j rf|f2fc 0 4'=b?b@b[bTbUbo p sf}f3fd 1 5']b^b_b`bVbWbq r tf~f4f

1274 raise FastAPIError( 20'1'2'3'4'5'

1275 f"Prefix and path cannot be both empty (path operation: {name})" 

1276 ) 

1277 if responses is None: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1278 responses = {} 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1279 for route in router.routes: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1280 if isinstance(route, APIRoute): 2e Y 9b!b#b$bLbMbk l nf`f0ff Z %b'b(b)bNbObm n of%fpfa S *b+b,b-bPbQbg h qf{f1fb T .b/b:b;bRbSbi j rf|f2fc 0 =b?b@b[bTbUbo p sf}f3fd 1 ]b^b_b`bVbWbq r tf~f4f

1281 combined_responses = {**responses, **route.responses} 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1282 use_response_class = get_value_or_default( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1283 route.response_class, 

1284 router.default_response_class, 

1285 default_response_class, 

1286 self.default_response_class, 

1287 ) 

1288 current_tags = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1289 if tags: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1290 current_tags.extend(tags) 1efabcd

1291 if route.tags: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1292 current_tags.extend(route.tags) 1efabcd

1293 current_dependencies: List[params.Depends] = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1294 if dependencies: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1295 current_dependencies.extend(dependencies) 1efabcd

1296 if route.dependencies: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1297 current_dependencies.extend(route.dependencies) 1efabcd

1298 current_callbacks = [] 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1299 if callbacks: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1300 current_callbacks.extend(callbacks) 1efabcd

1301 if route.callbacks: 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1302 current_callbacks.extend(route.callbacks) 1efabcd

1303 current_generate_unique_id = get_value_or_default( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1304 route.generate_unique_id_function, 

1305 router.generate_unique_id_function, 

1306 generate_unique_id_function, 

1307 self.generate_unique_id_function, 

1308 ) 

1309 self.add_api_route( 2e Y 9b!b#b$bLbMbk l f Z %b'b(b)bNbObm n a S *b+b,b-bPbQbg h b T .b/b:b;bRbSbi j c 0 =b?b@b[bTbUbo p d 1 ]b^b_b`bVbWbq r

1310 prefix + route.path, 

1311 route.endpoint, 

1312 response_model=route.response_model, 

1313 status_code=route.status_code, 

1314 tags=current_tags, 

1315 dependencies=current_dependencies, 

1316 summary=route.summary, 

1317 description=route.description, 

1318 response_description=route.response_description, 

1319 responses=combined_responses, 

1320 deprecated=route.deprecated or deprecated or self.deprecated, 

1321 methods=route.methods, 

1322 operation_id=route.operation_id, 

1323 response_model_include=route.response_model_include, 

1324 response_model_exclude=route.response_model_exclude, 

1325 response_model_by_alias=route.response_model_by_alias, 

1326 response_model_exclude_unset=route.response_model_exclude_unset, 

1327 response_model_exclude_defaults=route.response_model_exclude_defaults, 

1328 response_model_exclude_none=route.response_model_exclude_none, 

1329 include_in_schema=route.include_in_schema 

1330 and self.include_in_schema 

1331 and include_in_schema, 

1332 response_class=use_response_class, 

1333 name=route.name, 

1334 route_class_override=type(route), 

1335 callbacks=current_callbacks, 

1336 openapi_extra=route.openapi_extra, 

1337 generate_unique_id_function=current_generate_unique_id, 

1338 ) 

1339 elif isinstance(route, routing.Route): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1340 methods = list(route.methods or []) 1efabcd

1341 self.add_route( 1efabcd

1342 prefix + route.path, 

1343 route.endpoint, 

1344 methods=methods, 

1345 include_in_schema=route.include_in_schema, 

1346 name=route.name, 

1347 ) 

1348 elif isinstance(route, APIWebSocketRoute): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1349 current_dependencies = [] 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1350 if dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1351 current_dependencies.extend(dependencies) 1efabcd

1352 if route.dependencies: 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1353 current_dependencies.extend(route.dependencies) 1efabcd

1354 self.add_api_websocket_route( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1355 prefix + route.path, 

1356 route.endpoint, 

1357 dependencies=current_dependencies, 

1358 name=route.name, 

1359 ) 

1360 elif isinstance(route, routing.WebSocketRoute): 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1361 self.add_websocket_route( 2e nf`f0ff of%fpfa qf{f1fb rf|f2fc sf}f3fd tf~f4f

1362 prefix + route.path, route.endpoint, name=route.name 

1363 ) 

1364 for handler in router.on_startup: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1365 self.add_event_handler("startup", handler) 1GHEFIJ

1366 for handler in router.on_shutdown: 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1367 self.add_event_handler("shutdown", handler) 1GHEFIJ

1368 self.lifespan_context = _merge_lifespan_context( 2e Y 9b!b#b$bLbMbwUxUG M yUk l nf`f0ff Z %b'b(b)bNbObzUAUH N BUm n of%fpfa S *b+b,b-bPbQbCUDUE K EUg h qf{f1fb T .b/b:b;bRbSbFUGUF L HUi j rf|f2fc 0 =b?b@b[bTbUbIUJUI O KUo p sf}f3fd 1 ]b^b_b`bVbWbLUMUJ P NUq r tf~f4f

1369 self.lifespan_context, 

1370 router.lifespan_context, 

1371 ) 

1372 

1373 def get( 1efabcd

1374 self, 

1375 path: Annotated[ 

1376 str, 

1377 Doc( 

1378 """ 

1379 The URL path to be used for this *path operation*. 

1380 

1381 For example, in `http://example.com/items`, the path is `/items`. 

1382 """ 

1383 ), 

1384 ], 

1385 *, 

1386 response_model: Annotated[ 

1387 Any, 

1388 Doc( 

1389 """ 

1390 The type to use for the response. 

1391 

1392 It could be any valid Pydantic *field* type. So, it doesn't have to 

1393 be a Pydantic model, it could be other things, like a `list`, `dict`, 

1394 etc. 

1395 

1396 It will be used for: 

1397 

1398 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

1399 show it as the response (JSON Schema). 

1400 * Serialization: you could return an arbitrary object and the 

1401 `response_model` would be used to serialize that object into the 

1402 corresponding JSON. 

1403 * Filtering: the JSON sent to the client will only contain the data 

1404 (fields) defined in the `response_model`. If you returned an object 

1405 that contains an attribute `password` but the `response_model` does 

1406 not include that field, the JSON sent to the client would not have 

1407 that `password`. 

1408 * Validation: whatever you return will be serialized with the 

1409 `response_model`, converting any data as necessary to generate the 

1410 corresponding JSON. But if the data in the object returned is not 

1411 valid, that would mean a violation of the contract with the client, 

1412 so it's an error from the API developer. So, FastAPI will raise an 

1413 error and return a 500 error code (Internal Server Error). 

1414 

1415 Read more about it in the 

1416 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

1417 """ 

1418 ), 

1419 ] = Default(None), 

1420 status_code: Annotated[ 

1421 Optional[int], 

1422 Doc( 

1423 """ 

1424 The default status code to be used for the response. 

1425 

1426 You could override the status code by returning a response directly. 

1427 

1428 Read more about it in the 

1429 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

1430 """ 

1431 ), 

1432 ] = None, 

1433 tags: Annotated[ 

1434 Optional[List[Union[str, Enum]]], 

1435 Doc( 

1436 """ 

1437 A list of tags to be applied to the *path operation*. 

1438 

1439 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1440 

1441 Read more about it in the 

1442 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

1443 """ 

1444 ), 

1445 ] = None, 

1446 dependencies: Annotated[ 

1447 Optional[Sequence[params.Depends]], 

1448 Doc( 

1449 """ 

1450 A list of dependencies (using `Depends()`) to be applied to the 

1451 *path operation*. 

1452 

1453 Read more about it in the 

1454 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

1455 """ 

1456 ), 

1457 ] = None, 

1458 summary: Annotated[ 

1459 Optional[str], 

1460 Doc( 

1461 """ 

1462 A summary for the *path operation*. 

1463 

1464 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1465 

1466 Read more about it in the 

1467 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1468 """ 

1469 ), 

1470 ] = None, 

1471 description: Annotated[ 

1472 Optional[str], 

1473 Doc( 

1474 """ 

1475 A description for the *path operation*. 

1476 

1477 If not provided, it will be extracted automatically from the docstring 

1478 of the *path operation function*. 

1479 

1480 It can contain Markdown. 

1481 

1482 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1483 

1484 Read more about it in the 

1485 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1486 """ 

1487 ), 

1488 ] = None, 

1489 response_description: Annotated[ 

1490 str, 

1491 Doc( 

1492 """ 

1493 The description for the default response. 

1494 

1495 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1496 """ 

1497 ), 

1498 ] = "Successful Response", 

1499 responses: Annotated[ 

1500 Optional[Dict[Union[int, str], Dict[str, Any]]], 

1501 Doc( 

1502 """ 

1503 Additional responses that could be returned by this *path operation*. 

1504 

1505 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1506 """ 

1507 ), 

1508 ] = None, 

1509 deprecated: Annotated[ 

1510 Optional[bool], 

1511 Doc( 

1512 """ 

1513 Mark this *path operation* as deprecated. 

1514 

1515 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1516 """ 

1517 ), 

1518 ] = None, 

1519 operation_id: Annotated[ 

1520 Optional[str], 

1521 Doc( 

1522 """ 

1523 Custom operation ID to be used by this *path operation*. 

1524 

1525 By default, it is generated automatically. 

1526 

1527 If you provide a custom operation ID, you need to make sure it is 

1528 unique for the whole API. 

1529 

1530 You can customize the 

1531 operation ID generation with the parameter 

1532 `generate_unique_id_function` in the `FastAPI` class. 

1533 

1534 Read more about it in the 

1535 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1536 """ 

1537 ), 

1538 ] = None, 

1539 response_model_include: Annotated[ 

1540 Optional[IncEx], 

1541 Doc( 

1542 """ 

1543 Configuration passed to Pydantic to include only certain fields in the 

1544 response data. 

1545 

1546 Read more about it in the 

1547 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1548 """ 

1549 ), 

1550 ] = None, 

1551 response_model_exclude: Annotated[ 

1552 Optional[IncEx], 

1553 Doc( 

1554 """ 

1555 Configuration passed to Pydantic to exclude certain fields in the 

1556 response data. 

1557 

1558 Read more about it in the 

1559 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1560 """ 

1561 ), 

1562 ] = None, 

1563 response_model_by_alias: Annotated[ 

1564 bool, 

1565 Doc( 

1566 """ 

1567 Configuration passed to Pydantic to define if the response model 

1568 should be serialized by alias when an alias is used. 

1569 

1570 Read more about it in the 

1571 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1572 """ 

1573 ), 

1574 ] = True, 

1575 response_model_exclude_unset: Annotated[ 

1576 bool, 

1577 Doc( 

1578 """ 

1579 Configuration passed to Pydantic to define if the response data 

1580 should have all the fields, including the ones that were not set and 

1581 have their default values. This is different from 

1582 `response_model_exclude_defaults` in that if the fields are set, 

1583 they will be included in the response, even if the value is the same 

1584 as the default. 

1585 

1586 When `True`, default values are omitted from the response. 

1587 

1588 Read more about it in the 

1589 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1590 """ 

1591 ), 

1592 ] = False, 

1593 response_model_exclude_defaults: Annotated[ 

1594 bool, 

1595 Doc( 

1596 """ 

1597 Configuration passed to Pydantic to define if the response data 

1598 should have all the fields, including the ones that have the same value 

1599 as the default. This is different from `response_model_exclude_unset` 

1600 in that if the fields are set but contain the same default values, 

1601 they will be excluded from the response. 

1602 

1603 When `True`, default values are omitted from the response. 

1604 

1605 Read more about it in the 

1606 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1607 """ 

1608 ), 

1609 ] = False, 

1610 response_model_exclude_none: Annotated[ 

1611 bool, 

1612 Doc( 

1613 """ 

1614 Configuration passed to Pydantic to define if the response data should 

1615 exclude fields set to `None`. 

1616 

1617 This is much simpler (less smart) than `response_model_exclude_unset` 

1618 and `response_model_exclude_defaults`. You probably want to use one of 

1619 those two instead of this one, as those allow returning `None` values 

1620 when it makes sense. 

1621 

1622 Read more about it in the 

1623 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

1624 """ 

1625 ), 

1626 ] = False, 

1627 include_in_schema: Annotated[ 

1628 bool, 

1629 Doc( 

1630 """ 

1631 Include this *path operation* in the generated OpenAPI schema. 

1632 

1633 This affects the generated OpenAPI (e.g. visible at `/docs`). 

1634 

1635 Read more about it in the 

1636 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

1637 """ 

1638 ), 

1639 ] = True, 

1640 response_class: Annotated[ 

1641 Type[Response], 

1642 Doc( 

1643 """ 

1644 Response class to be used for this *path operation*. 

1645 

1646 This will not be used if you return a response directly. 

1647 

1648 Read more about it in the 

1649 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

1650 """ 

1651 ), 

1652 ] = Default(JSONResponse), 

1653 name: Annotated[ 

1654 Optional[str], 

1655 Doc( 

1656 """ 

1657 Name for this *path operation*. Only used internally. 

1658 """ 

1659 ), 

1660 ] = None, 

1661 callbacks: Annotated[ 

1662 Optional[List[BaseRoute]], 

1663 Doc( 

1664 """ 

1665 List of *path operations* that will be used as OpenAPI callbacks. 

1666 

1667 This is only for OpenAPI documentation, the callbacks won't be used 

1668 directly. 

1669 

1670 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1671 

1672 Read more about it in the 

1673 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

1674 """ 

1675 ), 

1676 ] = None, 

1677 openapi_extra: Annotated[ 

1678 Optional[Dict[str, Any]], 

1679 Doc( 

1680 """ 

1681 Extra metadata to be included in the OpenAPI schema for this *path 

1682 operation*. 

1683 

1684 Read more about it in the 

1685 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

1686 """ 

1687 ), 

1688 ] = None, 

1689 generate_unique_id_function: Annotated[ 

1690 Callable[[APIRoute], str], 

1691 Doc( 

1692 """ 

1693 Customize the function used to generate unique IDs for the *path 

1694 operations* shown in the generated OpenAPI. 

1695 

1696 This is particularly useful when automatically generating clients or 

1697 SDKs for your API. 

1698 

1699 Read more about it in the 

1700 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1701 """ 

1702 ), 

1703 ] = Default(generate_unique_id), 

1704 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

1705 """ 

1706 Add a *path operation* using an HTTP GET operation. 

1707 

1708 ## Example 

1709 

1710 ```python 

1711 from fastapi import APIRouter, FastAPI 

1712 

1713 app = FastAPI() 

1714 router = APIRouter() 

1715 

1716 @router.get("/items/") 

1717 def read_items(): 

1718 return [{"name": "Empanada"}, {"name": "Arepa"}] 

1719 

1720 app.include_router(router) 

1721 ``` 

1722 """ 

1723 return self.api_route( 2e Cc'ficY nbtbjckcHdIdJdKdLdMdNdOdPdQdRdw ! x WcXc2 +evdufwdvfYb` G M k l bb-c[c'clc,e]cMczbf Dc(fmcZ obubncoc2d3d4d5d6d7d8d9d!d#d$dy # z YcZc3 -exdwfydxf0b{ H N m n cb.c`c(cpc.e{cNcAba Ec)f{bS lbrb|b}b:d;d=d?d@d[d]d^d_d`d{ds 6 t 0c1cU adSc~bac/ezdyfAdzfEb^ E K g h ~ /cbd)cbc:ecdOcxbb Fc*fccT mbsbdcecheiejekelemeneoepeqereu 7 v 2c3cV gdTcfcgc;eBdAfCdBfIb_ F L i j ab:chd*chc=eidPcybc Gc+fqc0 pbvbrcscCeDeEeFeGeHeIeJeKeLeMeA $ B 4c5c4 mdUctcuc?eDdCfEdDf4b| I O o p fb;cnd+cvc@eodQcJbd Hc,fwc1 qbwbxcycXeYeZe0e1e2e3e4e5e6e7eC % D 6c7c5 sdVczcAc[eFdEfGdFf8b} J P q r gb=ctd,cBc]eudRcKb

1724 path=path, 

1725 response_model=response_model, 

1726 status_code=status_code, 

1727 tags=tags, 

1728 dependencies=dependencies, 

1729 summary=summary, 

1730 description=description, 

1731 response_description=response_description, 

1732 responses=responses, 

1733 deprecated=deprecated, 

1734 methods=["GET"], 

1735 operation_id=operation_id, 

1736 response_model_include=response_model_include, 

1737 response_model_exclude=response_model_exclude, 

1738 response_model_by_alias=response_model_by_alias, 

1739 response_model_exclude_unset=response_model_exclude_unset, 

1740 response_model_exclude_defaults=response_model_exclude_defaults, 

1741 response_model_exclude_none=response_model_exclude_none, 

1742 include_in_schema=include_in_schema, 

1743 response_class=response_class, 

1744 name=name, 

1745 callbacks=callbacks, 

1746 openapi_extra=openapi_extra, 

1747 generate_unique_id_function=generate_unique_id_function, 

1748 ) 

1749 

1750 def put( 1efabcd

1751 self, 

1752 path: Annotated[ 

1753 str, 

1754 Doc( 

1755 """ 

1756 The URL path to be used for this *path operation*. 

1757 

1758 For example, in `http://example.com/items`, the path is `/items`. 

1759 """ 

1760 ), 

1761 ], 

1762 *, 

1763 response_model: Annotated[ 

1764 Any, 

1765 Doc( 

1766 """ 

1767 The type to use for the response. 

1768 

1769 It could be any valid Pydantic *field* type. So, it doesn't have to 

1770 be a Pydantic model, it could be other things, like a `list`, `dict`, 

1771 etc. 

1772 

1773 It will be used for: 

1774 

1775 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

1776 show it as the response (JSON Schema). 

1777 * Serialization: you could return an arbitrary object and the 

1778 `response_model` would be used to serialize that object into the 

1779 corresponding JSON. 

1780 * Filtering: the JSON sent to the client will only contain the data 

1781 (fields) defined in the `response_model`. If you returned an object 

1782 that contains an attribute `password` but the `response_model` does 

1783 not include that field, the JSON sent to the client would not have 

1784 that `password`. 

1785 * Validation: whatever you return will be serialized with the 

1786 `response_model`, converting any data as necessary to generate the 

1787 corresponding JSON. But if the data in the object returned is not 

1788 valid, that would mean a violation of the contract with the client, 

1789 so it's an error from the API developer. So, FastAPI will raise an 

1790 error and return a 500 error code (Internal Server Error). 

1791 

1792 Read more about it in the 

1793 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

1794 """ 

1795 ), 

1796 ] = Default(None), 

1797 status_code: Annotated[ 

1798 Optional[int], 

1799 Doc( 

1800 """ 

1801 The default status code to be used for the response. 

1802 

1803 You could override the status code by returning a response directly. 

1804 

1805 Read more about it in the 

1806 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

1807 """ 

1808 ), 

1809 ] = None, 

1810 tags: Annotated[ 

1811 Optional[List[Union[str, Enum]]], 

1812 Doc( 

1813 """ 

1814 A list of tags to be applied to the *path operation*. 

1815 

1816 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1817 

1818 Read more about it in the 

1819 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

1820 """ 

1821 ), 

1822 ] = None, 

1823 dependencies: Annotated[ 

1824 Optional[Sequence[params.Depends]], 

1825 Doc( 

1826 """ 

1827 A list of dependencies (using `Depends()`) to be applied to the 

1828 *path operation*. 

1829 

1830 Read more about it in the 

1831 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

1832 """ 

1833 ), 

1834 ] = None, 

1835 summary: Annotated[ 

1836 Optional[str], 

1837 Doc( 

1838 """ 

1839 A summary for the *path operation*. 

1840 

1841 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1842 

1843 Read more about it in the 

1844 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1845 """ 

1846 ), 

1847 ] = None, 

1848 description: Annotated[ 

1849 Optional[str], 

1850 Doc( 

1851 """ 

1852 A description for the *path operation*. 

1853 

1854 If not provided, it will be extracted automatically from the docstring 

1855 of the *path operation function*. 

1856 

1857 It can contain Markdown. 

1858 

1859 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1860 

1861 Read more about it in the 

1862 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

1863 """ 

1864 ), 

1865 ] = None, 

1866 response_description: Annotated[ 

1867 str, 

1868 Doc( 

1869 """ 

1870 The description for the default response. 

1871 

1872 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1873 """ 

1874 ), 

1875 ] = "Successful Response", 

1876 responses: Annotated[ 

1877 Optional[Dict[Union[int, str], Dict[str, Any]]], 

1878 Doc( 

1879 """ 

1880 Additional responses that could be returned by this *path operation*. 

1881 

1882 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1883 """ 

1884 ), 

1885 ] = None, 

1886 deprecated: Annotated[ 

1887 Optional[bool], 

1888 Doc( 

1889 """ 

1890 Mark this *path operation* as deprecated. 

1891 

1892 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

1893 """ 

1894 ), 

1895 ] = None, 

1896 operation_id: Annotated[ 

1897 Optional[str], 

1898 Doc( 

1899 """ 

1900 Custom operation ID to be used by this *path operation*. 

1901 

1902 By default, it is generated automatically. 

1903 

1904 If you provide a custom operation ID, you need to make sure it is 

1905 unique for the whole API. 

1906 

1907 You can customize the 

1908 operation ID generation with the parameter 

1909 `generate_unique_id_function` in the `FastAPI` class. 

1910 

1911 Read more about it in the 

1912 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

1913 """ 

1914 ), 

1915 ] = None, 

1916 response_model_include: Annotated[ 

1917 Optional[IncEx], 

1918 Doc( 

1919 """ 

1920 Configuration passed to Pydantic to include only certain fields in the 

1921 response data. 

1922 

1923 Read more about it in the 

1924 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1925 """ 

1926 ), 

1927 ] = None, 

1928 response_model_exclude: Annotated[ 

1929 Optional[IncEx], 

1930 Doc( 

1931 """ 

1932 Configuration passed to Pydantic to exclude certain fields in the 

1933 response data. 

1934 

1935 Read more about it in the 

1936 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1937 """ 

1938 ), 

1939 ] = None, 

1940 response_model_by_alias: Annotated[ 

1941 bool, 

1942 Doc( 

1943 """ 

1944 Configuration passed to Pydantic to define if the response model 

1945 should be serialized by alias when an alias is used. 

1946 

1947 Read more about it in the 

1948 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

1949 """ 

1950 ), 

1951 ] = True, 

1952 response_model_exclude_unset: Annotated[ 

1953 bool, 

1954 Doc( 

1955 """ 

1956 Configuration passed to Pydantic to define if the response data 

1957 should have all the fields, including the ones that were not set and 

1958 have their default values. This is different from 

1959 `response_model_exclude_defaults` in that if the fields are set, 

1960 they will be included in the response, even if the value is the same 

1961 as the default. 

1962 

1963 When `True`, default values are omitted from the response. 

1964 

1965 Read more about it in the 

1966 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1967 """ 

1968 ), 

1969 ] = False, 

1970 response_model_exclude_defaults: Annotated[ 

1971 bool, 

1972 Doc( 

1973 """ 

1974 Configuration passed to Pydantic to define if the response data 

1975 should have all the fields, including the ones that have the same value 

1976 as the default. This is different from `response_model_exclude_unset` 

1977 in that if the fields are set but contain the same default values, 

1978 they will be excluded from the response. 

1979 

1980 When `True`, default values are omitted from the response. 

1981 

1982 Read more about it in the 

1983 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

1984 """ 

1985 ), 

1986 ] = False, 

1987 response_model_exclude_none: Annotated[ 

1988 bool, 

1989 Doc( 

1990 """ 

1991 Configuration passed to Pydantic to define if the response data should 

1992 exclude fields set to `None`. 

1993 

1994 This is much simpler (less smart) than `response_model_exclude_unset` 

1995 and `response_model_exclude_defaults`. You probably want to use one of 

1996 those two instead of this one, as those allow returning `None` values 

1997 when it makes sense. 

1998 

1999 Read more about it in the 

2000 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2001 """ 

2002 ), 

2003 ] = False, 

2004 include_in_schema: Annotated[ 

2005 bool, 

2006 Doc( 

2007 """ 

2008 Include this *path operation* in the generated OpenAPI schema. 

2009 

2010 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2011 

2012 Read more about it in the 

2013 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2014 """ 

2015 ), 

2016 ] = True, 

2017 response_class: Annotated[ 

2018 Type[Response], 

2019 Doc( 

2020 """ 

2021 Response class to be used for this *path operation*. 

2022 

2023 This will not be used if you return a response directly. 

2024 

2025 Read more about it in the 

2026 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2027 """ 

2028 ), 

2029 ] = Default(JSONResponse), 

2030 name: Annotated[ 

2031 Optional[str], 

2032 Doc( 

2033 """ 

2034 Name for this *path operation*. Only used internally. 

2035 """ 

2036 ), 

2037 ] = None, 

2038 callbacks: Annotated[ 

2039 Optional[List[BaseRoute]], 

2040 Doc( 

2041 """ 

2042 List of *path operations* that will be used as OpenAPI callbacks. 

2043 

2044 This is only for OpenAPI documentation, the callbacks won't be used 

2045 directly. 

2046 

2047 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2048 

2049 Read more about it in the 

2050 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2051 """ 

2052 ), 

2053 ] = None, 

2054 openapi_extra: Annotated[ 

2055 Optional[Dict[str, Any]], 

2056 Doc( 

2057 """ 

2058 Extra metadata to be included in the OpenAPI schema for this *path 

2059 operation*. 

2060 

2061 Read more about it in the 

2062 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2063 """ 

2064 ), 

2065 ] = None, 

2066 generate_unique_id_function: Annotated[ 

2067 Callable[[APIRoute], str], 

2068 Doc( 

2069 """ 

2070 Customize the function used to generate unique IDs for the *path 

2071 operations* shown in the generated OpenAPI. 

2072 

2073 This is particularly useful when automatically generating clients or 

2074 SDKs for your API. 

2075 

2076 Read more about it in the 

2077 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2078 """ 

2079 ), 

2080 ] = Default(generate_unique_id), 

2081 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2082 """ 

2083 Add a *path operation* using an HTTP PUT operation. 

2084 

2085 ## Example 

2086 

2087 ```python 

2088 from fastapi import APIRouter, FastAPI 

2089 from pydantic import BaseModel 

2090 

2091 class Item(BaseModel): 

2092 name: str 

2093 description: str | None = None 

2094 

2095 app = FastAPI() 

2096 router = APIRouter() 

2097 

2098 @router.put("/items/{item_id}") 

2099 def replace_item(item_id: str, item: Item): 

2100 return {"message": "Item replaced", "id": item_id} 

2101 

2102 app.include_router(router) 

2103 ``` 

2104 """ 

2105 return self.api_route( 1efabcd

2106 path=path, 

2107 response_model=response_model, 

2108 status_code=status_code, 

2109 tags=tags, 

2110 dependencies=dependencies, 

2111 summary=summary, 

2112 description=description, 

2113 response_description=response_description, 

2114 responses=responses, 

2115 deprecated=deprecated, 

2116 methods=["PUT"], 

2117 operation_id=operation_id, 

2118 response_model_include=response_model_include, 

2119 response_model_exclude=response_model_exclude, 

2120 response_model_by_alias=response_model_by_alias, 

2121 response_model_exclude_unset=response_model_exclude_unset, 

2122 response_model_exclude_defaults=response_model_exclude_defaults, 

2123 response_model_exclude_none=response_model_exclude_none, 

2124 include_in_schema=include_in_schema, 

2125 response_class=response_class, 

2126 name=name, 

2127 callbacks=callbacks, 

2128 openapi_extra=openapi_extra, 

2129 generate_unique_id_function=generate_unique_id_function, 

2130 ) 

2131 

2132 def post( 1efabcd

2133 self, 

2134 path: Annotated[ 

2135 str, 

2136 Doc( 

2137 """ 

2138 The URL path to be used for this *path operation*. 

2139 

2140 For example, in `http://example.com/items`, the path is `/items`. 

2141 """ 

2142 ), 

2143 ], 

2144 *, 

2145 response_model: Annotated[ 

2146 Any, 

2147 Doc( 

2148 """ 

2149 The type to use for the response. 

2150 

2151 It could be any valid Pydantic *field* type. So, it doesn't have to 

2152 be a Pydantic model, it could be other things, like a `list`, `dict`, 

2153 etc. 

2154 

2155 It will be used for: 

2156 

2157 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

2158 show it as the response (JSON Schema). 

2159 * Serialization: you could return an arbitrary object and the 

2160 `response_model` would be used to serialize that object into the 

2161 corresponding JSON. 

2162 * Filtering: the JSON sent to the client will only contain the data 

2163 (fields) defined in the `response_model`. If you returned an object 

2164 that contains an attribute `password` but the `response_model` does 

2165 not include that field, the JSON sent to the client would not have 

2166 that `password`. 

2167 * Validation: whatever you return will be serialized with the 

2168 `response_model`, converting any data as necessary to generate the 

2169 corresponding JSON. But if the data in the object returned is not 

2170 valid, that would mean a violation of the contract with the client, 

2171 so it's an error from the API developer. So, FastAPI will raise an 

2172 error and return a 500 error code (Internal Server Error). 

2173 

2174 Read more about it in the 

2175 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

2176 """ 

2177 ), 

2178 ] = Default(None), 

2179 status_code: Annotated[ 

2180 Optional[int], 

2181 Doc( 

2182 """ 

2183 The default status code to be used for the response. 

2184 

2185 You could override the status code by returning a response directly. 

2186 

2187 Read more about it in the 

2188 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

2189 """ 

2190 ), 

2191 ] = None, 

2192 tags: Annotated[ 

2193 Optional[List[Union[str, Enum]]], 

2194 Doc( 

2195 """ 

2196 A list of tags to be applied to the *path operation*. 

2197 

2198 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2199 

2200 Read more about it in the 

2201 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

2202 """ 

2203 ), 

2204 ] = None, 

2205 dependencies: Annotated[ 

2206 Optional[Sequence[params.Depends]], 

2207 Doc( 

2208 """ 

2209 A list of dependencies (using `Depends()`) to be applied to the 

2210 *path operation*. 

2211 

2212 Read more about it in the 

2213 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

2214 """ 

2215 ), 

2216 ] = None, 

2217 summary: Annotated[ 

2218 Optional[str], 

2219 Doc( 

2220 """ 

2221 A summary for the *path operation*. 

2222 

2223 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2224 

2225 Read more about it in the 

2226 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2227 """ 

2228 ), 

2229 ] = None, 

2230 description: Annotated[ 

2231 Optional[str], 

2232 Doc( 

2233 """ 

2234 A description for the *path operation*. 

2235 

2236 If not provided, it will be extracted automatically from the docstring 

2237 of the *path operation function*. 

2238 

2239 It can contain Markdown. 

2240 

2241 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2242 

2243 Read more about it in the 

2244 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2245 """ 

2246 ), 

2247 ] = None, 

2248 response_description: Annotated[ 

2249 str, 

2250 Doc( 

2251 """ 

2252 The description for the default response. 

2253 

2254 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2255 """ 

2256 ), 

2257 ] = "Successful Response", 

2258 responses: Annotated[ 

2259 Optional[Dict[Union[int, str], Dict[str, Any]]], 

2260 Doc( 

2261 """ 

2262 Additional responses that could be returned by this *path operation*. 

2263 

2264 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2265 """ 

2266 ), 

2267 ] = None, 

2268 deprecated: Annotated[ 

2269 Optional[bool], 

2270 Doc( 

2271 """ 

2272 Mark this *path operation* as deprecated. 

2273 

2274 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2275 """ 

2276 ), 

2277 ] = None, 

2278 operation_id: Annotated[ 

2279 Optional[str], 

2280 Doc( 

2281 """ 

2282 Custom operation ID to be used by this *path operation*. 

2283 

2284 By default, it is generated automatically. 

2285 

2286 If you provide a custom operation ID, you need to make sure it is 

2287 unique for the whole API. 

2288 

2289 You can customize the 

2290 operation ID generation with the parameter 

2291 `generate_unique_id_function` in the `FastAPI` class. 

2292 

2293 Read more about it in the 

2294 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2295 """ 

2296 ), 

2297 ] = None, 

2298 response_model_include: Annotated[ 

2299 Optional[IncEx], 

2300 Doc( 

2301 """ 

2302 Configuration passed to Pydantic to include only certain fields in the 

2303 response data. 

2304 

2305 Read more about it in the 

2306 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2307 """ 

2308 ), 

2309 ] = None, 

2310 response_model_exclude: Annotated[ 

2311 Optional[IncEx], 

2312 Doc( 

2313 """ 

2314 Configuration passed to Pydantic to exclude certain fields in the 

2315 response data. 

2316 

2317 Read more about it in the 

2318 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2319 """ 

2320 ), 

2321 ] = None, 

2322 response_model_by_alias: Annotated[ 

2323 bool, 

2324 Doc( 

2325 """ 

2326 Configuration passed to Pydantic to define if the response model 

2327 should be serialized by alias when an alias is used. 

2328 

2329 Read more about it in the 

2330 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2331 """ 

2332 ), 

2333 ] = True, 

2334 response_model_exclude_unset: Annotated[ 

2335 bool, 

2336 Doc( 

2337 """ 

2338 Configuration passed to Pydantic to define if the response data 

2339 should have all the fields, including the ones that were not set and 

2340 have their default values. This is different from 

2341 `response_model_exclude_defaults` in that if the fields are set, 

2342 they will be included in the response, even if the value is the same 

2343 as the default. 

2344 

2345 When `True`, default values are omitted from the response. 

2346 

2347 Read more about it in the 

2348 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2349 """ 

2350 ), 

2351 ] = False, 

2352 response_model_exclude_defaults: Annotated[ 

2353 bool, 

2354 Doc( 

2355 """ 

2356 Configuration passed to Pydantic to define if the response data 

2357 should have all the fields, including the ones that have the same value 

2358 as the default. This is different from `response_model_exclude_unset` 

2359 in that if the fields are set but contain the same default values, 

2360 they will be excluded from the response. 

2361 

2362 When `True`, default values are omitted from the response. 

2363 

2364 Read more about it in the 

2365 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2366 """ 

2367 ), 

2368 ] = False, 

2369 response_model_exclude_none: Annotated[ 

2370 bool, 

2371 Doc( 

2372 """ 

2373 Configuration passed to Pydantic to define if the response data should 

2374 exclude fields set to `None`. 

2375 

2376 This is much simpler (less smart) than `response_model_exclude_unset` 

2377 and `response_model_exclude_defaults`. You probably want to use one of 

2378 those two instead of this one, as those allow returning `None` values 

2379 when it makes sense. 

2380 

2381 Read more about it in the 

2382 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2383 """ 

2384 ), 

2385 ] = False, 

2386 include_in_schema: Annotated[ 

2387 bool, 

2388 Doc( 

2389 """ 

2390 Include this *path operation* in the generated OpenAPI schema. 

2391 

2392 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2393 

2394 Read more about it in the 

2395 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2396 """ 

2397 ), 

2398 ] = True, 

2399 response_class: Annotated[ 

2400 Type[Response], 

2401 Doc( 

2402 """ 

2403 Response class to be used for this *path operation*. 

2404 

2405 This will not be used if you return a response directly. 

2406 

2407 Read more about it in the 

2408 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2409 """ 

2410 ), 

2411 ] = Default(JSONResponse), 

2412 name: Annotated[ 

2413 Optional[str], 

2414 Doc( 

2415 """ 

2416 Name for this *path operation*. Only used internally. 

2417 """ 

2418 ), 

2419 ] = None, 

2420 callbacks: Annotated[ 

2421 Optional[List[BaseRoute]], 

2422 Doc( 

2423 """ 

2424 List of *path operations* that will be used as OpenAPI callbacks. 

2425 

2426 This is only for OpenAPI documentation, the callbacks won't be used 

2427 directly. 

2428 

2429 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2430 

2431 Read more about it in the 

2432 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2433 """ 

2434 ), 

2435 ] = None, 

2436 openapi_extra: Annotated[ 

2437 Optional[Dict[str, Any]], 

2438 Doc( 

2439 """ 

2440 Extra metadata to be included in the OpenAPI schema for this *path 

2441 operation*. 

2442 

2443 Read more about it in the 

2444 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2445 """ 

2446 ), 

2447 ] = None, 

2448 generate_unique_id_function: Annotated[ 

2449 Callable[[APIRoute], str], 

2450 Doc( 

2451 """ 

2452 Customize the function used to generate unique IDs for the *path 

2453 operations* shown in the generated OpenAPI. 

2454 

2455 This is particularly useful when automatically generating clients or 

2456 SDKs for your API. 

2457 

2458 Read more about it in the 

2459 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2460 """ 

2461 ), 

2462 ] = Default(generate_unique_id), 

2463 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2464 """ 

2465 Add a *path operation* using an HTTP POST operation. 

2466 

2467 ## Example 

2468 

2469 ```python 

2470 from fastapi import APIRouter, FastAPI 

2471 from pydantic import BaseModel 

2472 

2473 class Item(BaseModel): 

2474 name: str 

2475 description: str | None = None 

2476 

2477 app = FastAPI() 

2478 router = APIRouter() 

2479 

2480 @router.post("/items/") 

2481 def create_item(item: Item): 

2482 return {"message": "Item created"} 

2483 

2484 app.include_router(router) 

2485 ``` 

2486 """ 

2487 return self.api_route( 2e hb- Xb9b8c!b#b$bLbMb?cSdTdUdVdWdXdYdZd0d1d@cw ! x WcXc2 ? ' bb-cf ib. Zb%b9c'b(b)bNbOb^c%d'd(d)d*d+d,d-d.d/d_cy # z YcZc3 @ ( cb.ca db+ Bb*b!c+b,b-bPbQb|c|d}d~daebecedeeefege}cs 6 t 0c1cU ; 8 Cb~cDbIc~ /cQ b eb, Fb.b#c/b:b;bRbSbddseteuevewexeyezeAeBeedu 7 v 2c3cV = 9 GbfdHbJcab:cR c jb/ 1b=b$c?b@b[bTbUbjdNeOePeQeReSeTeUeVeWekdA $ B 4c5c4 [ ) 2bld3bKcfb;cW d kb: 5b]b%c^b_b`bVbWbpd8e9e!e#e$e%e'e(e)e*eqdC % D 6c7c5 ] * 6brd7bLcgb=cX

2488 path=path, 

2489 response_model=response_model, 

2490 status_code=status_code, 

2491 tags=tags, 

2492 dependencies=dependencies, 

2493 summary=summary, 

2494 description=description, 

2495 response_description=response_description, 

2496 responses=responses, 

2497 deprecated=deprecated, 

2498 methods=["POST"], 

2499 operation_id=operation_id, 

2500 response_model_include=response_model_include, 

2501 response_model_exclude=response_model_exclude, 

2502 response_model_by_alias=response_model_by_alias, 

2503 response_model_exclude_unset=response_model_exclude_unset, 

2504 response_model_exclude_defaults=response_model_exclude_defaults, 

2505 response_model_exclude_none=response_model_exclude_none, 

2506 include_in_schema=include_in_schema, 

2507 response_class=response_class, 

2508 name=name, 

2509 callbacks=callbacks, 

2510 openapi_extra=openapi_extra, 

2511 generate_unique_id_function=generate_unique_id_function, 

2512 ) 

2513 

2514 def delete( 1efabcd

2515 self, 

2516 path: Annotated[ 

2517 str, 

2518 Doc( 

2519 """ 

2520 The URL path to be used for this *path operation*. 

2521 

2522 For example, in `http://example.com/items`, the path is `/items`. 

2523 """ 

2524 ), 

2525 ], 

2526 *, 

2527 response_model: Annotated[ 

2528 Any, 

2529 Doc( 

2530 """ 

2531 The type to use for the response. 

2532 

2533 It could be any valid Pydantic *field* type. So, it doesn't have to 

2534 be a Pydantic model, it could be other things, like a `list`, `dict`, 

2535 etc. 

2536 

2537 It will be used for: 

2538 

2539 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

2540 show it as the response (JSON Schema). 

2541 * Serialization: you could return an arbitrary object and the 

2542 `response_model` would be used to serialize that object into the 

2543 corresponding JSON. 

2544 * Filtering: the JSON sent to the client will only contain the data 

2545 (fields) defined in the `response_model`. If you returned an object 

2546 that contains an attribute `password` but the `response_model` does 

2547 not include that field, the JSON sent to the client would not have 

2548 that `password`. 

2549 * Validation: whatever you return will be serialized with the 

2550 `response_model`, converting any data as necessary to generate the 

2551 corresponding JSON. But if the data in the object returned is not 

2552 valid, that would mean a violation of the contract with the client, 

2553 so it's an error from the API developer. So, FastAPI will raise an 

2554 error and return a 500 error code (Internal Server Error). 

2555 

2556 Read more about it in the 

2557 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

2558 """ 

2559 ), 

2560 ] = Default(None), 

2561 status_code: Annotated[ 

2562 Optional[int], 

2563 Doc( 

2564 """ 

2565 The default status code to be used for the response. 

2566 

2567 You could override the status code by returning a response directly. 

2568 

2569 Read more about it in the 

2570 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

2571 """ 

2572 ), 

2573 ] = None, 

2574 tags: Annotated[ 

2575 Optional[List[Union[str, Enum]]], 

2576 Doc( 

2577 """ 

2578 A list of tags to be applied to the *path operation*. 

2579 

2580 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2581 

2582 Read more about it in the 

2583 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

2584 """ 

2585 ), 

2586 ] = None, 

2587 dependencies: Annotated[ 

2588 Optional[Sequence[params.Depends]], 

2589 Doc( 

2590 """ 

2591 A list of dependencies (using `Depends()`) to be applied to the 

2592 *path operation*. 

2593 

2594 Read more about it in the 

2595 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

2596 """ 

2597 ), 

2598 ] = None, 

2599 summary: Annotated[ 

2600 Optional[str], 

2601 Doc( 

2602 """ 

2603 A summary for the *path operation*. 

2604 

2605 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2606 

2607 Read more about it in the 

2608 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2609 """ 

2610 ), 

2611 ] = None, 

2612 description: Annotated[ 

2613 Optional[str], 

2614 Doc( 

2615 """ 

2616 A description for the *path operation*. 

2617 

2618 If not provided, it will be extracted automatically from the docstring 

2619 of the *path operation function*. 

2620 

2621 It can contain Markdown. 

2622 

2623 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2624 

2625 Read more about it in the 

2626 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2627 """ 

2628 ), 

2629 ] = None, 

2630 response_description: Annotated[ 

2631 str, 

2632 Doc( 

2633 """ 

2634 The description for the default response. 

2635 

2636 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2637 """ 

2638 ), 

2639 ] = "Successful Response", 

2640 responses: Annotated[ 

2641 Optional[Dict[Union[int, str], Dict[str, Any]]], 

2642 Doc( 

2643 """ 

2644 Additional responses that could be returned by this *path operation*. 

2645 

2646 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2647 """ 

2648 ), 

2649 ] = None, 

2650 deprecated: Annotated[ 

2651 Optional[bool], 

2652 Doc( 

2653 """ 

2654 Mark this *path operation* as deprecated. 

2655 

2656 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2657 """ 

2658 ), 

2659 ] = None, 

2660 operation_id: Annotated[ 

2661 Optional[str], 

2662 Doc( 

2663 """ 

2664 Custom operation ID to be used by this *path operation*. 

2665 

2666 By default, it is generated automatically. 

2667 

2668 If you provide a custom operation ID, you need to make sure it is 

2669 unique for the whole API. 

2670 

2671 You can customize the 

2672 operation ID generation with the parameter 

2673 `generate_unique_id_function` in the `FastAPI` class. 

2674 

2675 Read more about it in the 

2676 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2677 """ 

2678 ), 

2679 ] = None, 

2680 response_model_include: Annotated[ 

2681 Optional[IncEx], 

2682 Doc( 

2683 """ 

2684 Configuration passed to Pydantic to include only certain fields in the 

2685 response data. 

2686 

2687 Read more about it in the 

2688 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2689 """ 

2690 ), 

2691 ] = None, 

2692 response_model_exclude: Annotated[ 

2693 Optional[IncEx], 

2694 Doc( 

2695 """ 

2696 Configuration passed to Pydantic to exclude certain fields in the 

2697 response data. 

2698 

2699 Read more about it in the 

2700 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2701 """ 

2702 ), 

2703 ] = None, 

2704 response_model_by_alias: Annotated[ 

2705 bool, 

2706 Doc( 

2707 """ 

2708 Configuration passed to Pydantic to define if the response model 

2709 should be serialized by alias when an alias is used. 

2710 

2711 Read more about it in the 

2712 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

2713 """ 

2714 ), 

2715 ] = True, 

2716 response_model_exclude_unset: Annotated[ 

2717 bool, 

2718 Doc( 

2719 """ 

2720 Configuration passed to Pydantic to define if the response data 

2721 should have all the fields, including the ones that were not set and 

2722 have their default values. This is different from 

2723 `response_model_exclude_defaults` in that if the fields are set, 

2724 they will be included in the response, even if the value is the same 

2725 as the default. 

2726 

2727 When `True`, default values are omitted from the response. 

2728 

2729 Read more about it in the 

2730 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2731 """ 

2732 ), 

2733 ] = False, 

2734 response_model_exclude_defaults: Annotated[ 

2735 bool, 

2736 Doc( 

2737 """ 

2738 Configuration passed to Pydantic to define if the response data 

2739 should have all the fields, including the ones that have the same value 

2740 as the default. This is different from `response_model_exclude_unset` 

2741 in that if the fields are set but contain the same default values, 

2742 they will be excluded from the response. 

2743 

2744 When `True`, default values are omitted from the response. 

2745 

2746 Read more about it in the 

2747 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

2748 """ 

2749 ), 

2750 ] = False, 

2751 response_model_exclude_none: Annotated[ 

2752 bool, 

2753 Doc( 

2754 """ 

2755 Configuration passed to Pydantic to define if the response data should 

2756 exclude fields set to `None`. 

2757 

2758 This is much simpler (less smart) than `response_model_exclude_unset` 

2759 and `response_model_exclude_defaults`. You probably want to use one of 

2760 those two instead of this one, as those allow returning `None` values 

2761 when it makes sense. 

2762 

2763 Read more about it in the 

2764 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

2765 """ 

2766 ), 

2767 ] = False, 

2768 include_in_schema: Annotated[ 

2769 bool, 

2770 Doc( 

2771 """ 

2772 Include this *path operation* in the generated OpenAPI schema. 

2773 

2774 This affects the generated OpenAPI (e.g. visible at `/docs`). 

2775 

2776 Read more about it in the 

2777 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

2778 """ 

2779 ), 

2780 ] = True, 

2781 response_class: Annotated[ 

2782 Type[Response], 

2783 Doc( 

2784 """ 

2785 Response class to be used for this *path operation*. 

2786 

2787 This will not be used if you return a response directly. 

2788 

2789 Read more about it in the 

2790 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

2791 """ 

2792 ), 

2793 ] = Default(JSONResponse), 

2794 name: Annotated[ 

2795 Optional[str], 

2796 Doc( 

2797 """ 

2798 Name for this *path operation*. Only used internally. 

2799 """ 

2800 ), 

2801 ] = None, 

2802 callbacks: Annotated[ 

2803 Optional[List[BaseRoute]], 

2804 Doc( 

2805 """ 

2806 List of *path operations* that will be used as OpenAPI callbacks. 

2807 

2808 This is only for OpenAPI documentation, the callbacks won't be used 

2809 directly. 

2810 

2811 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2812 

2813 Read more about it in the 

2814 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

2815 """ 

2816 ), 

2817 ] = None, 

2818 openapi_extra: Annotated[ 

2819 Optional[Dict[str, Any]], 

2820 Doc( 

2821 """ 

2822 Extra metadata to be included in the OpenAPI schema for this *path 

2823 operation*. 

2824 

2825 Read more about it in the 

2826 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

2827 """ 

2828 ), 

2829 ] = None, 

2830 generate_unique_id_function: Annotated[ 

2831 Callable[[APIRoute], str], 

2832 Doc( 

2833 """ 

2834 Customize the function used to generate unique IDs for the *path 

2835 operations* shown in the generated OpenAPI. 

2836 

2837 This is particularly useful when automatically generating clients or 

2838 SDKs for your API. 

2839 

2840 Read more about it in the 

2841 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

2842 """ 

2843 ), 

2844 ] = Default(generate_unique_id), 

2845 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

2846 """ 

2847 Add a *path operation* using an HTTP DELETE operation. 

2848 

2849 ## Example 

2850 

2851 ```python 

2852 from fastapi import APIRouter, FastAPI 

2853 

2854 app = FastAPI() 

2855 router = APIRouter() 

2856 

2857 @router.delete("/items/{item_id}") 

2858 def delete_item(item_id: str): 

2859 return {"message": "Item deleted"} 

2860 

2861 app.include_router(router) 

2862 ``` 

2863 """ 

2864 return self.api_route( 1efabcd

2865 path=path, 

2866 response_model=response_model, 

2867 status_code=status_code, 

2868 tags=tags, 

2869 dependencies=dependencies, 

2870 summary=summary, 

2871 description=description, 

2872 response_description=response_description, 

2873 responses=responses, 

2874 deprecated=deprecated, 

2875 methods=["DELETE"], 

2876 operation_id=operation_id, 

2877 response_model_include=response_model_include, 

2878 response_model_exclude=response_model_exclude, 

2879 response_model_by_alias=response_model_by_alias, 

2880 response_model_exclude_unset=response_model_exclude_unset, 

2881 response_model_exclude_defaults=response_model_exclude_defaults, 

2882 response_model_exclude_none=response_model_exclude_none, 

2883 include_in_schema=include_in_schema, 

2884 response_class=response_class, 

2885 name=name, 

2886 callbacks=callbacks, 

2887 openapi_extra=openapi_extra, 

2888 generate_unique_id_function=generate_unique_id_function, 

2889 ) 

2890 

2891 def options( 1efabcd

2892 self, 

2893 path: Annotated[ 

2894 str, 

2895 Doc( 

2896 """ 

2897 The URL path to be used for this *path operation*. 

2898 

2899 For example, in `http://example.com/items`, the path is `/items`. 

2900 """ 

2901 ), 

2902 ], 

2903 *, 

2904 response_model: Annotated[ 

2905 Any, 

2906 Doc( 

2907 """ 

2908 The type to use for the response. 

2909 

2910 It could be any valid Pydantic *field* type. So, it doesn't have to 

2911 be a Pydantic model, it could be other things, like a `list`, `dict`, 

2912 etc. 

2913 

2914 It will be used for: 

2915 

2916 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

2917 show it as the response (JSON Schema). 

2918 * Serialization: you could return an arbitrary object and the 

2919 `response_model` would be used to serialize that object into the 

2920 corresponding JSON. 

2921 * Filtering: the JSON sent to the client will only contain the data 

2922 (fields) defined in the `response_model`. If you returned an object 

2923 that contains an attribute `password` but the `response_model` does 

2924 not include that field, the JSON sent to the client would not have 

2925 that `password`. 

2926 * Validation: whatever you return will be serialized with the 

2927 `response_model`, converting any data as necessary to generate the 

2928 corresponding JSON. But if the data in the object returned is not 

2929 valid, that would mean a violation of the contract with the client, 

2930 so it's an error from the API developer. So, FastAPI will raise an 

2931 error and return a 500 error code (Internal Server Error). 

2932 

2933 Read more about it in the 

2934 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

2935 """ 

2936 ), 

2937 ] = Default(None), 

2938 status_code: Annotated[ 

2939 Optional[int], 

2940 Doc( 

2941 """ 

2942 The default status code to be used for the response. 

2943 

2944 You could override the status code by returning a response directly. 

2945 

2946 Read more about it in the 

2947 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

2948 """ 

2949 ), 

2950 ] = None, 

2951 tags: Annotated[ 

2952 Optional[List[Union[str, Enum]]], 

2953 Doc( 

2954 """ 

2955 A list of tags to be applied to the *path operation*. 

2956 

2957 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2958 

2959 Read more about it in the 

2960 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

2961 """ 

2962 ), 

2963 ] = None, 

2964 dependencies: Annotated[ 

2965 Optional[Sequence[params.Depends]], 

2966 Doc( 

2967 """ 

2968 A list of dependencies (using `Depends()`) to be applied to the 

2969 *path operation*. 

2970 

2971 Read more about it in the 

2972 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

2973 """ 

2974 ), 

2975 ] = None, 

2976 summary: Annotated[ 

2977 Optional[str], 

2978 Doc( 

2979 """ 

2980 A summary for the *path operation*. 

2981 

2982 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

2983 

2984 Read more about it in the 

2985 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

2986 """ 

2987 ), 

2988 ] = None, 

2989 description: Annotated[ 

2990 Optional[str], 

2991 Doc( 

2992 """ 

2993 A description for the *path operation*. 

2994 

2995 If not provided, it will be extracted automatically from the docstring 

2996 of the *path operation function*. 

2997 

2998 It can contain Markdown. 

2999 

3000 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3001 

3002 Read more about it in the 

3003 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3004 """ 

3005 ), 

3006 ] = None, 

3007 response_description: Annotated[ 

3008 str, 

3009 Doc( 

3010 """ 

3011 The description for the default response. 

3012 

3013 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3014 """ 

3015 ), 

3016 ] = "Successful Response", 

3017 responses: Annotated[ 

3018 Optional[Dict[Union[int, str], Dict[str, Any]]], 

3019 Doc( 

3020 """ 

3021 Additional responses that could be returned by this *path operation*. 

3022 

3023 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3024 """ 

3025 ), 

3026 ] = None, 

3027 deprecated: Annotated[ 

3028 Optional[bool], 

3029 Doc( 

3030 """ 

3031 Mark this *path operation* as deprecated. 

3032 

3033 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3034 """ 

3035 ), 

3036 ] = None, 

3037 operation_id: Annotated[ 

3038 Optional[str], 

3039 Doc( 

3040 """ 

3041 Custom operation ID to be used by this *path operation*. 

3042 

3043 By default, it is generated automatically. 

3044 

3045 If you provide a custom operation ID, you need to make sure it is 

3046 unique for the whole API. 

3047 

3048 You can customize the 

3049 operation ID generation with the parameter 

3050 `generate_unique_id_function` in the `FastAPI` class. 

3051 

3052 Read more about it in the 

3053 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3054 """ 

3055 ), 

3056 ] = None, 

3057 response_model_include: Annotated[ 

3058 Optional[IncEx], 

3059 Doc( 

3060 """ 

3061 Configuration passed to Pydantic to include only certain fields in the 

3062 response data. 

3063 

3064 Read more about it in the 

3065 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3066 """ 

3067 ), 

3068 ] = None, 

3069 response_model_exclude: Annotated[ 

3070 Optional[IncEx], 

3071 Doc( 

3072 """ 

3073 Configuration passed to Pydantic to exclude certain fields in the 

3074 response data. 

3075 

3076 Read more about it in the 

3077 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3078 """ 

3079 ), 

3080 ] = None, 

3081 response_model_by_alias: Annotated[ 

3082 bool, 

3083 Doc( 

3084 """ 

3085 Configuration passed to Pydantic to define if the response model 

3086 should be serialized by alias when an alias is used. 

3087 

3088 Read more about it in the 

3089 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3090 """ 

3091 ), 

3092 ] = True, 

3093 response_model_exclude_unset: Annotated[ 

3094 bool, 

3095 Doc( 

3096 """ 

3097 Configuration passed to Pydantic to define if the response data 

3098 should have all the fields, including the ones that were not set and 

3099 have their default values. This is different from 

3100 `response_model_exclude_defaults` in that if the fields are set, 

3101 they will be included in the response, even if the value is the same 

3102 as the default. 

3103 

3104 When `True`, default values are omitted from the response. 

3105 

3106 Read more about it in the 

3107 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3108 """ 

3109 ), 

3110 ] = False, 

3111 response_model_exclude_defaults: Annotated[ 

3112 bool, 

3113 Doc( 

3114 """ 

3115 Configuration passed to Pydantic to define if the response data 

3116 should have all the fields, including the ones that have the same value 

3117 as the default. This is different from `response_model_exclude_unset` 

3118 in that if the fields are set but contain the same default values, 

3119 they will be excluded from the response. 

3120 

3121 When `True`, default values are omitted from the response. 

3122 

3123 Read more about it in the 

3124 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3125 """ 

3126 ), 

3127 ] = False, 

3128 response_model_exclude_none: Annotated[ 

3129 bool, 

3130 Doc( 

3131 """ 

3132 Configuration passed to Pydantic to define if the response data should 

3133 exclude fields set to `None`. 

3134 

3135 This is much simpler (less smart) than `response_model_exclude_unset` 

3136 and `response_model_exclude_defaults`. You probably want to use one of 

3137 those two instead of this one, as those allow returning `None` values 

3138 when it makes sense. 

3139 

3140 Read more about it in the 

3141 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

3142 """ 

3143 ), 

3144 ] = False, 

3145 include_in_schema: Annotated[ 

3146 bool, 

3147 Doc( 

3148 """ 

3149 Include this *path operation* in the generated OpenAPI schema. 

3150 

3151 This affects the generated OpenAPI (e.g. visible at `/docs`). 

3152 

3153 Read more about it in the 

3154 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

3155 """ 

3156 ), 

3157 ] = True, 

3158 response_class: Annotated[ 

3159 Type[Response], 

3160 Doc( 

3161 """ 

3162 Response class to be used for this *path operation*. 

3163 

3164 This will not be used if you return a response directly. 

3165 

3166 Read more about it in the 

3167 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

3168 """ 

3169 ), 

3170 ] = Default(JSONResponse), 

3171 name: Annotated[ 

3172 Optional[str], 

3173 Doc( 

3174 """ 

3175 Name for this *path operation*. Only used internally. 

3176 """ 

3177 ), 

3178 ] = None, 

3179 callbacks: Annotated[ 

3180 Optional[List[BaseRoute]], 

3181 Doc( 

3182 """ 

3183 List of *path operations* that will be used as OpenAPI callbacks. 

3184 

3185 This is only for OpenAPI documentation, the callbacks won't be used 

3186 directly. 

3187 

3188 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3189 

3190 Read more about it in the 

3191 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

3192 """ 

3193 ), 

3194 ] = None, 

3195 openapi_extra: Annotated[ 

3196 Optional[Dict[str, Any]], 

3197 Doc( 

3198 """ 

3199 Extra metadata to be included in the OpenAPI schema for this *path 

3200 operation*. 

3201 

3202 Read more about it in the 

3203 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

3204 """ 

3205 ), 

3206 ] = None, 

3207 generate_unique_id_function: Annotated[ 

3208 Callable[[APIRoute], str], 

3209 Doc( 

3210 """ 

3211 Customize the function used to generate unique IDs for the *path 

3212 operations* shown in the generated OpenAPI. 

3213 

3214 This is particularly useful when automatically generating clients or 

3215 SDKs for your API. 

3216 

3217 Read more about it in the 

3218 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3219 """ 

3220 ), 

3221 ] = Default(generate_unique_id), 

3222 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

3223 """ 

3224 Add a *path operation* using an HTTP OPTIONS operation. 

3225 

3226 ## Example 

3227 

3228 ```python 

3229 from fastapi import APIRouter, FastAPI 

3230 

3231 app = FastAPI() 

3232 router = APIRouter() 

3233 

3234 @router.options("/items/") 

3235 def get_item_options(): 

3236 return {"additions": ["Aji", "Guacamole"]} 

3237 

3238 app.include_router(router) 

3239 ``` 

3240 """ 

3241 return self.api_route( 1efabcd

3242 path=path, 

3243 response_model=response_model, 

3244 status_code=status_code, 

3245 tags=tags, 

3246 dependencies=dependencies, 

3247 summary=summary, 

3248 description=description, 

3249 response_description=response_description, 

3250 responses=responses, 

3251 deprecated=deprecated, 

3252 methods=["OPTIONS"], 

3253 operation_id=operation_id, 

3254 response_model_include=response_model_include, 

3255 response_model_exclude=response_model_exclude, 

3256 response_model_by_alias=response_model_by_alias, 

3257 response_model_exclude_unset=response_model_exclude_unset, 

3258 response_model_exclude_defaults=response_model_exclude_defaults, 

3259 response_model_exclude_none=response_model_exclude_none, 

3260 include_in_schema=include_in_schema, 

3261 response_class=response_class, 

3262 name=name, 

3263 callbacks=callbacks, 

3264 openapi_extra=openapi_extra, 

3265 generate_unique_id_function=generate_unique_id_function, 

3266 ) 

3267 

3268 def head( 1efabcd

3269 self, 

3270 path: Annotated[ 

3271 str, 

3272 Doc( 

3273 """ 

3274 The URL path to be used for this *path operation*. 

3275 

3276 For example, in `http://example.com/items`, the path is `/items`. 

3277 """ 

3278 ), 

3279 ], 

3280 *, 

3281 response_model: Annotated[ 

3282 Any, 

3283 Doc( 

3284 """ 

3285 The type to use for the response. 

3286 

3287 It could be any valid Pydantic *field* type. So, it doesn't have to 

3288 be a Pydantic model, it could be other things, like a `list`, `dict`, 

3289 etc. 

3290 

3291 It will be used for: 

3292 

3293 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

3294 show it as the response (JSON Schema). 

3295 * Serialization: you could return an arbitrary object and the 

3296 `response_model` would be used to serialize that object into the 

3297 corresponding JSON. 

3298 * Filtering: the JSON sent to the client will only contain the data 

3299 (fields) defined in the `response_model`. If you returned an object 

3300 that contains an attribute `password` but the `response_model` does 

3301 not include that field, the JSON sent to the client would not have 

3302 that `password`. 

3303 * Validation: whatever you return will be serialized with the 

3304 `response_model`, converting any data as necessary to generate the 

3305 corresponding JSON. But if the data in the object returned is not 

3306 valid, that would mean a violation of the contract with the client, 

3307 so it's an error from the API developer. So, FastAPI will raise an 

3308 error and return a 500 error code (Internal Server Error). 

3309 

3310 Read more about it in the 

3311 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

3312 """ 

3313 ), 

3314 ] = Default(None), 

3315 status_code: Annotated[ 

3316 Optional[int], 

3317 Doc( 

3318 """ 

3319 The default status code to be used for the response. 

3320 

3321 You could override the status code by returning a response directly. 

3322 

3323 Read more about it in the 

3324 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

3325 """ 

3326 ), 

3327 ] = None, 

3328 tags: Annotated[ 

3329 Optional[List[Union[str, Enum]]], 

3330 Doc( 

3331 """ 

3332 A list of tags to be applied to the *path operation*. 

3333 

3334 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3335 

3336 Read more about it in the 

3337 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

3338 """ 

3339 ), 

3340 ] = None, 

3341 dependencies: Annotated[ 

3342 Optional[Sequence[params.Depends]], 

3343 Doc( 

3344 """ 

3345 A list of dependencies (using `Depends()`) to be applied to the 

3346 *path operation*. 

3347 

3348 Read more about it in the 

3349 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

3350 """ 

3351 ), 

3352 ] = None, 

3353 summary: Annotated[ 

3354 Optional[str], 

3355 Doc( 

3356 """ 

3357 A summary for the *path operation*. 

3358 

3359 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3360 

3361 Read more about it in the 

3362 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3363 """ 

3364 ), 

3365 ] = None, 

3366 description: Annotated[ 

3367 Optional[str], 

3368 Doc( 

3369 """ 

3370 A description for the *path operation*. 

3371 

3372 If not provided, it will be extracted automatically from the docstring 

3373 of the *path operation function*. 

3374 

3375 It can contain Markdown. 

3376 

3377 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3378 

3379 Read more about it in the 

3380 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3381 """ 

3382 ), 

3383 ] = None, 

3384 response_description: Annotated[ 

3385 str, 

3386 Doc( 

3387 """ 

3388 The description for the default response. 

3389 

3390 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3391 """ 

3392 ), 

3393 ] = "Successful Response", 

3394 responses: Annotated[ 

3395 Optional[Dict[Union[int, str], Dict[str, Any]]], 

3396 Doc( 

3397 """ 

3398 Additional responses that could be returned by this *path operation*. 

3399 

3400 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3401 """ 

3402 ), 

3403 ] = None, 

3404 deprecated: Annotated[ 

3405 Optional[bool], 

3406 Doc( 

3407 """ 

3408 Mark this *path operation* as deprecated. 

3409 

3410 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3411 """ 

3412 ), 

3413 ] = None, 

3414 operation_id: Annotated[ 

3415 Optional[str], 

3416 Doc( 

3417 """ 

3418 Custom operation ID to be used by this *path operation*. 

3419 

3420 By default, it is generated automatically. 

3421 

3422 If you provide a custom operation ID, you need to make sure it is 

3423 unique for the whole API. 

3424 

3425 You can customize the 

3426 operation ID generation with the parameter 

3427 `generate_unique_id_function` in the `FastAPI` class. 

3428 

3429 Read more about it in the 

3430 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3431 """ 

3432 ), 

3433 ] = None, 

3434 response_model_include: Annotated[ 

3435 Optional[IncEx], 

3436 Doc( 

3437 """ 

3438 Configuration passed to Pydantic to include only certain fields in the 

3439 response data. 

3440 

3441 Read more about it in the 

3442 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3443 """ 

3444 ), 

3445 ] = None, 

3446 response_model_exclude: Annotated[ 

3447 Optional[IncEx], 

3448 Doc( 

3449 """ 

3450 Configuration passed to Pydantic to exclude certain fields in the 

3451 response data. 

3452 

3453 Read more about it in the 

3454 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3455 """ 

3456 ), 

3457 ] = None, 

3458 response_model_by_alias: Annotated[ 

3459 bool, 

3460 Doc( 

3461 """ 

3462 Configuration passed to Pydantic to define if the response model 

3463 should be serialized by alias when an alias is used. 

3464 

3465 Read more about it in the 

3466 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3467 """ 

3468 ), 

3469 ] = True, 

3470 response_model_exclude_unset: Annotated[ 

3471 bool, 

3472 Doc( 

3473 """ 

3474 Configuration passed to Pydantic to define if the response data 

3475 should have all the fields, including the ones that were not set and 

3476 have their default values. This is different from 

3477 `response_model_exclude_defaults` in that if the fields are set, 

3478 they will be included in the response, even if the value is the same 

3479 as the default. 

3480 

3481 When `True`, default values are omitted from the response. 

3482 

3483 Read more about it in the 

3484 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3485 """ 

3486 ), 

3487 ] = False, 

3488 response_model_exclude_defaults: Annotated[ 

3489 bool, 

3490 Doc( 

3491 """ 

3492 Configuration passed to Pydantic to define if the response data 

3493 should have all the fields, including the ones that have the same value 

3494 as the default. This is different from `response_model_exclude_unset` 

3495 in that if the fields are set but contain the same default values, 

3496 they will be excluded from the response. 

3497 

3498 When `True`, default values are omitted from the response. 

3499 

3500 Read more about it in the 

3501 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3502 """ 

3503 ), 

3504 ] = False, 

3505 response_model_exclude_none: Annotated[ 

3506 bool, 

3507 Doc( 

3508 """ 

3509 Configuration passed to Pydantic to define if the response data should 

3510 exclude fields set to `None`. 

3511 

3512 This is much simpler (less smart) than `response_model_exclude_unset` 

3513 and `response_model_exclude_defaults`. You probably want to use one of 

3514 those two instead of this one, as those allow returning `None` values 

3515 when it makes sense. 

3516 

3517 Read more about it in the 

3518 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

3519 """ 

3520 ), 

3521 ] = False, 

3522 include_in_schema: Annotated[ 

3523 bool, 

3524 Doc( 

3525 """ 

3526 Include this *path operation* in the generated OpenAPI schema. 

3527 

3528 This affects the generated OpenAPI (e.g. visible at `/docs`). 

3529 

3530 Read more about it in the 

3531 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

3532 """ 

3533 ), 

3534 ] = True, 

3535 response_class: Annotated[ 

3536 Type[Response], 

3537 Doc( 

3538 """ 

3539 Response class to be used for this *path operation*. 

3540 

3541 This will not be used if you return a response directly. 

3542 

3543 Read more about it in the 

3544 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

3545 """ 

3546 ), 

3547 ] = Default(JSONResponse), 

3548 name: Annotated[ 

3549 Optional[str], 

3550 Doc( 

3551 """ 

3552 Name for this *path operation*. Only used internally. 

3553 """ 

3554 ), 

3555 ] = None, 

3556 callbacks: Annotated[ 

3557 Optional[List[BaseRoute]], 

3558 Doc( 

3559 """ 

3560 List of *path operations* that will be used as OpenAPI callbacks. 

3561 

3562 This is only for OpenAPI documentation, the callbacks won't be used 

3563 directly. 

3564 

3565 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3566 

3567 Read more about it in the 

3568 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

3569 """ 

3570 ), 

3571 ] = None, 

3572 openapi_extra: Annotated[ 

3573 Optional[Dict[str, Any]], 

3574 Doc( 

3575 """ 

3576 Extra metadata to be included in the OpenAPI schema for this *path 

3577 operation*. 

3578 

3579 Read more about it in the 

3580 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

3581 """ 

3582 ), 

3583 ] = None, 

3584 generate_unique_id_function: Annotated[ 

3585 Callable[[APIRoute], str], 

3586 Doc( 

3587 """ 

3588 Customize the function used to generate unique IDs for the *path 

3589 operations* shown in the generated OpenAPI. 

3590 

3591 This is particularly useful when automatically generating clients or 

3592 SDKs for your API. 

3593 

3594 Read more about it in the 

3595 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3596 """ 

3597 ), 

3598 ] = Default(generate_unique_id), 

3599 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

3600 """ 

3601 Add a *path operation* using an HTTP HEAD operation. 

3602 

3603 ## Example 

3604 

3605 ```python 

3606 from fastapi import APIRouter, FastAPI 

3607 from pydantic import BaseModel 

3608 

3609 class Item(BaseModel): 

3610 name: str 

3611 description: str | None = None 

3612 

3613 app = FastAPI() 

3614 router = APIRouter() 

3615 

3616 @router.head("/items/", status_code=204) 

3617 def get_items_headers(response: Response): 

3618 response.headers["X-Cat-Dog"] = "Alone in the world" 

3619 

3620 app.include_router(router) 

3621 ``` 

3622 """ 

3623 return self.api_route( 1efabcd

3624 path=path, 

3625 response_model=response_model, 

3626 status_code=status_code, 

3627 tags=tags, 

3628 dependencies=dependencies, 

3629 summary=summary, 

3630 description=description, 

3631 response_description=response_description, 

3632 responses=responses, 

3633 deprecated=deprecated, 

3634 methods=["HEAD"], 

3635 operation_id=operation_id, 

3636 response_model_include=response_model_include, 

3637 response_model_exclude=response_model_exclude, 

3638 response_model_by_alias=response_model_by_alias, 

3639 response_model_exclude_unset=response_model_exclude_unset, 

3640 response_model_exclude_defaults=response_model_exclude_defaults, 

3641 response_model_exclude_none=response_model_exclude_none, 

3642 include_in_schema=include_in_schema, 

3643 response_class=response_class, 

3644 name=name, 

3645 callbacks=callbacks, 

3646 openapi_extra=openapi_extra, 

3647 generate_unique_id_function=generate_unique_id_function, 

3648 ) 

3649 

3650 def patch( 1efabcd

3651 self, 

3652 path: Annotated[ 

3653 str, 

3654 Doc( 

3655 """ 

3656 The URL path to be used for this *path operation*. 

3657 

3658 For example, in `http://example.com/items`, the path is `/items`. 

3659 """ 

3660 ), 

3661 ], 

3662 *, 

3663 response_model: Annotated[ 

3664 Any, 

3665 Doc( 

3666 """ 

3667 The type to use for the response. 

3668 

3669 It could be any valid Pydantic *field* type. So, it doesn't have to 

3670 be a Pydantic model, it could be other things, like a `list`, `dict`, 

3671 etc. 

3672 

3673 It will be used for: 

3674 

3675 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

3676 show it as the response (JSON Schema). 

3677 * Serialization: you could return an arbitrary object and the 

3678 `response_model` would be used to serialize that object into the 

3679 corresponding JSON. 

3680 * Filtering: the JSON sent to the client will only contain the data 

3681 (fields) defined in the `response_model`. If you returned an object 

3682 that contains an attribute `password` but the `response_model` does 

3683 not include that field, the JSON sent to the client would not have 

3684 that `password`. 

3685 * Validation: whatever you return will be serialized with the 

3686 `response_model`, converting any data as necessary to generate the 

3687 corresponding JSON. But if the data in the object returned is not 

3688 valid, that would mean a violation of the contract with the client, 

3689 so it's an error from the API developer. So, FastAPI will raise an 

3690 error and return a 500 error code (Internal Server Error). 

3691 

3692 Read more about it in the 

3693 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

3694 """ 

3695 ), 

3696 ] = Default(None), 

3697 status_code: Annotated[ 

3698 Optional[int], 

3699 Doc( 

3700 """ 

3701 The default status code to be used for the response. 

3702 

3703 You could override the status code by returning a response directly. 

3704 

3705 Read more about it in the 

3706 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

3707 """ 

3708 ), 

3709 ] = None, 

3710 tags: Annotated[ 

3711 Optional[List[Union[str, Enum]]], 

3712 Doc( 

3713 """ 

3714 A list of tags to be applied to the *path operation*. 

3715 

3716 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3717 

3718 Read more about it in the 

3719 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

3720 """ 

3721 ), 

3722 ] = None, 

3723 dependencies: Annotated[ 

3724 Optional[Sequence[params.Depends]], 

3725 Doc( 

3726 """ 

3727 A list of dependencies (using `Depends()`) to be applied to the 

3728 *path operation*. 

3729 

3730 Read more about it in the 

3731 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

3732 """ 

3733 ), 

3734 ] = None, 

3735 summary: Annotated[ 

3736 Optional[str], 

3737 Doc( 

3738 """ 

3739 A summary for the *path operation*. 

3740 

3741 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3742 

3743 Read more about it in the 

3744 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3745 """ 

3746 ), 

3747 ] = None, 

3748 description: Annotated[ 

3749 Optional[str], 

3750 Doc( 

3751 """ 

3752 A description for the *path operation*. 

3753 

3754 If not provided, it will be extracted automatically from the docstring 

3755 of the *path operation function*. 

3756 

3757 It can contain Markdown. 

3758 

3759 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3760 

3761 Read more about it in the 

3762 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

3763 """ 

3764 ), 

3765 ] = None, 

3766 response_description: Annotated[ 

3767 str, 

3768 Doc( 

3769 """ 

3770 The description for the default response. 

3771 

3772 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3773 """ 

3774 ), 

3775 ] = "Successful Response", 

3776 responses: Annotated[ 

3777 Optional[Dict[Union[int, str], Dict[str, Any]]], 

3778 Doc( 

3779 """ 

3780 Additional responses that could be returned by this *path operation*. 

3781 

3782 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3783 """ 

3784 ), 

3785 ] = None, 

3786 deprecated: Annotated[ 

3787 Optional[bool], 

3788 Doc( 

3789 """ 

3790 Mark this *path operation* as deprecated. 

3791 

3792 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3793 """ 

3794 ), 

3795 ] = None, 

3796 operation_id: Annotated[ 

3797 Optional[str], 

3798 Doc( 

3799 """ 

3800 Custom operation ID to be used by this *path operation*. 

3801 

3802 By default, it is generated automatically. 

3803 

3804 If you provide a custom operation ID, you need to make sure it is 

3805 unique for the whole API. 

3806 

3807 You can customize the 

3808 operation ID generation with the parameter 

3809 `generate_unique_id_function` in the `FastAPI` class. 

3810 

3811 Read more about it in the 

3812 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3813 """ 

3814 ), 

3815 ] = None, 

3816 response_model_include: Annotated[ 

3817 Optional[IncEx], 

3818 Doc( 

3819 """ 

3820 Configuration passed to Pydantic to include only certain fields in the 

3821 response data. 

3822 

3823 Read more about it in the 

3824 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3825 """ 

3826 ), 

3827 ] = None, 

3828 response_model_exclude: Annotated[ 

3829 Optional[IncEx], 

3830 Doc( 

3831 """ 

3832 Configuration passed to Pydantic to exclude certain fields in the 

3833 response data. 

3834 

3835 Read more about it in the 

3836 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3837 """ 

3838 ), 

3839 ] = None, 

3840 response_model_by_alias: Annotated[ 

3841 bool, 

3842 Doc( 

3843 """ 

3844 Configuration passed to Pydantic to define if the response model 

3845 should be serialized by alias when an alias is used. 

3846 

3847 Read more about it in the 

3848 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

3849 """ 

3850 ), 

3851 ] = True, 

3852 response_model_exclude_unset: Annotated[ 

3853 bool, 

3854 Doc( 

3855 """ 

3856 Configuration passed to Pydantic to define if the response data 

3857 should have all the fields, including the ones that were not set and 

3858 have their default values. This is different from 

3859 `response_model_exclude_defaults` in that if the fields are set, 

3860 they will be included in the response, even if the value is the same 

3861 as the default. 

3862 

3863 When `True`, default values are omitted from the response. 

3864 

3865 Read more about it in the 

3866 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3867 """ 

3868 ), 

3869 ] = False, 

3870 response_model_exclude_defaults: Annotated[ 

3871 bool, 

3872 Doc( 

3873 """ 

3874 Configuration passed to Pydantic to define if the response data 

3875 should have all the fields, including the ones that have the same value 

3876 as the default. This is different from `response_model_exclude_unset` 

3877 in that if the fields are set but contain the same default values, 

3878 they will be excluded from the response. 

3879 

3880 When `True`, default values are omitted from the response. 

3881 

3882 Read more about it in the 

3883 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

3884 """ 

3885 ), 

3886 ] = False, 

3887 response_model_exclude_none: Annotated[ 

3888 bool, 

3889 Doc( 

3890 """ 

3891 Configuration passed to Pydantic to define if the response data should 

3892 exclude fields set to `None`. 

3893 

3894 This is much simpler (less smart) than `response_model_exclude_unset` 

3895 and `response_model_exclude_defaults`. You probably want to use one of 

3896 those two instead of this one, as those allow returning `None` values 

3897 when it makes sense. 

3898 

3899 Read more about it in the 

3900 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

3901 """ 

3902 ), 

3903 ] = False, 

3904 include_in_schema: Annotated[ 

3905 bool, 

3906 Doc( 

3907 """ 

3908 Include this *path operation* in the generated OpenAPI schema. 

3909 

3910 This affects the generated OpenAPI (e.g. visible at `/docs`). 

3911 

3912 Read more about it in the 

3913 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

3914 """ 

3915 ), 

3916 ] = True, 

3917 response_class: Annotated[ 

3918 Type[Response], 

3919 Doc( 

3920 """ 

3921 Response class to be used for this *path operation*. 

3922 

3923 This will not be used if you return a response directly. 

3924 

3925 Read more about it in the 

3926 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

3927 """ 

3928 ), 

3929 ] = Default(JSONResponse), 

3930 name: Annotated[ 

3931 Optional[str], 

3932 Doc( 

3933 """ 

3934 Name for this *path operation*. Only used internally. 

3935 """ 

3936 ), 

3937 ] = None, 

3938 callbacks: Annotated[ 

3939 Optional[List[BaseRoute]], 

3940 Doc( 

3941 """ 

3942 List of *path operations* that will be used as OpenAPI callbacks. 

3943 

3944 This is only for OpenAPI documentation, the callbacks won't be used 

3945 directly. 

3946 

3947 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

3948 

3949 Read more about it in the 

3950 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

3951 """ 

3952 ), 

3953 ] = None, 

3954 openapi_extra: Annotated[ 

3955 Optional[Dict[str, Any]], 

3956 Doc( 

3957 """ 

3958 Extra metadata to be included in the OpenAPI schema for this *path 

3959 operation*. 

3960 

3961 Read more about it in the 

3962 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

3963 """ 

3964 ), 

3965 ] = None, 

3966 generate_unique_id_function: Annotated[ 

3967 Callable[[APIRoute], str], 

3968 Doc( 

3969 """ 

3970 Customize the function used to generate unique IDs for the *path 

3971 operations* shown in the generated OpenAPI. 

3972 

3973 This is particularly useful when automatically generating clients or 

3974 SDKs for your API. 

3975 

3976 Read more about it in the 

3977 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

3978 """ 

3979 ), 

3980 ] = Default(generate_unique_id), 

3981 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

3982 """ 

3983 Add a *path operation* using an HTTP PATCH operation. 

3984 

3985 ## Example 

3986 

3987 ```python 

3988 from fastapi import APIRouter, FastAPI 

3989 from pydantic import BaseModel 

3990 

3991 class Item(BaseModel): 

3992 name: str 

3993 description: str | None = None 

3994 

3995 app = FastAPI() 

3996 router = APIRouter() 

3997 

3998 @router.patch("/items/") 

3999 def update_item(item: Item): 

4000 return {"message": "Item updated in place"} 

4001 

4002 app.include_router(router) 

4003 ``` 

4004 """ 

4005 return self.api_route( 1efabcd

4006 path=path, 

4007 response_model=response_model, 

4008 status_code=status_code, 

4009 tags=tags, 

4010 dependencies=dependencies, 

4011 summary=summary, 

4012 description=description, 

4013 response_description=response_description, 

4014 responses=responses, 

4015 deprecated=deprecated, 

4016 methods=["PATCH"], 

4017 operation_id=operation_id, 

4018 response_model_include=response_model_include, 

4019 response_model_exclude=response_model_exclude, 

4020 response_model_by_alias=response_model_by_alias, 

4021 response_model_exclude_unset=response_model_exclude_unset, 

4022 response_model_exclude_defaults=response_model_exclude_defaults, 

4023 response_model_exclude_none=response_model_exclude_none, 

4024 include_in_schema=include_in_schema, 

4025 response_class=response_class, 

4026 name=name, 

4027 callbacks=callbacks, 

4028 openapi_extra=openapi_extra, 

4029 generate_unique_id_function=generate_unique_id_function, 

4030 ) 

4031 

4032 def trace( 1efabcd

4033 self, 

4034 path: Annotated[ 

4035 str, 

4036 Doc( 

4037 """ 

4038 The URL path to be used for this *path operation*. 

4039 

4040 For example, in `http://example.com/items`, the path is `/items`. 

4041 """ 

4042 ), 

4043 ], 

4044 *, 

4045 response_model: Annotated[ 

4046 Any, 

4047 Doc( 

4048 """ 

4049 The type to use for the response. 

4050 

4051 It could be any valid Pydantic *field* type. So, it doesn't have to 

4052 be a Pydantic model, it could be other things, like a `list`, `dict`, 

4053 etc. 

4054 

4055 It will be used for: 

4056 

4057 * Documentation: the generated OpenAPI (and the UI at `/docs`) will 

4058 show it as the response (JSON Schema). 

4059 * Serialization: you could return an arbitrary object and the 

4060 `response_model` would be used to serialize that object into the 

4061 corresponding JSON. 

4062 * Filtering: the JSON sent to the client will only contain the data 

4063 (fields) defined in the `response_model`. If you returned an object 

4064 that contains an attribute `password` but the `response_model` does 

4065 not include that field, the JSON sent to the client would not have 

4066 that `password`. 

4067 * Validation: whatever you return will be serialized with the 

4068 `response_model`, converting any data as necessary to generate the 

4069 corresponding JSON. But if the data in the object returned is not 

4070 valid, that would mean a violation of the contract with the client, 

4071 so it's an error from the API developer. So, FastAPI will raise an 

4072 error and return a 500 error code (Internal Server Error). 

4073 

4074 Read more about it in the 

4075 [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/). 

4076 """ 

4077 ), 

4078 ] = Default(None), 

4079 status_code: Annotated[ 

4080 Optional[int], 

4081 Doc( 

4082 """ 

4083 The default status code to be used for the response. 

4084 

4085 You could override the status code by returning a response directly. 

4086 

4087 Read more about it in the 

4088 [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/). 

4089 """ 

4090 ), 

4091 ] = None, 

4092 tags: Annotated[ 

4093 Optional[List[Union[str, Enum]]], 

4094 Doc( 

4095 """ 

4096 A list of tags to be applied to the *path operation*. 

4097 

4098 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4099 

4100 Read more about it in the 

4101 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags). 

4102 """ 

4103 ), 

4104 ] = None, 

4105 dependencies: Annotated[ 

4106 Optional[Sequence[params.Depends]], 

4107 Doc( 

4108 """ 

4109 A list of dependencies (using `Depends()`) to be applied to the 

4110 *path operation*. 

4111 

4112 Read more about it in the 

4113 [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/). 

4114 """ 

4115 ), 

4116 ] = None, 

4117 summary: Annotated[ 

4118 Optional[str], 

4119 Doc( 

4120 """ 

4121 A summary for the *path operation*. 

4122 

4123 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4124 

4125 Read more about it in the 

4126 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

4127 """ 

4128 ), 

4129 ] = None, 

4130 description: Annotated[ 

4131 Optional[str], 

4132 Doc( 

4133 """ 

4134 A description for the *path operation*. 

4135 

4136 If not provided, it will be extracted automatically from the docstring 

4137 of the *path operation function*. 

4138 

4139 It can contain Markdown. 

4140 

4141 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4142 

4143 Read more about it in the 

4144 [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/). 

4145 """ 

4146 ), 

4147 ] = None, 

4148 response_description: Annotated[ 

4149 str, 

4150 Doc( 

4151 """ 

4152 The description for the default response. 

4153 

4154 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4155 """ 

4156 ), 

4157 ] = "Successful Response", 

4158 responses: Annotated[ 

4159 Optional[Dict[Union[int, str], Dict[str, Any]]], 

4160 Doc( 

4161 """ 

4162 Additional responses that could be returned by this *path operation*. 

4163 

4164 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4165 """ 

4166 ), 

4167 ] = None, 

4168 deprecated: Annotated[ 

4169 Optional[bool], 

4170 Doc( 

4171 """ 

4172 Mark this *path operation* as deprecated. 

4173 

4174 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4175 """ 

4176 ), 

4177 ] = None, 

4178 operation_id: Annotated[ 

4179 Optional[str], 

4180 Doc( 

4181 """ 

4182 Custom operation ID to be used by this *path operation*. 

4183 

4184 By default, it is generated automatically. 

4185 

4186 If you provide a custom operation ID, you need to make sure it is 

4187 unique for the whole API. 

4188 

4189 You can customize the 

4190 operation ID generation with the parameter 

4191 `generate_unique_id_function` in the `FastAPI` class. 

4192 

4193 Read more about it in the 

4194 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

4195 """ 

4196 ), 

4197 ] = None, 

4198 response_model_include: Annotated[ 

4199 Optional[IncEx], 

4200 Doc( 

4201 """ 

4202 Configuration passed to Pydantic to include only certain fields in the 

4203 response data. 

4204 

4205 Read more about it in the 

4206 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4207 """ 

4208 ), 

4209 ] = None, 

4210 response_model_exclude: Annotated[ 

4211 Optional[IncEx], 

4212 Doc( 

4213 """ 

4214 Configuration passed to Pydantic to exclude certain fields in the 

4215 response data. 

4216 

4217 Read more about it in the 

4218 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4219 """ 

4220 ), 

4221 ] = None, 

4222 response_model_by_alias: Annotated[ 

4223 bool, 

4224 Doc( 

4225 """ 

4226 Configuration passed to Pydantic to define if the response model 

4227 should be serialized by alias when an alias is used. 

4228 

4229 Read more about it in the 

4230 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude). 

4231 """ 

4232 ), 

4233 ] = True, 

4234 response_model_exclude_unset: Annotated[ 

4235 bool, 

4236 Doc( 

4237 """ 

4238 Configuration passed to Pydantic to define if the response data 

4239 should have all the fields, including the ones that were not set and 

4240 have their default values. This is different from 

4241 `response_model_exclude_defaults` in that if the fields are set, 

4242 they will be included in the response, even if the value is the same 

4243 as the default. 

4244 

4245 When `True`, default values are omitted from the response. 

4246 

4247 Read more about it in the 

4248 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

4249 """ 

4250 ), 

4251 ] = False, 

4252 response_model_exclude_defaults: Annotated[ 

4253 bool, 

4254 Doc( 

4255 """ 

4256 Configuration passed to Pydantic to define if the response data 

4257 should have all the fields, including the ones that have the same value 

4258 as the default. This is different from `response_model_exclude_unset` 

4259 in that if the fields are set but contain the same default values, 

4260 they will be excluded from the response. 

4261 

4262 When `True`, default values are omitted from the response. 

4263 

4264 Read more about it in the 

4265 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter). 

4266 """ 

4267 ), 

4268 ] = False, 

4269 response_model_exclude_none: Annotated[ 

4270 bool, 

4271 Doc( 

4272 """ 

4273 Configuration passed to Pydantic to define if the response data should 

4274 exclude fields set to `None`. 

4275 

4276 This is much simpler (less smart) than `response_model_exclude_unset` 

4277 and `response_model_exclude_defaults`. You probably want to use one of 

4278 those two instead of this one, as those allow returning `None` values 

4279 when it makes sense. 

4280 

4281 Read more about it in the 

4282 [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none). 

4283 """ 

4284 ), 

4285 ] = False, 

4286 include_in_schema: Annotated[ 

4287 bool, 

4288 Doc( 

4289 """ 

4290 Include this *path operation* in the generated OpenAPI schema. 

4291 

4292 This affects the generated OpenAPI (e.g. visible at `/docs`). 

4293 

4294 Read more about it in the 

4295 [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi). 

4296 """ 

4297 ), 

4298 ] = True, 

4299 response_class: Annotated[ 

4300 Type[Response], 

4301 Doc( 

4302 """ 

4303 Response class to be used for this *path operation*. 

4304 

4305 This will not be used if you return a response directly. 

4306 

4307 Read more about it in the 

4308 [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse). 

4309 """ 

4310 ), 

4311 ] = Default(JSONResponse), 

4312 name: Annotated[ 

4313 Optional[str], 

4314 Doc( 

4315 """ 

4316 Name for this *path operation*. Only used internally. 

4317 """ 

4318 ), 

4319 ] = None, 

4320 callbacks: Annotated[ 

4321 Optional[List[BaseRoute]], 

4322 Doc( 

4323 """ 

4324 List of *path operations* that will be used as OpenAPI callbacks. 

4325 

4326 This is only for OpenAPI documentation, the callbacks won't be used 

4327 directly. 

4328 

4329 It will be added to the generated OpenAPI (e.g. visible at `/docs`). 

4330 

4331 Read more about it in the 

4332 [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/). 

4333 """ 

4334 ), 

4335 ] = None, 

4336 openapi_extra: Annotated[ 

4337 Optional[Dict[str, Any]], 

4338 Doc( 

4339 """ 

4340 Extra metadata to be included in the OpenAPI schema for this *path 

4341 operation*. 

4342 

4343 Read more about it in the 

4344 [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema). 

4345 """ 

4346 ), 

4347 ] = None, 

4348 generate_unique_id_function: Annotated[ 

4349 Callable[[APIRoute], str], 

4350 Doc( 

4351 """ 

4352 Customize the function used to generate unique IDs for the *path 

4353 operations* shown in the generated OpenAPI. 

4354 

4355 This is particularly useful when automatically generating clients or 

4356 SDKs for your API. 

4357 

4358 Read more about it in the 

4359 [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function). 

4360 """ 

4361 ), 

4362 ] = Default(generate_unique_id), 

4363 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

4364 """ 

4365 Add a *path operation* using an HTTP TRACE operation. 

4366 

4367 ## Example 

4368 

4369 ```python 

4370 from fastapi import APIRouter, FastAPI 

4371 from pydantic import BaseModel 

4372 

4373 class Item(BaseModel): 

4374 name: str 

4375 description: str | None = None 

4376 

4377 app = FastAPI() 

4378 router = APIRouter() 

4379 

4380 @router.trace("/items/{item_id}") 

4381 def trace_item(item_id: str): 

4382 return None 

4383 

4384 app.include_router(router) 

4385 ``` 

4386 """ 

4387 return self.api_route( 1efabcd

4388 path=path, 

4389 response_model=response_model, 

4390 status_code=status_code, 

4391 tags=tags, 

4392 dependencies=dependencies, 

4393 summary=summary, 

4394 description=description, 

4395 response_description=response_description, 

4396 responses=responses, 

4397 deprecated=deprecated, 

4398 methods=["TRACE"], 

4399 operation_id=operation_id, 

4400 response_model_include=response_model_include, 

4401 response_model_exclude=response_model_exclude, 

4402 response_model_by_alias=response_model_by_alias, 

4403 response_model_exclude_unset=response_model_exclude_unset, 

4404 response_model_exclude_defaults=response_model_exclude_defaults, 

4405 response_model_exclude_none=response_model_exclude_none, 

4406 include_in_schema=include_in_schema, 

4407 response_class=response_class, 

4408 name=name, 

4409 callbacks=callbacks, 

4410 openapi_extra=openapi_extra, 

4411 generate_unique_id_function=generate_unique_id_function, 

4412 ) 

4413 

4414 @deprecated( 1efabcd

4415 """ 

4416 on_event is deprecated, use lifespan event handlers instead. 

4417 

4418 Read more about it in the 

4419 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/). 

4420 """ 

4421 ) 

4422 def on_event( 1efabcd

4423 self, 

4424 event_type: Annotated[ 

4425 str, 

4426 Doc( 

4427 """ 

4428 The type of event. `startup` or `shutdown`. 

4429 """ 

4430 ), 

4431 ], 

4432 ) -> Callable[[DecoratedCallable], DecoratedCallable]: 

4433 """ 

4434 Add an event handler for the router. 

4435 

4436 `on_event` is deprecated, use `lifespan` event handlers instead. 

4437 

4438 Read more about it in the 

4439 [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated). 

4440 """ 

4441 

4442 def decorator(func: DecoratedCallable) -> DecoratedCallable: 2e G zbf H Aba E xbb F ybc I Jbd J Kb

4443 self.add_event_handler(event_type, func) 2e G zbf H Aba E xbb F ybc I Jbd J Kb

4444 return func 2e G zbf H Aba E xbb F ybc I Jbd J Kb

4445 

4446 return decorator 2e G zbf H Aba E xbb F ybc I Jbd J Kb