Coverage for sqlmodel/_compat.py: 93%

296 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-07 05:42 +0000

1import types 1Mabcdef

2from contextlib import contextmanager 1Mabcdef

3from contextvars import ContextVar 1Mabcdef

4from dataclasses import dataclass 1Mabcdef

5from typing import ( 1Mabcdef

6 TYPE_CHECKING, 

7 AbstractSet, 

8 Any, 

9 Callable, 

10 Dict, 

11 ForwardRef, 

12 Generator, 

13 Mapping, 

14 Optional, 

15 Set, 

16 Type, 

17 TypeVar, 

18 Union, 

19) 

20 

21from pydantic import VERSION as P_VERSION 1Mabcdef

22from pydantic import BaseModel 1Mabcdef

23from pydantic.fields import FieldInfo 1Mabcdef

24from typing_extensions import Annotated, get_args, get_origin 1Mabcdef

25 

26# Reassign variable to make it reexported for mypy 

27PYDANTIC_VERSION = P_VERSION 1Mabcdef

28PYDANTIC_MINOR_VERSION = tuple(int(i) for i in P_VERSION.split(".")[:2]) 1Mabcdef

29IS_PYDANTIC_V2 = PYDANTIC_MINOR_VERSION[0] == 2 1Mabcdef

30 

31 

32if TYPE_CHECKING: 1Mabcdef

33 from .main import RelationshipInfo, SQLModel 

34 

35UnionType = getattr(types, "UnionType", Union) 1Mabcdef

36NoneType = type(None) 1Mabcdef

37T = TypeVar("T") 1Mabcdef

38InstanceOrType = Union[T, Type[T]] 1Mabcdef

39_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1Mabcdef

40 

41 

42class FakeMetadata: 1Mabcdef

43 max_length: Optional[int] = None 1Mabcdef

44 max_digits: Optional[int] = None 1Mabcdef

45 decimal_places: Optional[int] = None 1Mabcdef

46 

47 

48@dataclass 1Mabcdef

49class ObjectWithUpdateWrapper: 1abcdef

50 obj: Any 1Mabcdef

51 update: Dict[str, Any] 1Mabcdef

52 

53 def __getattribute__(self, __name: str) -> Any: 1Mabcdef

54 update = super().__getattribute__("update") 2edicjckclcmcncocpcqc%c'c(c)c*c+c

55 obj = super().__getattribute__("obj") 2edicjckclcmcncocpcqc%c'c(c)c*c+c

56 if __name in update: 2edicjckclcmcncocpcqc%c'c(c)c*c+c

57 return update[__name] 2edicjckclcmcncocpcqc%c'c(c)c*c+c

58 return getattr(obj, __name) 2edicjckclcmcncocpcqc%c'c(c)c*c+c

59 

60 

61def _is_union_type(t: Any) -> bool: 1Mabcdef

62 return t is UnionType or t is Union 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

63 

64 

65finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1Mabcdef

66 

67 

68@contextmanager 1Mabcdef

69def partial_init() -> Generator[None, None, None]: 1Mabcdef

70 token = finish_init.set(False) 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

71 yield 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

72 finish_init.reset(token) 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

73 

74 

75if IS_PYDANTIC_V2: 1Mabcdef

76 from annotated_types import MaxLen 1Mabcdef

77 from pydantic import ConfigDict as BaseConfig 1Mabcdef

78 from pydantic._internal._fields import PydanticMetadata 1Mabcdef

79 from pydantic._internal._model_construction import ModelMetaclass 1Mabcdef

80 from pydantic._internal._repr import Representation as Representation 1Mabcdef

81 from pydantic_core import PydanticUndefined as Undefined 1Mabcdef

82 from pydantic_core import PydanticUndefinedType as UndefinedType 1Mabcdef

83 

84 # Dummy for types, to make it importable 

85 class ModelField: 1Mabcdef

86 pass 1Mabcdef

87 

88 class SQLModelConfig(BaseConfig, total=False): 1Mabcdef

89 table: Optional[bool] 1Mabcdef

90 registry: Optional[Any] 1Mabcdef

91 

92 def get_config_value( 1abcdef

93 *, model: InstanceOrType["SQLModel"], parameter: str, default: Any = None 

94 ) -> Any: 

95 return model.model_config.get(parameter, default) 2M if_k`k4ohqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(qa _emfnfYojqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)qb `e7f8fZolqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*qc {e|ergsgtgug0onqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+qd }e~ewhxhyhzh1opqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,qe afbfBiCiDiEi2orqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qf cfdfGjHjIjJj3otquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

96 

97 def set_config_value( 1abcdef

98 *, 

99 model: InstanceOrType["SQLModel"], 

100 parameter: str, 

101 value: Any, 

102 ) -> None: 

103 model.model_config[parameter] = value # type: ignore[literal-required] 2M if_k`k4ohqiq$oHpYper`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpfrPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pgrQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1phrRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pirSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3pjr^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4pkr_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

104 

105 def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, "FieldInfo"]: 1Mabcdef

106 return model.model_fields 2M if_k`k4ohqiq$oHpYper`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpfrPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pgrQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1phrRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pirSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3pjr^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4pkr_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

107 

108 def get_fields_set( 1abcdef

109 object: InstanceOrType["SQLModel"], 

110 ) -> Union[Set[str], Callable[[BaseModel], Set[str]]]: 

111 return object.model_fields_set 2GqCqDqEqFqPqQq

112 

113 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1Mabcdef

114 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(q=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)q?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*q[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+q_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,q}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

115 object.__setattr__(new_object, "__pydantic_extra__", None) 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(q=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)q?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*q[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+q_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,q}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

116 object.__setattr__(new_object, "__pydantic_private__", None) 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(q=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)q?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*q[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+q_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,q}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

117 

118 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1Mabcdef

119 return class_dict.get("__annotations__", {}) 2M if_k`k4ohqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(qa _emfnfYojqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)qb `e7f8fZolqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*qc {e|ergsgtgug0onqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+qd }e~ewhxhyhzh1opqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,qe afbfBiCiDiEi2orqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qf cfdfGjHjIjJj3otquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

120 

121 def is_table_model_class(cls: Type[Any]) -> bool: 1Mabcdef

122 config = getattr(cls, "model_config", {}) 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqhqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(qa =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)qb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqlqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*qc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+qd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqpqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,qe }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqrqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqtquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

123 if config: 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqhqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(qa =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)qb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqlqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*qc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+qd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqpqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,qe }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqrqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqtquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

124 return config.get("table", False) or False 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pvqhqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl(qa =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpwqjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f)qb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpxqlqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg*qc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpyqnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh+qd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpzqpqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi,qe }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pAqrqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFj.qf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pBqtquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk:q

125 return False 1Mabcdef

126 

127 def get_relationship_to( 1abcdef

128 name: str, 

129 rel_info: "RelationshipInfo", 

130 annotation: Any, 

131 ) -> Any: 

132 origin = get_origin(annotation) 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

133 use_annotation = annotation 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

134 # Direct relationships (e.g. 'Team' or Team) have None as an origin 

135 if origin is None: 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

136 if isinstance(use_annotation, ForwardRef): 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

137 use_annotation = use_annotation.__forward_arg__ 2Jm,c-cK L QdRd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmdP Q emR S T U V W X Y Z Lm0 1 2 i j ndod3 4 fm5 6 7 8 9 ! # $ % Mm' ( ) * k l pdqd+ , gm- . / : ; = ? @ [ Nm] ^ _ ` m n rdsd{ | hm} ~ abbbcbdbebfbgbOm(b)b*b+by z EdFd,b-bim.b/b:b;b=b?b@b[b]bPm^b_b`b{bA B GdHd|b}bjm~bacbcccdcecfcgchc

138 else: 

139 return use_annotation 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

140 # If Union (e.g. Optional), get the real field 

141 elif _is_union_type(origin): 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

142 use_annotation = get_args(annotation) 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

143 if len(use_annotation) > 2: 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

144 raise ValueError( 

145 "Cannot have a (non-optional) union as a SQLAlchemy field" 

146 ) 

147 arg1, arg2 = use_annotation 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

148 if arg1 is NoneType and arg2 is not NoneType: 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

149 use_annotation = arg2 

150 elif arg2 is NoneType and arg1 is not NoneType: 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

151 use_annotation = arg1 2,c-cK L .c/cdm:c;c=c?c@c[c]c^c_cN O g h P Q emR S T U V W X Y Z 0 hb1 2 i o j p 3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb' tbub( ) * k q r l s t + vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb] RbSb^ _ ` m u v n w x { TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b(brcsc)b*b+by C D z E F ,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc^bPcQc_b`b{bA G H B I J |bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

152 else: 

153 raise ValueError( 

154 "Cannot have a Union of None and None as a SQLAlchemy field" 

155 ) 

156 

157 # If a list, then also get the real field 

158 elif origin is list: 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

159 use_annotation = get_args(annotation)[0] 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

160 

161 return get_relationship_to( 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

162 name=name, rel_info=rel_info, annotation=use_annotation 

163 ) 

164 

165 def is_field_noneable(field: "FieldInfo") -> bool: 1Mabcdef

166 if getattr(field, "nullable", Undefined) is not Undefined: 2M if_k`khqiq$oHpYp`llf.l/l:lcm5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk{l6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|l7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k}l8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,k~l9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVlam!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lbm#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

167 return field.nullable # type: ignore 2cm5o{l6o|l7o}l8o~l9oam!obm#o

168 origin = get_origin(field.annotation) 2M if_k`khqiq$oHpYp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

169 if origin is not None and _is_union_type(origin): 2M if_k`khqiq$oHpYp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

170 args = get_args(field.annotation) 2M if_k`k$oHp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnf)oIpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8f-oJpQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug=oKpRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh|oLpSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEigpMp^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjppNp_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

171 if any(arg is NoneType for arg in args): 2M if_k`k$oHp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnf)oIpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8f-oJpQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug=oKpRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh|oLpSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEigpMp^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjppNp_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

172 return True 2M if_k`k$oHp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnf)oIpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8f-oJpQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug=oKpRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh|oLpSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEigpMp^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjppNp_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

173 if not field.is_required(): 2M if_k`khqiq$oYp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oZpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-o0pQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=o1pRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|o2pSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgp3p^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqpp4p_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

174 if field.default is Undefined: 2if5otd_e6o`c`e7o{c|c{e|e8o}c~cad}e~e9obdcdddafbf!ofdgdhdcfdf#oidjdkd

175 return False 

176 if field.annotation is None or field.annotation is NoneType: # type: ignore[comparison-overlap] 2if5otd_e6o`c`e7o{c|c{e|e8o}c~cad}e~e9obdcdddafbf!ofdgdhdcfdf#oidjdkd

177 return True 

178 return False 2if5otd_e6o`c`e7o{c|c{e|e8o}c~cad}e~e9obdcdddafbf!ofdgdhdcfdf#oidjdkd

179 return False 2M if_k`khqiq$oYp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oZpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-o0pQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=o1pRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|o2pSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgp3p^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqpp4p_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

180 

181 def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1Mabcdef

182 # Resolve Optional fields 

183 if annotation is None: 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

184 raise ValueError("Missing field type") 

185 origin = get_origin(annotation) 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

186 if origin is None: 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

187 return annotation 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

188 elif origin is Annotated: 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

189 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 24oYoZo0o1o2o3o

190 if _is_union_type(origin): 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

191 bases = get_args(annotation) 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

192 if len(bases) > 2: 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

193 raise ValueError( 

194 "Cannot have a (non-optional) union as a SQLAlchemy field" 

195 ) 

196 # Non optional unions are not allowed 

197 if bases[0] is not NoneType and bases[1] is not NoneType: 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

198 raise ValueError( 2#p'p*p-p:p?p]p

199 "Cannot have a (non-optional) union as a SQLAlchemy field" 

200 ) 

201 # Optional unions are allowed 

202 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

203 return get_sa_type_from_type_annotation(use_type) 2M if_k`k4o$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYo)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZo-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0o=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1o|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2ogpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3oppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

204 return origin 29p!p$p%p(p)p+p,p.p/p;p=p@p[p

205 

206 def get_sa_type_from_field(field: Any) -> Any: 1Mabcdef

207 type_: Any = field.annotation 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

208 return get_sa_type_from_type_annotation(type_) 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

209 

210 def get_field_metadata(field: Any) -> Any: 1Mabcdef

211 for meta in field.metadata: 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

212 if isinstance(meta, (PydanticMetadata, MaxLen)): 2if_e`e{e|e}e~eafbfcfdf

213 return meta 2if_e`e{e|e}e~eafbfcfdf

214 return FakeMetadata() 2M if_k`k4ohqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

215 

216 def post_init_field_info(field_info: FieldInfo) -> None: 1Mabcdef

217 return None 2M if_k`k4ohqiq$oHpYperYrZrGq`l'qlf.l/l:l^pcm5o_p0rJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfYojqkq)oIpZpfr1r2rCqPl8qefLkMkNk`p{l6o{p3rKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8fZolqmq-oJp0pgr4r5rDqQl9qffUkVkWk|p|l7o}p6rLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug0onqoq=oKp1phr7r8rEqRl!qgf3k4k5k~p}l8oaq9rMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh1opqqq|oLp2pir!r#rFqSl#qhf*k+k,kbq~l9ocq$rNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEi2orqsqgpMp3pjr%r'rPq^l-qjfTlUlVldqam!oeq(rOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJj3otquqppNp4pkr)r*rQq_l/qkf7l8l9lfqbm#ogq+rPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

218 

219 # Dummy to make it importable 

220 def _calculate_keys( 1abcdef

221 self: "SQLModel", 1abcdef

222 include: Optional[Mapping[Union[int, str], Any]], 1abcdef

223 exclude: Optional[Mapping[Union[int, str], Any]], 1abcdef

224 exclude_unset: bool, 1abcdef

225 update: Optional[Dict[str, Any]] = None, 1Mabcdef

226 ) -> Optional[AbstractSet[str]]: # pragma: no cover 1Mabcdef

227 return None 

228 

229 def sqlmodel_table_construct( 1abcdef

230 *, 

231 self_instance: _TSQLModel, 

232 values: Dict[str, Any], 

233 _fields_set: Union[Set[str], None] = None, 

234 ) -> _TSQLModel: 

235 # Copy from Pydantic's BaseModel.construct() 

236 # Ref: https://github.com/pydantic/pydantic/blob/v2.5.2/pydantic/main.py#L198 

237 # Modified to not include everything, only the model fields, and to 

238 # set relationships 

239 # SQLModel override to get class SQLAlchemy __dict__ attributes and 

240 # set them back in after creating the object 

241 # new_obj = cls.__new__(cls) 

242 cls = type(self_instance) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

243 old_dict = self_instance.__dict__.copy() 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

244 # End SQLModel override 

245 

246 fields_values: Dict[str, Any] = {} 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

247 defaults: Dict[ 2ypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

248 str, Any 

249 ] = {} # keeping this separate from `fields_values` helps us compute `_fields_set` 

250 for name, field in cls.model_fields.items(): 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

251 if field.alias and field.alias in values: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

252 fields_values[name] = values.pop(field.alias) 

253 elif name in values: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

254 fields_values[name] = values.pop(name) 25pJoKoImif_k`klf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtguggf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzhhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEijfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJjkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

255 elif not field.is_required(): 25pJoKoImif_k`k4o`llf.l/l:l;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNkOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWkXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9l!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

256 defaults[name] = field.get_default(call_default_factory=True) 25pJoKoImif_k`k4o`llf.l/l:l;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNkOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWkXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9l!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

257 if _fields_set is None: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

258 _fields_set = set(fields_values.keys()) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

259 fields_values.update(defaults) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

260 

261 _extra: Union[Dict[str, Any], None] = None 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

262 if cls.model_config.get("extra") == "allow": 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

263 _extra = {} 

264 for k, v in values.items(): 

265 _extra[k] = v 

266 # SQLModel override, do not include everything, only the model fields 

267 # else: 

268 # fields_values.update(values) 

269 # End SQLModel override 

270 # SQLModel override 

271 # Do not set __dict__, instead use setattr to trigger SQLAlchemy 

272 # object.__setattr__(new_obj, "__dict__", fields_values) 

273 # instrumentation 

274 for key, value in {**old_dict, **fields_values}.items(): 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

275 setattr(self_instance, key, value) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

276 # End SQLModel override 

277 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

278 if not cls.__pydantic_root_model__: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

279 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

280 

281 if cls.__pydantic_post_init__: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

282 self_instance.model_post_init(None) 

283 elif not cls.__pydantic_root_model__: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

284 # Note: if there are any private attributes, cls.__pydantic_post_init__ would exist 

285 # Since it doesn't, that means that `__pydantic_private__` should be set to None 

286 object.__setattr__(self_instance, "__pydantic_private__", None) 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

287 # SQLModel override, set relationships 

288 # Get and set any relationship objects 

289 for key in self_instance.__sqlmodel_relationships__: 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

290 value = values.get(key, Undefined) 2lf,c-cQdRdtd.c/c:c;c=c?c@c[c]c^c_cefN O ldmd`cP Q R S T U V W X Y Z ff0 hb1 2 ndudodvd{c|c3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbgf' tbub( ) * pdwdxdqdydzd}c~cad+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbhf] RbSb^ _ ` rdAdBdsdCdDdbdcddd{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bjf(brcsc)b*b+bEdIdJdFdKdLdfdgdhd,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOckf^bPcQc_b`b{bGdMdNdHdOdPdidjdkd|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

291 if value is not Undefined: 2lf,c-cQdRdtd.c/c:c;c=c?c@c[c]c^c_cefN O ldmd`cP Q R S T U V W X Y Z ff0 hb1 2 ndudodvd{c|c3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbgf' tbub( ) * pdwdxdqdydzd}c~cad+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbhf] RbSb^ _ ` rdAdBdsdCdDdbdcddd{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bjf(brcsc)b*b+bEdIdJdFdKdLdfdgdhd,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOckf^bPcQc_b`b{bGdMdNdHdOdPdidjdkd|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

292 setattr(self_instance, key, value) 2lf,c-cQdRdtd.c/c:c;c=c?c@c[c]c^c_cefN O ldmd`cP Q R S T U V W X Y Z ff0 hb1 2 ndudodvd{c|c3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbgf' tbub( ) * pdwdxdqdydzd}c~cad+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbhf] RbSb^ _ ` rdAdBdsdCdDdbdcddd{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bjf(brcsc)b*b+bEdIdJdFdKdLdfdgdhd,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOckf^bPcQc_b`b{bGdMdNdHdOdPdidjdkd|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

293 # End SQLModel override 

294 return self_instance 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

295 

296 def sqlmodel_validate( 1abcdef

297 cls: Type[_TSQLModel], 

298 obj: Any, 

299 *, 

300 strict: Union[bool, None] = None, 

301 from_attributes: Union[bool, None] = None, 

302 context: Union[Dict[str, Any], None] = None, 

303 update: Union[Dict[str, Any], None] = None, 

304 ) -> _TSQLModel: 

305 if not is_table_model_class(cls): 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

306 new_obj: _TSQLModel = cls.__new__(cls) 28pvq(qOpwq)qPpxq*qQpyq+qRpzq,q6pAq.q7pBq:q

307 else: 

308 # If table, create the new instance normally to make SQLAlchemy create 

309 # the _sa_instance_state attribute 

310 # The wrapper of this function should use with _partial_init() 

311 with partial_init(): 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

312 new_obj = cls() 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

313 # SQLModel Override to get class SQLAlchemy __dict__ attributes and 

314 # set them back in after creating the object 

315 old_dict = new_obj.__dict__.copy() 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

316 use_obj = obj 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

317 if isinstance(obj, dict) and update: 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

318 use_obj = {**obj, **update} 

319 elif update: 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

320 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2edicjckclcmcncocpcqc%c'c(c)c*c+c

321 cls.__pydantic_validator__.validate_python( 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

322 use_obj, 

323 strict=strict, 

324 from_attributes=from_attributes, 

325 context=context, 

326 self_instance=new_obj, 

327 ) 

328 # Capture fields set to restore it later 

329 fields_set = new_obj.__pydantic_fields_set__.copy() 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

330 if not is_table_model_class(cls): 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

331 # If not table, normal Pydantic code, set __dict__ 

332 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 28pvq(qOpwq)qPpxq*qQpyq+qRpzq,q6pAq.q7pBq:q

333 else: 

334 # Do not set __dict__, instead use setattr to trigger SQLAlchemy 

335 # instrumentation 

336 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

337 setattr(new_obj, key, value) 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

338 # Restore fields set 

339 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

340 # Get and set any relationship objects 

341 if is_table_model_class(cls): 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

342 for key in new_obj.__sqlmodel_relationships__: 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK beL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg Tdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

343 value = getattr(use_obj, key, Undefined) 1KLghiojpkqrlstmuvnwxyCDzEFAGHBIJ

344 if value is not Undefined: 1KLghiojpkqrlstmuvnwxyCDzEFAGHBIJ

345 setattr(new_obj, key, value) 

346 return new_obj 2LoMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed(q-m.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic)q{m|m}m~manbncndnenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc*qqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc+qRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc,q+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(c.qiojokolomonooopoqorosotouovowoxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c:q

347 

348 def sqlmodel_init(*, self: "SQLModel", data: Dict[str, Any]) -> None: 1Mabcdef

349 old_dict = self.__dict__.copy() 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

350 if not is_table_model_class(self.__class__): 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8fZo5qPpDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

351 self.__pydantic_validator__.validate_python( 2|qLoDrErImMoNoOoPoQoRo;q8pGq'qRqSq1qSoToUoVoWoXoae@e[e]e^eK beL ceed=q-mlrmrkm.m/m:m;m=m?m4qOpCq8qHqIqTq@m[m]m^m_m`mSdseteueveg Tdh Udic?q{mnrorlm|m}m~manbncn@qdnprqrmmenfngnhninjn5qPpDq9qJqKqUqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckc[qqnrrsrnmrnsntnunvnwn]qxntruromynznAnBnCnDn^qEnvrwrpmFnGnHnInJnKn6qQpEq!qLqMqVqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcnc_qRnxryrqmSnTnUnVnWnXn`qYnzrArrmZn0n1n2n3n4n{q5nBrCrsm6n7n8n9n!n#n7qRpFq#qNqOqWq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc}q+nFrGrCm,n-n.n/n:n;n~q=nHrIrDm?n@n[n]n^n_nar`nJrKrEm{n|n}n~naobo$q6pPq-qXqYq2qcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(cbrioLrMrFmjokolomonooocrpoNrOrGmqorosotouovodrwoPrQrHmxoyozoAoBoCo%q7pQq/qZq0q3qDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

352 data, 

353 self_instance=self, 

354 ) 

355 else: 

356 sqlmodel_table_construct( 25pJoKoImif_k`k4o`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhl2eiljlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlypQmRmkm_emfnfYoPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzfdeAfBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fzpSmTmlmApUmVmmm`e7f8fZoQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-feefe.f/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgBpWmXmnmCpYmZmomDp0m1mpm{e|ergsgtgug0oRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSggeheieTgUgVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhEp2m3mqmFp4m5mrmGp6m7msm}e~ewhxhyhzh1oSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhjekeleYhZh0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiSp8m9mCmTp!m#mDmUp$m%mEmafbfBiCiDiEi2o^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2imeneoe3i4i5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjVp'm(mFmWp)m*mGmXp+m,mHmcfdfGjHjIjJj3o_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jpeqere8j9j!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

357 self_instance=self, 

358 values=data, 

359 ) 

360 object.__setattr__( 2|qLo5pJoKoImMoNoOoPoQoRoif_k`k4o;q8pGq`llf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl=q-mypQmRmkm.m/m:m;m=m?m_emfnfYo4qOpCqPlefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f?q{mzpSmTmlm|m}m~manbncn@qdnApUmVmmmenfngnhninjn`e7f8fZo5qPpDqQlffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqg[qqnBpWmXmnmrnsntnunvnwn]qxnCpYmZmomynznAnBnCnDn^qEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgug0o6qQpEqRlgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvh_qRnEp2m3mqmSnTnUnVnWnXn`qYnFp4m5mrmZn0n1n2n3n4n{q5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh1o7qRpFqSlhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi}q+nSp8m9mCm,n-n.n/n:n;n~q=nTp!m#mDm?n@n[n]n^n_nar`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi2o$q6pPq^ljfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjbrioVp'm(mFmjokolomonooocrpoWp)m*mGmqorosotouovodrwoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj3o%q7pQq_lkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

361 self, 

362 "__dict__", 

363 {**old_dict, **self.__dict__}, 

364 ) 

365 

366else: 

367 from pydantic import BaseConfig as BaseConfig # type: ignore[assignment] 1Mabcdef

368 from pydantic.errors import ConfigError 1Mabcdef

369 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1Mabcdef

370 SHAPE_SINGLETON, 

371 ModelField, 

372 ) 

373 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1Mabcdef

374 Undefined as Undefined, # noqa 

375 ) 

376 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1Mabcdef

377 UndefinedType as UndefinedType, 

378 ) 

379 from pydantic.main import ( # type: ignore[no-redef] 1Mabcdef

380 ModelMetaclass as ModelMetaclass, 

381 ) 

382 from pydantic.main import validate_model 1Mabcdef

383 from pydantic.typing import resolve_annotations 1Mabcdef

384 from pydantic.utils import ROOT_KEY, ValueItems 1Mabcdef

385 from pydantic.utils import ( # type: ignore[no-redef] 1Mabcdef

386 Representation as Representation, 

387 ) 

388 

389 class SQLModelConfig(BaseConfig): # type: ignore[no-redef] 1Mabcdef

390 table: Optional[bool] = None # type: ignore[misc] 1Mabcdef

391 registry: Optional[Any] = None # type: ignore[misc] 1Mabcdef

392 

393 def get_config_value( 1abcdef

394 *, model: InstanceOrType["SQLModel"], parameter: str, default: Any = None 

395 ) -> Any: 

396 return getattr(model.__config__, parameter, default) # type: ignore[union-attr] 2M if_k`khqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVra _emfnfjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRrb `e7f8flqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSrc {e|ergsgtgugnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTrd }e~ewhxhyhzhpqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUre afbfBiCiDiEirqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrf cfdfGjHjIjJjtquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

397 

398 def set_config_value( 1abcdef

399 *, 

400 model: InstanceOrType["SQLModel"], 

401 parameter: str, 

402 value: Any, 

403 ) -> None: 

404 setattr(model.__config__, parameter, value) # type: ignore 2M if_k`khqiq$oHpYper`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpfrPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pgrQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1phrRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pirSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3pjr^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4pkr_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

405 

406 def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, "FieldInfo"]: 1Mabcdef

407 return model.__fields__ # type: ignore 2M if_k`khqiq$oHpYper`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpfrPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pgrQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1phrRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pirSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3pjr^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4pkr_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

408 

409 def get_fields_set( 1abcdef

410 object: InstanceOrType["SQLModel"], 

411 ) -> Union[Set[str], Callable[[BaseModel], Set[str]]]: 

412 return object.__fields_set__ 2GqCqDqEqFqPqQq

413 

414 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1Mabcdef

415 object.__setattr__(new_object, "__fields_set__", set()) 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k;q8pvqGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpwqCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPpxqDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpyqEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpzqFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pAqPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pBqQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

416 

417 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1Mabcdef

418 return resolve_annotations( # type: ignore[no-any-return] 2M if_k`khqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVra _emfnfjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRrb `e7f8flqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSrc {e|ergsgtgugnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTrd }e~ewhxhyhzhpqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUre afbfBiCiDiEirqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrf cfdfGjHjIjJjtquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

419 class_dict.get("__annotations__", {}), 

420 class_dict.get("__module__", None), 

421 ) 

422 

423 def is_table_model_class(cls: Type[Any]) -> bool: 1Mabcdef

424 config = getattr(cls, "__config__", None) 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k;q8phqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVra =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRrb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPplqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSrc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTrd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRppqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUre }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6prqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7ptquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

425 if config: 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k;q8phqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVra =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRrb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPplqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSrc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTrd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRppqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUre }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6prqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7ptquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

426 return getattr(config, "table", False) 2M |qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k;q8phqiq$oHpYperGq`l'qlf.l/l:l^pcm5o_pJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVra =q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpjqkq)oIpZpfrCqPl8qefLkMkNk`p{l6o{pKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRrb ?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPplqmq-oJp0pgrDqQl9qffUkVkWk|p|l7o}pLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSrc [qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpnqoq=oKp1phrEqRl!qgf3k4k5k~p}l8oaqMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{oLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTrd _qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRppqqq|oLp2pirFqSl#qhf*k+k,kbq~l9ocqNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUre }q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6prqsqgpMp3pjrPq^l-qjfTlUlVldqam!oeqOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpopcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrf brioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7ptquqppNp4pkrQq_l/qkf7l8l9lfqbm#ogqPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxpDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

427 return False 

428 

429 def get_relationship_to( 1abcdef

430 name: str, 

431 rel_info: "RelationshipInfo", 

432 annotation: Any, 

433 ) -> Any: 

434 temp_field = ModelField.infer( # type: ignore[attr-defined] 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

435 name=name, 

436 value=rel_info, 

437 annotation=annotation, 

438 class_validators=None, 

439 config=SQLModelConfig, 

440 ) 

441 relationship_to = temp_field.type_ 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

442 if isinstance(temp_field.type_, ForwardRef): 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

443 relationship_to = temp_field.type_.__forward_arg__ 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

444 return relationship_to 2Jm,c-cK L QdRdtd.c/cdm:c;c=c?c@c[c]c^c_cKmN O g h ldmd`cP Q emR S T U V W X Y Z Lm0 hb1 2 i o j p ndudodvd{c|c3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbMm' tbub( ) * k q r l s t pdwdxdqdydzd}c~cad+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbNm] RbSb^ _ ` m u v n w x rdAdBdsdCdDdbdcddd{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bOm(brcsc)b*b+by C D z E F EdIdJdFdKdLdfdgdhd,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOcPm^bPcQc_b`b{bA G H B I J GdMdNdHdOdPdidjdkd|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

445 

446 def is_field_noneable(field: "FieldInfo") -> bool: 1Mabcdef

447 if not field.required: # type: ignore[attr-defined] 2M if_k`khqiq$oHpYp`llf.l/l:lcm5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk{l6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|l7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k}l8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,k~l9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVlam!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lbm#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

448 # Taken from [Pydantic](https://github.com/samuelcolvin/pydantic/blob/v1.8.2/pydantic/fields.py#L946-L947) 

449 return field.allow_none and ( # type: ignore[attr-defined] 2M if_k`k$oHp`llf.l/l:lcm5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnf)oIpPlefLkMkNk{l6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8f-oJpQlffUkVkWk|l7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgug=oKpRlgf3k4k5k}l8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzh|oLpSlhf*k+k,k~l9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEigpMp^ljfTlUlVlam!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjppNp_lkf7l8l9lbm#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

450 field.shape != SHAPE_SINGLETON or not field.sub_fields # type: ignore[attr-defined] 

451 ) 

452 return field.allow_none # type: ignore[no-any-return, attr-defined] 2M if_k`khqiq$oYp`llf.l/l:l5oJm;l{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oZpPlefLkMkNk6oKmOkofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-o0pQlffUkVkWk7oLmXk9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=o1pRlgf3k4k5k8oMm6kvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|o2pSlhf*k+k,k9oNm-kAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgp3p^ljfTlUlVl!oOmWlFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqpp4p_lkf7l8l9l#oPm!lKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

453 

454 def get_sa_type_from_field(field: Any) -> Any: 1Mabcdef

455 if isinstance(field.type_, type) and field.shape == SHAPE_SINGLETON: 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

456 return field.type_ 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

457 raise ValueError(f"The field {field.name} has no matching SQLAlchemy type") 29p!p#p$p%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[p]p

458 

459 def get_field_metadata(field: Any) -> Any: 1Mabcdef

460 metadata = FakeMetadata() 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

461 metadata.max_length = field.field_info.max_length 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

462 metadata.max_digits = getattr(field.type_, "max_digits", None) 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

463 metadata.decimal_places = getattr(field.type_, "decimal_places", None) 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

464 return metadata 2M if_k`khqiq$oHpYp`llf.l/l:l^pcm5o_pJm;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpPlefLkMkNk`p{l6o{pKmOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pQlffUkVkWk|p|l7o}pLmXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1pRlgf3k4k5k~p}l8oaqMm6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pSlhf*k+k,kbq~l9ocqNm-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3p^ljfTlUlVldqam!oeqOmWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4p_lkf7l8l9lfqbm#ogqPm!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

465 

466 def post_init_field_info(field_info: FieldInfo) -> None: 1Mabcdef

467 field_info._validate() # type: ignore[attr-defined] 2M if_k`khqiq$oHpYperYrZrGq`l'qlf.l/l:l^pcm5o_p0rJmRqSq1q;l9p!p#p{k|k,c-c%o}k~kalblcldlelfl'o(oglhlae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/cdm:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOla _emfnfjqkq)oIpZpfr1r2rCqPl8qefLkMkNk`p{l6o{p3rKmHqIqTqOk$p%p'pofpfN O *oqfrfsftfufvfwfxf+o,oyfzfSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q emR S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fb `e7f8flqmq-oJp0pgr4r5rDqQl9qffUkVkWk|p|l7o}p6rLmJqKqUqXk(p)p*p9f!f0 hb1 2 .o#f$f%f'f(f)f*f+f/o:o,f-f;oVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jbfmtm5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgc {e|ergsgtgugnqoq=oKp1phr7r8rEqRl!qgf3k4k5k~p}l8oaq9rMmLqMqVq6k+p,p-pvgwgxgyg' tbub( ) * ?o@ozgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOg[o]o^o_oPgQgRgSg`o{o1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbybgmumvm- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhd }e~ewhxhyhzhpqqq|oLp2pir!r#rFqSl#qhf*k+k,kbq~l9ocq$rNmNqOqWq-k.p/p:pAhBhChDh] RbSb^ _ ` }o~oEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThapbpcpdpUhVhWhXhepfp!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWbhmwmxm} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAie afbfBiCiDiEirqsqgpMp3pjr%r'rPq^l-qjfTlUlVldqam!oeq(rOmXqYq2qWl;p=p?pFiGiHiIi(brcsc)b*b+bhpipJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYijpkplpmpZi0i1i2inpop,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwcimymzm.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjf cfdfGjHjIjJjtquqppNp4pkr)r*rQq_l/qkf7l8l9lfqbm#ogq+rPmZq0q3q!l@p[p]pKjLjMjNj^bPcQc_b`b{bqprpOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3jsptpupvp4j5j6j7jwpxp[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUcjmAmBm~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

468 

469 def _calculate_keys( 1abcdef

470 self: "SQLModel", 

471 include: Optional[Mapping[Union[int, str], Any]], 

472 exclude: Optional[Mapping[Union[int, str], Any]], 

473 exclude_unset: bool, 

474 update: Optional[Dict[str, Any]] = None, 

475 ) -> Optional[AbstractSet[str]]: 

476 if include is None and exclude is None and not exclude_unset: 2LoJoKoImMoNoOoPoQoRoif_k`k;q{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlklllmlnlolQdRdtdplqlrlsltlulvl.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl-mQmRmkm.m/m:m;m=m?m_emfnf4qofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfDfEfFfGfldmd`cHfIfJfKfLfMfNfP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjn`e7f8f5q9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:f;f=f?f@fndudodvd{c|c[f]f^f_f`f{f|f3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKn{e|ergsgtgug6qvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYgZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g9g!g#g$g%g'g(g)g*g+g,g-g+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h'h(h)h*h+h,h-h.h/h:h;h=h{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naoboafbfBiCiDiEi$qFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8i9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i,i-i.i/i:i;i=i?i@i[i]i^i,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCocfdfGjHjIjJj%qKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j;j=j?j@j[j]j^j_j`j{j|j}j|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

477 # Original in Pydantic: 

478 # return None 

479 # Updated to not return SQLAlchemy attributes 

480 # Do not include relationships as that would easily lead to infinite 

481 # recursion, or traversing the whole database 

482 return ( 2-mQmRmkm.m/m:m;m=m?m_emfnf4qofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfDfEfFfGfldmd`cHfIfJfKfLfMfNfP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjn`e7f8f5q9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:f;f=f?f@fndudodvd{c|c[f]f^f_f`f{f|f3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKn{e|ergsgtgug6qvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYgZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g9g!g#g$g%g'g(g)g*g+g,g-g+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h'h(h)h*h+h,h-h.h/h:h;h=h{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naoboafbfBiCiDiEi$qFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8i9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i,i-i.i/i:i;i=i?i@i[i]i^i,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCocfdfGjHjIjJj%qKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j;j=j?j@j[j]j^j_j`j{j|j}j|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

483 self.__fields__.keys() # noqa 

484 ) # | self.__sqlmodel_relationships__.keys() 

485 

486 keys: AbstractSet[str] 

487 if exclude_unset: 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

488 keys = self.__fields_set__.copy() # noqa 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

489 else: 

490 # Original in Pydantic: 

491 # keys = self.__dict__.keys() 

492 # Updated to not return SQLAlchemy attributes 

493 # Do not include relationships as that would easily lead to infinite 

494 # recursion, or traversing the whole database 

495 keys = ( 

496 self.__fields__.keys() # noqa 

497 ) # | self.__sqlmodel_relationships__.keys() 

498 if include is not None: 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

499 keys &= include.keys() 

500 

501 if update: 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

502 keys -= update.keys() 

503 

504 if exclude: 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

505 keys -= {k for k, v in exclude.items() if ValueItems.is_true(v)} 

506 

507 return keys 2ImaeK beL ceedkmSdg Tdh UdiclmmmVdWdi o XdYdj p Zd0djckcnmompm1d2d3dk q r 4d5d6dl s t 7d8d9dlcmcncqmrmsm!d#d$dm u v %d'd(dn w x )d*d+docpcqcCmDmEm,d-d.dy C D /d:d;dz E F =d?d@d%c'c(cFmGmHm[d]d^dA G H _d`d{dB I J |d}d~d)c*c+c

508 

509 def sqlmodel_validate( 1abcdef

510 cls: Type[_TSQLModel], 

511 obj: Any, 

512 *, 

513 strict: Union[bool, None] = None, 

514 from_attributes: Union[bool, None] = None, 

515 context: Union[Dict[str, Any], None] = None, 

516 update: Union[Dict[str, Any], None] = None, 

517 ) -> _TSQLModel: 

518 # This was SQLModel's original from_orm() for Pydantic v1 

519 # Duplicated from Pydantic 

520 if not cls.__config__.orm_mode: # type: ignore[attr-defined] # noqa 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

521 raise ConfigError( 

522 "You must have the config attribute orm_mode=True to use from_orm" 

523 ) 

524 if not isinstance(obj, Mapping): 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

525 obj = ( 2-mQmRmkm.m/m:m;m=m?mOp@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRp$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

526 {ROOT_KEY: obj} 

527 if cls.__custom_root_type__ # type: ignore[attr-defined] # noqa 

528 else cls._decompose_class(obj) # type: ignore[attr-defined] # noqa 

529 ) 

530 # SQLModel, support update dict 

531 if update is not None: 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

532 obj = {**obj, **update} 2edicjckclcmcncocpcqc%c'c(c)c*c+c

533 # End SQLModel support dict 

534 if not getattr(cls.__config__, "table", False): # noqa 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

535 # If not table, normal Pydantic code 

536 m: _TSQLModel = cls.__new__(cls) 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

537 else: 

538 # If table, create the new instance normally to make SQLAlchemy create 

539 # the _sa_instance_state attribute 

540 m = cls() 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg deTdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

541 values, fields_set, validation_error = validate_model(cls, obj) 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

542 if validation_error: 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

543 raise validation_error 

544 # Updated to trigger SQLAlchemy internal handling 

545 if not getattr(cls.__config__, "table", False): # noqa 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

546 object.__setattr__(m, "__dict__", values) 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK beL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg Tdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+c

547 else: 

548 for key, value in values.items(): 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg deTdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

549 setattr(m, key, value) 2LoMoNoOoPoQoRoSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-m.m/m:m;m=m?m@m[m]m^m_m`mSdseteueveg deTdh Udic{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(ciojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

550 # Continue with standard Pydantic logic 

551 object.__setattr__(m, "__fields_set__", fields_set) 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

552 m._init_private_attributes() # type: ignore[attr-defined] # noqa 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

553 return m 2LoJoKoImMoNoOoPoQoRo8pvqSoToUoVoWoXoae@e[e]e^eK 2ebeL ceed-mQmRmkm.m/m:m;m=m?mOpwq@m[m]m^m_m`mSdseteueveg deTdh Udic{mSmTmlm|m}m~manbncndnUmVmmmenfngnhninjnPpxqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYdj p Zd0djckcqnWmXmnmrnsntnunvnwnxnYmZmomynznAnBnCnDnEn0m1mpmFnGnHnInJnKnQpyqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dl s t 7d8d9dlcmcncRn2m3mqmSnTnUnVnWnXnYn4m5mrmZn0n1n2n3n4n5n6m7msm6n7n8n9n!n#nRpzq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dn w x )d*d+docpcqc+n8m9mCm,n-n.n/n:n;n=n!m#mDm?n@n[n]n^n_n`n$m%mEm{n|n}n~naobo6pAqcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;dz E F =d?d@d%c'c(cio'm(mFmjokolomonooopo)m*mGmqorosotouovowo+m,mHmxoyozoAoBoCo7pBqDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{dB I J |d}d~d)c*c+c

554 

555 def sqlmodel_init(*, self: "SQLModel", data: Dict[str, Any]) -> None: 1Mabcdef

556 values, fields_set, validation_error = validate_model(self.__class__, data) 2|qLoDrEr5pJoKoImMoNoOoPoQoRoif_k`k;q8pGq`l'qlf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPpDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nFrGrSp8m9mCm,n-n.n/n:n;n~q=nHrIrTp!m#mDm?n@n[n]n^n_nar`nJrKrUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pPq^l-qjfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioLrMrVp'm(mFmjokolomonooocrpoNrOrWp)m*mGmqorosotouovodrwoPrQrXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pQq_l/qkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

557 # Only raise errors if not a SQLModel model 

558 if ( 2=q-mlrmrypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPl8qefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mnrorzpSmTmlm|m}m~manbncn@qdnprqrApUmVmmmenfngnhninjn`e7f8f5qPpDqQl9qffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnrrsrBpWmXmnmrnsntnunvnwn]qxntrurCpYmZmomynznAnBnCnDn^qEnvrwrDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRl!qgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnxryrEp2m3mqmSnTnUnVnWnXn`qYnzrArFp4m5mrmZn0n1n2n3n4n{q5nBrCrGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSl#qhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr

559 not is_table_model_class(self.__class__) # noqa 

560 and validation_error 

561 ): 

562 raise validation_error 2DrEr'qRqSqVrlrmr8qHqIqRrnrorprqr9qJqKqSrrrsrtrurvrwr!qLqMqTrxryrzrArBrCr#qNqOqUrFrGrHrIrJrKr-qXqYqWrLrMrNrOrPrQr/qZq0qXr

563 if not is_table_model_class(self.__class__): 2|qLo5pJoKoImMoNoOoPoQoRoif_k`k;q8pGq`llf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPlefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mzpSmTmlm|m}m~manbncn@qdnApUmVmmmenfngnhninjn`e7f8f5qPpDqQlffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnBpWmXmnmrnsntnunvnwn]qxnCpYmZmomynznAnBnCnDn^qEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRlgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnEp2m3mqmSnTnUnVnWnXn`qYnFp4m5mrmZn0n1n2n3n4n{q5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSlhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nSp8m9mCm,n-n.n/n:n;n~q=nTp!m#mDm?n@n[n]n^n_nar`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pPq^ljfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioVp'm(mFmjokolomonooocrpoWp)m*mGmqorosotouovodrwoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pQq_lkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

564 object.__setattr__(self, "__dict__", values) 2|qLoImMoNoOoPoQoRo;q8pGqRqSq1qSoToUoVoWoXoae@e[e]e^eK beL ceedVr=q-mkm.m/m:m;m=m?m4qOpCqHqIqTq@m[m]m^m_m`mSdseteueveg Tdh UdicRr?q{mlm|m}m~manbncn@qdnmmenfngnhninjn5qPpDqJqKqUqknlnmnnnonpnVdWdwexeyezeAeBeCeDei o XdYdj p Zd0djckcSr[qqnnmrnsntnunvnwn]qxnomynznAnBnCnDn^qEnpmFnGnHnInJnKn6qQpEqLqMqVqLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r 4d5d6dl s t 7d8d9dlcmcncTr_qRnqmSnTnUnVnWnXn`qYnrmZn0n1n2n3n4n{q5nsm6n7n8n9n!n#n7qRpFqNqOqWq$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v %d'd(dn w x )d*d+docpcqcUr}q+nCm,n-n.n/n:n;n~q=nDm?n@n[n]n^n_nar`nEm{n|n}n~naobo$q6pPqXqYq2qcodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D /d:d;dz E F =d?d@d%c'c(cWrbrioFmjokolomonooocrpoGmqorosotouovodrwoHmxoyozoAoBoCo%q7pQqZq0q3qDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H _d`d{dB I J |d}d~d)c*c+cXr

565 else: 

566 # Do not set values as in Pydantic, pass them through setattr, so 

567 # SQLAlchemy can handle them 

568 for key, value in values.items(): 2Lo5pJoKoImMoNoOoPoQoRoif_k`k`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl-mypQmRmkm.m/m:m;m=m?m_emfnfPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f{mzpSmTmlm|m}m~manbncndnApUmVmmmenfngnhninjn`e7f8fQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgqnBpWmXmnmrnsntnunvnwnxnCpYmZmomynznAnBnCnDnEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgugRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhRnEp2m3mqmSnTnUnVnWnXnYnFp4m5mrmZn0n1n2n3n4n5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzhSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi+nSp8m9mCm,n-n.n/n:n;n=nTp!m#mDm?n@n[n]n^n_n`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjioVp'm(mFmjokolomonooopoWp)m*mGmqorosotouovowoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

569 setattr(self, key, value) 2Lo5pJoKoImMoNoOoPoQoRoif_k`k`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl-mypQmRmkm.m/m:m;m=m?m_emfnfPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f{mzpSmTmlm|m}m~manbncndnApUmVmmmenfngnhninjn`e7f8fQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgqnBpWmXmnmrnsntnunvnwnxnCpYmZmomynznAnBnCnDnEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgugRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhRnEp2m3mqmSnTnUnVnWnXnYnFp4m5mrmZn0n1n2n3n4n5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzhSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi+nSp8m9mCm,n-n.n/n:n;n=nTp!m#mDm?n@n[n]n^n_n`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjioVp'm(mFmjokolomonooopoWp)m*mGmqorosotouovowoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

570 object.__setattr__(self, "__fields_set__", fields_set) 2|qLo5pJoKoImMoNoOoPoQoRoif_k`k;q8pGq`llf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPlefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mzpSmTmlm|m}m~manbncn@qdnApUmVmmmenfngnhninjn`e7f8f5qPpDqQlffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnBpWmXmnmrnsntnunvnwn]qxnCpYmZmomynznAnBnCnDn^qEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRlgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnEp2m3mqmSnTnUnVnWnXn`qYnFp4m5mrmZn0n1n2n3n4n{q5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSlhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nSp8m9mCm,n-n.n/n:n;n~q=nTp!m#mDm?n@n[n]n^n_nar`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pPq^ljfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioVp'm(mFmjokolomonooocrpoWp)m*mGmqorosotouovodrwoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pQq_lkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

571 non_pydantic_keys = data.keys() - values.keys() 2|qLo5pJoKoImMoNoOoPoQoRoif_k`k;q8pGq`llf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPlefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mzpSmTmlm|m}m~manbncn@qdnApUmVmmmenfngnhninjn`e7f8f5qPpDqQlffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnBpWmXmnmrnsntnunvnwn]qxnCpYmZmomynznAnBnCnDn^qEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRlgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnEp2m3mqmSnTnUnVnWnXn`qYnFp4m5mrmZn0n1n2n3n4n{q5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSlhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nSp8m9mCm,n-n.n/n:n;n~q=nTp!m#mDm?n@n[n]n^n_nar`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pPq^ljfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioVp'm(mFmjokolomonooocrpoWp)m*mGmqorosotouovodrwoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pQq_lkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

572 

573 if is_table_model_class(self.__class__): 2|qLo5pJoKoImMoNoOoPoQoRoif_k`k;q8pGq`llf.l/l:lcmRqSq1q;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlVr=q-mypQmRmkm.m/m:m;m=m?m_emfnf4qOpCqPlefLkMkNk{lHqIqTqOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6fRr?q{mzpSmTmlm|m}m~manbncn@qdnApUmVmmmenfngnhninjn`e7f8f5qPpDqQlffUkVkWk|lJqKqUqXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgSr[qqnBpWmXmnmrnsntnunvnwn]qxnCpYmZmomynznAnBnCnDn^qEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgug6qQpEqRlgf3k4k5k}lLqMqVq6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhTr_qRnEp2m3mqmSnTnUnVnWnXn`qYnFp4m5mrmZn0n1n2n3n4n{q5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzh7qRpFqSlhf*k+k,k~lNqOqWq-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiUr}q+nSp8m9mCm,n-n.n/n:n;n~q=nTp!m#mDm?n@n[n]n^n_nar`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi$q6pPq^ljfTlUlVlamXqYq2qWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjWrbrioVp'm(mFmjokolomonooocrpoWp)m*mGmqorosotouovodrwoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj%q7pQq_lkf7l8l9lbmZq0q3q!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkXr

574 for key in non_pydantic_keys: 2Lo5pJoKoImMoNoOoPoQoRoif_k`k`llf.l/l:lcm;l{k|k,c-c}k~kalblcldlelflglhlSoToUoVoWoXoae@e[e]e^eK 2ebeilL ceedjlkl=l?l@lllmlnlolQdRdtdpl[lqlrlsltlulvl]l.c/c:c;c=c?c@c[c]c^c_cwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOl-mypQmRmkm.m/m:m;m=m?m_emfnfPlefLkMkNk{lOkofpfN O qfrfsftfufvfwfxfyfzf@m[m]m^m_m`mSdseteueveg deTdAfh UdicBfCfPkQkRkDfEfFfGfldmd`cHfSkIfJfKfLfMfNfTkP Q R S T U V W X Y Z OfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f{mzpSmTmlm|m}m~manbncndnApUmVmmmenfngnhninjn`e7f8fQlffUkVkWk|lXk9f!f0 hb1 2 #f$f%f'f(f)f*f+f,f-fknlnmnnnonpnVdWdwexeyezeAeBeCeDei o eefeXdYd.fj p Zd0djckc/f:fYkZk0k;f=f?f@fndudodvd{c|c[f1k]f^f_f`f{f|f2k3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sb}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgqnBpWmXmnmrnsntnunvnwnxnCpYmZmomynznAnBnCnDnEnDp0m1mpmFnGnHnInJnKn{e|ergsgtgugRlgf3k4k5k}l6kvgwgxgyg' tbub( ) * zgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgLnMnNnOnPnQn1d2d3dEeFeGeHeIeJeKeLeMeNeOePek q r geheie4d5d6dTgUgl s t 7d8d9dlcmcncVgWgXgYg7k8k9k!k#k$kZg0g1g2g3g4g5g6gpdwdxdqdydzd}c~cad7g8g%k'k9g!g#g$g%g'g(g)g*g+g,g-g(k)k+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQb.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhRnEp2m3mqmSnTnUnVnWnXnYnFp4m5mrmZn0n1n2n3n4n5nGp6m7msm6n7n8n9n!n#n}e~ewhxhyhzhSlhf*k+k,k~l-kAhBhChDh] RbSb^ _ ` EhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXh$n%n'n(n)n*n!d#d$dQeReSeTeUeVeWeXeYeZe0e1em u v jekele%d'd(dYhZhn w x )d*d+docpcqc0h1h2h3h.k/k:k;k=k?k4h5h6h7h8h9h!h#hrdAdBdsdCdDdbdcddd$h%h@k[k'h(h)h*h+h,h-h.h/h:h;h=h]k^k{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'b?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAi+nSp8m9mCm,n-n.n/n:n;n=nTp!m#mDm?n@n[n]n^n_n`nUp$m%mEm{n|n}n~naoboafbfBiCiDiEi^ljfTlUlVlamWlFiGiHiIi(brcsc)b*b+bJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2icodoeofogoho,d-d.d3e4e5e6e7e8e9e!e#e$e%e'ey C D meneoe/d:d;d3i4iz E F =d?d@d%c'c(c5i6i7i8iXlYlZl0l1l2l9i!i#i$i%i'i(i)iEdIdJdFdKdLdfdgdhd*i+i3l4l,i-i.i/i:i;i=i?i@i[i]i^i5l6l,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOc_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjioVp'm(mFmjokolomonooopoWp)m*mGmqorosotouovowoXp+m,mHmxoyozoAoBoCocfdfGjHjIjJj_lkf7l8l9lbm!lKjLjMjNj^bPcQc_b`b{bOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7jDoEoFoGoHoIo[d]d^d(e)e*e+e,e-e.e/e:e;e=e?eA G H peqere_d`d{d8j9jB I J |d}d~d)c*c+c!j#j$j%j#l$l%l'l(l)l'j(j)j*j+j,j-j.jGdMdNdHdOdPdidjdkd/j:j*l+l;j=j?j@j[j]j^j_j`j{j|j}j,l-l|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKk

575 if key in self.__sqlmodel_relationships__: 2lf,c-cQdRdtd.c/c:c;c=c?c@c[c]c^c_cefN O ldmd`cP Q R S T U V W X Y Z ff0 hb1 2 ndudodvd{c|c3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbgf' tbub( ) * pdwdxdqdydzd}c~cad+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbhf] RbSb^ _ ` rdAdBdsdCdDdbdcddd{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bjf(brcsc)b*b+bEdIdJdFdKdLdfdgdhd,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOckf^bPcQc_b`b{bGdMdNdHdOdPdidjdkd|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c

576 setattr(self, key, data[key]) 2lf,c-cQdRdtd.c/c:c;c=c?c@c[c]c^c_cefN O ldmd`cP Q R S T U V W X Y Z ff0 hb1 2 ndudodvd{c|c3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qb$ rb% sbgf' tbub( ) * pdwdxdqdydzd}c~cad+ vbwb, xbyb- zbAb. BbCb/ DbEb: FbGb; HbIb= JbKb? LbMb@ NbOb[ PbQbhf] RbSb^ _ ` rdAdBdsdCdDdbdcddd{ TbUb| VbWb} XbYb~ Zb0bab1b2bbb3b4bcb5b6bdb7b8beb9b!bfb#b$bgb%b'bjf(brcsc)b*b+bEdIdJdFdKdLdfdgdhd,btcuc-bvcwc.bxcyc/bzcAc:bBcCc;bDcEc=bFcGc?bHcIc@bJcKc[bLcMc]bNcOckf^bPcQc_b`b{bGdMdNdHdOdPdidjdkd|bRcSc}bTcUc~bVcWcacXcYcbcZc0ccc1c2cdc3c4cec5c6cfc7c8cgc9c!chc#c$c