PageSourceSearch

https://rapier.rs/assets/js/f937cd8d.d533d27e.js

js rapier.rs collected 2026-10-02 05:32:24 UTC 21,110 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkrapier=self.webpackChunkrapier||[]).push([[275],{81136:(I,g,C)=>{C.r(g),C.d(g,{assets:()=>i,contentTitle:()=>t,default:()=>a,frontMatter:()=>A,metadata:()=>c,toc:()=>n});var e=C(74848),M=C(28453);C(11470),C(19365);const A={},t=void 0,c={id:"user_guides/bevy_plugin/character_controller_snap_to_ground",title:"character_controller_snap_to_ground",description:"If enabled, snap-to-ground will force the character to stick to the ground if the following conditions are met",source:"@site/docs/user_guides/bevy_plugin/character_controller_snap_to_ground.mdx",sourceDirName:"user_guides/bevy_plugin",slug:"/user_guides/bevy_plugin/character_controller_snap_to_ground",permalink:"/docs/user_guides/bevy_plugin/character_controller_snap_to_ground",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},i={},n=[];function s(I){const g={code:"code",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,M.R)(),...I.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(g.p,{children:["If enabled, ",(0,e.jsx)(g.strong,{children:"snap-to-ground"})," will force the character to stick to the ground if the following conditions are met\nsimultaneously:"]}),"\n",(0,e.jsxs)(g.ul,{children:["\n",(0,e.jsx)(g.li,{children:"At the start of the movement, the character touches the ground."}),"\n",(0,e.jsx)(g.li,{children:"The movement has a slight downward component."}),"\n",(0,e.jsxs)(g.li,{children:["At the end of the desired movement, the character would be separated from the ground by a distance smaller than the\ndistance provided by the ",(0,e.jsx)(g.strong,{children:"snap-to-ground"})," parameter."]}),"\n"]}),"\n",(0,e.jsx)(g.p,{children:"If these conditions are met, the character is automatically teleported down to the ground at the end of its motion.\nTypical usages of snap-to-ground include going downstairs or remaining in contact with the floor when moving downhill."}),"\n",(0,e.jsx)(g.p,{children:(0,e.jsx)(g.img,{alt:"snap-to-ground",src:C(52397).A+"",width:"1173",height:"389"})}),"\n",(0,e.jsx)(g.pre,{children:(0,e.jsx)(g.code,{className:"language-rust",children:"/* Configure the character controller when the collider is created. */\n// Snap to the ground if the vertical distance to the ground is smaller than 0.5.\ncommands\n    .spawn(Collider::ball(0.5))\n    .insert(KinematicCharacterController {\n        snap_to_ground: Some(CharacterLength::Absolute(0.5)),\n        ..default()\n    });\n\n// Snap to the ground if the vertical distance to the ground is smaller than 0.2 times the character\u2019s height\ncommands\n    .spawn(Collider::ball(0.5))\n    .insert(KinematicCharacterController {\n        snap_to_ground: Some(CharacterLength::Relative(0.2)),\n        ..default()\n    });\n"})}),"\n",(0,e.jsx)(g.pre,{children:(0,e.jsx)(g.code,{className:"language-rust",children:"/* Configure snap-to-ground inside of a system. */\nfn modify_character_controller_snap_to_ground(\n    mut character_controllers: Query<&mut KinematicCharacterController>,\n) {\n    for mut character_controller in character_controllers.iter_mut() {\n        character_controller.snap_to_ground = Some(CharacterLength::Absolute(0.5));\n    }\n}\n"})})]})}function a(I={}){const{wrapper:g}={...(0,M.R)(),...I.components};return g?(0,e.jsx)(g,{...I,children:(0,e.jsx)(s,{...I})}):s(I)}},19365:(I,g,C)=>{C.d(g,{A:()=>t});C(96540);var e=C(18215);const M={tabItem:"tabItem_Ymn6"};var A=C(74848);function t(I){let{children:g,hidden:C,className:t}=I;return(0,A.jsx)("div",{role:"tabpanel",className:(0,e.A)(M.tabItem,t),hidden:C,children:g})}},11470:(I,g,C)=>{C.d(g,{A:()=>T});var e=C(96540),M=C(18215),A=C(23104),t=C(56347),c=C(205),i=C(57485),n=C(31682),s=C(70679);function a(I){return e.Children.toArray(I).filter((I=>"\n"!==I)).map((I=>{if(!I||(0,e.isValidElement)(I)&&function(I){const{props:g}=I;return!!g&&"object"==typeof g&&"value"in g}(I))return I;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof I.type?I.type:I.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}
1function l(I){const{values:g,children:C}=I;return(0,e.useMemo)((()=>{const I=g??function(I){return a(I).map((I=>{let{props:{value:g,label:C,attributes:e,default:M}}=I;return{value:g,label:C,attributes:e,default:M}}))}(C);return function(I){const g=(0,n.XI)(I,((I,g)=>I.value===g.value));if(g.length>0)throw new Error(`Docusaurus error: Duplicate values "${g.map((I=>I.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(I),I}),[g,C])}function D(I){let{value:g,tabValues:C}=I;return C.some((I=>I.value===g))}function u(I){let{queryString:g=!1,groupId:C}=I;const M=(0,t.W6)(),A=function(I){let{queryString:g=!1,groupId:C}=I;if("string"==typeof g)return g;if(!1===g)return null;if(!0===g&&!C)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return C??null}({queryString:g,groupId:C});return[(0,i.aZ)(A),(0,e.useCallback)((I=>{if(!A)return;const g=new URLSearchParams(M.location.search);g.set(A,I),M.replace({...M.location,search:g.toString()})}),[A,M])]}function r(I){const{defaultValue:g,queryString:C=!1,groupId:M}=I,A=l(I),[t,i]=(0,e.useState)((()=>function(I){let{defaultValue:g,tabValues:C}=I;if(0===C.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(g){if(!D({value:g,tabValues:C}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${g}" but none of its children has the corresponding value. Available values are: ${C.map((I=>I.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return g}const e=C.find((I=>I.default))??C[0];if(!e)throw new Error("Unexpected error: 0 tabValues");return e.value}({defaultValue:g,tabValues:A}))),[n,a]=u({queryString:C,groupId:M}),[r,o]=function(I){let{groupId:g}=I;const C=function(I){return I?`docusaurus.tab.${I}`:null}(g),[M,A]=(0,s.Dv)(C);return[M,(0,e.useCallback)((I=>{C&&A.set(I)}),[C,A])]}({groupId:M}),N=(()=>{const I=n??r;return D({value:I,tabValues:A})?I:null})();(0,c.A)((()=>{N&&i(N)}),[N]);return{selectedValue:t,selectValue:(0,e.useCallback)((I=>{if(!D({value:I,tabValues:A}))throw new Error(`Can't select invalid tab value=${I}`);i(I),a(I),o(I)}),[a,o,A]),tabValues:A}}var o=C(92303);const N={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var j=C(74848);function y(I){let{className:g,block:C,selectedValue:e,selectValue:t,tabValues:c}=I;const i=[],{blockElementScrollPositionUntilNextRender:n}=(0,A.a_)(),s=I=>{const g=I.currentTarget,C=i.indexOf(g),M=c[C].value;M!==e&&(n(g),t(M))},a=I=>{let g=null;switch(I.key){case"Enter":s(I);break;case"ArrowRight":{const C=i.indexOf(I.currentTarget)+1;g=i[C]??i[0];break}case"ArrowLeft":{const C=i.indexOf(I.currentTarget)-1;g=i[C]??i[i.length-1];break}}g?.focus()};return(0,j.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,M.A)("tabs",{"tabs--block":C},g),children:c.map((I=>{let{value:g,label:C,attributes:A}=I;return(0,j.jsx)("li",{role:"tab",tabIndex:e===g?0:-1,"aria-selected":e===g,ref:I=>i.push(I),onKeyDown:a,onClick:s,...A,className:(0,M.A)("tabs__item",N.tabItem,A?.className,{"tabs__item--active":e===g}),children:C??g},g)}))})}function L(I){let{lazy:g,children:C,selectedValue:A}=I;const t=(Array.isArray(C)?C:[C]).filter(Boolean);if(g){const I=t.find((I=>I.props.value===A));return I?(0,e.cloneElement)(I,{className:(0,M.A)("margin-top--md",I.props.className)}):null}return(0,j.jsx)("div",{className:"margin-top--md",children:t.map(((I,g)=>(0,e.cloneElement)(I,{key:g,hidden:I.props.value!==A})))})}function d(I){const g=r(I);return(0,j.jsxs)("div",{className:(0,M.A)("tabs-container",N.tabList),children:[(0,j.jsx)(y,{...g,...I}),(0,j.jsx)(L,{...g,...I})]})}function T(I){const g=(0,o.A)();return(0,j.jsx)(d,{...I,children:a(I.children)},String(g))}},52397:(I,g,C)=>{C.d(g,{A:()=>e});const e="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDExNzMgMzg5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0zNzAsLTE4NzkpIj4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZSI+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJDYXBzdWxlMSIgc2VyaWY6aWQ9IkNhcHN1bGUiPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZTIiIHNlcmlmOmlkPSJDYXBzdWxlIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NzE0MywwLDAsMC44NTcxND
1MsMzUyLjY2NiwxODgzLjg2KSI+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI0Mi4xMjYiIGN5PSIxMjQuMDE2IiByPSI0MS4zMzkiIHN0eWxlPSJmaWxsOnJnYigyMjEsMjIxLDIyMSk7Ii8+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTUuNjg0MzRlLTE0LDEyOS45MjEpIj4KICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI0Mi4xMjYiIGN5PSIxMjQuMDE2IiByPSI0MS4zMzkiIHN0eWxlPSJmaWxsOnJnYigyMjEsMjIxLDIyMSk7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPHJlY3QgeD0iMjAwLjc4NyIgeT0iMTI0LjAxNiIgd2lkdGg9IjgyLjY3NyIgaGVpZ2h0PSIxMzUuODI3IiBzdHlsZT0iZmlsbDpyZ2IoMjIxLDIyMSwyMjEpOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZTMiIHNlcmlmOmlkPSJDYXBzdWxlIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NzE0MywwLDAsMC44NTcxNDMsOTMxLjA2LDE4ODkuNzYpIj4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjQyLjEyNiIgY3k9IjEyNC4wMTYiIHI9IjQxLjMzOSIgc3R5bGU9ImZpbGw6cmdiKDIyMSwyMjEsMjIxKTsiLz4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtNS42ODQzNGUtMTQsMTI5LjkyMSkiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjQyLjEyNiIgY3k9IjEyNC4wMTYiIHI9IjQxLjMzOSIgc3R5bGU9ImZpbGw6cmdiKDIyMSwyMjEsMjIxKTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8cmVjdCB4PSIyMDAuNzg3IiB5PSIxMjQuMDE2IiB3aWR0aD0iODIuNjc3IiBoZWlnaHQ9IjEzNS44MjciIHN0eWxlPSJmaWxsOnJnYigyMjEsMjIxLDIyMSk7Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJDYXBzdWxlNCIgc2VyaWY6aWQ9IkNhcHN1bGUiIHRyYW5zZm9ybT0ibWF0cml4KDAuODU3MTQzLDAsMCwwLjg1NzE0MywzNTIuODA1LDE4MjguMTgpIj4KICAgICAgICAgICAgPHBhdGggZD0iTTIwMC43ODcsMTI0LjAxNkMyMDAuNzg3LDEwMS4yIDIxOS4zMTEsODIuNjc3IDI0Mi4xMjYsODIuNjc3QzI2NC45NDEsODIuNjc3IDI4My40NjUsMTAxLjIgMjgzLjQ2NSwxMjQuMDE2IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpyZ2IoMCw5NiwxOTYpO3N0cm9rZS13aWR0aDoyLjg5cHg7c3Ryb2tlLWRhc2hhcnJheToyLjg5LDExLjU4LDAsMDtzdHJva2UtZGFzaG9mZnNldDoyLjg5OyIvPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC01LjY4NDM0ZS0xNCwxMjkuOTIxKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjgzLjQ2NSwxMjEuNzUyQzI4My40NjUsMTQ0LjU2NyAyNjQuOTQxLDE2NS4zNTQgMjQyLjEyNiwxNjUuMzU0QzIxOS4zMTEsMTY1LjM1NCAyMDAuNzg3L
1DE0Ni44MzEgMjAwLjc4NywxMjQuMDE2IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpyZ2IoMCw5NiwxOTYpO3N0cm9rZS13aWR0aDoyLjg5cHg7c3Ryb2tlLWRhc2hhcnJheToyLjg5LDExLjU4LDAsMDsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNMjAwLjc4NywxMjQuMDE2TDIwMC43ODcsMjU5Ljg0MyIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDAsOTYsMTk2KTtzdHJva2Utd2lkdGg6Mi44OXB4O3N0cm9rZS1kYXNoYXJyYXk6Mi44OSwxMS41OCwwLDA7Ii8+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yODMuNDY1LDI1My43NEwyODMuNDY1LDEyNC4wMTYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnJnYigwLDk2LDE5Nik7c3Ryb2tlLXdpZHRoOjIuODlweDtzdHJva2UtZGFzaGFycmF5OjIuODksMTEuNTgsMCwwOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZTUiIHNlcmlmOmlkPSJDYXBzdWxlIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NzE0MywwLDAsMC44NTcxNDMsOTMxLjE5OSwxODM0LjA4KSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMDAuNzg3LDEyNC4wMTZDMjAwLjc4NywxMDEuMiAyMTkuMzExLDgyLjY3NyAyNDIuMTI2LDgyLjY3N0MyNjQuOTQxLDgyLjY3NyAyODMuNDY1LDEwMS4yIDI4My40NjUsMTI0LjAxNiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDAsOTYsMTk2KTtzdHJva2Utd2lkdGg6Mi44OXB4O3N0cm9rZS1kYXNoYXJyYXk6Mi44OSwxMS41OCwwLDA7c3Ryb2tlLWRhc2hvZmZzZXQ6Mi44OTsiLz4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtNS42ODQzNGUtMTQsMTI5LjkyMSkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTI4My40NjUsMTIxLjc1MkMyODMuNDY1LDE0NC41NjcgMjY0Ljk0MSwxNjUuMzU0IDI0Mi4xMjYsMTY1LjM1NEMyMTkuMzExLDE2NS4zNTQgMjAwLjc4NywxNDYuODMxIDIwMC43ODcsMTI0LjAxNiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDAsOTYsMTk2KTtzdHJva2Utd2lkdGg6Mi44OXB4O3N0cm9rZS1kYXNoYXJyYXk6Mi44OSwxMS41OCwwLDA7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPHBhdGggZD0iTTIwMC43ODcsMTI0LjAxNkwyMDAuNzg3LDI1OS44NDMiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnJnYigwLDk2LDE5Nik7c3Ryb2tlLXdpZHRoOjIuODlweDtzdHJva2UtZGFzaGFycmF5OjIuODksMTEuNTgsMCwwOyIvPgogICAgICAgICAgICA8cGF0aCBkPSJNMjgzLjQ2NSwyNTMuNzRMMjgzLjQ2NSwxMjQuMDE2IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpyZ2IoMCw5NiwxOTYpO3N0cm9rZS13aWR0aDoyLjg5cHg7c3Ryb2tlLWRhc2hhcnJheToyLjg5LDExLjU4LDAsMDsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkNhcHN1bGU2IiBzZXJpZjppZD0iQ2Fwc3VsZSI+CiAgICAgICAgPC9nPgogICAgICAgIDxnIGlkPSJDYXBzdWxlNyIgc2VyaWY6aWQ9IkNhcHN1bGUiPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZTgiIHNlcmlmOmlkPSJDYXBzdWxlIj4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkNhcHN1bGU5IiBzZXJpZjppZD0iQ2Fwc3VsZSIgdHJhbnNmb3JtPSJtYXRyaXgoMC44NTcxNDMsMCwwLDAuODU3MTQzLDUwMS4xMjUsMTgxMi45OSkiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNDIuMTI2IiBjeT0iMTI0LjAxNiIgcj0iNDEuMzM5IiBzdHlsZT0iZmlsbDpyZ2IoNzYsNzYsNzYpOyIvPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC01LjY4NDM0ZS0xNCwxMjkuOTIxKSI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNDIuMTI2IiBjeT0iMTI0LjAxNiIgcj0iNDEuMzM5IiBzdHlsZT0iZmlsbDpyZ2IoNzYsNzYsNzYpOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxyZWN0IHg9IjIwMC43ODciIHk9IjEyNC4wMTYiIHdpZHRoPSI4Mi42NzciIGhlaWdodD0iMTM1LjgyNyIgc3R5bGU9ImZpbGw6cmdiKDc2LDc2LDc2KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkNhcHN1bGUxMCIgc2VyaWY6aWQ9IkNhcHN1bGUiIHRyYW5zZm9ybT0ibWF0cml4KDAuODU3MTQzLDAsMCwwLjg1NzE0MywxMDc5LjUyLDE4MTguOSkiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNDIuMTI2IiBjeT0iMTI0LjAxNiIgcj0iNDEuMzM5IiBzdHlsZT0iZmlsbDpyZ2IoNzYsNzYsNzYpOyIvPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC01LjY4NDM0ZS0xNCwxMjkuOTIxKSI+CiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNDIuMTI2IiBjeT0iMTI0LjAxNiIgcj0iNDEuMzM5IiBzdHlsZT0iZmlsbDpyZ2IoNzYsNzYsNzYpOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDxyZWN0IHg9IjIwMC43ODciIHk9IjEyNC4wMTYiIHdpZHRoPSI4Mi42NzciIGhlaWdodD0iMTM1LjgyNyIgc3R5bGU9ImZpbGw6cmdiKDc2LDc2LDc2KTsiLz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkNhcHN1bGUxMSIgc2VyaWY6aWQ9IkNhcHN1bGUiPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0xNTMuNTQzLDE4MDEuMTgpIj4KICAgICAgICAgICAgPHRleHQgeD0iNzMyLjI4M3B4IiB5PSI0NDMuMTA1cHgiIHN0eWxlPSJmb250LWZhbWlseTonQXJpYWxNVCcsICdBcmlhbCcsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjI1cHg7ZmlsbDpyZ2IoMCw5NiwxOTYpOyI+RGVzaXJlZCBtb3ZlbWVudDwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw0MjQuODUxLDE4MDcuMDkpIj4KICAgICAgICAgICAgPHRleHQgeD0iNzMyLjI4M3B4IiB5PSI0NDMuMTA1cHgiIHN0eWxlPSJmb250LWZhbWlseTonQXJpYWxNVCcsICdBcmlhbCcsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjI1cHg7ZmlsbDpyZ2IoMCw5NiwxOTYpOyI+RGVzaXJlZCBtb3ZlbWVudDwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTEuNjkwNzYsMC4yMTU4MjEsLTAuMTI2NjIsLTAuOTkxOTUxLDE4NjcuMjQsMjQxMS45MikiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMC41ODE5NjcsLTAuMTI2NjIsMC4wNzQyODYzLC0wLjk5MTk1MSw4MzEuNzU4LDcxOC4yMDkpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNjUuNDM0LDMzMS4xOTdMMjQ0LjE3MywzMjMuNzU2TDI2Mi44ODMsMzExLjIxMkMyNTguNTI0LDMxNi44NDYgMjU5LjgsMzI2LjgzOSAyNjUuNDM0LDMzMS4xOTdaIiBzdHlsZT0iZmlsbDpyZ2IoMCw5NiwxOTYpOyIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTM5Mi40OTMsMzA0LjgyM0MzOTIuNDkzLDMwNC44MjMgMjk4LjQ5NywzMTYuODIyIDI2MC4xNjEsMzIxLjcxNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDAsOTYsMTk2KTtzdHJva2Utd2lkdGg6Ni43MnB4OyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KC0xLjY5MDc2LDAuMjE1ODIxLC0wLjEyNjYyLC0wLjk5MTk1MSwyNDQ1LjY0LDI0MTcuODIpIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNTgxOTY3LC0wLjEyNjYyLDAuMDc0Mjg2MywtMC45OTE5NTEsMTE2Ny45Myw3OTcuMzAzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNODQzLjgyOCwzMzcuMTAzTDgyMi41NjcsMzI5LjY2MUw4NDEuMjc3LDMxNy4xMThDODM2LjkxOCwzMjIuNzUyIDgzOC4xOTQsMzMyLjc0NCA4NDMuODI4LDMzNy4xMDNaIiBzdHlsZT0iZmlsbDpyZ2IoMCw5NiwxOTYpOyIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3MC44ODgsMzEwLjcyOUM5NzAuODg4LDMxMC43MjkgODc2Ljg5MSwzMjIuNzI3IDgzOC41NTUsMzI3LjYyMSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDAsOTYsMTk2KTtzdHJva2Utd2lkdGg6Ni43MnB4OyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KC0xLjY5MDc2LDAuMjE1ODIxLC0wLjEyNjYyLC0wLjk5MTk1MSwxODEzLjQxLDIxOTkuMzIpIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNTgxOTY3LC0wLjEyNjYyLDAuMDc0Mjg2MywtMC45OTE5NTEsODE2LjIyMyw1MDAuNTA1KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjExLjYwMiwxMTguNTk5TDE5MC4zNDEsMTExLjE1N0wyMDkuMDUxLDk4LjYxNEMyMDQuNjkyLDEwNC4yNDggMjA1Ljk2OCwxMTQuMjQgMjExLjYwMiwxMTguNTk5WiIgc3R5bGU9ImZpbGw6cmdiKDAsOTYsMTk2KTsiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMzguNjYxLDkyLjIyNUMzMzguNjYxLDkyLjIyNSAyNDQuNjY1LDEwNC4yMjMgMjA2LjMyOSwxMDkuMTE3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpyZ2IoMCw5NiwxOTYpO3N0cm9rZS13aWR0aDo2LjcycHg7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoLTEuNjkwNzYsMC4yMTU4MjEsLTAuMTI2NjIsLTAuOTkxOTUxLDIzOTEuODEsMjIwNS4yMikiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgtMC41ODE5NjcsLTAuMTI2NjIsMC4wNzQyODYzLC0wLjk5MTk1MSwxMTUyLjM5LDU3OS42
1KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNzg5Ljk5NiwxMjQuNTA0TDc2OC43MzUsMTE3LjA2M0w3ODcuNDQ1LDEwNC41MkM3ODMuMDg2LDExMC4xNTQgNzg0LjM2MiwxMjAuMTQ2IDc4OS45OTYsMTI0LjUwNFoiIHN0eWxlPSJmaWxsOnJnYigwLDk2LDE5Nik7Ii8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTE3LjA1Niw5OC4xM0M5MTcuMDU2LDk4LjEzIDgyMy4wNTksMTEwLjEyOSA3ODQuNzIzLDExNS4wMjIiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnJnYigwLDk2LDE5Nik7c3Ryb2tlLXdpZHRoOjYuNzJweDsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDIwMC43ODcsMTcuNzE2NSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTc3LjE2NSwyMTI1Ljk4TDQ3Mi40NDEsMjEyNS45OEw0NzIuNDQxLDIwNTUuMTJMNzMyLjI4MywyMDU1LjEyIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTpyZ2IoNzYsNzYsNzYpO3N0cm9rZS13aWR0aDo4LjE1cHg7Ii8+CiAgICAgICAgPC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMjcuNzM5NiwzMS4zNjk2KSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMDczLjExLDIxNTguMzZDMTA4Ni4wMiwyMTQ3LjA5IDEyNDYuMDUsMTk4OS43NyAxNDg4LjE5LDIwMzEuNSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDc2LDc2LDc2KTtzdHJva2Utd2lkdGg6OC4xNXB4OyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLC0wLjAwMDMzNTA0MywtMC4wMDAzMzUwNDMsMS4xNDI4NiwyMDEuMzA5LC0xNjcuNzYzKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LDAuMDAwMjkzMTYzLDAuMDAwMjkzMTYzLDAuODc1MDAxLDE2OS4yOSwxNzkwLjk3KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjAyLjUwNSwyMzMuNDU3TDE5MC4zNDEsMjU3Ljk1MkwxNzguMDQ0LDIzMy41MjRDMTg0LjE3NiwyMzkuNjIzIDE5Ni40MDYsMjM5LjU4OSAyMDIuNTA1LDIzMy40NTdaIiBzdHlsZT0iZmlsbDpyZ2IoMTAsMTQ4LDMpOyIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5MC4yMDMsMjA3LjMzM0MxOTAuMjAzLDIwNy4zMzMgMTkwLjI0OSwyMjQuMTM5IDE5MC4yODgsMjM4LjM4MyIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDEwLDE0OCwzKTtzdHJva2Utd2lkdGg6OC4xNXB4OyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsLTAuMDAwMzM1MDQzLC0wLjAwMDMzNTA0MywxLjE0Mjg2LDc3OS43MDQsLTE2MS44NTgpIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45OTk5OTksMC4wMDAyOTMxNjMsMC4wMDAyOTMxNjMsMC44NzUwMDEsLTQwOS4xMDUsMTc4NS42MykiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTc4MC44OTksMjM5LjM2M0w3NjguNzM1LDI2My44NTdMNzU2LjQzOCwyMzkuNDNDNzYyLjU3LDI0NS41MjggNzc0LjgsMjQ1LjQ5NSA3ODAuODk5LDIzOS4zNjNaIiBzdHlsZT0iZmlsbDpyZ2IoMTAsMTQ4LDMpOyIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTc2OC41OTcsMjEzLjIzOEM3NjguNTk3LDIxMy4yMzggNzY4LjY0MywyMzAuMDQ0IDc2OC42ODIsMjQ0LjI4OSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6cmdiKDEwLDE0OCwzKTtzdHJva2Utd2lkdGg6OC4xNXB4OyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsMjk1LjI3Niw5MC44MDE1KSI+CiAgICAgICAgICAgIDx0ZXh0IHg9IjE2NS4zNTRweCIgeT0iMjAxOC44NnB4IiBzdHlsZT0iZm9udC1mYW1pbHk6J0FyaWFsLUJvbGRNVCcsICdBcmlhbCcsIHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTozMy4zMzNweDtmaWxsOnJnYigxMCwxNDgsMyk7c3Ryb2tlOndoaXRlO3N0cm9rZS13aWR0aDowLjQ3cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+U25hcDwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSw4NzMuNjcsOTYuNzA3KSI+CiAgICAgICAgICAgIDx0ZXh0IHg9IjE2NS4zNTRweCIgeT0iMjAxOC44NnB4IiBzdHlsZT0iZm9udC1mYW1pbHk6J0FyaWFsLUJvbGRNVCcsICdBcmlhbCcsIHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTozMy4zMzNweDtmaWxsOnJnYigxMCwxNDgsMyk7c3Ryb2tlOndoaXRlO3N0cm9rZS13aWR0aDowLjQ3cHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+U25hcDwvdGV4dD4KICAgICAgICA8L2c+CiAgICAgICAgPGcgaWQ9IkNhcHN1bGUxMiIgc2VyaWY6aWQ9IkNhcHN1bGUiPgogICAgICAgIDwvZz4KICAgICAgICA8ZyBpZD0iQ2Fwc3VsZTEzIiBzZXJpZjppZD0iQ2Fwc3VsZSI+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"},28453:(I,g,C)=>{C.d(g,{R:()=>t,x:()=>c});var e=C(96540);const M={},A=e.createContext(M);function t(I){const g=e.useContext(A);return e.useMemo((function(){return"function"==typeof I?I(g):{...g,...I}}),[g,I])}function c(I){let g;return g=I.disableParentContext?"function"==typeof I.components?I.components(M):I.components||M:t(I.components),e.createElement(A.Provider,{value:g},I.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.