[{"data":1,"prerenderedAt":952},["ShallowReactive",2],{"navigation":3,"api-navigation":184,"\u002Flearn\u002Fconcepts\u002Ftyped-groups":206,"docyard:crossref-index":951},[4,8,155,174,180],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fgetting-started","1.getting-started",{"title":9,"path":10,"stem":11,"children":12},"Learn","\u002Flearn","2.learn",[13,15,66,99,133],{"title":9,"path":10,"stem":14},"2.learn\u002Findex",{"title":16,"path":17,"stem":18,"children":19},"Tutorials","\u002Flearn\u002Ftutorials","2.learn\u002F1.tutorials\u002Findex",[20,21,26,30,34,38,42,46,50,54,58,62],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24,"icon":25},"Why Laco?","\u002Flearn\u002Ftutorials\u002Fwhy-laco","2.learn\u002F1.tutorials\u002F01.why-laco","i-lucide-notebook",{"title":27,"path":28,"stem":29,"icon":25},"First Steps with Laco","\u002Flearn\u002Ftutorials\u002Ffirst-steps","2.learn\u002F1.tutorials\u002F02.first-steps",{"title":31,"path":32,"stem":33,"icon":25},"Lazy Call and Partial","\u002Flearn\u002Ftutorials\u002Flazy-call-and-partial","2.learn\u002F1.tutorials\u002F03.lazy-call-and-partial",{"title":35,"path":36,"stem":37,"icon":25},"Hyperparameters and Interpolation","\u002Flearn\u002Ftutorials\u002Fhyperparameters-and-interpolation","2.learn\u002F1.tutorials\u002F04.hyperparameters-and-interpolation",{"title":39,"path":40,"stem":41,"icon":25},"Loading, Saving, and the CLI","\u002Flearn\u002Ftutorials\u002Floading-saving-cli","2.learn\u002F1.tutorials\u002F05.loading-saving-cli",{"title":43,"path":44,"stem":45,"icon":25},"Nested Configs and Containers","\u002Flearn\u002Ftutorials\u002Fnested-configs-and-containers","2.learn\u002F1.tutorials\u002F06.nested-configs-and-containers",{"title":47,"path":48,"stem":49,"icon":25},"Typed Groups and Schemas","\u002Flearn\u002Ftutorials\u002Ftyped-groups-and-schemas","2.learn\u002F1.tutorials\u002F07.typed-groups-and-schemas",{"title":51,"path":52,"stem":53,"icon":25},"Pipeline Configs","\u002Flearn\u002Ftutorials\u002Fpipeline-configs","2.learn\u002F1.tutorials\u002F08.pipeline-configs",{"title":55,"path":56,"stem":57,"icon":25},"Tasks and the App Loop","\u002Flearn\u002Ftutorials\u002Ftasks-and-app-loop","2.learn\u002F1.tutorials\u002F09.tasks-and-app-loop",{"title":59,"path":60,"stem":61,"icon":25},"Tracing","\u002Flearn\u002Ftutorials\u002Ftracing","2.learn\u002F1.tutorials\u002F10.tracing",{"title":63,"path":64,"stem":65,"icon":25},"Production Patterns","\u002Flearn\u002Ftutorials\u002Fproduction-patterns","2.learn\u002F1.tutorials\u002F11.production-patterns",{"title":67,"path":68,"stem":69,"children":70},"Concepts","\u002Flearn\u002Fconcepts","2.learn\u002F2.concepts\u002Findex",[71,72,76,80,84,88,92,95],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Config as Python","\u002Flearn\u002Fconcepts\u002Fconfig-as-python","2.learn\u002F2.concepts\u002F1.config-as-python",{"title":77,"path":78,"stem":79},"Lazy Construction","\u002Flearn\u002Fconcepts\u002Flazy-construction","2.learn\u002F2.concepts\u002F2.lazy-construction",{"title":81,"path":82,"stem":83},"Lie-Typing","\u002Flearn\u002Fconcepts\u002Flie-typing","2.learn\u002F2.concepts\u002F3.lie-typing",{"title":85,"path":86,"stem":87},"Interpolation","\u002Flearn\u002Fconcepts\u002Finterpolation","2.learn\u002F2.concepts\u002F4.interpolation",{"title":89,"path":90,"stem":91},"Typed Groups","\u002Flearn\u002Fconcepts\u002Ftyped-groups","2.learn\u002F2.concepts\u002F5.typed-groups",{"title":59,"path":93,"stem":94},"\u002Flearn\u002Fconcepts\u002Ftracing","2.learn\u002F2.concepts\u002F6.tracing",{"title":96,"path":97,"stem":98},"App Loop","\u002Flearn\u002Fconcepts\u002Fapp-loop","2.learn\u002F2.concepts\u002F7.app-loop",{"title":100,"path":101,"stem":102,"children":103},"How-To Guides","\u002Flearn\u002Fhow-to","2.learn\u002F3.how-to\u002Findex",[104,105,109,113,117,121,125,129],{"title":100,"path":101,"stem":102},{"title":106,"path":107,"stem":108},"Override Configs","\u002Flearn\u002Fhow-to\u002Foverride-configs","2.learn\u002F3.how-to\u002F1.override-configs",{"title":110,"path":111,"stem":112},"Safe Loading","\u002Flearn\u002Fhow-to\u002Fsafe-loading","2.learn\u002F3.how-to\u002F2.safe-loading",{"title":114,"path":115,"stem":116},"Custom Resolvers","\u002Flearn\u002Fhow-to\u002Fcustom-resolvers","2.learn\u002F3.how-to\u002F3.custom-resolvers",{"title":118,"path":119,"stem":120},"Lint and Strict Mode","\u002Flearn\u002Fhow-to\u002Flint-and-strict","2.learn\u002F3.how-to\u002F4.lint-and-strict",{"title":122,"path":123,"stem":124},"Publishing a reproducible app with laco app","\u002Flearn\u002Fhow-to\u002Flaco-app","2.learn\u002F3.how-to\u002F5.laco-app",{"title":126,"path":127,"stem":128},"Reproduce an Experiment","\u002Flearn\u002Fhow-to\u002Freproduce-experiment","2.learn\u002F3.how-to\u002F6.reproduce-experiment",{"title":130,"path":131,"stem":132},"Migrate from argparse","\u002Flearn\u002Fhow-to\u002Fmigrate-from-argparse","2.learn\u002F3.how-to\u002F7.migrate-from-argparse",{"title":134,"path":135,"stem":136,"children":137},"Examples Curriculum","\u002Flearn\u002Fexamples","2.learn\u002F4.examples\u002Findex",[138,139,143,147,151],{"title":134,"path":135,"stem":136},{"title":140,"path":141,"stem":142},"Foundation Examples","\u002Flearn\u002Fexamples\u002Ffoundations","2.learn\u002F4.examples\u002F1.foundations",{"title":144,"path":145,"stem":146},"Building Blocks","\u002Flearn\u002Fexamples\u002Fbuilding-blocks","2.learn\u002F4.examples\u002F2.building-blocks",{"title":148,"path":149,"stem":150},"Typed-Group Variants","\u002Flearn\u002Fexamples\u002Ftyped-variants","2.learn\u002F4.examples\u002F3.typed-variants",{"title":152,"path":153,"stem":154},"End-to-End Pipelines","\u002Flearn\u002Fexamples\u002Fpipelines","2.learn\u002F4.examples\u002F4.pipelines",{"title":156,"path":157,"stem":158,"children":159},"Resources","\u002Fresources","3.resources",[160,162,166,170],{"title":156,"path":157,"stem":161},"3.resources\u002Findex",{"title":163,"path":164,"stem":165},"Integrations","\u002Fresources\u002Fintegrations","3.resources\u002F1.integrations",{"title":167,"path":168,"stem":169},"Migration guide: Laco 0.x → 1.0","\u002Fresources\u002Fmigration-0.x-to-1.0","3.resources\u002F2.migration-0.x-to-1.0",{"title":171,"path":172,"stem":173},"Laco vs hydra-zen","\u002Fresources\u002Flaco-vs-hydra-zen","3.resources\u002F3.laco-vs-hydra-zen",{"title":175,"path":176,"stem":177,"children":178},"API Reference","\u002Fapi","4.api\u002Findex",[179],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"Lazy Configuration for Python","\u002F","index",[185,188,191,194,197,200,203],{"title":186,"path":187},"cli","\u002Fapi\u002Fcli",{"title":189,"path":190},"compat","\u002Fapi\u002Fcompat",{"title":192,"path":193},"handler","\u002Fapi\u002Fhandler",{"title":195,"path":196},"keys","\u002Fapi\u002Fkeys",{"title":198,"path":199},"language","\u002Fapi\u002Flanguage",{"title":201,"path":202},"ops","\u002Fapi\u002Fops",{"title":204,"path":205},"utils","\u002Fapi\u002Futils",{"id":207,"title":89,"body":208,"description":278,"extension":946,"meta":947,"navigation":948,"path":90,"seo":949,"stem":91,"__hash__":950},"content\u002F2.learn\u002F2.concepts\u002F5.typed-groups.md",{"type":209,"value":210,"toc":936},"minimark",[211,215,239,244,256,262,272,426,438,444,450,577,597,603,616,650,659,665,733,750,756,762,768,854,858,861,895,898,919,932],[212,213,89],"h1",{"id":214},"typed-groups",[216,217,218],"blockquote",{},[219,220,221,225,226,229,225,232,235,236],"p",{},[222,223,224],"strong",{},"Tutorial:"," ",[227,228,89],"a",{"href":48},[222,230,231],{},"See also:",[227,233,234],{"href":149},"Examples: Typed Variants",", ",[227,237,238],{"href":176},"API: language",[240,241,243],"h2",{"id":242},"problem-statement","Problem Statement",[219,245,246,250,251,255],{},[247,248,249],"code",{},"@L.params"," lets you parameterize a single config variant. It doesn't enforce\nthat you've chosen a ",[252,253,254],"em",{},"valid"," alternative (e.g. a valid optimizer), or catch\ntypos in alternative names. Typed groups solve both.",[240,257,259],{"id":258},"lgroupt",[247,260,261],{},"L.Group[T]",[219,263,264,265,267,268,271],{},"Define a group by subclassing ",[247,266,261],{},", where ",[247,269,270],{},"T"," is the runtime type\nall entries produce:",[273,274,279],"pre",{"className":275,"code":276,"language":277,"meta":278,"style":278},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","class OptimGroup(L.Group[torch.optim.Optimizer]):\n    sgd  = L.call(torch.optim.SGD)(lr=1e-2, momentum=0.9)\n    adam = L.call(torch.optim.Adam)(lr=1e-3)\n","python","",[247,280,281,327,388],{"__ignoreMap":278},[282,283,286,290,294,298,301,304,308,311,314,316,319,321,324],"span",{"class":284,"line":285},"line",1,[282,287,289],{"class":288},"sbsja","class",[282,291,293],{"class":292},"sbgvK"," OptimGroup",[282,295,297],{"class":296},"sP7_E","(",[282,299,300],{"class":292},"L",[282,302,303],{"class":296},".",[282,305,307],{"class":306},"skxfh","Group",[282,309,310],{"class":296},"[",[282,312,313],{"class":306},"torch",[282,315,303],{"class":296},[282,317,318],{"class":306},"optim",[282,320,303],{"class":296},[282,322,323],{"class":306},"Optimizer",[282,325,326],{"class":296},"]):\n",[282,328,330,334,338,341,343,347,349,351,353,355,357,361,364,368,370,374,377,380,382,385],{"class":284,"line":329},2,[282,331,333],{"class":332},"su5hD","    sgd  ",[282,335,337],{"class":336},"smGrS","=",[282,339,340],{"class":332}," L",[282,342,303],{"class":296},[282,344,346],{"class":345},"slqww","call",[282,348,297],{"class":296},[282,350,313],{"class":345},[282,352,303],{"class":296},[282,354,318],{"class":306},[282,356,303],{"class":296},[282,358,360],{"class":359},"swQdS","SGD",[282,362,363],{"class":296},")(",[282,365,367],{"class":366},"s99_P","lr",[282,369,337],{"class":336},[282,371,373],{"class":372},"srdBf","1e-2",[282,375,376],{"class":296},",",[282,378,379],{"class":366}," momentum",[282,381,337],{"class":336},[282,383,384],{"class":372},"0.9",[282,386,387],{"class":296},")\n",[282,389,391,394,396,398,400,402,404,406,408,410,412,415,417,419,421,424],{"class":284,"line":390},3,[282,392,393],{"class":332},"    adam ",[282,395,337],{"class":336},[282,397,340],{"class":332},[282,399,303],{"class":296},[282,401,346],{"class":345},[282,403,297],{"class":296},[282,405,313],{"class":345},[282,407,303],{"class":296},[282,409,318],{"class":306},[282,411,303],{"class":296},[282,413,414],{"class":306},"Adam",[282,416,363],{"class":296},[282,418,367],{"class":366},[282,420,337],{"class":336},[282,422,423],{"class":372},"1e-3",[282,425,387],{"class":296},[219,427,428,431,432,435,436,303],{},[247,429,430],{},"L.Group.__init_subclass__"," registers each class attribute as a named entry\nin Hydra's ",[247,433,434],{},"ConfigStore"," under the group name ",[247,437,318],{},[240,439,441],{"id":440},"lconfig",[247,442,443],{},"@L.config",[219,445,446,447,449],{},"Annotate the schema (the config dataclass) with ",[247,448,443],{},":",[273,451,453],{"className":275,"code":452,"language":277,"meta":278,"style":278},"@L.config\nclass TrainSchema:\n    optimizer: torch.optim.Optimizer = L.slot(OptimGroup)\n    model: nn.Module = L.call(nn.Linear)(784, 10)\n    lr: float = 1e-3\n",[247,454,455,469,479,514,560],{"__ignoreMap":278},[282,456,457,461,464,466],{"class":284,"line":285},[282,458,460],{"class":459},"stp6e","@",[282,462,300],{"class":463},"sGLFI",[282,465,303],{"class":459},[282,467,468],{"class":463},"config\n",[282,470,471,473,476],{"class":284,"line":329},[282,472,289],{"class":288},[282,474,475],{"class":292}," TrainSchema",[282,477,478],{"class":296},":\n",[282,480,481,484,486,489,491,493,495,497,500,502,504,507,509,512],{"class":284,"line":390},[282,482,483],{"class":332},"    optimizer",[282,485,449],{"class":296},[282,487,488],{"class":332}," torch",[282,490,303],{"class":296},[282,492,318],{"class":306},[282,494,303],{"class":296},[282,496,323],{"class":306},[282,498,499],{"class":336}," =",[282,501,340],{"class":332},[282,503,303],{"class":296},[282,505,506],{"class":345},"slot",[282,508,297],{"class":296},[282,510,511],{"class":345},"OptimGroup",[282,513,387],{"class":296},[282,515,517,520,522,525,527,530,532,534,536,538,540,543,545,548,550,553,555,558],{"class":284,"line":516},4,[282,518,519],{"class":332},"    model",[282,521,449],{"class":296},[282,523,524],{"class":332}," nn",[282,526,303],{"class":296},[282,528,529],{"class":306},"Module",[282,531,499],{"class":336},[282,533,340],{"class":332},[282,535,303],{"class":296},[282,537,346],{"class":345},[282,539,297],{"class":296},[282,541,542],{"class":345},"nn",[282,544,303],{"class":296},[282,546,547],{"class":306},"Linear",[282,549,363],{"class":296},[282,551,552],{"class":372},"784",[282,554,376],{"class":296},[282,556,557],{"class":372}," 10",[282,559,387],{"class":296},[282,561,563,566,568,572,574],{"class":284,"line":562},5,[282,564,565],{"class":332},"    lr",[282,567,449],{"class":296},[282,569,571],{"class":570},"sZMiF"," float",[282,573,499],{"class":336},[282,575,576],{"class":372}," 1e-3\n",[219,578,579,581,582,585,586,589,590,593,594,596],{},[247,580,443],{}," applies ",[247,583,584],{},"@dataclass"," and ",[247,587,588],{},"dataclass_transform"," so IDE autocomplete\nworks on ",[247,591,592],{},"TrainSchema"," instances. Fields annotated with group types are\ntype-checked: assigning a non-",[247,595,511],{}," entry raises at config time.",[240,598,600],{"id":599},"lslotg",[247,601,602],{},"L.slot(G)",[219,604,605,607,608,611,612,615],{},[247,606,602],{}," creates a placeholder for a group entry: a ",[247,609,610],{},"_SlotSpec"," that\nresolves at load time to the ",[247,613,614],{},"${package}"," OmegaConf interpolation. The field\nname is used as the package key by default:",[273,617,619],{"className":275,"code":618,"language":277,"meta":278,"style":278},"optimizer: OptimGroup = L.slot(OptimGroup)  # package = \"optimizer\"\n",[247,620,621],{"__ignoreMap":278},[282,622,623,626,628,631,633,635,637,639,641,643,646],{"class":284,"line":285},[282,624,625],{"class":332},"optimizer",[282,627,449],{"class":296},[282,629,630],{"class":332}," OptimGroup ",[282,632,337],{"class":336},[282,634,340],{"class":332},[282,636,303],{"class":296},[282,638,506],{"class":345},[282,640,297],{"class":296},[282,642,511],{"class":345},[282,644,645],{"class":296},")",[282,647,649],{"class":648},"sutJx","  # package = \"optimizer\"\n",[240,651,653,585,656],{"id":652},"lbind-and-ldefaults",[247,654,655],{},"L.bind",[247,657,658],{},"L.Defaults",[219,660,661,664],{},[247,662,663],{},"L.bind(slot, entry)"," wires a specific entry into a slot at config definition\ntime:",[273,666,668],{"className":275,"code":667,"language":277,"meta":278,"style":278},"defaults = L.Defaults(\n    L.self_,\n    L.bind(TrainSchema.optimizer, OptimGroup.adam),\n)\n",[247,669,670,687,700,729],{"__ignoreMap":278},[282,671,672,675,677,679,681,684],{"class":284,"line":285},[282,673,674],{"class":332},"defaults ",[282,676,337],{"class":336},[282,678,340],{"class":332},[282,680,303],{"class":296},[282,682,683],{"class":345},"Defaults",[282,685,686],{"class":296},"(\n",[282,688,689,692,694,697],{"class":284,"line":329},[282,690,691],{"class":345},"    L",[282,693,303],{"class":296},[282,695,696],{"class":306},"self_",[282,698,699],{"class":296},",\n",[282,701,702,704,706,709,711,713,715,717,719,721,723,726],{"class":284,"line":390},[282,703,691],{"class":345},[282,705,303],{"class":296},[282,707,708],{"class":345},"bind",[282,710,297],{"class":296},[282,712,592],{"class":345},[282,714,303],{"class":296},[282,716,625],{"class":306},[282,718,376],{"class":296},[282,720,293],{"class":345},[282,722,303],{"class":296},[282,724,725],{"class":306},"adam",[282,727,728],{"class":296},"),\n",[282,730,731],{"class":284,"line":516},[282,732,387],{"class":296},[219,734,735,737,738,741,742,745,746,749],{},[247,736,658],{}," produces the Hydra defaults list. ",[247,739,740],{},"L.self_"," is the ",[247,743,744],{},"_self_","\nsentinel for Hydra's composition order. ",[247,747,748],{},"L.delete(G)"," removes a default.",[219,751,752,755],{},[247,753,754],{},"L.bind_strict(slot, L.use(entry))"," is the type-safe variant, verified at\nschema definition time.",[240,757,759],{"id":758},"lchoseng",[247,760,761],{},"L.chosen(G)",[219,763,764,765,767],{},"Use ",[247,766,761],{}," inside a config body to get a typed reference to whatever\nentry was composed into that group slot:",[273,769,771],{"className":275,"code":770,"language":277,"meta":278,"style":278},"@L.config\nclass TrainSchema:\n    optimizer: torch.optim.Optimizer = L.slot(OptimGroup)\n    # chosen resolves to the actual composed optimizer config\n    effective_lr: float = L.chosen(OptimGroup).lr\n",[247,772,773,783,791,821,826],{"__ignoreMap":278},[282,774,775,777,779,781],{"class":284,"line":285},[282,776,460],{"class":459},[282,778,300],{"class":463},[282,780,303],{"class":459},[282,782,468],{"class":463},[282,784,785,787,789],{"class":284,"line":329},[282,786,289],{"class":288},[282,788,475],{"class":292},[282,790,478],{"class":296},[282,792,793,795,797,799,801,803,805,807,809,811,813,815,817,819],{"class":284,"line":390},[282,794,483],{"class":332},[282,796,449],{"class":296},[282,798,488],{"class":332},[282,800,303],{"class":296},[282,802,318],{"class":306},[282,804,303],{"class":296},[282,806,323],{"class":306},[282,808,499],{"class":336},[282,810,340],{"class":332},[282,812,303],{"class":296},[282,814,506],{"class":345},[282,816,297],{"class":296},[282,818,511],{"class":345},[282,820,387],{"class":296},[282,822,823],{"class":284,"line":516},[282,824,825],{"class":648},"    # chosen resolves to the actual composed optimizer config\n",[282,827,828,831,833,835,837,839,841,844,846,848,851],{"class":284,"line":562},[282,829,830],{"class":332},"    effective_lr",[282,832,449],{"class":296},[282,834,571],{"class":570},[282,836,499],{"class":336},[282,838,340],{"class":332},[282,840,303],{"class":296},[282,842,843],{"class":345},"chosen",[282,845,297],{"class":296},[282,847,511],{"class":345},[282,849,850],{"class":296},").",[282,852,853],{"class":306},"lr\n",[240,855,857],{"id":856},"switching-entries","Switching Entries",[219,859,860],{},"From Python:",[273,862,864],{"className":275,"code":863,"language":277,"meta":278,"style":278},"cfg = laco.load(\"configs:\u002F\u002Fexamples\u002Ftyped\u002Fmlp.py?activation=gelu\")\n",[247,865,866],{"__ignoreMap":278},[282,867,868,871,873,876,878,881,883,887,891,893],{"class":284,"line":285},[282,869,870],{"class":332},"cfg ",[282,872,337],{"class":336},[282,874,875],{"class":332}," laco",[282,877,303],{"class":296},[282,879,880],{"class":345},"load",[282,882,297],{"class":296},[282,884,886],{"class":885},"sjJ54","\"",[282,888,890],{"class":889},"s_sjI","configs:\u002F\u002Fexamples\u002Ftyped\u002Fmlp.py?activation=gelu",[282,892,886],{"class":885},[282,894,387],{"class":296},[219,896,897],{},"From CLI:",[273,899,903],{"className":900,"code":901,"language":902,"meta":278,"style":278},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","laco run configs:\u002F\u002Fexamples\u002Ftyped\u002Fmlp.py optimizer=adam\n","bash",[247,904,905],{"__ignoreMap":278},[282,906,907,910,913,916],{"class":284,"line":285},[282,908,909],{"class":292},"laco",[282,911,912],{"class":889}," run",[282,914,915],{"class":889}," configs:\u002F\u002Fexamples\u002Ftyped\u002Fmlp.py",[282,917,918],{"class":889}," optimizer=adam\n",[219,920,921,922,924,925,927,928,931],{},"Laco validates that ",[247,923,725],{}," is a registered entry in ",[247,926,511],{}," and raises\n",[247,929,930],{},"ValueError"," if not.",[933,934,935],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .swQdS, html code.shiki .swQdS{--shiki-light:#E53935;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":278,"searchDepth":390,"depth":390,"links":937},[938,939,940,941,942,944,945],{"id":242,"depth":329,"text":243},{"id":258,"depth":329,"text":261},{"id":440,"depth":329,"text":443},{"id":599,"depth":329,"text":602},{"id":652,"depth":329,"text":943},"L.bind and L.Defaults",{"id":758,"depth":329,"text":761},{"id":856,"depth":329,"text":857},"md",{},true,{"title":89,"description":278},"sP2hEgYdnomTrCE3pjPMzLdyqInj5sLu-toVaCAlJus",{},1785687300675]