1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/app/modules/auth/core/Auth.tsx");if (!window.$RefreshReg$) throw new Error("React refresh preamble was not loaded. Something is wrong."); 2const prevRefreshReg = window.$RefreshReg$; 3const prevRefreshSig = window.$RefreshSig$; 4window.$RefreshReg$ = RefreshRuntime.getRefreshReg("/data/sixsigma/six-sigma-ui/src/app/modules/auth/core/Auth.tsx"); 5window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; 6 7import * as RefreshRuntime from "/@react-refresh"; 8 9/* eslint-disable react-refresh/only-export-components */ import __vite__cjsImport1_react_jsxDevRuntime from "/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=e8ce80ae"; const _jsxDEV = __vite__cjsImport1_react_jsxDevRuntime["jsxDEV"]; const _Fragment = __vite__cjsImport1_react_jsxDevRuntime["Fragment"]; 10var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(); 11import __vite__cjsImport2_react from "/node_modules/.vite/deps/react.js?v=e8ce80ae"; const createContext = __vite__cjsImport2_react["createContext"]; const useContext = __vite__cjsImport2_react["useContext"]; const useEffect = __vite__cjsImport2_react["useEffect"]; const useState = __vite__cjsImport2_react["useState"]; 12import { LayoutSplashScreen } from "/src/config/layout/core/index.ts"; 13import { getUserByToken } from "/src/app/modules/auth/core/_requests.ts"; 14import * as authHelper from "/src/app/modules/auth/core/AuthHelpers.ts"; 15import { initializeUserTimeZone } from "/src/app/DateConstants.tsx"; 16const initAuthContextPropsState = { 17 auth: authHelper.getAuth(), 18 saveAuth: ()=>{}, 19 currentUser: undefined, 20 setCurrentUser: ()=>{}, 21 logout: ()=>{} 22}; 23const AuthContext = /*#__PURE__*/ createContext(initAuthContextPropsState); 24const useAuth = ()=>{ 25 _s(); 26 return useContext(AuthContext); 27}; 28_s(useAuth, "gDsCjeeItUuvgOWf1v4qoK9RF6k="); 29const getCurrentUserAuthorities = ()=>{ 30 _s1(); 31 const auth = useAuth(); 32 if (auth.currentUser != undefined) { 33 const user = auth.currentUser; 34 return user.authorities; 35 } 36 return new Array(); 37}; 38_s1(getCurrentUserAuthorities, "YuJWYXaKIY31b1y7U6yy3IXSxQA=", false, function() { 39 return [ 40 useAuth 41 ]; 42}); 43const getCurrentUserCompanyAuthorities = (companyId)=>{ 44 _s2(); 45 const auth = useAuth(); 46 if (auth.currentUser) { 47 const user = auth.currentUser; 48 const company = user.companies.find((c)=>c.id === companyId); 49 if (company) { 50 return company.authorities; // Return the authorities for the found company 51 } 52 } 53 return []; // Return an empty array if no matching company or user is found 54}; 55_s2(getCurrentUserCompanyAuthorities, "YuJWYXaKIY31b1y7U6yy3IXSxQA=", false, function() { 56 return [ 57 useAuth 58 ]; 59}); 60const getCurrentUserFirstCompany = ()=>{ 61 _s3(); 62 const auth = useAuth(); 63 if (auth.currentUser) { 64 const user = auth.currentUser; 65 // Return the first company object if available 66 if (user.companies && user.companies.length > 0) { 67 return user.companies[0]; 68 } 69 } 70 return null; // Return null if no companies are available 71}; 72_s3(getCurrentUserFirstCompany, "YuJWYXaKIY31b1y7U6yy3IXSxQA=", false, function() { 73 return [ 74 useAuth 75 ]; 76}); 77const getCurrentUserCompanies = ()=>{ 78 _s4(); 79 const auth = useAuth(); 80 if (auth.currentUser) { 81 const user = auth.currentUser; 82 return user.companies; 83 } 84 return null; // Return null if no companies are available 85}; 86_s4(getCurrentUserCompanies, "YuJWYXaKIY31b1y7U6yy3IXSxQA=", false, function() { 87 return [ 88 useAuth 89 ]; 90}); 91const getCurrentUserDetails = (companyId)=>{ 92 _s5(); 93 const auth = useAuth(); 94 let company; 95 if (auth.currentUser) { 96 const user = auth.currentUser; 97 if (user.companies.length > 0) { 98 if (companyId > 0) { 99 company = user.companies.find((c)=>c.id === companyId); 100 } else { 101 company = user.companies[0]; 102 } 103 } else { 104 // No company is available 105 return null; 106 } 107 if (company) { 108 auth.currentUser.companies = [ 109 company 110 ]; 111 } else { 112 // No matching company found 113 return null; 114 } 115 } 116 return auth.currentUser; 117}; 118_s5(getCurrentUserDetails, "YuJWYXaKIY31b1y7U6yy3IXSxQA=", false, function() { 119 return [ 120 useAuth 121 ]; 122}); 123const AuthProvider = ({ children })=>{ 124 _s6(); 125 const [auth, setAuth] = useState(authHelper.getAuth()); 126 const [currentUser, setCurrentUser] = useState(); 127 const saveAuth = (auth)=>{ 128 setAuth(auth); 129 if (auth) { 130 authHelper.setAuth(auth); 131 } else { 132 authHelper.removeAuth(); 133 } 134 }; 135 const logout = ()=>{ 136 saveAuth(undefined); 137 setCurrentUser(undefined); 138 }; 139 return /*#__PURE__*/ _jsxDEV(AuthContext.Provider, { 140 value: { 141 auth, 142 saveAuth, 143 currentUser, 144 setCurrentUser, 145 logout 146 }, 147 children: children 148 }, void 0, false, { 149 fileName: "/data/sixsigma/six-sigma-ui/src/app/modules/auth/core/Auth.tsx", 150 lineNumber: 126, 151 columnNumber: 5 152 }, this); 153}; 154_s6(AuthProvider, "G82xl4FfwRiphoqVowsoibmuR5g="); 155_c = AuthProvider; 156const AuthInit = ({ children })=>{ 157 _s7(); 158 const { auth, currentUser, logout, setCurrentUser } = useAuth(); 159 const [showSplashScreen, setShowSplashScreen] = useState(true); 160 // We should request user by authToken (IN OUR EXAMPLE IT'S API_TOKEN) before rendering the application 161 useEffect(()=>{ 162 const requestUser = async (apiToken)=>{ 163 try { 164 if (!currentUser) { 165 const { data } = await getUserByToken(apiToken); 166 if (data) { 167 setCurrentUser(data); 168 await initializeUserTimeZone(data); 169 } 170 } 171 } catch (error) { 172 console.error(error); 173 if (currentUser) { 174 logout(); 175 } 176 } finally{ 177 setShowSplashScreen(false); 178 } 179 }; 180 if (auth && auth.api_token) { 181 requestUser(auth.api_token); 182 } else { 183 logout(); 184 setShowSplashScreen(false); 185 } 186 // eslint-disable-next-line 187 }, []); 188 return showSplashScreen ? /*#__PURE__*/ _jsxDEV(LayoutSplashScreen, {}, void 0, false, { 189 fileName: "/data/sixsigma/six-sigma-ui/src/app/modules/auth/core/Auth.tsx", 190 lineNumber: 166, 191 columnNumber: 29 192 }, this) : /*#__PURE__*/ _jsxDEV(_Fragment, { 193 children: children 194 }, void 0, false); 195}; 196_s7(AuthInit, "DaNjeJ6xFmOOuvl0lG79Ar3O4hQ=", false, function() { 197 return [ 198 useAuth 199 ]; 200}); 201_c1 = AuthInit; 202export { AuthInit, AuthProvider, getCurrentUserAuthorities, getCurrentUserDetails, getCurrentUserFirstCompany, getCurrentUserCompanies, useAuth }; 203var _c, _c1; 204$RefreshReg$(_c, "AuthProvider"); 205$RefreshReg$(_c1, "AuthInit"); 206 207 208window.$RefreshReg$ = prevRefreshReg; 209window.$RefreshSig$ = prevRefreshSig; 210 211RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => { 212 RefreshRuntime.registerExportsForReactRefresh("/data/sixsigma/six-sigma-ui/src/app/modules/auth/core/Auth.tsx", currentExports); 213 import.meta.hot.accept((nextExports) => { 214 if (!nextExports) return; 215 const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/data/sixsigma/six-sigma-ui/src/app/modules/auth/core/Auth.tsx", currentExports, nextExports);
216 if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage); 217 }); 218}); 219 220//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkF1dGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LXJlZnJlc2gvb25seS1leHBvcnQtY29tcG9uZW50cyAqL1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgRGlzcGF0Y2gsIEZDLCBTZXRTdGF0ZUFjdGlvbiwgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgV2l0aENoaWxkcmVuIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uZmlnL2hlbHBlcnMnXG5pbXBvcnQgeyBMYXlvdXRTcGxhc2hTY3JlZW4gfSBmcm9tICcuLi8uLi8uLi8uLi9jb25maWcvbGF5b3V0L2NvcmUnXG5pbXBvcnQgeyBBdXRoTW9kZWwsIFVzZXJNb2RlbCB9IGZyb20gJy4vX21vZGVscydcbmltcG9ydCB7IGdldFVzZXJCeVRva2VuIH0gZnJvbSAnLi9fcmVxdWVzdHMnXG5pbXBvcnQgKiBhcyBhdXRoSGVscGVyIGZyb20gJy4vQXV0aEhlbHBlcnMnXG5pbXBvcnQgeyBpbml0aWFsaXplVXNlclRpbWVab25lIH0gZnJvbSAnLi4vLi4vLi4vRGF0ZUNvbnN0YW50cydcblxudHlwZSBBdXRoQ29udGV4dFByb3BzID0ge1xuICBhdXRoOiBBdXRoTW9kZWwgfCB1bmRlZmluZWRcbiAgc2F2ZUF1dGg6IChhdXRoOiBBdXRoTW9kZWwgfCB1bmRlZmluZWQpID0+IHZvaWRcbiAgY3VycmVudFVzZXI6IFVzZXJNb2RlbCB8IHVuZGVmaW5lZFxuICBzZXRDdXJyZW50VXNlcjogRGlzcGF0Y2g8U2V0U3RhdGVBY3Rpb248VXNlck1vZGVsIHwgdW5kZWZpbmVkPj5cbiAgbG9nb3V0OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IGluaXRBdXRoQ29udGV4dFByb3BzU3RhdGUgPSB7XG4gIGF1dGg6IGF1dGhIZWxwZXIuZ2V0QXV0aCgpLFxuICBzYXZlQXV0aDogKCkgPT4geyB9LFxuICBjdXJyZW50VXNlcjogdW5kZWZpbmVkLFxuICBzZXRDdXJyZW50VXNlcjogKCkgPT4geyB9LFxuICBsb2dvdXQ6ICgpID0+IHsgfSxcbn1cblxuY29uc3QgQXV0aENvbnRleHQgPSBjcmVhdGVDb250ZXh0PEF1dGhDb250ZXh0UHJvcHM+KGluaXRBdXRoQ29udGV4dFByb3BzU3RhdGUpXG5cbmNvbnN0IHVzZUF1dGggPSAoKSA9PiB7XG4gIHJldHVybiB1c2VDb250ZXh0KEF1dGhDb250ZXh0KVxufVxuXG5jb25zdCBnZXRDdXJyZW50VXNlckF1dGhvcml0aWVzID0gKCkgPT4ge1xuICBjb25zdCBhdXRoOiBBdXRoQ29udGV4dFByb3BzID0gdXNlQXV0aCgpO1xuICBpZiAoYXV0aC5jdXJyZW50VXNlciAhPSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB1c2VyOiBVc2VyTW9kZWwgPSBhdXRoLmN1cnJlbnRVc2VyO1xuICAgIHJldHVybiB1c2VyLmF1dGhvcml0aWVzO1xuICB9XG4gIHJldHVybiBuZXcgQXJyYXkoKTtcbn1cbmNvbnN0IGdldEN1cnJlbnRVc2VyQ29tcGFueUF1dGhvcml0aWVzID0gKGNvbXBhbnlJZDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGF1dGg6IEF1dGhDb250ZXh0UHJvcHMgPSB1c2VBdXRoKCk7XG5cbiAgaWYgKGF1dGguY3VycmVudFVzZXIpIHtcbiAgICBjb25zdCB1c2VyOiBVc2VyTW9kZWwgPSBhdXRoLmN1cnJlbnRVc2VyO1xuXG4gICAgY29uc3QgY29tcGFueSA9IHVzZXIuY29tcGFuaWVzLmZpbmQoKGMpID0+IGMuaWQgPT09IGNvbXBhbnlJZCk7XG4gICAgaWYgKGNvbXBhbnkpIHtcbiAgICAgIHJldHVybiBjb21wYW55LmF1dGhvcml0aWVzOyAvLyBSZXR1cm4gdGhlIGF1dGhvcml0aWVzIGZvciB0aGUgZm91bmQgY29tcGFueVxuICAgIH1cbiAgfVxuICByZXR1cm4gW107IC8vIFJldHVybiBhbiBlbXB0eSBhcnJheSBpZiBubyBtYXRjaGluZyBjb21wYW55IG9yIHVzZXIgaXMgZm91bmRcbn07XG5cbmNvbnN0IGdldEN1cnJlbnRVc2VyRmlyc3RDb21wYW55ID0gKCkgPT4ge1xuICBjb25zdCBhdXRoOiBBdXRoQ29udGV4dFByb3BzID0gdXNlQXV0aCgpO1xuXG4gIGlmIChhdXRoLmN1cnJlbnRVc2VyKSB7XG4gICAgY29uc3QgdXNlcjogVXNlck1vZGVsID0gYXV0aC5jdXJyZW50VXNlcjtcblxuICAgIC8vIFJldHVybiB0aGUgZmlyc3QgY29tcGFueSBvYmplY3QgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHVzZXIuY29tcGFuaWVzICYmIHVzZXIuY29tcGFuaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB1c2VyLmNvbXBhbmllc1swXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgbm8gY29tcGFuaWVzIGFyZSBhdmFpbGFibGVcbn07XG5jb25zdCBnZXRDdXJyZW50VXNlckNvbXBhbmllcyA9ICgpID0+IHtcbiAgY29uc3QgYXV0aDogQXV0aENvbnRleHRQcm9wcyA9IHVzZUF1dGgoKTtcblxuICBpZiAoYXV0aC5jdXJyZW50VXNlcikge1xuICAgIGNvbnN0IHVzZXI6IFVzZXJNb2RlbCA9IGF1dGguY3VycmVudFVzZXI7XG4gICAgcmV0dXJuIHVzZXIuY29tcGFuaWVzO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIG5vIGNvbXBhbmllcyBhcmUgYXZhaWxhYmxlXG59O1xuY29uc3QgZ2V0Q3VycmVudFVzZXJEZXRhaWxzID0gKGNvbXBhbnlJZDogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGF1dGg6IEF1dGhDb250ZXh0UHJvcHMgPSB1c2VBdXRoKCk7XG4gIGxldCBjb21wYW55O1xuICBpZiAoYXV0aC5jdXJyZW50VXNlcikge1xuICAgIGNvbnN0IHVzZXI6IFVzZXJNb2RlbCA9IGF1dGguY3VycmVudFVzZXI7XG5cbiAgICBcbiAgICBpZiAodXNlci5jb21wYW5pZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKGNvbXBhbnlJZCA+IDApIHtcbiAgICAgICAgY29tcGFueSA9IHVzZXIuY29tcGFuaWVzLmZpbmQoKGMpID0+IGMuaWQgPT09IGNvbXBhbnlJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21wYW55ID0gdXNlci5jb21wYW5pZXNbMF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGNvbXBhbnkgaXMgYXZhaWxhYmxlXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoY29tcGFueSkge1xuICAgICAgYXV0aC5jdXJyZW50VXNlci5jb21wYW5pZXMgPSBbY29tcGFueV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIG1hdGNoaW5nIGNvbXBhbnkgZm91bmRcbiAgICAgIHJldHVybi
220BudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXV0aC5jdXJyZW50VXNlcjtcbn07XG5cblxuY29uc3QgQXV0aFByb3ZpZGVyOiBGQzxXaXRoQ2hpbGRyZW4+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBbYXV0aCwgc2V0QXV0aF0gPSB1c2VTdGF0ZTxBdXRoTW9kZWwgfCB1bmRlZmluZWQ+KGF1dGhIZWxwZXIuZ2V0QXV0aCgpKVxuICBjb25zdCBbY3VycmVudFVzZXIsIHNldEN1cnJlbnRVc2VyXSA9IHVzZVN0YXRlPFVzZXJNb2RlbCB8IHVuZGVmaW5lZD4oKVxuICBjb25zdCBzYXZlQXV0aCA9IChhdXRoOiBBdXRoTW9kZWwgfCB1bmRlZmluZWQpID0+IHtcbiAgICBzZXRBdXRoKGF1dGgpXG4gICAgaWYgKGF1dGgpIHtcbiAgICAgIGF1dGhIZWxwZXIuc2V0QXV0aChhdXRoKVxuICAgIH0gZWxzZSB7XG4gICAgICBhdXRoSGVscGVyLnJlbW92ZUF1dGgoKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGxvZ291dCA9ICgpID0+IHtcbiAgIFxuICAgIHNhdmVBdXRoKHVuZGVmaW5lZClcbiAgICBzZXRDdXJyZW50VXNlcih1bmRlZmluZWQpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxBdXRoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyBhdXRoLCBzYXZlQXV0aCwgY3VycmVudFVzZXIsIHNldEN1cnJlbnRVc2VyLCBsb2dvdXQgfX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9BdXRoQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5jb25zdCBBdXRoSW5pdDogRkM8V2l0aENoaWxkcmVuPiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBhdXRoLCBjdXJyZW50VXNlciwgbG9nb3V0LCBzZXRDdXJyZW50VXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IFtzaG93U3BsYXNoU2NyZWVuLCBzZXRTaG93U3BsYXNoU2NyZWVuXSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgLy8gV2Ugc2hvdWxkIHJlcXVlc3QgdXNlciBieSBhdXRoVG9rZW4gKElOIE9VUiBFWEFNUExFIElUJ1MgQVBJX1RPS0VOKSBiZWZvcmUgcmVuZGVyaW5nIHRoZSBhcHBsaWNhdGlvblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJlcXVlc3RVc2VyID0gYXN5bmMgKGFwaVRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghY3VycmVudFVzZXIpIHtcbiAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGdldFVzZXJCeVRva2VuKGFwaVRva2VuKVxuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50VXNlcihkYXRhKVxuICAgICAgICAgICAgYXdhaXQgaW5pdGlhbGl6ZVVzZXJUaW1lWm9uZShkYXRhKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgaWYgKGN1cnJlbnRVc2VyKSB7XG4gICAgICAgICAgbG9nb3V0KClcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0U2hvd1NwbGFzaFNjcmVlbihmYWxzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYXV0aCAmJiBhdXRoLmFwaV90b2tlbikge1xuICAgICAgcmVxdWVzdFVzZXIoYXV0aC5hcGlfdG9rZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ291dCgpXG4gICAgICBzZXRTaG93U3BsYXNoU2NyZWVuKGZhbHNlKVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgfSwgW10pXG5cbiAgcmV0dXJuIHNob3dTcGxhc2hTY3JlZW4gPyA8TGF5b3V0U3BsYXNoU2NyZWVuIC8+IDogPD57Y2hpbGRyZW59PC8+XG59XG5cbmV4cG9ydCB7IEF1dGhJbml0LCBBdXRoUHJvdmlkZXIsIGdldEN1cnJlbnRVc2VyQXV0aG9yaXRpZXMsZ2V0Q3VycmVudFVzZXJEZXRhaWxzLGdldEN1cnJlbnRVc2VyRmlyc3RDb21wYW55LCBnZXRDdXJyZW50VXNlckNvbXBhbmllcywgdXNlQXV0aCB9XG4iXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIkxheW91dFNwbGFzaFNjcmVlbiIsImdldFVzZXJCeVRva2VuIiwiYXV0aEhlbHBlciIsImluaXRpYWxpemVVc2VyVGltZVpvbmUiLCJpbml0QXV0aENvbnRleHRQcm9wc1N0YXRlIiwiYXV0aCIsImdldEF1dGgiLCJzYXZlQXV0aCIsImN1cnJlbnRVc2VyIiwidW5kZWZpbmVkIiwic2V0Q3VycmVudFVzZXIiLCJsb2dvdXQiLCJBdXRoQ29udGV4dCIsInVzZUF1dGgiLCJnZXRDdXJyZW50VXNlckF1dGhvcml0aWVzIiwidXNlciIsImF1dGhvcml0aWVzIiwiQXJyYXkiLCJnZXRDdXJyZW50VXNlckNvbXBhbnlBdXRob3JpdGllcyIsImNvbXBhbnlJZCIsImNvbXBhbnkiLCJjb21wYW5pZXMiLCJmaW5kIiwiYyIsImlkIiwiZ2V0Q3VycmVudFVzZXJGaXJzdENvbXBhbnkiLCJsZW5ndGgiLCJnZXRDdXJyZW50VXNlckNvbXBhbmllcyIsImdldEN1cnJlbnRVc2VyRGV0YWlscyIsIkF1dGhQcm92aWRlciIsImNoaWxkcmVuIiwic2V0QXV0aCIsInJlbW92ZUF1dGgiLCJQcm92aWRlciIsInZhbHVlIiwiQXV0aEluaXQiLCJzaG93U3BsYXNoU2NyZWVuIiwic2V0U2hvd1NwbGFzaFNjcmVlbiIsInJlcXVlc3RVc2VyIiwiYXBpVG9rZW4
220iLCJkYXRhIiwiZXJyb3IiLCJjb25zb2xlIiwiYXBpX3Rva2VuIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsdURBQXVEOztBQUN2RCxTQUFTQSxhQUFhLEVBQWdDQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFFcEcsU0FBU0Msa0JBQWtCLFFBQVEsaUNBQWdDO0FBRW5FLFNBQVNDLGNBQWMsUUFBUSxjQUFhO0FBQzVDLFlBQVlDLGdCQUFnQixnQkFBZTtBQUMzQyxTQUFTQyxzQkFBc0IsUUFBUSx5QkFBd0I7QUFVL0QsTUFBTUMsNEJBQTRCO0lBQ2hDQyxNQUFNSCxXQUFXSSxPQUFPO0lBQ3hCQyxVQUFVLEtBQVE7SUFDbEJDLGFBQWFDO0lBQ2JDLGdCQUFnQixLQUFRO0lBQ3hCQyxRQUFRLEtBQVE7QUFDbEI7QUFFQSxNQUFNQyw0QkFBY2hCLGNBQWdDUTtBQUVwRCxNQUFNUyxVQUFVOztJQUNkLE9BQU9oQixXQUFXZTtBQUNwQjtHQUZNQztBQUlOLE1BQU1DLDRCQUE0Qjs7SUFDaEMsTUFBTVQsT0FBeUJRO0lBQy9CLElBQUlSLEtBQUtHLFdBQVcsSUFBSUMsV0FBVztRQUNqQyxNQUFNTSxPQUFrQlYsS0FBS0csV0FBVztRQUN4QyxPQUFPTyxLQUFLQyxXQUFXO0lBQ3pCO0lBQ0EsT0FBTyxJQUFJQztBQUNiO0lBUE1IOztRQUMyQkQ7OztBQU9qQyxNQUFNSyxtQ0FBbUMsQ0FBQ0M7O0lBQ3hDLE1BQU1kLE9BQXlCUTtJQUUvQixJQUFJUixLQUFLRyxXQUFXLEVBQUU7UUFDcEIsTUFB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
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.