Coverage for sqlmodel/main.py: 93%

353 statements  

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

1import ipaddress 1fabcde

2import uuid 1fabcde

3import weakref 1fabcde

4from datetime import date, datetime, time, timedelta 1fabcde

5from decimal import Decimal 1fabcde

6from enum import Enum 1fabcde

7from pathlib import Path 1fabcde

8from typing import ( 1fabcde

9 TYPE_CHECKING, 

10 AbstractSet, 

11 Any, 

12 Callable, 

13 ClassVar, 

14 Dict, 

15 List, 

16 Mapping, 

17 Optional, 

18 Sequence, 

19 Set, 

20 Tuple, 

21 Type, 

22 TypeVar, 

23 Union, 

24 cast, 

25 overload, 

26) 

27 

28from pydantic import BaseModel, EmailStr 1fabcde

29from pydantic.fields import FieldInfo as PydanticFieldInfo 1fabcde

30from sqlalchemy import ( 1fabcde

31 Boolean, 

32 Column, 

33 Date, 

34 DateTime, 

35 Float, 

36 ForeignKey, 

37 Integer, 

38 Interval, 

39 Numeric, 

40 inspect, 

41) 

42from sqlalchemy import Enum as sa_Enum 1fabcde

43from sqlalchemy.orm import ( 1fabcde

44 Mapped, 

45 RelationshipProperty, 

46 declared_attr, 

47 registry, 

48 relationship, 

49) 

50from sqlalchemy.orm.attributes import set_attribute 1fabcde

51from sqlalchemy.orm.decl_api import DeclarativeMeta 1fabcde

52from sqlalchemy.orm.instrumentation import is_instrumented 1fabcde

53from sqlalchemy.sql.schema import MetaData 1fabcde

54from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid 1fabcde

55from typing_extensions import Literal, deprecated, get_origin 1fabcde

56 

57from ._compat import ( # type: ignore[attr-defined] 1fabcde

58 IS_PYDANTIC_V2, 

59 PYDANTIC_VERSION, 

60 BaseConfig, 

61 ModelField, 

62 ModelMetaclass, 

63 Representation, 

64 SQLModelConfig, 

65 Undefined, 

66 UndefinedType, 

67 _calculate_keys, 

68 finish_init, 

69 get_annotations, 

70 get_config_value, 

71 get_field_metadata, 

72 get_model_fields, 

73 get_relationship_to, 

74 get_sa_type_from_field, 

75 init_pydantic_private_attrs, 

76 is_field_noneable, 

77 is_table_model_class, 

78 post_init_field_info, 

79 set_config_value, 

80 sqlmodel_init, 

81 sqlmodel_validate, 

82) 

83from .sql.sqltypes import AutoString 1fabcde

84 

85if TYPE_CHECKING: 1fabcde

86 from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 

87 from pydantic._internal._repr import Representation as Representation 

88 from pydantic_core import PydanticUndefined as Undefined 

89 from pydantic_core import PydanticUndefinedType as UndefinedType 

90 

91_T = TypeVar("_T") 1fabcde

92NoArgAnyCallable = Callable[[], Any] 1fabcde

93IncEx = Union[Set[int], Set[str], Dict[int, Any], Dict[str, Any], None] 1fabcde

94OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] 1fabcde

95 

96 

97def __dataclass_transform__( 1abcde

98 *, 

99 eq_default: bool = True, 

100 order_default: bool = False, 

101 kw_only_default: bool = False, 

102 field_descriptors: Tuple[Union[type, Callable[..., Any]], ...] = (()), 

103) -> Callable[[_T], _T]: 

104 return lambda a: a 1fabcde

105 

106 

107class FieldInfo(PydanticFieldInfo): 1fabcde

108 def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: 1fabcde

109 primary_key = kwargs.pop("primary_key", False) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

110 nullable = kwargs.pop("nullable", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

111 foreign_key = kwargs.pop("foreign_key", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

112 ondelete = kwargs.pop("ondelete", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

113 unique = kwargs.pop("unique", False) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

114 index = kwargs.pop("index", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

115 sa_type = kwargs.pop("sa_type", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

116 sa_column = kwargs.pop("sa_column", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

117 sa_column_args = kwargs.pop("sa_column_args", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

118 sa_column_kwargs = kwargs.pop("sa_column_kwargs", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

119 if sa_column is not Undefined: 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

120 if sa_column_args is not Undefined: 2JkfmloEmroDoxo~lxmBltkgmmoFmsoEoyoamymwlukhmnoGmtoFozobmzmxlvkimooHmuoGoAocmAmylwkjmpoImvoHoBodmBmzlxkkmqoJmwoIoCoemCmAl

121 raise RuntimeError( 2DoEoFoGoHoIo

122 "Passing sa_column_args is not supported when " 

123 "also passing a sa_column" 

124 ) 

125 if sa_column_kwargs is not Undefined: 2JkfmloEmroxo~lxmBltkgmmoFmsoyoamymwlukhmnoGmtozobmzmxlvkimooHmuoAocmAmylwkjmpoImvoBodmBmzlxkkmqoJmwoCoemCmAl

126 raise RuntimeError( 2xoyozoAoBoCo

127 "Passing sa_column_kwargs is not supported when " 

128 "also passing a sa_column" 

129 ) 

130 if primary_key is not Undefined: 2JkfmloEmro~lxmBltkgmmoFmsoamymwlukhmnoGmtobmzmxlvkimooHmuocmAmylwkjmpoImvodmBmzlxkkmqoJmwoemCmAl

131 raise RuntimeError( 2rosotouovowo

132 "Passing primary_key is not supported when " 

133 "also passing a sa_column" 

134 ) 

135 if nullable is not Undefined: 2JkfmloEm~lxmBltkgmmoFmamymwlukhmnoGmbmzmxlvkimooHmcmAmylwkjmpoImdmBmzlxkkmqoJmemCmAl

136 raise RuntimeError( 2lomonooopoqo

137 "Passing nullable is not supported when also passing a sa_column" 

138 ) 

139 if foreign_key is not Undefined: 2JkfmEm~lxmBltkgmFmamymwlukhmGmbmzmxlvkimHmcmAmylwkjmImdmBmzlxkkmJmemCmAl

140 raise RuntimeError( 2Jktkukvkwkxk

141 "Passing foreign_key is not supported when " 

142 "also passing a sa_column" 

143 ) 

144 if ondelete is not Undefined: 2fmEm~lxmBlgmFmamymwlhmGmbmzmxlimHmcmAmyljmImdmBmzlkmJmemCmAl

145 raise RuntimeError( 2EmFmGmHmImJm

146 "Passing ondelete is not supported when also passing a sa_column" 

147 ) 

148 if unique is not Undefined: 2fm~lxmBlgmamymwlhmbmzmxlimcmAmyljmdmBmzlkmemCmAl

149 raise RuntimeError( 2xmymzmAmBmCm

150 "Passing unique is not supported when also passing a sa_column" 

151 ) 

152 if index is not Undefined: 2fm~lBlgmamwlhmbmxlimcmyljmdmzlkmemAl

153 raise RuntimeError( 2fmgmhmimjmkm

154 "Passing index is not supported when also passing a sa_column" 

155 ) 

156 if sa_type is not Undefined: 2~lBlamwlbmxlcmyldmzlemAl

157 raise RuntimeError( 2~lambmcmdmem

158 "Passing sa_type is not supported when also passing a sa_column" 

159 ) 

160 if ondelete is not Undefined: 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

161 if foreign_key is Undefined: 2^l|cYc6cZc0c1c_l[c* Tb+ 2 , `l]c; = 4b5b? @ 3 4 [ ] {l^c~ abbb/b:b;bcbdbeb5 6 7 fbgbhb|l_cobpbqbgchcicrbsbtb8 9 ! ubvbwb}l`cDbEbFbBcCcDcGbHbIb# $ % JbKbLb

162 raise RuntimeError("ondelete can only be used with foreign_key") 2^l_l`l{l|l}l

163 super().__init__(default=default, **kwargs) 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

164 self.primary_key = primary_key 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

165 self.nullable = nullable 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

166 self.foreign_key = foreign_key 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

167 self.ondelete = ondelete 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

168 self.unique = unique 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

169 self.index = index 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

170 self.sa_type = sa_type 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

171 self.sa_column = sa_column 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

172 self.sa_column_args = sa_column_args 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

173 self.sa_column_kwargs = sa_column_kwargs 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

174 

175 

176class RelationshipInfo(Representation): 1fabcde

177 def __init__( 1abcde

178 self, 

179 *, 

180 back_populates: Optional[str] = None, 

181 cascade_delete: Optional[bool] = False, 

182 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

183 link_model: Optional[Any] = None, 

184 sa_relationship: Optional[RelationshipProperty] = None, # type: ignore 

185 sa_relationship_args: Optional[Sequence[Any]] = None, 

186 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

187 ) -> None: 

188 if sa_relationship is not None: 2;l+l{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c=l,l/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb?l-l:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b@l.l;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b[l/l=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc]l:l?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

189 if sa_relationship_args is not None: 2;l+l{c=l,l/c?l-l:c@l.l;c[l/l=c]l:l?c

190 raise RuntimeError( 2;l=l?l@l[l]l

191 "Passing sa_relationship_args is not supported when " 

192 "also passing a sa_relationship" 

193 ) 

194 if sa_relationship_kwargs is not None: 2+l{c,l/c-l:c.l;c/l=c:l?c

195 raise RuntimeError( 2+l,l-l.l/l:l

196 "Passing sa_relationship_kwargs is not supported when " 

197 "also passing a sa_relationship" 

198 ) 

199 self.back_populates = back_populates 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

200 self.cascade_delete = cascade_delete 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

201 self.passive_deletes = passive_deletes 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

202 self.link_model = link_model 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

203 self.sa_relationship = sa_relationship 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

204 self.sa_relationship_args = sa_relationship_args 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

205 self.sa_relationship_kwargs = sa_relationship_kwargs 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

206 

207 

208# include sa_type, sa_column_args, sa_column_kwargs 

209@overload 1fabcde

210def Field( 1abcde

211 default: Any = Undefined, 1fabcde

212 *, 

213 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

214 alias: Optional[str] = None, 1fabcde

215 title: Optional[str] = None, 1fabcde

216 description: Optional[str] = None, 1fabcde

217 exclude: Union[ 1abcde

218 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

219 ] = None, 1fabcde

220 include: Union[ 1abcde

221 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

222 ] = None, 1fabcde

223 const: Optional[bool] = None, 1fabcde

224 gt: Optional[float] = None, 1fabcde

225 ge: Optional[float] = None, 1fabcde

226 lt: Optional[float] = None, 1fabcde

227 le: Optional[float] = None, 1fabcde

228 multiple_of: Optional[float] = None, 1fabcde

229 max_digits: Optional[int] = None, 1fabcde

230 decimal_places: Optional[int] = None, 1fabcde

231 min_items: Optional[int] = None, 1fabcde

232 max_items: Optional[int] = None, 1fabcde

233 unique_items: Optional[bool] = None, 1fabcde

234 min_length: Optional[int] = None, 1fabcde

235 max_length: Optional[int] = None, 1fabcde

236 allow_mutation: bool = True, 1fabcde

237 regex: Optional[str] = None, 1fabcde

238 discriminator: Optional[str] = None, 1fabcde

239 repr: bool = True, 1fabcde

240 primary_key: Union[bool, UndefinedType] = Undefined, 1fabcde

241 foreign_key: Any = Undefined, 1fabcde

242 unique: Union[bool, UndefinedType] = Undefined, 1fabcde

243 nullable: Union[bool, UndefinedType] = Undefined, 1fabcde

244 index: Union[bool, UndefinedType] = Undefined, 1fabcde

245 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1fabcde

246 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1fabcde

247 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1fabcde

248 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

249) -> Any: ... 1fabcde

250 

251 

252# When foreign_key is str, include ondelete 

253# include sa_type, sa_column_args, sa_column_kwargs 

254@overload 1fabcde

255def Field( 1abcde

256 default: Any = Undefined, 1fabcde

257 *, 

258 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

259 alias: Optional[str] = None, 1fabcde

260 title: Optional[str] = None, 1fabcde

261 description: Optional[str] = None, 1fabcde

262 exclude: Union[ 1abcde

263 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

264 ] = None, 1fabcde

265 include: Union[ 1abcde

266 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

267 ] = None, 1fabcde

268 const: Optional[bool] = None, 1fabcde

269 gt: Optional[float] = None, 1fabcde

270 ge: Optional[float] = None, 1fabcde

271 lt: Optional[float] = None, 1fabcde

272 le: Optional[float] = None, 1fabcde

273 multiple_of: Optional[float] = None, 1fabcde

274 max_digits: Optional[int] = None, 1fabcde

275 decimal_places: Optional[int] = None, 1fabcde

276 min_items: Optional[int] = None, 1fabcde

277 max_items: Optional[int] = None, 1fabcde

278 unique_items: Optional[bool] = None, 1fabcde

279 min_length: Optional[int] = None, 1fabcde

280 max_length: Optional[int] = None, 1fabcde

281 allow_mutation: bool = True, 1fabcde

282 regex: Optional[str] = None, 1fabcde

283 discriminator: Optional[str] = None, 1fabcde

284 repr: bool = True, 1fabcde

285 primary_key: Union[bool, UndefinedType] = Undefined, 1fabcde

286 foreign_key: str, 1abcde

287 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 1fabcde

288 unique: Union[bool, UndefinedType] = Undefined, 1fabcde

289 nullable: Union[bool, UndefinedType] = Undefined, 1fabcde

290 index: Union[bool, UndefinedType] = Undefined, 1fabcde

291 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1fabcde

292 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1fabcde

293 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1fabcde

294 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

295) -> Any: ... 1fabcde

296 

297 

298# Include sa_column, don't include 

299# primary_key 

300# foreign_key 

301# ondelete 

302# unique 

303# nullable 

304# index 

305# sa_type 

306# sa_column_args 

307# sa_column_kwargs 

308@overload 1fabcde

309def Field( 1abcde

310 default: Any = Undefined, 1fabcde

311 *, 

312 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

313 alias: Optional[str] = None, 1fabcde

314 title: Optional[str] = None, 1fabcde

315 description: Optional[str] = None, 1fabcde

316 exclude: Union[ 1abcde

317 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

318 ] = None, 1fabcde

319 include: Union[ 1abcde

320 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

321 ] = None, 1fabcde

322 const: Optional[bool] = None, 1fabcde

323 gt: Optional[float] = None, 1fabcde

324 ge: Optional[float] = None, 1fabcde

325 lt: Optional[float] = None, 1fabcde

326 le: Optional[float] = None, 1fabcde

327 multiple_of: Optional[float] = None, 1fabcde

328 max_digits: Optional[int] = None, 1fabcde

329 decimal_places: Optional[int] = None, 1fabcde

330 min_items: Optional[int] = None, 1fabcde

331 max_items: Optional[int] = None, 1fabcde

332 unique_items: Optional[bool] = None, 1fabcde

333 min_length: Optional[int] = None, 1fabcde

334 max_length: Optional[int] = None, 1fabcde

335 allow_mutation: bool = True, 1fabcde

336 regex: Optional[str] = None, 1fabcde

337 discriminator: Optional[str] = None, 1fabcde

338 repr: bool = True, 1fabcde

339 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 1fabcde

340 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

341) -> Any: ... 1fabcde

342 

343 

344def Field( 1abcde

345 default: Any = Undefined, 

346 *, 

347 default_factory: Optional[NoArgAnyCallable] = None, 

348 alias: Optional[str] = None, 

349 title: Optional[str] = None, 

350 description: Optional[str] = None, 

351 exclude: Union[ 

352 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

353 ] = None, 

354 include: Union[ 

355 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

356 ] = None, 

357 const: Optional[bool] = None, 

358 gt: Optional[float] = None, 

359 ge: Optional[float] = None, 

360 lt: Optional[float] = None, 

361 le: Optional[float] = None, 

362 multiple_of: Optional[float] = None, 

363 max_digits: Optional[int] = None, 

364 decimal_places: Optional[int] = None, 

365 min_items: Optional[int] = None, 

366 max_items: Optional[int] = None, 

367 unique_items: Optional[bool] = None, 

368 min_length: Optional[int] = None, 

369 max_length: Optional[int] = None, 

370 allow_mutation: bool = True, 

371 regex: Optional[str] = None, 

372 discriminator: Optional[str] = None, 

373 repr: bool = True, 

374 primary_key: Union[bool, UndefinedType] = Undefined, 

375 foreign_key: Any = Undefined, 

376 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 

377 unique: Union[bool, UndefinedType] = Undefined, 

378 nullable: Union[bool, UndefinedType] = Undefined, 

379 index: Union[bool, UndefinedType] = Undefined, 

380 sa_type: Union[Type[Any], UndefinedType] = Undefined, 

381 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 

382 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 

383 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 

384 schema_extra: Optional[Dict[str, Any]] = None, 

385) -> Any: 

386 current_schema_extra = schema_extra or {} 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

387 field_info = FieldInfo( 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

388 default, 

389 default_factory=default_factory, 

390 alias=alias, 

391 title=title, 

392 description=description, 

393 exclude=exclude, 

394 include=include, 

395 const=const, 

396 gt=gt, 

397 ge=ge, 

398 lt=lt, 

399 le=le, 

400 multiple_of=multiple_of, 

401 max_digits=max_digits, 

402 decimal_places=decimal_places, 

403 min_items=min_items, 

404 max_items=max_items, 

405 unique_items=unique_items, 

406 min_length=min_length, 

407 max_length=max_length, 

408 allow_mutation=allow_mutation, 

409 regex=regex, 

410 discriminator=discriminator, 

411 repr=repr, 

412 primary_key=primary_key, 

413 foreign_key=foreign_key, 

414 ondelete=ondelete, 

415 unique=unique, 

416 nullable=nullable, 

417 index=index, 

418 sa_type=sa_type, 

419 sa_column=sa_column, 

420 sa_column_args=sa_column_args, 

421 sa_column_kwargs=sa_column_kwargs, 

422 **current_schema_extra, 

423 ) 

424 post_init_field_info(field_info) 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

425 return field_info 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

426 

427 

428@overload 1fabcde

429def Relationship( 1abcde

430 *, 

431 back_populates: Optional[str] = None, 1fabcde

432 cascade_delete: Optional[bool] = False, 1fabcde

433 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1fabcde

434 link_model: Optional[Any] = None, 1fabcde

435 sa_relationship_args: Optional[Sequence[Any]] = None, 1fabcde

436 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 1fabcde

437) -> Any: ... 1fabcde

438 

439 

440@overload 1fabcde

441def Relationship( 1abcde

442 *, 

443 back_populates: Optional[str] = None, 1fabcde

444 cascade_delete: Optional[bool] = False, 1fabcde

445 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1fabcde

446 link_model: Optional[Any] = None, 1fabcde

447 sa_relationship: Optional[RelationshipProperty[Any]] = None, 1fabcde

448) -> Any: ... 1fabcde

449 

450 

451def Relationship( 1abcde

452 *, 

453 back_populates: Optional[str] = None, 

454 cascade_delete: Optional[bool] = False, 

455 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

456 link_model: Optional[Any] = None, 

457 sa_relationship: Optional[RelationshipProperty[Any]] = None, 

458 sa_relationship_args: Optional[Sequence[Any]] = None, 

459 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

460) -> Any: 

461 relationship_info = RelationshipInfo( 2;l+l{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c=l,l/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb?l-l:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b@l.l;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b[l/l=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc]l:l?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

462 back_populates=back_populates, 

463 cascade_delete=cascade_delete, 

464 passive_deletes=passive_deletes, 

465 link_model=link_model, 

466 sa_relationship=sa_relationship, 

467 sa_relationship_args=sa_relationship_args, 

468 sa_relationship_kwargs=sa_relationship_kwargs, 

469 ) 

470 return relationship_info 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

471 

472 

473@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) 1fabcde

474class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): 1fabcde

475 __sqlmodel_relationships__: Dict[str, RelationshipInfo] 1fabcde

476 model_config: SQLModelConfig 1fabcde

477 model_fields: Dict[str, FieldInfo] 1fabcde

478 __config__: Type[SQLModelConfig] 1fabcde

479 __fields__: Dict[str, ModelField] # type: ignore[assignment] 1fabcde

480 

481 # Replicate SQLAlchemy 

482 def __setattr__(cls, name: str, value: Any) -> None: 1fabcde

483 if is_table_model_class(cls): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

484 DeclarativeMeta.__setattr__(cls, name, value) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

485 else: 

486 super().__setattr__(name, value) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

487 

488 def __delattr__(cls, name: str) -> None: 1fabcde

489 if is_table_model_class(cls): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

490 DeclarativeMeta.__delattr__(cls, name) 1fabcde

491 else: 

492 super().__delattr__(name) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

493 

494 # From Pydantic 

495 def __new__( 1abcde

496 cls, 

497 name: str, 

498 bases: Tuple[Type[Any], ...], 

499 class_dict: Dict[str, Any], 

500 **kwargs: Any, 

501 ) -> Any: 

502 relationships: Dict[str, RelationshipInfo] = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

503 dict_for_pydantic = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

504 original_annotations = get_annotations(class_dict) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

505 pydantic_annotations = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

506 relationship_annotations = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

507 for k, v in class_dict.items(): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

508 if isinstance(v, RelationshipInfo): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

509 relationships[k] = v 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

510 else: 

511 dict_for_pydantic[k] = v 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

512 for k, v in original_annotations.items(): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

513 if k in relationships: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

514 relationship_annotations[k] = v 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

515 else: 

516 pydantic_annotations[k] = v 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

517 dict_used = { 2a MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

518 **dict_for_pydantic, 

519 "__weakref__": None, 

520 "__sqlmodel_relationships__": relationships, 

521 "__annotations__": pydantic_annotations, 

522 } 

523 # Duplicate logic from Pydantic to filter config kwargs because if they are 

524 # passed directly including the registry Pydantic will pass them over to the 

525 # superclass causing an error 

526 allowed_config_kwargs: Set[str] = { 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

527 key 

528 for key in dir(BaseConfig) 

529 if not ( 

530 key.startswith("__") and key.endswith("__") 

531 ) # skip dunder methods and attributes 

532 } 

533 config_kwargs = { 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

534 key: kwargs[key] for key in kwargs.keys() & allowed_config_kwargs 

535 } 

536 new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

537 new_cls.__annotations__ = { 2a MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

538 **relationship_annotations, 

539 **pydantic_annotations, 

540 **new_cls.__annotations__, 

541 } 

542 

543 def get_config(name: str) -> Any: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

544 config_class_value = get_config_value( 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

545 model=new_cls, parameter=name, default=Undefined 

546 ) 

547 if config_class_value is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

548 return config_class_value 2Mf6e7e8e9e!e#e$e%e'e(e)e*e

549 kwarg_value = kwargs.get(name, Undefined) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

550 if kwarg_value is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

551 return kwarg_value 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

552 return Undefined 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

553 

554 config_table = get_config("table") 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

555 if config_table is True: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

556 # If it was passed by kwargs, ensure it's also set in config 

557 set_config_value(model=new_cls, parameter="table", value=config_table) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

558 for k, v in get_model_fields(new_cls).items(): 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

559 col = get_column_from_field(v) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

560 setattr(new_cls, k, col) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

561 # Set a config flag to tell FastAPI that this should be read with a field 

562 # in orm_mode instead of preemptively converting it to a dict. 

563 # This could be done by reading new_cls.model_config['table'] in FastAPI, but 

564 # that's very specific about SQLModel, so let's have another config that 

565 # other future tools based on Pydantic can use. 

566 set_config_value( 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

567 model=new_cls, parameter="read_from_attributes", value=True 

568 ) 

569 # For compatibility with older versions 

570 # TODO: remove this in the future 

571 set_config_value(model=new_cls, parameter="read_with_orm_mode", value=True) 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

572 

573 config_registry = get_config("registry") 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

574 if config_registry is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

575 config_registry = cast(registry, config_registry) 1fabcde

576 # If it was passed by kwargs, ensure it's also set in config 

577 set_config_value(model=new_cls, parameter="registry", value=config_table) 1fabcde

578 setattr(new_cls, "_sa_registry", config_registry) # noqa: B010 1fabcde

579 setattr(new_cls, "metadata", config_registry.metadata) # noqa: B010 1fabcde

580 setattr(new_cls, "__abstract__", True) # noqa: B010 1fabcde

581 return new_cls 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

582 

583 # Override SQLAlchemy, allow both SQLAlchemy and plain Pydantic models 

584 def __init__( 1abcde

585 cls, classname: str, bases: Tuple[type, ...], dict_: Dict[str, Any], **kw: Any 

586 ) -> None: 

587 # Only one of the base classes (or the current one) should be a table model 

588 # this allows FastAPI cloning a SQLModel for the response_model without 

589 # trying to create a new SQLAlchemy, for a new table, with the same name, that 

590 # triggers an error 

591 base_is_table = any(is_table_model_class(base) for base in bases) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

592 if is_table_model_class(cls) and not base_is_table: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

593 for rel_name, rel_info in cls.__sqlmodel_relationships__.items(): 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

594 if rel_info.sa_relationship: 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

595 # There's a SQLAlchemy relationship declared, that takes precedence 

596 # over anything else, use that and continue with the next attribute 

597 setattr(cls, rel_name, rel_info.sa_relationship) # Fix #315 2{c/c:c;c=c?c

598 continue 2{c/c:c;c=c?c

599 raw_ann = cls.__annotations__[rel_name] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

600 origin = get_origin(raw_ann) 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

601 if origin is Mapped: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

602 ann = raw_ann.__args__[0] 

603 else: 

604 ann = raw_ann 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

605 # Plain forward references, for models not yet defined, are not 

606 # handled well by SQLAlchemy without Mapped, so, wrap the 

607 # annotations in Mapped here 

608 cls.__annotations__[rel_name] = Mapped[ann] # type: ignore[valid-type] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

609 relationship_to = get_relationship_to( 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

610 name=rel_name, rel_info=rel_info, annotation=ann 

611 ) 

612 rel_kwargs: Dict[str, Any] = {} 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

613 if rel_info.back_populates: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

614 rel_kwargs["back_populates"] = rel_info.back_populates 2|c2c3cMbNbOb' WcXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( ) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . / : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` { | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkblbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

615 if rel_info.cascade_delete: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

616 rel_kwargs["cascade"] = "all, delete-orphan" 2Yc* ; = ~ abbbobpbqbDbEbFb

617 if rel_info.passive_deletes: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

618 rel_kwargs["passive_deletes"] = rel_info.passive_deletes 2|cZc0c1c[c+ 2 , ]c? @ 3 4 [ ] ^ccbdbeb5 6 7 fbgbhb_crbsbtb8 9 ! ubvbwb`cGbHbIb# $ % JbKbLb

619 if rel_info.link_model: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

620 ins = inspect(rel_info.link_model) 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

621 local_table = getattr(ins, "local_table") # noqa: B009 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

622 if local_table is None: 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

623 raise RuntimeError( 

624 "Couldn't find the secondary table for " 

625 f"model {rel_info.link_model}" 

626 ) 

627 rel_kwargs["secondary"] = local_table 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

628 rel_args: List[Any] = [] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

629 if rel_info.sa_relationship_args: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

630 rel_args.extend(rel_info.sa_relationship_args) 

631 if rel_info.sa_relationship_kwargs: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

632 rel_kwargs.update(rel_info.sa_relationship_kwargs) 

633 rel_value = relationship(relationship_to, *rel_args, **rel_kwargs) 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

634 setattr(cls, rel_name, rel_value) # Fix #315 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

635 # SQLAlchemy no longer uses dict_ 

636 # Ref: https://github.com/sqlalchemy/sqlalchemy/commit/428ea01f00a9cc7f85e435018565eb6da7af1b77 

637 # Tag: 1.4.36 

638 DeclarativeMeta.__init__(cls, classname, bases, dict_, **kw) 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

639 else: 

640 ModelMetaclass.__init__(cls, classname, bases, dict_, **kw) 2f PkQk1l2l3l4l5lLf9i!i#i$iMbMfNfNbvewe*l#la zkAkHlIlJlKlClze+e,e-e.es 6eAet }c~c$l6lb BkCkLlMlNlOlDlTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcddd%l7lc DkEkPlQlRlSlElVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjd'l8ld FkGkTlUlVlWlFlYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd(l9le HkIkXlYlZl0lGl1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd)l!l

641 

642 

643def get_sqlalchemy_type(field: Any) -> Any: 1fabcde

644 if IS_PYDANTIC_V2: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

645 field_info = field 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

646 else: 

647 field_info = field.field_info 2f XexeyePkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

648 sa_type = getattr(field_info, "sa_type", Undefined) # noqa: B009 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

649 if sa_type is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

650 return sa_type 

651 

652 type_ = get_sa_type_from_field(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

653 metadata = get_field_metadata(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

654 

655 # Check enums first as an enum can also be a str, needed by Pydantic/FastAPI 

656 if issubclass(type_, Enum): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

657 return sa_Enum(type_) 2f PkQka zkAkb BkCkc DkEkd FkGke HkIk

658 if issubclass( 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

659 type_, 

660 ( 

661 str, 

662 ipaddress.IPv4Address, 

663 ipaddress.IPv4Network, 

664 ipaddress.IPv6Address, 

665 ipaddress.IPv6Network, 

666 Path, 

667 EmailStr, 

668 ), 

669 ): 

670 max_length = getattr(metadata, "max_length", None) 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

671 if max_length: 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

672 return AutoString(length=max_length) 

673 return AutoString 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

674 if issubclass(type_, float): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

675 return Float 

676 if issubclass(type_, bool): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

677 return Boolean 2Wc( - . ^ _ ` ibjbkbxbybzb

678 if issubclass(type_, int): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

679 return Integer 2f Xexeye-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

680 if issubclass(type_, datetime): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

681 return DateTime 

682 if issubclass(type_, date): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

683 return Date 

684 if issubclass(type_, timedelta): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

685 return Interval 

686 if issubclass(type_, time): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

687 return Time 

688 if issubclass(type_, bytes): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

689 return LargeBinary 

690 if issubclass(type_, Decimal): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

691 return Numeric( 2XeMdVd4d5d/d:ddeee

692 precision=getattr(metadata, "max_digits", None), 

693 scale=getattr(metadata, "decimal_places", None), 

694 ) 

695 if issubclass(type_, uuid.UUID): 2f xeyeakPkQknlolpla wdxdsjzkAk}k~kalb ydzdDjBkCkblcldlc AdBdCdDdOjDkEkelflgld EdFdGdHd4jFkGkhliljle IdJdKdLd-jHkIkklllml

696 return Uuid 2f xeyeakPkQka wdxdsjzkAkb ydzdDjBkCkc AdBdCdDdOjDkEkd EdFdGdHd4jFkGke IdJdKdLd-jHkIk

697 raise ValueError(f"{type_} has no matching SQLAlchemy type") 2nlolpl}k~kalblcldlelflglhliljlklllml

698 

699 

700def get_column_from_field(field: Any) -> Column: # type: ignore 1fabcde

701 if IS_PYDANTIC_V2: 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

702 field_info = field 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

703 else: 

704 field_info = field.field_info 2f XexeyePkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

705 sa_column = getattr(field_info, "sa_column", Undefined) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

706 if isinstance(sa_column, Column): 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

707 return sa_column 2BlwlxlylzlAl

708 sa_type = get_sqlalchemy_type(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

709 primary_key = getattr(field_info, "primary_key", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

710 if primary_key is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

711 primary_key = False 2f XexeyePkQk-k{kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

712 index = getattr(field_info, "index", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

713 if index is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

714 index = False 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

715 nullable = not primary_key and is_field_noneable(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

716 # Override derived nullability if the nullable property is set explicitly 

717 # on the field 

718 field_nullable = getattr(field_info, "nullable", Undefined) # noqa: B009 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

719 if field_nullable is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

720 assert not isinstance(field_nullable, UndefinedType) 2~j,k|knjKk/kojLk;kpjMk?kqjNk[krjOk^k

721 nullable = field_nullable 2~j,k|knjKk/kojLk;kpjMk?kqjNk[krjOk^k

722 args = [] 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

723 foreign_key = getattr(field_info, "foreign_key", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

724 if foreign_key is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

725 foreign_key = None 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

726 unique = getattr(field_info, "unique", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

727 if unique is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

728 unique = False 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

729 if foreign_key: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

730 if field_info.ondelete == "SET NULL" and not nullable: 2{c|c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

731 raise RuntimeError('ondelete="SET NULL" requires nullable=True') 2|c[c]c^c_c`c

732 assert isinstance(foreign_key, str) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

733 ondelete = getattr(field_info, "ondelete", Undefined) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

734 if ondelete is Undefined: 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

735 ondelete = None 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSbUbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcEcFcGcHcIcJc

736 assert isinstance(ondelete, (str, type(None))) # for typing 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

737 args.append(ForeignKey(foreign_key, ondelete=ondelete)) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

738 kwargs = { 2a MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

739 "primary_key": primary_key, 

740 "nullable": nullable, 

741 "index": index, 

742 "unique": unique, 

743 } 

744 sa_default = Undefined 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

745 if field_info.default_factory: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

746 sa_default = field_info.default_factory 2xeyeakwdxdsjydzdDjAdBdCdDdOjEdFdGdHd4jIdJdKdLd-j

747 elif field_info.default is not Undefined: 2f XexeyePkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

748 sa_default = field_info.default 2f Xexeye-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

749 if sa_default is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

750 kwargs["default"] = sa_default 2f Xexeyeak-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-j0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

751 sa_column_args = getattr(field_info, "sa_column_args", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

752 if sa_column_args is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

753 args.extend(list(cast(Sequence[Any], sa_column_args))) 2-kRkSkUkXk0k

754 sa_column_kwargs = getattr(field_info, "sa_column_kwargs", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

755 if sa_column_kwargs is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

756 kwargs.update(cast(Dict[Any, Any], sa_column_kwargs)) 2{k.k:k=k@k]k

757 return Column(sa_type, *args, **kwargs) # type: ignore 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

758 

759 

760class_registry = weakref.WeakValueDictionary() # type: ignore 1fabcde

761 

762default_registry = registry() 1fabcde

763 

764_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1fabcde

765 

766 

767class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry): 1fabcde

768 # SQLAlchemy needs to set weakref(s), Pydantic will set the other slots values 

769 __slots__ = ("__weakref__",) 1fabcde

770 __tablename__: ClassVar[Union[str, Callable[..., str]]] 1fabcde

771 __sqlmodel_relationships__: ClassVar[Dict[str, RelationshipProperty[Any]]] 1fabcde

772 __name__: ClassVar[str] 1fabcde

773 metadata: ClassVar[MetaData] 1fabcde

774 __allow_unmapped__ = True # https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six 1fabcde

775 

776 if IS_PYDANTIC_V2: 1fabcde

777 model_config = SQLModelConfig(from_attributes=True) 1fabcde

778 else: 

779 

780 class Config: 1fabcde

781 orm_mode = True 1fabcde

782 

783 def __new__(cls, *args: Any, **kwargs: Any) -> Any: 1fabcde

784 new_object = super().__new__(cls) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

785 # SQLAlchemy doesn't call __init__ on the base class when querying from DB 

786 # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html 

787 # Set __fields_set__ here, that would have been set when calling __init__ 

788 # in the Pydantic model so that when SQLAlchemy sets attributes that are 

789 # added (e.g. when querying from DB) to the __fields_set__, this already exists 

790 init_pydantic_private_attrs(new_object) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

791 return new_object 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

792 

793 def __init__(__pydantic_self__, **data: Any) -> None: 1fabcde

794 # Uses something other than `self` the first arg to allow "self" as a 

795 # settable attribute 

796 

797 # SQLAlchemy does very dark black magic and modifies the __init__ method in 

798 # sqlalchemy.orm.instrumentation._generate_init() 

799 # so, to make SQLAlchemy work, it's needed to explicitly call __init__ to 

800 # trigger all the SQLAlchemy logic, it doesn't work using cls.__new__, setting 

801 # attributes obj.__dict__, etc. The __init__ method has to be called. But 

802 # there are cases where calling all the default logic is not ideal, e.g. 

803 # when calling Model.model_validate(), as the validation is done outside 

804 # of instance creation. 

805 # At the same time, __init__ is what users would normally call, by creating 

806 # a new instance, which should have validation and all the default logic. 

807 # So, to be able to set up the internal SQLAlchemy logic alone without 

808 # executing the rest, and support things like Model.model_validate(), we 

809 # use a contextvar to know if we should execute everything. 

810 if finish_init.get(): 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l

811 sqlmodel_init(self=__pydantic_self__, data=data) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l

812 

813 def __setattr__(self, name: str, value: Any) -> None: 1fabcde

814 if name in {"_sa_instance_state"}: 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

815 self.__dict__[name] = value 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

816 return 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

817 else: 

818 # Set in SQLAlchemy, before Pydantic to trigger events and updates 

819 if is_table_model_class(self.__class__) and is_instrumented(self, name): # type: ignore[no-untyped-call] 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

820 set_attribute(self, name, value) 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

821 # Set in Pydantic model to trigger possible validation changes, only for 

822 # non relationship values 

823 if name not in self.__sqlmodel_relationships__: 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

824 super().__setattr__(name, value) 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

825 

826 def __repr_args__(self) -> Sequence[Tuple[Optional[str], Any]]: 1fabcde

827 # Don't show SQLAlchemy private attributes 

828 return [ 2Cl2 Dl3 4 El5 6 7 Fl8 9 ! Gl# $ %

829 (k, v) 

830 for k, v in super().__repr_args__() 

831 if not (isinstance(k, str) and k.startswith("_sa_")) 

832 ] 

833 

834 @declared_attr # type: ignore 1fabcde

835 def __tablename__(cls) -> str: 1fabcde

836 return cls.__name__.lower() 2f qpXexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja rpMdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb sptpVdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc upvpwp4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd xpypzp/d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he ApBpCpdeeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

837 

838 @classmethod 1fabcde

839 def model_validate( 1abcde

840 cls: Type[_TSQLModel], 

841 obj: Any, 

842 *, 

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

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

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

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

847 ) -> _TSQLModel: 

848 return sqlmodel_validate( 2KmLmMmDmNmOmPmQmRmSm2o3oTmUmVmWmXmYmLf9i!i#i$iMbMfNfNbvewe#lZm0m1mlm2m3m4m5m6m7m4o5o8m9m!m#m$m%mze+e,e-e.es 6eAet }c~c6l'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_m6o7o`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcddd7lbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn8o9oCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjd8lInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n!o#o9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd9l(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeo$o%ofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd!l

849 cls=cls, 

850 obj=obj, 

851 strict=strict, 

852 from_attributes=from_attributes, 

853 context=context, 

854 update=update, 

855 ) 

856 

857 def model_dump( 1abcde

858 self, 

859 *, 

860 mode: Union[Literal["json", "python"], str] = "python", 

861 include: IncEx = None, 

862 exclude: IncEx = None, 

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

864 by_alias: bool = False, 

865 exclude_unset: bool = False, 

866 exclude_defaults: bool = False, 

867 exclude_none: bool = False, 

868 round_trip: bool = False, 

869 warnings: Union[bool, Literal["none", "warn", "error"]] = True, 

870 serialize_as_any: bool = False, 

871 ) -> Dict[str, Any]: 

872 if PYDANTIC_VERSION >= "2.7.0": 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

873 extra_kwargs: Dict[str, Any] = { 2lmMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRfzes AeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fmmnmVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@fBeCev w DeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgompmqm4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgFeGeHeB C D IeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhrmsmtm/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnhLeMeNeK L M OePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=humvmwmdeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hReSeTeT U V UeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

874 "context": context, 

875 "serialize_as_any": serialize_as_any, 

876 } 

877 else: 

878 extra_kwargs = {} 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

879 if IS_PYDANTIC_V2: 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

880 return super().model_dump( 2DmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iLfMbNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjlmMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRfzes AeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fmmnmVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@fBeCev w DeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgompmqm4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgFeGeHeB C D IeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhrmsmtm/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnhLeMeNeK L M OePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=humvmwmdeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hReSeTeT U V UeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

881 mode=mode, 

882 include=include, 

883 exclude=exclude, 

884 by_alias=by_alias, 

885 exclude_unset=exclude_unset, 

886 exclude_defaults=exclude_defaults, 

887 exclude_none=exclude_none, 

888 round_trip=round_trip, 

889 warnings=warnings, 

890 **extra_kwargs, 

891 ) 

892 else: 

893 return super().dict( 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

894 include=include, 

895 exclude=exclude, 

896 by_alias=by_alias, 

897 exclude_unset=exclude_unset, 

898 exclude_defaults=exclude_defaults, 

899 exclude_none=exclude_none, 

900 ) 

901 

902 @deprecated( 1fabcde

903 """ 

904 🚨 `obj.dict()` was deprecated in SQLModel 0.0.14, you should 

905 instead use `obj.model_dump()`. 

906 """ 

907 ) 

908 def dict( 1abcde

909 self, 

910 *, 

911 include: IncEx = None, 

912 exclude: IncEx = None, 

913 by_alias: bool = False, 

914 exclude_unset: bool = False, 

915 exclude_defaults: bool = False, 

916 exclude_none: bool = False, 

917 ) -> Dict[str, Any]: 

918 return self.model_dump( 2KmLmMmDmNmOmPmQmRmSmPoTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe' XcZm0m1mlm2m3m4m5m6m7mJo8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cg ) 'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mKo`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcdddh i / : bncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBnLoCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdj k l { | } InJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8nMo9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdm n o lbmbnb(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeoNofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvdp q r AbBbCb

919 include=include, 

920 exclude=exclude, 

921 by_alias=by_alias, 

922 exclude_unset=exclude_unset, 

923 exclude_defaults=exclude_defaults, 

924 exclude_none=exclude_none, 

925 ) 

926 

927 @classmethod 1fabcde

928 @deprecated( 1fabcde

929 """ 

930 🚨 `obj.from_orm(data)` was deprecated in SQLModel 0.0.14, you should 

931 instead use `obj.model_validate(data)`. 

932 """ 

933 ) 

934 def from_orm( 1abcde

935 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

936 ) -> _TSQLModel: 

937 return cls.model_validate(obj, update=update) 2KmLmMmDmNmOmPmQmRmSm2oTmUmVmWmXmYmLf9i!i#i$iMbMfNfNbveweZm0m1mlm2m3m4m5m6m7m4o8m9m!m#m$m%mze+e,e-e.es 6eAet }c~c'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_m6o`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcdddbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn8oCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjdInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n!o9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeo$ofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd

938 

939 @classmethod 1fabcde

940 @deprecated( 1fabcde

941 """ 

942 🚨 `obj.parse_obj(data)` was deprecated in SQLModel 0.0.14, you should 

943 instead use `obj.model_validate(data)`. 

944 """ 

945 ) 

946 def parse_obj( 1abcde

947 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

948 ) -> _TSQLModel: 

949 if not IS_PYDANTIC_V2: 23o5o7o9o#o%o

950 obj = cls._enforce_dict_if_root(obj) # type: ignore[attr-defined] # noqa 23o5o7o9o#o%o

951 return cls.model_validate(obj, update=update) 23o5o7o9o#o%o

952 

953 # From Pydantic, override to only show keys from fields, omit SQLAlchemy attributes 

954 @deprecated( 1fabcde

955 """ 

956 🚨 You should not access `obj._calculate_keys()` directly. 

957 

958 It is only useful for Pydantic v1.X, you should probably upgrade to 

959 Pydantic v2.X. 

960 """, 

961 category=None, 

962 ) 

963 def _calculate_keys( 1abcde

964 self, 

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

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

967 exclude_unset: bool, 

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

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

970 return _calculate_keys( 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

971 self, 

972 include=include, 

973 exclude=exclude, 

974 exclude_unset=exclude_unset, 

975 update=update, 

976 ) 

977 

978 def sqlmodel_update( 1abcde

979 self: _TSQLModel, 

980 obj: Union[Dict[str, Any], BaseModel], 

981 *, 

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

983 ) -> _TSQLModel: 

984 use_update = (update or {}).copy() 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

985 if isinstance(obj, dict): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

986 for key, value in {**obj, **use_update}.items(): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

987 if key in get_model_fields(self): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

988 setattr(self, key, value) 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

989 elif isinstance(obj, BaseModel): 

990 for key in get_model_fields(obj): 

991 if key in use_update: 

992 value = use_update.pop(key) 

993 else: 

994 value = getattr(obj, key) 

995 setattr(self, key, value) 

996 for remaining_key in use_update: 

997 if remaining_key in get_model_fields(self): 

998 value = use_update.pop(remaining_key) 

999 setattr(self, remaining_key, value) 

1000 else: 

1001 raise ValueError( 

1002 "Can't use sqlmodel_update() with something that " 

1003 f"is not a dict or SQLModel or Pydantic model: {obj}" 

1004 ) 

1005 return self 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd