{"payload":{"allShortcutsEnabled":false,"fileTree":{"services/src/main/java/org/keycloak/protocol/oidc":{"items":[{"name":"endpoints","path":"services/src/main/java/org/keycloak/protocol/oidc/endpoints","contentType":"directory"},{"name":"mappers","path":"services/src/main/java/org/keycloak/protocol/oidc/mappers","contentType":"directory"},{"name":"representations","path":"services/src/main/java/org/keycloak/protocol/oidc/representations","contentType":"directory"},{"name":"utils","path":"services/src/main/java/org/keycloak/protocol/oidc/utils","contentType":"directory"},{"name":"OIDCLoginProtocol.java","path":"services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocol.java","contentType":"file"},{"name":"OIDCLoginProtocolFactory.java","path":"services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolFactory.java","contentType":"file"},{"name":"OIDCLoginProtocolService.java","path":"services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolService.java","contentType":"file"},{"name":"OIDCWellKnownProvider.java","path":"services/src/main/java/org/keycloak/protocol/oidc/OIDCWellKnownProvider.java","contentType":"file"},{"name":"OIDCWellKnownProviderFactory.java","path":"services/src/main/java/org/keycloak/protocol/oidc/OIDCWellKnownProviderFactory.java","contentType":"file"},{"name":"TokenManager.java","path":"services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java","contentType":"file"}],"totalCount":10},"services/src/main/java/org/keycloak/protocol":{"items":[{"name":"oidc","path":"services/src/main/java/org/keycloak/protocol/oidc","contentType":"directory"},{"name":"AbstractLoginProtocolFactory.java","path":"services/src/main/java/org/keycloak/protocol/AbstractLoginProtocolFactory.java","contentType":"file"},{"name":"LoginProtocol.java","path":"services/src/main/java/org/keycloak/protocol/LoginProtocol.java","contentType":"file"},{"name":"LoginProtocolFactory.java","path":"services/src/main/java/org/keycloak/protocol/LoginProtocolFactory.java","contentType":"file"},{"name":"LoginProtocolSpi.java","path":"services/src/main/java/org/keycloak/protocol/LoginProtocolSpi.java","contentType":"file"},{"name":"ProtocolMapper.java","path":"services/src/main/java/org/keycloak/protocol/ProtocolMapper.java","contentType":"file"},{"name":"ProtocolMapperSpi.java","path":"services/src/main/java/org/keycloak/protocol/ProtocolMapperSpi.java","contentType":"file"},{"name":"ProtocolMapperUtils.java","path":"services/src/main/java/org/keycloak/protocol/ProtocolMapperUtils.java","contentType":"file"}],"totalCount":8},"services/src/main/java/org/keycloak":{"items":[{"name":"authentication","path":"services/src/main/java/org/keycloak/authentication","contentType":"directory"},{"name":"exportimport","path":"services/src/main/java/org/keycloak/exportimport","contentType":"directory"},{"name":"messages","path":"services/src/main/java/org/keycloak/messages","contentType":"directory"},{"name":"offlineconfig","path":"services/src/main/java/org/keycloak/offlineconfig","contentType":"directory"},{"name":"protocol","path":"services/src/main/java/org/keycloak/protocol","contentType":"directory"},{"name":"provider","path":"services/src/main/java/org/keycloak/provider","contentType":"directory"},{"name":"services","path":"services/src/main/java/org/keycloak/services","contentType":"directory"},{"name":"wellknown","path":"services/src/main/java/org/keycloak/wellknown","contentType":"directory"}],"totalCount":8},"services/src/main/java/org":{"items":[{"name":"keycloak","path":"services/src/main/java/org/keycloak","contentType":"directory"}],"totalCount":1},"services/src/main/java":{"items":[{"name":"org","path":"services/src/main/java/org","contentType":"directory"}],"totalCount":1},"services/src/main":{"items":[{"name":"java","path":"services/src/main/java","contentType":"directory"},{"name":"resources","path":"services/src/main/resources","contentType":"directory"}],"totalCount":2},"services/src":{"items":[{"name":"main","path":"services/src/main","contentType":"directory"},{"name":"test","path":"services/src/test","contentType":"directory"}],"totalCount":2},"services":{"items":[{"name":"src","path":"services/src","contentType":"directory"},{"name":"pom.xml","path":"services/pom.xml","contentType":"file"}],"totalCount":2},"":{"items":[{"name":"broker","path":"broker","contentType":"directory"},{"name":"connections","path":"connections","contentType":"directory"},{"name":"core-jaxrs","path":"core-jaxrs","contentType":"directory"},{"name":"core","path":"core","contentType":"directory"},{"name":"dependencies","path":"dependencies","contentType":"directory"},{"name":"distribution","path":"distribution","contentType":"directory"},{"name":"docbook","path":"docbook","contentType":"directory"},{"name":"events","path":"events","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"export-import","path":"export-import","contentType":"directory"},{"name":"federation","path":"federation","contentType":"directory"},{"name":"forms","path":"forms","contentType":"directory"},{"name":"integration","path":"integration","contentType":"directory"},{"name":"misc","path":"misc","contentType":"directory"},{"name":"model","path":"model","contentType":"directory"},{"name":"proxy","path":"proxy","contentType":"directory"},{"name":"saml","path":"saml","contentType":"directory"},{"name":"services","path":"services","contentType":"directory"},{"name":"social","path":"social","contentType":"directory"},{"name":"testsuite","path":"testsuite","contentType":"directory"},{"name":"timer","path":"timer","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".travis.yml","path":".travis.yml","contentType":"file"},{"name":"License.html","path":"License.html","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"pom.xml","path":"pom.xml","contentType":"file"}],"totalCount":26}},"fileTreeProcessingTime":53.222477999999995,"foldersToFetch":[],"repo":{"id":11125589,"defaultBranch":"main","name":"keycloak","ownerLogin":"keycloak","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-07-02T13:38:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4921466?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"88f14b39a71e679fe7ed1699d7b2acb8c1c4742a","listCacheKey":"v0:1710808795.0","canEdit":false,"refType":"tree","currentOid":"88f14b39a71e679fe7ed1699d7b2acb8c1c4742a"},"path":"services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java","currentUser":null,"blob":{"rawLines":["package org.keycloak.protocol.oidc;\r","\r","import org.jboss.logging.Logger;\r","import org.keycloak.ClientConnection;\r","import org.keycloak.OAuthErrorException;\r","import org.keycloak.events.Details;\r","import org.keycloak.events.EventBuilder;\r","import org.keycloak.jose.jws.JWSBuilder;\r","import org.keycloak.jose.jws.JWSInput;\r","import org.keycloak.jose.jws.crypto.RSAProvider;\r","import org.keycloak.models.ClientModel;\r","import org.keycloak.models.ClientSessionModel;\r","import org.keycloak.models.KeycloakSession;\r","import org.keycloak.models.KeycloakSessionFactory;\r","import org.keycloak.models.ProtocolMapperModel;\r","import org.keycloak.models.RealmModel;\r","import org.keycloak.models.RoleModel;\r","import org.keycloak.models.UserModel;\r","import org.keycloak.models.UserSessionModel;\r","import org.keycloak.models.UserSessionProvider;\r","import org.keycloak.models.utils.KeycloakModelUtils;\r","import org.keycloak.protocol.ProtocolMapper;\r","import org.keycloak.protocol.oidc.mappers.OIDCAccessTokenMapper;\r","import org.keycloak.protocol.oidc.mappers.OIDCIDTokenMapper;\r","import org.keycloak.representations.AccessToken;\r","import org.keycloak.representations.AccessTokenResponse;\r","import org.keycloak.representations.IDToken;\r","import org.keycloak.representations.RefreshToken;\r","import org.keycloak.services.managers.AuthenticationManager;\r","import org.keycloak.services.managers.ClientSessionCode;\r","import org.keycloak.util.Time;\r","\r","import javax.ws.rs.core.HttpHeaders;\r","import javax.ws.rs.core.UriInfo;\r","import java.io.IOException;\r","import java.util.HashSet;\r","import java.util.Map;\r","import java.util.Set;\r","\r","/**\r"," * Stateful object that creates tokens and manages oauth access codes\r"," *\r"," * @author Bill Burke\r"," * @version $Revision: 1 $\r"," */\r","public class TokenManager {\r"," protected static final Logger logger = Logger.getLogger(TokenManager.class);\r","\r"," public static void applyScope(RoleModel role, RoleModel scope, Set visited, Set requested) {\r"," if (visited.contains(scope)) return;\r"," visited.add(scope);\r"," if (role.hasRole(scope)) {\r"," requested.add(scope);\r"," return;\r"," }\r"," if (!scope.isComposite()) return;\r","\r"," for (RoleModel contained : scope.getComposites()) {\r"," applyScope(role, contained, visited, requested);\r"," }\r"," }\r","\r"," public static class TokenValidation {\r"," public final UserModel user;\r"," public final UserSessionModel userSession;\r"," public final ClientSessionModel clientSession;\r"," public final AccessToken newToken;\r","\r"," public TokenValidation(UserModel user, UserSessionModel userSession, ClientSessionModel clientSession, AccessToken newToken) {\r"," this.user = user;\r"," this.userSession = userSession;\r"," this.clientSession = clientSession;\r"," this.newToken = newToken;\r"," }\r"," }\r","\r"," public TokenValidation validateToken(KeycloakSession session, UriInfo uriInfo, ClientConnection connection, RealmModel realm, AccessToken oldToken, HttpHeaders headers) throws OAuthErrorException {\r"," UserModel user = session.users().getUserById(oldToken.getSubject(), realm);\r"," if (user == null) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token\", \"Unknown user\");\r"," }\r","\r"," if (!user.isEnabled()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"User disabled\", \"User disabled\");\r"," }\r","\r"," UserSessionModel userSession = session.sessions().getUserSession(realm, oldToken.getSessionState());\r"," if (!AuthenticationManager.isSessionValid(realm, userSession)) {\r"," AuthenticationManager.backchannelLogout(session, realm, userSession, uriInfo, connection, headers, true);\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Session not active\", \"Session not active\");\r"," }\r"," ClientSessionModel clientSession = null;\r"," for (ClientSessionModel clientSessionModel : userSession.getClientSessions()) {\r"," if (clientSessionModel.getId().equals(oldToken.getClientSession())) {\r"," clientSession = clientSessionModel;\r"," break;\r"," }\r"," }\r","\r"," if (clientSession == null) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Client session not active\", \"Client session not active\");\r"," }\r","\r"," ClientModel client = clientSession.getClient();\r","\r"," if (!client.getClientId().equals(oldToken.getIssuedFor())) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Unmatching clients\", \"Unmatching clients\");\r"," }\r","\r"," if (oldToken.getIssuedAt() < client.getNotBefore()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Stale token\");\r"," }\r"," if (oldToken.getIssuedAt() < realm.getNotBefore()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Stale token\");\r"," }\r","\r","\r"," // recreate token.\r"," Set requestedRoles = TokenManager.getAccess(null, clientSession.getClient(), user);\r"," AccessToken newToken = createClientAccessToken(session, requestedRoles, realm, client, user, userSession, clientSession);\r"," verifyAccess(oldToken, newToken);\r","\r"," return new TokenValidation(user, userSession, clientSession, newToken);\r","\r","\r"," }\r","\r"," public AccessTokenResponse refreshAccessToken(KeycloakSession session, UriInfo uriInfo, ClientConnection connection, RealmModel realm, ClientModel authorizedClient, String encodedRefreshToken, EventBuilder event, HttpHeaders headers) throws OAuthErrorException {\r"," RefreshToken refreshToken = verifyRefreshToken(realm, encodedRefreshToken);\r","\r"," event.user(refreshToken.getSubject()).session(refreshToken.getSessionState()).detail(Details.REFRESH_TOKEN_ID, refreshToken.getId());\r","\r"," TokenValidation validation = validateToken(session, uriInfo, connection, realm, refreshToken, headers);\r"," // validate authorizedClient is same as validated client\r"," if (!validation.clientSession.getClient().getId().equals(authorizedClient.getId())) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token. Token client and authorized client don't match\");\r"," }\r","\r"," int currentTime = Time.currentTime();\r"," validation.userSession.setLastSessionRefresh(currentTime);\r","\r"," AccessTokenResponse res = responseBuilder(realm, authorizedClient, event, session, validation.userSession, validation.clientSession)\r"," .accessToken(validation.newToken)\r"," .generateIDToken()\r"," .generateRefreshToken().build();\r"," return res;\r"," }\r","\r"," public RefreshToken verifyRefreshToken(RealmModel realm, String encodedRefreshToken) throws OAuthErrorException {\r"," JWSInput jws = new JWSInput(encodedRefreshToken);\r"," RefreshToken refreshToken = null;\r"," try {\r"," if (!RSAProvider.verify(jws, realm.getPublicKey())) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token\");\r"," }\r"," refreshToken = jws.readJsonContent(RefreshToken.class);\r"," } catch (Exception e) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token\", e);\r"," }\r"," if (refreshToken.isExpired()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Refresh token expired\");\r"," }\r","\r"," if (refreshToken.getIssuedAt() < realm.getNotBefore()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Stale refresh token\");\r"," }\r"," return refreshToken;\r"," }\r"," public IDToken verifyIDToken(RealmModel realm, String encodedIDToken) throws OAuthErrorException {\r"," JWSInput jws = new JWSInput(encodedIDToken);\r"," IDToken idToken = null;\r"," try {\r"," if (!RSAProvider.verify(jws, realm.getPublicKey())) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token\");\r"," }\r"," idToken = jws.readJsonContent(IDToken.class);\r"," } catch (IOException e) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Invalid refresh token\", e);\r"," }\r"," if (idToken.isExpired()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Refresh token expired\");\r"," }\r","\r"," if (idToken.getIssuedAt() < realm.getNotBefore()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_GRANT, \"Stale refresh token\");\r"," }\r"," return idToken;\r"," }\r","\r"," public AccessToken createClientAccessToken(KeycloakSession session, Set requestedRoles, RealmModel realm, ClientModel client, UserModel user, UserSessionModel userSession, ClientSessionModel clientSession) {\r"," AccessToken token = initToken(realm, client, user, userSession, clientSession);\r"," for (RoleModel role : requestedRoles) {\r"," addComposites(token, role);\r"," }\r"," token = transformAccessToken(session, token, realm, client, user, userSession, clientSession);\r"," return token;\r"," }\r","\r"," public static void attachClientSession(UserSessionModel session, ClientSessionModel clientSession) {\r"," if (clientSession.getUserSession() != null) {\r"," return;\r"," }\r","\r"," UserModel user = session.getUser();\r"," clientSession.setUserSession(session);\r"," Set requestedRoles = new HashSet();\r"," // todo scope param protocol independent\r"," for (RoleModel r : TokenManager.getAccess(null, clientSession.getClient(), user)) {\r"," requestedRoles.add(r.getId());\r"," }\r"," clientSession.setRoles(requestedRoles);\r","\r"," Set requestedProtocolMappers = new HashSet();\r"," for (ProtocolMapperModel protocolMapper : clientSession.getClient().getProtocolMappers()) {\r"," if (protocolMapper.getProtocol().equals(clientSession.getAuthMethod())) {\r"," requestedProtocolMappers.add(protocolMapper.getId());\r"," }\r"," }\r"," clientSession.setProtocolMappers(requestedProtocolMappers);\r","\r"," Map transferredNotes = clientSession.getUserSessionNotes();\r"," for (Map.Entry entry : transferredNotes.entrySet()) {\r"," session.setNote(entry.getKey(), entry.getValue());\r"," }\r","\r"," }\r","\r"," public static void dettachClientSession(UserSessionProvider sessions, RealmModel realm, ClientSessionModel clientSession) {\r"," UserSessionModel userSession = clientSession.getUserSession();\r"," if (userSession == null) {\r"," return;\r"," }\r","\r"," clientSession.setUserSession(null);\r"," clientSession.setRoles(null);\r"," clientSession.setProtocolMappers(null);\r","\r"," if (userSession.getClientSessions().isEmpty()) {\r"," sessions.removeUserSession(realm, userSession);\r"," }\r"," }\r","\r"," public static Set getAccess(String scopeParam, ClientModel client, UserModel user) {\r"," // todo scopeParam is ignored until we figure out a scheme that fits with openid connect\r"," Set requestedRoles = new HashSet();\r","\r"," Set roleMappings = user.getRoleMappings();\r"," if (client.isFullScopeAllowed()) return roleMappings;\r","\r"," Set scopeMappings = client.getScopeMappings();\r"," if (client instanceof ClientModel) {\r"," scopeMappings.addAll(((ClientModel) client).getRoles());\r"," }\r","\r"," for (RoleModel role : roleMappings) {\r"," for (RoleModel desiredRole : scopeMappings) {\r"," Set visited = new HashSet();\r"," applyScope(role, desiredRole, visited, requestedRoles);\r"," }\r"," }\r","\r"," return requestedRoles;\r"," }\r","\r"," public void verifyAccess(AccessToken token, AccessToken newToken) throws OAuthErrorException {\r"," if (token.getRealmAccess() != null) {\r"," if (newToken.getRealmAccess() == null) throw new OAuthErrorException(OAuthErrorException.INVALID_SCOPE, \"User no long has permission for realm roles\");\r","\r"," for (String roleName : token.getRealmAccess().getRoles()) {\r"," if (!newToken.getRealmAccess().getRoles().contains(roleName)) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_SCOPE, \"User no long has permission for realm role: \" + roleName);\r"," }\r"," }\r"," }\r"," if (token.getResourceAccess() != null) {\r"," for (Map.Entry entry : token.getResourceAccess().entrySet()) {\r"," AccessToken.Access appAccess = newToken.getResourceAccess(entry.getKey());\r"," if (appAccess == null && !entry.getValue().getRoles().isEmpty()) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_SCOPE, \"User or client no longer has role permissions for client key: \" + entry.getKey());\r","\r"," }\r"," for (String roleName : entry.getValue().getRoles()) {\r"," if (!appAccess.getRoles().contains(roleName)) {\r"," throw new OAuthErrorException(OAuthErrorException.INVALID_SCOPE, \"User no long has permission for client role \" + roleName);\r"," }\r"," }\r"," }\r"," }\r"," }\r","\r"," public AccessToken transformAccessToken(KeycloakSession session, AccessToken token, RealmModel realm, ClientModel client, UserModel user,\r"," UserSessionModel userSession, ClientSessionModel clientSession) {\r"," Set mappings = new ClientSessionCode(realm, clientSession).getRequestedProtocolMappers();\r"," KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory();\r"," for (ProtocolMapperModel mapping : mappings) {\r","\r"," ProtocolMapper mapper = (ProtocolMapper)sessionFactory.getProviderFactory(ProtocolMapper.class, mapping.getProtocolMapper());\r"," if (mapper == null || !(mapper instanceof OIDCAccessTokenMapper)) continue;\r"," token = ((OIDCAccessTokenMapper)mapper).transformAccessToken(token, mapping, session, userSession, clientSession);\r","\r"," }\r"," return token;\r"," }\r"," public void transformIDToken(KeycloakSession session, IDToken token, RealmModel realm, ClientModel client, UserModel user,\r"," UserSessionModel userSession, ClientSessionModel clientSession) {\r"," Set mappings = new ClientSessionCode(realm, clientSession).getRequestedProtocolMappers();\r"," KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory();\r"," for (ProtocolMapperModel mapping : mappings) {\r","\r"," ProtocolMapper mapper = (ProtocolMapper)sessionFactory.getProviderFactory(ProtocolMapper.class, mapping.getProtocolMapper());\r"," if (mapper == null || !(mapper instanceof OIDCIDTokenMapper)) continue;\r"," token = ((OIDCIDTokenMapper)mapper).transformIDToken(token, mapping, session, userSession, clientSession);\r","\r"," }\r"," }\r","\r","\r"," protected AccessToken initToken(RealmModel realm, ClientModel client, UserModel user, UserSessionModel session, ClientSessionModel clientSession) {\r"," AccessToken token = new AccessToken();\r"," if (clientSession != null) token.clientSession(clientSession.getId());\r"," token.id(KeycloakModelUtils.generateId());\r"," token.subject(user.getId());\r"," token.audience(client.getClientId());\r"," token.issuedNow();\r"," token.issuedFor(client.getClientId());\r"," token.issuer(clientSession.getNote(OIDCLoginProtocol.ISSUER));\r"," if (session != null) {\r"," token.setSessionState(session.getId());\r"," }\r"," if (realm.getAccessTokenLifespan() > 0) {\r"," token.expiration(Time.currentTime() + realm.getAccessTokenLifespan());\r"," }\r"," Set allowedOrigins = client.getWebOrigins();\r"," if (allowedOrigins != null) {\r"," token.setAllowedOrigins(allowedOrigins);\r"," }\r"," return token;\r"," }\r","\r"," protected void addComposites(AccessToken token, RoleModel role) {\r"," AccessToken.Access access = null;\r"," if (role.getContainer() instanceof RealmModel) {\r"," access = token.getRealmAccess();\r"," if (token.getRealmAccess() == null) {\r"," access = new AccessToken.Access();\r"," token.setRealmAccess(access);\r"," } else if (token.getRealmAccess().getRoles() != null && token.getRealmAccess().isUserInRole(role.getName()))\r"," return;\r","\r"," } else {\r"," ClientModel app = (ClientModel) role.getContainer();\r"," access = token.getResourceAccess(app.getClientId());\r"," if (access == null) {\r"," access = token.addAccess(app.getClientId());\r"," if (app.isSurrogateAuthRequired()) access.verifyCaller(true);\r"," } else if (access.isUserInRole(role.getName())) return;\r","\r"," }\r"," access.addRole(role.getName());\r"," if (!role.isComposite()) return;\r","\r"," for (RoleModel composite : role.getComposites()) {\r"," addComposites(token, composite);\r"," }\r","\r"," }\r","\r"," public String encodeToken(RealmModel realm, Object token) {\r"," String encodedToken = new JWSBuilder()\r"," .jsonContent(token)\r"," .rsa256(realm.getPrivateKey());\r"," return encodedToken;\r"," }\r","\r"," public AccessTokenResponseBuilder responseBuilder(RealmModel realm, ClientModel client, EventBuilder event, KeycloakSession session, UserSessionModel userSession, ClientSessionModel clientSession) {\r"," return new AccessTokenResponseBuilder(realm, client, event, session, userSession, clientSession);\r"," }\r","\r"," public class AccessTokenResponseBuilder {\r"," RealmModel realm;\r"," ClientModel client;\r"," EventBuilder event;\r"," KeycloakSession session;\r"," UserSessionModel userSession;\r"," ClientSessionModel clientSession;\r","\r"," AccessToken accessToken;\r"," RefreshToken refreshToken;\r"," IDToken idToken;\r","\r"," public AccessTokenResponseBuilder(RealmModel realm, ClientModel client, EventBuilder event, KeycloakSession session, UserSessionModel userSession, ClientSessionModel clientSession) {\r"," this.realm = realm;\r"," this.client = client;\r"," this.event = event;\r"," this.session = session;\r"," this.userSession = userSession;\r"," this.clientSession = clientSession;\r"," }\r","\r"," public AccessTokenResponseBuilder accessToken(AccessToken accessToken) {\r"," this.accessToken = accessToken;\r"," return this;\r"," }\r"," public AccessTokenResponseBuilder refreshToken(RefreshToken refreshToken) {\r"," this.refreshToken = refreshToken;\r"," return this;\r"," }\r","\r"," public AccessTokenResponseBuilder generateAccessToken(KeycloakSession session, String scopeParam, ClientModel client, UserModel user, UserSessionModel userSession, ClientSessionModel clientSession) {\r"," Set requestedRoles = getAccess(scopeParam, client, user);\r"," accessToken = createClientAccessToken(session, requestedRoles, realm, client, user, userSession, clientSession);\r"," return this;\r"," }\r","\r"," public AccessTokenResponseBuilder generateRefreshToken() {\r"," if (accessToken == null) {\r"," throw new IllegalStateException(\"accessToken not set\");\r"," }\r"," refreshToken = new RefreshToken(accessToken);\r"," refreshToken.id(KeycloakModelUtils.generateId());\r"," refreshToken.issuedNow();\r"," refreshToken.expiration(Time.currentTime() + realm.getSsoSessionIdleTimeout());\r"," return this;\r"," }\r","\r"," public AccessTokenResponseBuilder generateIDToken() {\r"," if (accessToken == null) {\r"," throw new IllegalStateException(\"accessToken not set\");\r"," }\r"," idToken = new IDToken();\r"," idToken.id(KeycloakModelUtils.generateId());\r"," idToken.subject(accessToken.getSubject());\r"," idToken.audience(client.getClientId());\r"," idToken.issuedNow();\r"," idToken.issuedFor(accessToken.getIssuedFor());\r"," idToken.issuer(accessToken.getIssuer());\r"," idToken.setSessionState(accessToken.getSessionState());\r"," if (realm.getAccessTokenLifespan() > 0) {\r"," idToken.expiration(Time.currentTime() + realm.getAccessTokenLifespan());\r"," }\r"," transformIDToken(session, idToken, realm, client, userSession.getUser(), userSession, clientSession);\r"," return this;\r"," }\r","\r","\r","\r"," public AccessTokenResponse build() {\r"," if (accessToken != null) {\r"," event.detail(Details.TOKEN_ID, accessToken.getId());\r"," }\r","\r"," if (refreshToken != null) {\r"," if (event.getEvent().getDetails().containsKey(Details.REFRESH_TOKEN_ID)) {\r"," event.detail(Details.UPDATED_REFRESH_TOKEN_ID, refreshToken.getId());\r"," } else {\r"," event.detail(Details.REFRESH_TOKEN_ID, refreshToken.getId());\r"," }\r"," }\r","\r"," AccessTokenResponse res = new AccessTokenResponse();\r"," if (idToken != null) {\r"," String encodedToken = new JWSBuilder().jsonContent(idToken).rsa256(realm.getPrivateKey());\r"," res.setIdToken(encodedToken);\r"," }\r"," if (accessToken != null) {\r"," String encodedToken = new JWSBuilder().jsonContent(accessToken).rsa256(realm.getPrivateKey());\r"," res.setToken(encodedToken);\r"," res.setTokenType(\"bearer\");\r"," res.setSessionState(accessToken.getSessionState());\r"," if (accessToken.getExpiration() != 0) {\r"," res.setExpiresIn(accessToken.getExpiration() - Time.currentTime());\r"," }\r"," }\r"," if (refreshToken != null) {\r"," String encodedToken = new JWSBuilder().jsonContent(refreshToken).rsa256(realm.getPrivateKey());\r"," res.setRefreshToken(encodedToken);\r"," if (refreshToken.getExpiration() != 0) {\r"," res.setRefreshExpiresIn(refreshToken.getExpiration() - Time.currentTime());\r"," }\r"," }\r"," int notBefore = realm.getNotBefore();\r"," if (client.getNotBefore() > notBefore) notBefore = client.getNotBefore();\r"," res.setNotBeforePolicy(notBefore);\r"," return res;\r"," }\r"," }\r","\r","}\r"],"stylingDirectives":[[{"start":0,"end":7,"cssClass":"pl-k"},{"start":8,"end":11,"cssClass":"pl-s1"},{"start":12,"end":20,"cssClass":"pl-s1"},{"start":21,"end":29,"cssClass":"pl-s1"},{"start":30,"end":34,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":16,"cssClass":"pl-s1"},{"start":17,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":36,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":39,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":34,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":39,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":28,"cssClass":"pl-s1"},{"start":29,"end":39,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":28,"cssClass":"pl-s1"},{"start":29,"end":37,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":28,"cssClass":"pl-s1"},{"start":29,"end":35,"cssClass":"pl-s1"},{"start":36,"end":47,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":38,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":45,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":42,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":49,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":46,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":37,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":36,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":36,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":43,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":46,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":27,"end":32,"cssClass":"pl-s1"},{"start":33,"end":51,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":29,"end":43,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-s1"},{"start":34,"end":41,"cssClass":"pl-s1"},{"start":42,"end":63,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-s1"},{"start":34,"end":41,"cssClass":"pl-s1"},{"start":42,"end":59,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-s1"},{"start":36,"end":47,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-s1"},{"start":36,"end":55,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-s1"},{"start":36,"end":43,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-s1"},{"start":36,"end":48,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":29,"end":37,"cssClass":"pl-s1"},{"start":38,"end":59,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":29,"end":37,"cssClass":"pl-s1"},{"start":38,"end":55,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-s1"},{"start":11,"end":19,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":29,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"},{"start":13,"end":15,"cssClass":"pl-s1"},{"start":16,"end":18,"cssClass":"pl-s1"},{"start":19,"end":23,"cssClass":"pl-s1"},{"start":24,"end":35,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"},{"start":13,"end":15,"cssClass":"pl-s1"},{"start":16,"end":18,"cssClass":"pl-s1"},{"start":19,"end":23,"cssClass":"pl-s1"},{"start":24,"end":31,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"},{"start":12,"end":14,"cssClass":"pl-s1"},{"start":15,"end":26,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":24,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":20,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":20,"cssClass":"pl-s1"}],[],[{"start":0,"end":4,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[{"start":0,"end":65,"cssClass":"pl-c"}],[{"start":0,"end":27,"cssClass":"pl-c"}],[{"start":0,"end":3,"cssClass":"pl-c"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-k"},{"start":13,"end":25,"cssClass":"pl-smi"}],[{"start":4,"end":13,"cssClass":"pl-k"},{"start":14,"end":20,"cssClass":"pl-k"},{"start":21,"end":26,"cssClass":"pl-k"},{"start":27,"end":33,"cssClass":"pl-smi"},{"start":34,"end":40,"cssClass":"pl-s1"},{"start":43,"end":49,"cssClass":"pl-smi"},{"start":50,"end":59,"cssClass":"pl-en"},{"start":60,"end":72,"cssClass":"pl-smi"},{"start":73,"end":78,"cssClass":"pl-k"}],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-k"},{"start":18,"end":22,"cssClass":"pl-smi"},{"start":23,"end":33,"cssClass":"pl-en"},{"start":34,"end":43,"cssClass":"pl-smi"},{"start":44,"end":48,"cssClass":"pl-s1"},{"start":50,"end":59,"cssClass":"pl-smi"},{"start":60,"end":65,"cssClass":"pl-s1"},{"start":67,"end":70,"cssClass":"pl-smi"},{"start":71,"end":80,"cssClass":"pl-smi"},{"start":82,"end":89,"cssClass":"pl-s1"},{"start":91,"end":94,"cssClass":"pl-smi"},{"start":95,"end":104,"cssClass":"pl-smi"},{"start":106,"end":115,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-en"},{"start":29,"end":34,"cssClass":"pl-s1"},{"start":37,"end":43,"cssClass":"pl-k"}],[{"start":8,"end":15,"cssClass":"pl-s1"},{"start":16,"end":19,"cssClass":"pl-en"},{"start":20,"end":25,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":24,"cssClass":"pl-en"},{"start":25,"end":30,"cssClass":"pl-s1"}],[{"start":12,"end":21,"cssClass":"pl-s1"},{"start":22,"end":25,"cssClass":"pl-en"},{"start":26,"end":31,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":18,"cssClass":"pl-s1"},{"start":19,"end":30,"cssClass":"pl-en"},{"start":34,"end":40,"cssClass":"pl-k"}],[],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":23,"end":32,"cssClass":"pl-s1"},{"start":35,"end":40,"cssClass":"pl-s1"},{"start":41,"end":54,"cssClass":"pl-en"}],[{"start":12,"end":22,"cssClass":"pl-en"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":29,"end":38,"cssClass":"pl-s1"},{"start":40,"end":47,"cssClass":"pl-s1"},{"start":49,"end":58,"cssClass":"pl-s1"}],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-k"},{"start":18,"end":23,"cssClass":"pl-k"},{"start":24,"end":39,"cssClass":"pl-smi"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-k"},{"start":21,"end":30,"cssClass":"pl-smi"},{"start":31,"end":35,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-k"},{"start":21,"end":37,"cssClass":"pl-smi"},{"start":38,"end":49,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-k"},{"start":21,"end":39,"cssClass":"pl-smi"},{"start":40,"end":53,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-k"},{"start":21,"end":32,"cssClass":"pl-smi"},{"start":33,"end":41,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":30,"cssClass":"pl-smi"},{"start":31,"end":40,"cssClass":"pl-smi"},{"start":41,"end":45,"cssClass":"pl-s1"},{"start":47,"end":63,"cssClass":"pl-smi"},{"start":64,"end":75,"cssClass":"pl-s1"},{"start":77,"end":95,"cssClass":"pl-smi"},{"start":96,"end":109,"cssClass":"pl-s1"},{"start":111,"end":122,"cssClass":"pl-smi"},{"start":123,"end":131,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":24,"end":28,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":28,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":30,"cssClass":"pl-s1"},{"start":33,"end":46,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":25,"cssClass":"pl-s1"},{"start":28,"end":36,"cssClass":"pl-s1"}],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":26,"cssClass":"pl-smi"},{"start":27,"end":40,"cssClass":"pl-en"},{"start":41,"end":56,"cssClass":"pl-smi"},{"start":57,"end":64,"cssClass":"pl-s1"},{"start":66,"end":73,"cssClass":"pl-smi"},{"start":74,"end":81,"cssClass":"pl-s1"},{"start":83,"end":99,"cssClass":"pl-smi"},{"start":100,"end":110,"cssClass":"pl-s1"},{"start":112,"end":122,"cssClass":"pl-smi"},{"start":123,"end":128,"cssClass":"pl-s1"},{"start":130,"end":141,"cssClass":"pl-smi"},{"start":142,"end":150,"cssClass":"pl-s1"},{"start":152,"end":163,"cssClass":"pl-smi"},{"start":164,"end":171,"cssClass":"pl-s1"},{"start":173,"end":179,"cssClass":"pl-k"},{"start":180,"end":199,"cssClass":"pl-smi"}],[{"start":8,"end":17,"cssClass":"pl-smi"},{"start":18,"end":22,"cssClass":"pl-s1"},{"start":25,"end":32,"cssClass":"pl-s1"},{"start":33,"end":38,"cssClass":"pl-en"},{"start":41,"end":52,"cssClass":"pl-en"},{"start":53,"end":61,"cssClass":"pl-s1"},{"start":62,"end":72,"cssClass":"pl-en"},{"start":76,"end":81,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":100,"cssClass":"pl-s"},{"start":102,"end":116,"cssClass":"pl-s"}],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":17,"cssClass":"pl-s1"},{"start":18,"end":27,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":92,"cssClass":"pl-s"},{"start":94,"end":109,"cssClass":"pl-s"}],[],[],[{"start":8,"end":24,"cssClass":"pl-smi"},{"start":25,"end":36,"cssClass":"pl-s1"},{"start":39,"end":46,"cssClass":"pl-s1"},{"start":47,"end":55,"cssClass":"pl-en"},{"start":58,"end":72,"cssClass":"pl-en"},{"start":73,"end":78,"cssClass":"pl-s1"},{"start":80,"end":88,"cssClass":"pl-s1"},{"start":89,"end":104,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":34,"cssClass":"pl-smi"},{"start":35,"end":49,"cssClass":"pl-en"},{"start":50,"end":55,"cssClass":"pl-s1"},{"start":57,"end":68,"cssClass":"pl-s1"}],[{"start":12,"end":33,"cssClass":"pl-smi"},{"start":34,"end":51,"cssClass":"pl-en"},{"start":52,"end":59,"cssClass":"pl-s1"},{"start":61,"end":66,"cssClass":"pl-s1"},{"start":68,"end":79,"cssClass":"pl-s1"},{"start":81,"end":88,"cssClass":"pl-s1"},{"start":90,"end":100,"cssClass":"pl-s1"},{"start":102,"end":109,"cssClass":"pl-s1"},{"start":111,"end":115,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":97,"cssClass":"pl-s"},{"start":99,"end":119,"cssClass":"pl-s"}],[],[{"start":8,"end":26,"cssClass":"pl-smi"},{"start":27,"end":40,"cssClass":"pl-s1"},{"start":43,"end":47,"cssClass":"pl-c1"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":31,"cssClass":"pl-smi"},{"start":32,"end":50,"cssClass":"pl-s1"},{"start":53,"end":64,"cssClass":"pl-s1"},{"start":65,"end":82,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":34,"cssClass":"pl-s1"},{"start":35,"end":40,"cssClass":"pl-en"},{"start":43,"end":49,"cssClass":"pl-en"},{"start":50,"end":58,"cssClass":"pl-s1"},{"start":59,"end":75,"cssClass":"pl-en"}],[{"start":16,"end":29,"cssClass":"pl-s1"},{"start":32,"end":50,"cssClass":"pl-s1"}],[{"start":16,"end":21,"cssClass":"pl-k"}],[],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":25,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":104,"cssClass":"pl-s"},{"start":106,"end":133,"cssClass":"pl-s"}],[],[],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":26,"cssClass":"pl-s1"},{"start":29,"end":42,"cssClass":"pl-s1"},{"start":43,"end":52,"cssClass":"pl-en"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":19,"cssClass":"pl-s1"},{"start":20,"end":31,"cssClass":"pl-en"},{"start":34,"end":40,"cssClass":"pl-en"},{"start":41,"end":49,"cssClass":"pl-s1"},{"start":50,"end":62,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":97,"cssClass":"pl-s"},{"start":99,"end":119,"cssClass":"pl-s"}],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":20,"cssClass":"pl-s1"},{"start":21,"end":32,"cssClass":"pl-en"},{"start":37,"end":43,"cssClass":"pl-s1"},{"start":44,"end":56,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":90,"cssClass":"pl-s"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":20,"cssClass":"pl-s1"},{"start":21,"end":32,"cssClass":"pl-en"},{"start":37,"end":42,"cssClass":"pl-s1"},{"start":43,"end":55,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":90,"cssClass":"pl-s"}],[],[],[],[{"start":8,"end":27,"cssClass":"pl-c"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":21,"cssClass":"pl-smi"},{"start":23,"end":37,"cssClass":"pl-s1"},{"start":40,"end":52,"cssClass":"pl-smi"},{"start":53,"end":62,"cssClass":"pl-en"},{"start":63,"end":67,"cssClass":"pl-c1"},{"start":69,"end":82,"cssClass":"pl-s1"},{"start":83,"end":92,"cssClass":"pl-en"},{"start":96,"end":100,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":28,"cssClass":"pl-s1"},{"start":31,"end":54,"cssClass":"pl-en"},{"start":55,"end":62,"cssClass":"pl-s1"},{"start":64,"end":78,"cssClass":"pl-s1"},{"start":80,"end":85,"cssClass":"pl-s1"},{"start":87,"end":93,"cssClass":"pl-s1"},{"start":95,"end":99,"cssClass":"pl-s1"},{"start":101,"end":112,"cssClass":"pl-s1"},{"start":114,"end":127,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-en"},{"start":21,"end":29,"cssClass":"pl-s1"},{"start":31,"end":39,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-k"},{"start":19,"end":34,"cssClass":"pl-smi"},{"start":35,"end":39,"cssClass":"pl-s1"},{"start":41,"end":52,"cssClass":"pl-s1"},{"start":54,"end":67,"cssClass":"pl-s1"},{"start":69,"end":77,"cssClass":"pl-s1"}],[],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":30,"cssClass":"pl-smi"},{"start":31,"end":49,"cssClass":"pl-en"},{"start":50,"end":65,"cssClass":"pl-smi"},{"start":66,"end":73,"cssClass":"pl-s1"},{"start":75,"end":82,"cssClass":"pl-smi"},{"start":83,"end":90,"cssClass":"pl-s1"},{"start":92,"end":108,"cssClass":"pl-smi"},{"start":109,"end":119,"cssClass":"pl-s1"},{"start":121,"end":131,"cssClass":"pl-smi"},{"start":132,"end":137,"cssClass":"pl-s1"},{"start":139,"end":150,"cssClass":"pl-smi"},{"start":151,"end":167,"cssClass":"pl-s1"},{"start":169,"end":175,"cssClass":"pl-smi"},{"start":176,"end":195,"cssClass":"pl-s1"},{"start":197,"end":209,"cssClass":"pl-smi"},{"start":210,"end":215,"cssClass":"pl-s1"},{"start":217,"end":228,"cssClass":"pl-smi"},{"start":229,"end":236,"cssClass":"pl-s1"},{"start":238,"end":244,"cssClass":"pl-k"},{"start":245,"end":264,"cssClass":"pl-smi"}],[{"start":8,"end":20,"cssClass":"pl-smi"},{"start":21,"end":33,"cssClass":"pl-s1"},{"start":36,"end":54,"cssClass":"pl-en"},{"start":55,"end":60,"cssClass":"pl-s1"},{"start":62,"end":81,"cssClass":"pl-s1"}],[],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":18,"cssClass":"pl-en"},{"start":19,"end":31,"cssClass":"pl-s1"},{"start":32,"end":42,"cssClass":"pl-en"},{"start":46,"end":53,"cssClass":"pl-en"},{"start":54,"end":66,"cssClass":"pl-s1"},{"start":67,"end":82,"cssClass":"pl-en"},{"start":86,"end":92,"cssClass":"pl-en"},{"start":93,"end":100,"cssClass":"pl-smi"},{"start":101,"end":117,"cssClass":"pl-c1"},{"start":119,"end":131,"cssClass":"pl-s1"},{"start":132,"end":137,"cssClass":"pl-en"}],[],[{"start":8,"end":23,"cssClass":"pl-smi"},{"start":24,"end":34,"cssClass":"pl-s1"},{"start":37,"end":50,"cssClass":"pl-en"},{"start":51,"end":58,"cssClass":"pl-s1"},{"start":60,"end":67,"cssClass":"pl-s1"},{"start":69,"end":79,"cssClass":"pl-s1"},{"start":81,"end":86,"cssClass":"pl-s1"},{"start":88,"end":100,"cssClass":"pl-s1"},{"start":102,"end":109,"cssClass":"pl-s1"}],[{"start":8,"end":65,"cssClass":"pl-c"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":23,"cssClass":"pl-s1"},{"start":24,"end":37,"cssClass":"pl-s1"},{"start":38,"end":47,"cssClass":"pl-en"},{"start":50,"end":55,"cssClass":"pl-en"},{"start":58,"end":64,"cssClass":"pl-en"},{"start":65,"end":81,"cssClass":"pl-s1"},{"start":82,"end":87,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":148,"cssClass":"pl-s"}],[],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":23,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-smi"},{"start":31,"end":42,"cssClass":"pl-en"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":30,"cssClass":"pl-s1"},{"start":31,"end":52,"cssClass":"pl-en"},{"start":53,"end":64,"cssClass":"pl-s1"}],[],[{"start":8,"end":27,"cssClass":"pl-smi"},{"start":28,"end":31,"cssClass":"pl-s1"},{"start":34,"end":49,"cssClass":"pl-en"},{"start":50,"end":55,"cssClass":"pl-s1"},{"start":57,"end":73,"cssClass":"pl-s1"},{"start":75,"end":80,"cssClass":"pl-s1"},{"start":82,"end":89,"cssClass":"pl-s1"},{"start":91,"end":101,"cssClass":"pl-s1"},{"start":102,"end":113,"cssClass":"pl-s1"},{"start":115,"end":125,"cssClass":"pl-s1"},{"start":126,"end":139,"cssClass":"pl-s1"}],[{"start":17,"end":28,"cssClass":"pl-en"},{"start":29,"end":39,"cssClass":"pl-s1"},{"start":40,"end":48,"cssClass":"pl-s1"}],[{"start":17,"end":32,"cssClass":"pl-en"}],[{"start":17,"end":37,"cssClass":"pl-en"},{"start":40,"end":45,"cssClass":"pl-en"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":23,"cssClass":"pl-smi"},{"start":24,"end":42,"cssClass":"pl-en"},{"start":43,"end":53,"cssClass":"pl-smi"},{"start":54,"end":59,"cssClass":"pl-s1"},{"start":61,"end":67,"cssClass":"pl-smi"},{"start":68,"end":87,"cssClass":"pl-s1"},{"start":89,"end":95,"cssClass":"pl-k"},{"start":96,"end":115,"cssClass":"pl-smi"}],[{"start":8,"end":16,"cssClass":"pl-smi"},{"start":17,"end":20,"cssClass":"pl-s1"},{"start":23,"end":26,"cssClass":"pl-k"},{"start":27,"end":35,"cssClass":"pl-smi"},{"start":36,"end":55,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-smi"},{"start":21,"end":33,"cssClass":"pl-s1"},{"start":36,"end":40,"cssClass":"pl-c1"}],[{"start":8,"end":11,"cssClass":"pl-k"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":17,"end":28,"cssClass":"pl-smi"},{"start":29,"end":35,"cssClass":"pl-en"},{"start":36,"end":39,"cssClass":"pl-s1"},{"start":41,"end":46,"cssClass":"pl-s1"},{"start":47,"end":59,"cssClass":"pl-en"}],[{"start":16,"end":21,"cssClass":"pl-k"},{"start":22,"end":25,"cssClass":"pl-k"},{"start":26,"end":45,"cssClass":"pl-smi"},{"start":46,"end":65,"cssClass":"pl-smi"},{"start":66,"end":79,"cssClass":"pl-c1"},{"start":81,"end":104,"cssClass":"pl-s"}],[],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":27,"end":30,"cssClass":"pl-s1"},{"start":31,"end":46,"cssClass":"pl-en"},{"start":47,"end":59,"cssClass":"pl-smi"},{"start":60,"end":65,"cssClass":"pl-k"}],[{"start":10,"end":15,"cssClass":"pl-k"},{"start":17,"end":26,"cssClass":"pl-smi"},{"start":27,"end":28,"cssClass":"pl-s1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":100,"cssClass":"pl-s"},{"start":102,"end":103,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":34,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":100,"cssClass":"pl-s"}],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":36,"cssClass":"pl-en"},{"start":41,"end":46,"cssClass":"pl-s1"},{"start":47,"end":59,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":98,"cssClass":"pl-s"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":27,"cssClass":"pl-s1"}],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":18,"cssClass":"pl-smi"},{"start":19,"end":32,"cssClass":"pl-en"},{"start":33,"end":43,"cssClass":"pl-smi"},{"start":44,"end":49,"cssClass":"pl-s1"},{"start":51,"end":57,"cssClass":"pl-smi"},{"start":58,"end":72,"cssClass":"pl-s1"},{"start":74,"end":80,"cssClass":"pl-k"},{"start":81,"end":100,"cssClass":"pl-smi"}],[{"start":8,"end":16,"cssClass":"pl-smi"},{"start":17,"end":20,"cssClass":"pl-s1"},{"start":23,"end":26,"cssClass":"pl-k"},{"start":27,"end":35,"cssClass":"pl-smi"},{"start":36,"end":50,"cssClass":"pl-s1"}],[{"start":8,"end":15,"cssClass":"pl-smi"},{"start":16,"end":23,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-c1"}],[{"start":8,"end":11,"cssClass":"pl-k"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":17,"end":28,"cssClass":"pl-smi"},{"start":29,"end":35,"cssClass":"pl-en"},{"start":36,"end":39,"cssClass":"pl-s1"},{"start":41,"end":46,"cssClass":"pl-s1"},{"start":47,"end":59,"cssClass":"pl-en"}],[{"start":16,"end":21,"cssClass":"pl-k"},{"start":22,"end":25,"cssClass":"pl-k"},{"start":26,"end":45,"cssClass":"pl-smi"},{"start":46,"end":65,"cssClass":"pl-smi"},{"start":66,"end":79,"cssClass":"pl-c1"},{"start":81,"end":104,"cssClass":"pl-s"}],[],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":22,"end":25,"cssClass":"pl-s1"},{"start":26,"end":41,"cssClass":"pl-en"},{"start":42,"end":49,"cssClass":"pl-smi"},{"start":50,"end":55,"cssClass":"pl-k"}],[{"start":10,"end":15,"cssClass":"pl-k"},{"start":17,"end":28,"cssClass":"pl-smi"},{"start":29,"end":30,"cssClass":"pl-s1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":100,"cssClass":"pl-s"},{"start":102,"end":103,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":29,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":100,"cssClass":"pl-s"}],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":31,"cssClass":"pl-en"},{"start":36,"end":41,"cssClass":"pl-s1"},{"start":42,"end":54,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-smi"},{"start":62,"end":75,"cssClass":"pl-c1"},{"start":77,"end":98,"cssClass":"pl-s"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":22,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":22,"cssClass":"pl-smi"},{"start":23,"end":46,"cssClass":"pl-en"},{"start":47,"end":62,"cssClass":"pl-smi"},{"start":63,"end":70,"cssClass":"pl-s1"},{"start":72,"end":75,"cssClass":"pl-smi"},{"start":76,"end":85,"cssClass":"pl-smi"},{"start":87,"end":101,"cssClass":"pl-s1"},{"start":103,"end":113,"cssClass":"pl-smi"},{"start":114,"end":119,"cssClass":"pl-s1"},{"start":121,"end":132,"cssClass":"pl-smi"},{"start":133,"end":139,"cssClass":"pl-s1"},{"start":141,"end":150,"cssClass":"pl-smi"},{"start":151,"end":155,"cssClass":"pl-s1"},{"start":157,"end":173,"cssClass":"pl-smi"},{"start":174,"end":185,"cssClass":"pl-s1"},{"start":187,"end":205,"cssClass":"pl-smi"},{"start":206,"end":219,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":25,"cssClass":"pl-s1"},{"start":28,"end":37,"cssClass":"pl-en"},{"start":38,"end":43,"cssClass":"pl-s1"},{"start":45,"end":51,"cssClass":"pl-s1"},{"start":53,"end":57,"cssClass":"pl-s1"},{"start":59,"end":70,"cssClass":"pl-s1"},{"start":72,"end":85,"cssClass":"pl-s1"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":30,"end":44,"cssClass":"pl-s1"}],[{"start":12,"end":25,"cssClass":"pl-en"},{"start":26,"end":31,"cssClass":"pl-s1"},{"start":33,"end":37,"cssClass":"pl-s1"}],[],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":16,"end":36,"cssClass":"pl-en"},{"start":37,"end":44,"cssClass":"pl-s1"},{"start":46,"end":51,"cssClass":"pl-s1"},{"start":53,"end":58,"cssClass":"pl-s1"},{"start":60,"end":66,"cssClass":"pl-s1"},{"start":68,"end":72,"cssClass":"pl-s1"},{"start":74,"end":85,"cssClass":"pl-s1"},{"start":87,"end":100,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-k"},{"start":18,"end":22,"cssClass":"pl-smi"},{"start":23,"end":42,"cssClass":"pl-en"},{"start":43,"end":59,"cssClass":"pl-smi"},{"start":60,"end":67,"cssClass":"pl-s1"},{"start":69,"end":87,"cssClass":"pl-smi"},{"start":88,"end":101,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":25,"cssClass":"pl-s1"},{"start":26,"end":40,"cssClass":"pl-en"},{"start":46,"end":50,"cssClass":"pl-c1"}],[{"start":12,"end":18,"cssClass":"pl-k"}],[],[],[{"start":8,"end":17,"cssClass":"pl-smi"},{"start":18,"end":22,"cssClass":"pl-s1"},{"start":25,"end":32,"cssClass":"pl-s1"},{"start":33,"end":40,"cssClass":"pl-en"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":36,"cssClass":"pl-en"},{"start":37,"end":44,"cssClass":"pl-s1"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":18,"cssClass":"pl-smi"},{"start":20,"end":34,"cssClass":"pl-s1"},{"start":37,"end":40,"cssClass":"pl-k"},{"start":41,"end":48,"cssClass":"pl-smi"},{"start":49,"end":55,"cssClass":"pl-smi"}],[{"start":8,"end":49,"cssClass":"pl-c"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":23,"end":24,"cssClass":"pl-s1"},{"start":27,"end":39,"cssClass":"pl-smi"},{"start":40,"end":49,"cssClass":"pl-en"},{"start":50,"end":54,"cssClass":"pl-c1"},{"start":56,"end":69,"cssClass":"pl-s1"},{"start":70,"end":79,"cssClass":"pl-en"},{"start":83,"end":87,"cssClass":"pl-s1"}],[{"start":12,"end":26,"cssClass":"pl-s1"},{"start":27,"end":30,"cssClass":"pl-en"},{"start":31,"end":32,"cssClass":"pl-s1"},{"start":33,"end":38,"cssClass":"pl-en"}],[],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":30,"cssClass":"pl-en"},{"start":31,"end":45,"cssClass":"pl-s1"}],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":18,"cssClass":"pl-smi"},{"start":20,"end":44,"cssClass":"pl-s1"},{"start":47,"end":50,"cssClass":"pl-k"},{"start":51,"end":58,"cssClass":"pl-smi"},{"start":59,"end":65,"cssClass":"pl-smi"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":32,"cssClass":"pl-smi"},{"start":33,"end":47,"cssClass":"pl-s1"},{"start":50,"end":63,"cssClass":"pl-s1"},{"start":64,"end":73,"cssClass":"pl-en"},{"start":76,"end":94,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":30,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-en"},{"start":45,"end":51,"cssClass":"pl-en"},{"start":52,"end":65,"cssClass":"pl-s1"},{"start":66,"end":79,"cssClass":"pl-en"}],[{"start":16,"end":40,"cssClass":"pl-s1"},{"start":41,"end":44,"cssClass":"pl-en"},{"start":45,"end":59,"cssClass":"pl-s1"},{"start":60,"end":65,"cssClass":"pl-en"}],[],[],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":40,"cssClass":"pl-en"},{"start":41,"end":65,"cssClass":"pl-s1"}],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":18,"cssClass":"pl-smi"},{"start":20,"end":26,"cssClass":"pl-smi"},{"start":28,"end":44,"cssClass":"pl-s1"},{"start":47,"end":60,"cssClass":"pl-s1"},{"start":61,"end":80,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":16,"cssClass":"pl-smi"},{"start":17,"end":22,"cssClass":"pl-smi"},{"start":23,"end":29,"cssClass":"pl-smi"},{"start":31,"end":37,"cssClass":"pl-smi"},{"start":39,"end":44,"cssClass":"pl-s1"},{"start":47,"end":63,"cssClass":"pl-s1"},{"start":64,"end":72,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":27,"cssClass":"pl-en"},{"start":28,"end":33,"cssClass":"pl-s1"},{"start":34,"end":40,"cssClass":"pl-en"},{"start":44,"end":49,"cssClass":"pl-s1"},{"start":50,"end":58,"cssClass":"pl-en"}],[],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-k"},{"start":18,"end":22,"cssClass":"pl-smi"},{"start":23,"end":43,"cssClass":"pl-en"},{"start":44,"end":63,"cssClass":"pl-smi"},{"start":64,"end":72,"cssClass":"pl-s1"},{"start":74,"end":84,"cssClass":"pl-smi"},{"start":85,"end":90,"cssClass":"pl-s1"},{"start":92,"end":110,"cssClass":"pl-smi"},{"start":111,"end":124,"cssClass":"pl-s1"}],[{"start":8,"end":24,"cssClass":"pl-smi"},{"start":25,"end":36,"cssClass":"pl-s1"},{"start":39,"end":52,"cssClass":"pl-s1"},{"start":53,"end":67,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":23,"cssClass":"pl-s1"},{"start":27,"end":31,"cssClass":"pl-c1"}],[{"start":12,"end":18,"cssClass":"pl-k"}],[],[],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":36,"cssClass":"pl-en"},{"start":37,"end":41,"cssClass":"pl-c1"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":30,"cssClass":"pl-en"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":40,"cssClass":"pl-en"},{"start":41,"end":45,"cssClass":"pl-c1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":23,"cssClass":"pl-s1"},{"start":24,"end":41,"cssClass":"pl-en"},{"start":44,"end":51,"cssClass":"pl-en"}],[{"start":12,"end":20,"cssClass":"pl-s1"},{"start":21,"end":38,"cssClass":"pl-en"},{"start":39,"end":44,"cssClass":"pl-s1"},{"start":46,"end":57,"cssClass":"pl-s1"}],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-k"},{"start":18,"end":21,"cssClass":"pl-smi"},{"start":22,"end":31,"cssClass":"pl-smi"},{"start":33,"end":42,"cssClass":"pl-en"},{"start":43,"end":49,"cssClass":"pl-smi"},{"start":50,"end":60,"cssClass":"pl-s1"},{"start":62,"end":73,"cssClass":"pl-smi"},{"start":74,"end":80,"cssClass":"pl-s1"},{"start":82,"end":91,"cssClass":"pl-smi"},{"start":92,"end":96,"cssClass":"pl-s1"}],[{"start":8,"end":97,"cssClass":"pl-c"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":21,"cssClass":"pl-smi"},{"start":23,"end":37,"cssClass":"pl-s1"},{"start":40,"end":43,"cssClass":"pl-k"},{"start":44,"end":51,"cssClass":"pl-smi"},{"start":52,"end":61,"cssClass":"pl-smi"}],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":21,"cssClass":"pl-smi"},{"start":23,"end":35,"cssClass":"pl-s1"},{"start":38,"end":42,"cssClass":"pl-s1"},{"start":43,"end":58,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":37,"cssClass":"pl-en"},{"start":41,"end":47,"cssClass":"pl-k"},{"start":48,"end":60,"cssClass":"pl-s1"}],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":21,"cssClass":"pl-smi"},{"start":23,"end":36,"cssClass":"pl-s1"},{"start":39,"end":45,"cssClass":"pl-s1"},{"start":46,"end":62,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":29,"cssClass":"pl-k"},{"start":30,"end":41,"cssClass":"pl-smi"}],[{"start":12,"end":25,"cssClass":"pl-s1"},{"start":26,"end":32,"cssClass":"pl-en"},{"start":35,"end":46,"cssClass":"pl-smi"},{"start":48,"end":54,"cssClass":"pl-s1"},{"start":56,"end":64,"cssClass":"pl-en"}],[],[],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":30,"end":42,"cssClass":"pl-s1"}],[{"start":12,"end":15,"cssClass":"pl-k"},{"start":17,"end":26,"cssClass":"pl-smi"},{"start":27,"end":38,"cssClass":"pl-s1"},{"start":41,"end":54,"cssClass":"pl-s1"}],[{"start":16,"end":19,"cssClass":"pl-smi"},{"start":20,"end":29,"cssClass":"pl-smi"},{"start":31,"end":38,"cssClass":"pl-s1"},{"start":41,"end":44,"cssClass":"pl-k"},{"start":45,"end":52,"cssClass":"pl-smi"},{"start":53,"end":62,"cssClass":"pl-smi"}],[{"start":16,"end":26,"cssClass":"pl-en"},{"start":27,"end":31,"cssClass":"pl-s1"},{"start":33,"end":44,"cssClass":"pl-s1"},{"start":46,"end":53,"cssClass":"pl-s1"},{"start":55,"end":69,"cssClass":"pl-s1"}],[],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":29,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":15,"cssClass":"pl-smi"},{"start":16,"end":28,"cssClass":"pl-en"},{"start":29,"end":40,"cssClass":"pl-smi"},{"start":41,"end":46,"cssClass":"pl-s1"},{"start":48,"end":59,"cssClass":"pl-smi"},{"start":60,"end":68,"cssClass":"pl-s1"},{"start":70,"end":76,"cssClass":"pl-k"},{"start":77,"end":96,"cssClass":"pl-smi"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":32,"cssClass":"pl-en"},{"start":38,"end":42,"cssClass":"pl-c1"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":24,"cssClass":"pl-s1"},{"start":25,"end":39,"cssClass":"pl-en"},{"start":45,"end":49,"cssClass":"pl-c1"},{"start":51,"end":56,"cssClass":"pl-k"},{"start":57,"end":60,"cssClass":"pl-k"},{"start":61,"end":80,"cssClass":"pl-smi"},{"start":81,"end":100,"cssClass":"pl-smi"},{"start":101,"end":114,"cssClass":"pl-c1"},{"start":116,"end":161,"cssClass":"pl-s"}],[],[{"start":12,"end":15,"cssClass":"pl-k"},{"start":17,"end":23,"cssClass":"pl-smi"},{"start":24,"end":32,"cssClass":"pl-s1"},{"start":35,"end":40,"cssClass":"pl-s1"},{"start":41,"end":55,"cssClass":"pl-en"},{"start":58,"end":66,"cssClass":"pl-en"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":21,"end":29,"cssClass":"pl-s1"},{"start":30,"end":44,"cssClass":"pl-en"},{"start":47,"end":55,"cssClass":"pl-en"},{"start":58,"end":66,"cssClass":"pl-en"},{"start":67,"end":75,"cssClass":"pl-s1"}],[{"start":20,"end":25,"cssClass":"pl-k"},{"start":26,"end":29,"cssClass":"pl-k"},{"start":30,"end":49,"cssClass":"pl-smi"},{"start":50,"end":69,"cssClass":"pl-smi"},{"start":70,"end":83,"cssClass":"pl-c1"},{"start":85,"end":131,"cssClass":"pl-s"},{"start":134,"end":142,"cssClass":"pl-s1"}],[],[],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":35,"cssClass":"pl-en"},{"start":41,"end":45,"cssClass":"pl-c1"}],[{"start":12,"end":15,"cssClass":"pl-k"},{"start":17,"end":20,"cssClass":"pl-smi"},{"start":21,"end":26,"cssClass":"pl-smi"},{"start":27,"end":33,"cssClass":"pl-smi"},{"start":35,"end":46,"cssClass":"pl-smi"},{"start":47,"end":53,"cssClass":"pl-smi"},{"start":55,"end":60,"cssClass":"pl-s1"},{"start":63,"end":68,"cssClass":"pl-s1"},{"start":69,"end":86,"cssClass":"pl-en"},{"start":89,"end":97,"cssClass":"pl-en"}],[{"start":16,"end":27,"cssClass":"pl-smi"},{"start":28,"end":34,"cssClass":"pl-smi"},{"start":35,"end":44,"cssClass":"pl-s1"},{"start":47,"end":55,"cssClass":"pl-s1"},{"start":56,"end":73,"cssClass":"pl-en"},{"start":74,"end":79,"cssClass":"pl-s1"},{"start":80,"end":86,"cssClass":"pl-en"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":20,"end":29,"cssClass":"pl-s1"},{"start":33,"end":37,"cssClass":"pl-c1"},{"start":42,"end":47,"cssClass":"pl-s1"},{"start":48,"end":56,"cssClass":"pl-en"},{"start":59,"end":67,"cssClass":"pl-en"},{"start":70,"end":77,"cssClass":"pl-en"}],[{"start":20,"end":25,"cssClass":"pl-k"},{"start":26,"end":29,"cssClass":"pl-k"},{"start":30,"end":49,"cssClass":"pl-smi"},{"start":50,"end":69,"cssClass":"pl-smi"},{"start":70,"end":83,"cssClass":"pl-c1"},{"start":85,"end":149,"cssClass":"pl-s"},{"start":152,"end":157,"cssClass":"pl-s1"},{"start":158,"end":164,"cssClass":"pl-en"}],[],[],[{"start":16,"end":19,"cssClass":"pl-k"},{"start":21,"end":27,"cssClass":"pl-smi"},{"start":28,"end":36,"cssClass":"pl-s1"},{"start":39,"end":44,"cssClass":"pl-s1"},{"start":45,"end":53,"cssClass":"pl-en"},{"start":56,"end":64,"cssClass":"pl-en"}],[{"start":20,"end":22,"cssClass":"pl-k"},{"start":25,"end":34,"cssClass":"pl-s1"},{"start":35,"end":43,"cssClass":"pl-en"},{"start":46,"end":54,"cssClass":"pl-en"},{"start":55,"end":63,"cssClass":"pl-s1"}],[{"start":24,"end":29,"cssClass":"pl-k"},{"start":30,"end":33,"cssClass":"pl-k"},{"start":34,"end":53,"cssClass":"pl-smi"},{"start":54,"end":73,"cssClass":"pl-smi"},{"start":74,"end":87,"cssClass":"pl-c1"},{"start":89,"end":135,"cssClass":"pl-s"},{"start":138,"end":146,"cssClass":"pl-s1"}],[],[],[],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":22,"cssClass":"pl-smi"},{"start":23,"end":43,"cssClass":"pl-en"},{"start":44,"end":59,"cssClass":"pl-smi"},{"start":60,"end":67,"cssClass":"pl-s1"},{"start":69,"end":80,"cssClass":"pl-smi"},{"start":81,"end":86,"cssClass":"pl-s1"},{"start":88,"end":98,"cssClass":"pl-smi"},{"start":99,"end":104,"cssClass":"pl-s1"},{"start":106,"end":117,"cssClass":"pl-smi"},{"start":118,"end":124,"cssClass":"pl-s1"},{"start":126,"end":135,"cssClass":"pl-smi"},{"start":136,"end":140,"cssClass":"pl-s1"}],[{"start":44,"end":60,"cssClass":"pl-smi"},{"start":61,"end":72,"cssClass":"pl-s1"},{"start":74,"end":92,"cssClass":"pl-smi"},{"start":93,"end":106,"cssClass":"pl-s1"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":31,"cssClass":"pl-smi"},{"start":33,"end":41,"cssClass":"pl-s1"},{"start":44,"end":47,"cssClass":"pl-k"},{"start":48,"end":65,"cssClass":"pl-smi"},{"start":66,"end":71,"cssClass":"pl-s1"},{"start":73,"end":86,"cssClass":"pl-s1"},{"start":88,"end":115,"cssClass":"pl-en"}],[{"start":8,"end":30,"cssClass":"pl-smi"},{"start":31,"end":45,"cssClass":"pl-s1"},{"start":48,"end":55,"cssClass":"pl-s1"},{"start":56,"end":81,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":32,"cssClass":"pl-smi"},{"start":33,"end":40,"cssClass":"pl-s1"},{"start":43,"end":51,"cssClass":"pl-s1"}],[],[{"start":12,"end":26,"cssClass":"pl-smi"},{"start":27,"end":33,"cssClass":"pl-s1"},{"start":37,"end":51,"cssClass":"pl-smi"},{"start":52,"end":66,"cssClass":"pl-s1"},{"start":67,"end":85,"cssClass":"pl-en"},{"start":86,"end":100,"cssClass":"pl-smi"},{"start":101,"end":106,"cssClass":"pl-k"},{"start":108,"end":115,"cssClass":"pl-s1"},{"start":116,"end":133,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":22,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-c1"},{"start":36,"end":42,"cssClass":"pl-s1"},{"start":43,"end":53,"cssClass":"pl-k"},{"start":54,"end":75,"cssClass":"pl-smi"},{"start":78,"end":86,"cssClass":"pl-k"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":22,"end":43,"cssClass":"pl-smi"},{"start":44,"end":50,"cssClass":"pl-s1"},{"start":52,"end":72,"cssClass":"pl-en"},{"start":73,"end":78,"cssClass":"pl-s1"},{"start":80,"end":87,"cssClass":"pl-s1"},{"start":89,"end":96,"cssClass":"pl-s1"},{"start":98,"end":109,"cssClass":"pl-s1"},{"start":111,"end":124,"cssClass":"pl-s1"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-s1"}],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":15,"cssClass":"pl-smi"},{"start":16,"end":32,"cssClass":"pl-en"},{"start":33,"end":48,"cssClass":"pl-smi"},{"start":49,"end":56,"cssClass":"pl-s1"},{"start":58,"end":65,"cssClass":"pl-smi"},{"start":66,"end":71,"cssClass":"pl-s1"},{"start":73,"end":83,"cssClass":"pl-smi"},{"start":84,"end":89,"cssClass":"pl-s1"},{"start":91,"end":102,"cssClass":"pl-smi"},{"start":103,"end":109,"cssClass":"pl-s1"},{"start":111,"end":120,"cssClass":"pl-smi"},{"start":121,"end":125,"cssClass":"pl-s1"}],[{"start":38,"end":54,"cssClass":"pl-smi"},{"start":55,"end":66,"cssClass":"pl-s1"},{"start":68,"end":86,"cssClass":"pl-smi"},{"start":87,"end":100,"cssClass":"pl-s1"}],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":31,"cssClass":"pl-smi"},{"start":33,"end":41,"cssClass":"pl-s1"},{"start":44,"end":47,"cssClass":"pl-k"},{"start":48,"end":65,"cssClass":"pl-smi"},{"start":66,"end":71,"cssClass":"pl-s1"},{"start":73,"end":86,"cssClass":"pl-s1"},{"start":88,"end":115,"cssClass":"pl-en"}],[{"start":8,"end":30,"cssClass":"pl-smi"},{"start":31,"end":45,"cssClass":"pl-s1"},{"start":48,"end":55,"cssClass":"pl-s1"},{"start":56,"end":81,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":32,"cssClass":"pl-smi"},{"start":33,"end":40,"cssClass":"pl-s1"},{"start":43,"end":51,"cssClass":"pl-s1"}],[],[{"start":12,"end":26,"cssClass":"pl-smi"},{"start":27,"end":33,"cssClass":"pl-s1"},{"start":37,"end":51,"cssClass":"pl-smi"},{"start":52,"end":66,"cssClass":"pl-s1"},{"start":67,"end":85,"cssClass":"pl-en"},{"start":86,"end":100,"cssClass":"pl-smi"},{"start":101,"end":106,"cssClass":"pl-k"},{"start":108,"end":115,"cssClass":"pl-s1"},{"start":116,"end":133,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":22,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-c1"},{"start":36,"end":42,"cssClass":"pl-s1"},{"start":43,"end":53,"cssClass":"pl-k"},{"start":54,"end":71,"cssClass":"pl-smi"},{"start":74,"end":82,"cssClass":"pl-k"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":22,"end":39,"cssClass":"pl-smi"},{"start":40,"end":46,"cssClass":"pl-s1"},{"start":48,"end":64,"cssClass":"pl-en"},{"start":65,"end":70,"cssClass":"pl-s1"},{"start":72,"end":79,"cssClass":"pl-s1"},{"start":81,"end":88,"cssClass":"pl-s1"},{"start":90,"end":101,"cssClass":"pl-s1"},{"start":103,"end":116,"cssClass":"pl-s1"}],[],[],[],[],[],[{"start":4,"end":13,"cssClass":"pl-k"},{"start":14,"end":25,"cssClass":"pl-smi"},{"start":26,"end":35,"cssClass":"pl-en"},{"start":36,"end":46,"cssClass":"pl-smi"},{"start":47,"end":52,"cssClass":"pl-s1"},{"start":54,"end":65,"cssClass":"pl-smi"},{"start":66,"end":72,"cssClass":"pl-s1"},{"start":74,"end":83,"cssClass":"pl-smi"},{"start":84,"end":88,"cssClass":"pl-s1"},{"start":90,"end":106,"cssClass":"pl-smi"},{"start":107,"end":114,"cssClass":"pl-s1"},{"start":116,"end":134,"cssClass":"pl-smi"},{"start":135,"end":148,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":25,"cssClass":"pl-s1"},{"start":28,"end":31,"cssClass":"pl-k"},{"start":32,"end":43,"cssClass":"pl-smi"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":25,"cssClass":"pl-s1"},{"start":29,"end":33,"cssClass":"pl-c1"},{"start":35,"end":40,"cssClass":"pl-s1"},{"start":41,"end":54,"cssClass":"pl-en"},{"start":55,"end":68,"cssClass":"pl-s1"},{"start":69,"end":74,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":16,"cssClass":"pl-en"},{"start":17,"end":35,"cssClass":"pl-smi"},{"start":36,"end":46,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":21,"cssClass":"pl-en"},{"start":22,"end":26,"cssClass":"pl-s1"},{"start":27,"end":32,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":22,"cssClass":"pl-en"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":41,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":23,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":23,"cssClass":"pl-en"},{"start":24,"end":30,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-en"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":20,"cssClass":"pl-en"},{"start":21,"end":34,"cssClass":"pl-s1"},{"start":35,"end":42,"cssClass":"pl-en"},{"start":43,"end":60,"cssClass":"pl-smi"},{"start":61,"end":67,"cssClass":"pl-c1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":23,"end":27,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":33,"cssClass":"pl-en"},{"start":34,"end":41,"cssClass":"pl-s1"},{"start":42,"end":47,"cssClass":"pl-en"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":40,"cssClass":"pl-en"},{"start":45,"end":46,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":28,"cssClass":"pl-en"},{"start":29,"end":33,"cssClass":"pl-smi"},{"start":34,"end":45,"cssClass":"pl-en"},{"start":50,"end":55,"cssClass":"pl-s1"},{"start":56,"end":78,"cssClass":"pl-en"}],[],[{"start":8,"end":11,"cssClass":"pl-smi"},{"start":12,"end":18,"cssClass":"pl-smi"},{"start":20,"end":34,"cssClass":"pl-s1"},{"start":37,"end":43,"cssClass":"pl-s1"},{"start":44,"end":57,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":26,"cssClass":"pl-s1"},{"start":30,"end":34,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":18,"end":35,"cssClass":"pl-en"},{"start":36,"end":50,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":20,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":13,"cssClass":"pl-k"},{"start":14,"end":18,"cssClass":"pl-smi"},{"start":19,"end":32,"cssClass":"pl-en"},{"start":33,"end":44,"cssClass":"pl-smi"},{"start":45,"end":50,"cssClass":"pl-s1"},{"start":52,"end":61,"cssClass":"pl-smi"},{"start":62,"end":66,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":26,"cssClass":"pl-smi"},{"start":27,"end":33,"cssClass":"pl-s1"},{"start":36,"end":40,"cssClass":"pl-c1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":29,"cssClass":"pl-en"},{"start":32,"end":42,"cssClass":"pl-k"},{"start":43,"end":53,"cssClass":"pl-smi"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":21,"end":26,"cssClass":"pl-s1"},{"start":27,"end":41,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":36,"cssClass":"pl-en"},{"start":42,"end":46,"cssClass":"pl-c1"}],[{"start":16,"end":22,"cssClass":"pl-s1"},{"start":25,"end":28,"cssClass":"pl-k"},{"start":29,"end":40,"cssClass":"pl-smi"},{"start":41,"end":47,"cssClass":"pl-smi"}],[{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":36,"cssClass":"pl-en"},{"start":37,"end":43,"cssClass":"pl-s1"}],[{"start":14,"end":18,"cssClass":"pl-k"},{"start":19,"end":21,"cssClass":"pl-k"},{"start":23,"end":28,"cssClass":"pl-s1"},{"start":29,"end":43,"cssClass":"pl-en"},{"start":46,"end":54,"cssClass":"pl-en"},{"start":60,"end":64,"cssClass":"pl-c1"},{"start":68,"end":73,"cssClass":"pl-s1"},{"start":74,"end":88,"cssClass":"pl-en"},{"start":91,"end":103,"cssClass":"pl-en"},{"start":104,"end":108,"cssClass":"pl-s1"},{"start":109,"end":116,"cssClass":"pl-en"}],[{"start":16,"end":22,"cssClass":"pl-k"}],[],[{"start":10,"end":14,"cssClass":"pl-k"}],[{"start":12,"end":23,"cssClass":"pl-smi"},{"start":24,"end":27,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-smi"},{"start":44,"end":48,"cssClass":"pl-s1"},{"start":49,"end":61,"cssClass":"pl-en"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":21,"end":26,"cssClass":"pl-s1"},{"start":27,"end":44,"cssClass":"pl-en"},{"start":45,"end":48,"cssClass":"pl-s1"},{"start":49,"end":60,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":22,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-c1"}],[{"start":16,"end":22,"cssClass":"pl-s1"},{"start":25,"end":30,"cssClass":"pl-s1"},{"start":31,"end":40,"cssClass":"pl-en"},{"start":41,"end":44,"cssClass":"pl-s1"},{"start":45,"end":56,"cssClass":"pl-en"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":20,"end":23,"cssClass":"pl-s1"},{"start":24,"end":47,"cssClass":"pl-en"},{"start":51,"end":57,"cssClass":"pl-s1"},{"start":58,"end":70,"cssClass":"pl-en"},{"start":71,"end":75,"cssClass":"pl-c1"}],[{"start":14,"end":18,"cssClass":"pl-k"},{"start":19,"end":21,"cssClass":"pl-k"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":42,"cssClass":"pl-en"},{"start":43,"end":47,"cssClass":"pl-s1"},{"start":48,"end":55,"cssClass":"pl-en"},{"start":60,"end":66,"cssClass":"pl-k"}],[],[],[{"start":8,"end":14,"cssClass":"pl-s1"},{"start":15,"end":22,"cssClass":"pl-en"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":28,"end":35,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":13,"end":17,"cssClass":"pl-s1"},{"start":18,"end":29,"cssClass":"pl-en"},{"start":33,"end":39,"cssClass":"pl-k"}],[],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":13,"end":22,"cssClass":"pl-smi"},{"start":23,"end":32,"cssClass":"pl-s1"},{"start":35,"end":39,"cssClass":"pl-s1"},{"start":40,"end":53,"cssClass":"pl-en"}],[{"start":12,"end":25,"cssClass":"pl-en"},{"start":26,"end":31,"cssClass":"pl-s1"},{"start":33,"end":42,"cssClass":"pl-s1"}],[],[],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":17,"cssClass":"pl-smi"},{"start":18,"end":29,"cssClass":"pl-en"},{"start":30,"end":40,"cssClass":"pl-smi"},{"start":41,"end":46,"cssClass":"pl-s1"},{"start":48,"end":54,"cssClass":"pl-smi"},{"start":55,"end":60,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-smi"},{"start":15,"end":27,"cssClass":"pl-s1"},{"start":30,"end":33,"cssClass":"pl-k"},{"start":34,"end":44,"cssClass":"pl-smi"}],[{"start":17,"end":28,"cssClass":"pl-en"},{"start":29,"end":34,"cssClass":"pl-s1"}],[{"start":17,"end":23,"cssClass":"pl-en"},{"start":24,"end":29,"cssClass":"pl-s1"},{"start":30,"end":43,"cssClass":"pl-en"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":27,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":37,"cssClass":"pl-smi"},{"start":38,"end":53,"cssClass":"pl-en"},{"start":54,"end":64,"cssClass":"pl-smi"},{"start":65,"end":70,"cssClass":"pl-s1"},{"start":72,"end":83,"cssClass":"pl-smi"},{"start":84,"end":90,"cssClass":"pl-s1"},{"start":92,"end":104,"cssClass":"pl-smi"},{"start":105,"end":110,"cssClass":"pl-s1"},{"start":112,"end":127,"cssClass":"pl-smi"},{"start":128,"end":135,"cssClass":"pl-s1"},{"start":137,"end":153,"cssClass":"pl-smi"},{"start":154,"end":165,"cssClass":"pl-s1"},{"start":167,"end":185,"cssClass":"pl-smi"},{"start":186,"end":199,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-k"},{"start":19,"end":45,"cssClass":"pl-smi"},{"start":46,"end":51,"cssClass":"pl-s1"},{"start":53,"end":59,"cssClass":"pl-s1"},{"start":61,"end":66,"cssClass":"pl-s1"},{"start":68,"end":75,"cssClass":"pl-s1"},{"start":77,"end":88,"cssClass":"pl-s1"},{"start":90,"end":103,"cssClass":"pl-s1"}],[],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":16,"cssClass":"pl-k"},{"start":17,"end":43,"cssClass":"pl-smi"}],[{"start":8,"end":18,"cssClass":"pl-smi"},{"start":19,"end":24,"cssClass":"pl-s1"}],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":26,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-smi"},{"start":21,"end":26,"cssClass":"pl-s1"}],[{"start":8,"end":23,"cssClass":"pl-smi"},{"start":24,"end":31,"cssClass":"pl-s1"}],[{"start":8,"end":24,"cssClass":"pl-smi"},{"start":25,"end":36,"cssClass":"pl-s1"}],[{"start":8,"end":26,"cssClass":"pl-smi"},{"start":27,"end":40,"cssClass":"pl-s1"}],[],[{"start":8,"end":19,"cssClass":"pl-smi"},{"start":20,"end":31,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-smi"},{"start":21,"end":33,"cssClass":"pl-s1"}],[{"start":8,"end":15,"cssClass":"pl-smi"},{"start":16,"end":23,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":52,"cssClass":"pl-smi"},{"start":53,"end":58,"cssClass":"pl-s1"},{"start":60,"end":71,"cssClass":"pl-smi"},{"start":72,"end":78,"cssClass":"pl-s1"},{"start":80,"end":92,"cssClass":"pl-smi"},{"start":93,"end":98,"cssClass":"pl-s1"},{"start":100,"end":115,"cssClass":"pl-smi"},{"start":116,"end":123,"cssClass":"pl-s1"},{"start":125,"end":141,"cssClass":"pl-smi"},{"start":142,"end":153,"cssClass":"pl-s1"},{"start":155,"end":173,"cssClass":"pl-smi"},{"start":174,"end":187,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":22,"cssClass":"pl-s1"},{"start":25,"end":30,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":23,"cssClass":"pl-s1"},{"start":26,"end":32,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":22,"cssClass":"pl-s1"},{"start":25,"end":30,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":24,"cssClass":"pl-s1"},{"start":27,"end":34,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":28,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":30,"cssClass":"pl-s1"},{"start":33,"end":46,"cssClass":"pl-s1"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":53,"cssClass":"pl-en"},{"start":54,"end":65,"cssClass":"pl-smi"},{"start":66,"end":77,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":28,"cssClass":"pl-s1"},{"start":31,"end":42,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-smi"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":54,"cssClass":"pl-en"},{"start":55,"end":67,"cssClass":"pl-smi"},{"start":68,"end":80,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-smi"},{"start":17,"end":29,"cssClass":"pl-s1"},{"start":32,"end":44,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-smi"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":61,"cssClass":"pl-en"},{"start":62,"end":77,"cssClass":"pl-smi"},{"start":78,"end":85,"cssClass":"pl-s1"},{"start":87,"end":93,"cssClass":"pl-smi"},{"start":94,"end":104,"cssClass":"pl-s1"},{"start":106,"end":117,"cssClass":"pl-smi"},{"start":118,"end":124,"cssClass":"pl-s1"},{"start":126,"end":135,"cssClass":"pl-smi"},{"start":136,"end":140,"cssClass":"pl-s1"},{"start":142,"end":158,"cssClass":"pl-smi"},{"start":159,"end":170,"cssClass":"pl-s1"},{"start":172,"end":190,"cssClass":"pl-smi"},{"start":191,"end":204,"cssClass":"pl-s1"}],[{"start":12,"end":15,"cssClass":"pl-smi"},{"start":16,"end":25,"cssClass":"pl-smi"},{"start":27,"end":41,"cssClass":"pl-s1"},{"start":44,"end":53,"cssClass":"pl-en"},{"start":54,"end":64,"cssClass":"pl-s1"},{"start":66,"end":72,"cssClass":"pl-s1"},{"start":74,"end":78,"cssClass":"pl-s1"}],[{"start":12,"end":23,"cssClass":"pl-s1"},{"start":26,"end":49,"cssClass":"pl-en"},{"start":50,"end":57,"cssClass":"pl-s1"},{"start":59,"end":73,"cssClass":"pl-s1"},{"start":75,"end":80,"cssClass":"pl-s1"},{"start":82,"end":88,"cssClass":"pl-s1"},{"start":90,"end":94,"cssClass":"pl-s1"},{"start":96,"end":107,"cssClass":"pl-s1"},{"start":109,"end":122,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-smi"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":62,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":27,"cssClass":"pl-s1"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-k"},{"start":22,"end":25,"cssClass":"pl-k"},{"start":26,"end":47,"cssClass":"pl-smi"},{"start":48,"end":69,"cssClass":"pl-s"}],[],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":27,"end":30,"cssClass":"pl-k"},{"start":31,"end":43,"cssClass":"pl-smi"},{"start":44,"end":55,"cssClass":"pl-s1"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-en"},{"start":28,"end":46,"cssClass":"pl-smi"},{"start":47,"end":57,"cssClass":"pl-en"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":34,"cssClass":"pl-en"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":35,"cssClass":"pl-en"},{"start":36,"end":40,"cssClass":"pl-smi"},{"start":41,"end":52,"cssClass":"pl-en"},{"start":57,"end":62,"cssClass":"pl-s1"},{"start":63,"end":87,"cssClass":"pl-en"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-smi"}],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":41,"cssClass":"pl-smi"},{"start":42,"end":57,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":27,"cssClass":"pl-s1"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-k"},{"start":22,"end":25,"cssClass":"pl-k"},{"start":26,"end":47,"cssClass":"pl-smi"},{"start":48,"end":69,"cssClass":"pl-s"}],[],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":22,"end":25,"cssClass":"pl-k"},{"start":26,"end":33,"cssClass":"pl-smi"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-en"},{"start":23,"end":41,"cssClass":"pl-smi"},{"start":42,"end":52,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":27,"cssClass":"pl-en"},{"start":28,"end":39,"cssClass":"pl-s1"},{"start":40,"end":50,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-en"},{"start":29,"end":35,"cssClass":"pl-s1"},{"start":36,"end":47,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":29,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":29,"cssClass":"pl-en"},{"start":30,"end":41,"cssClass":"pl-s1"},{"start":42,"end":54,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":26,"cssClass":"pl-en"},{"start":27,"end":38,"cssClass":"pl-s1"},{"start":39,"end":48,"cssClass":"pl-en"}],[{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-en"},{"start":36,"end":47,"cssClass":"pl-s1"},{"start":48,"end":63,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":44,"cssClass":"pl-en"},{"start":49,"end":50,"cssClass":"pl-c1"}],[{"start":16,"end":23,"cssClass":"pl-s1"},{"start":24,"end":34,"cssClass":"pl-en"},{"start":35,"end":39,"cssClass":"pl-smi"},{"start":40,"end":51,"cssClass":"pl-en"},{"start":56,"end":61,"cssClass":"pl-s1"},{"start":62,"end":84,"cssClass":"pl-en"}],[],[{"start":12,"end":28,"cssClass":"pl-en"},{"start":29,"end":36,"cssClass":"pl-s1"},{"start":38,"end":45,"cssClass":"pl-s1"},{"start":47,"end":52,"cssClass":"pl-s1"},{"start":54,"end":60,"cssClass":"pl-s1"},{"start":62,"end":73,"cssClass":"pl-s1"},{"start":74,"end":81,"cssClass":"pl-en"},{"start":85,"end":96,"cssClass":"pl-s1"},{"start":98,"end":111,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-smi"}],[],[],[],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":34,"cssClass":"pl-smi"},{"start":35,"end":40,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":27,"cssClass":"pl-s1"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":28,"cssClass":"pl-en"},{"start":29,"end":36,"cssClass":"pl-smi"},{"start":37,"end":45,"cssClass":"pl-c1"},{"start":47,"end":58,"cssClass":"pl-s1"},{"start":59,"end":64,"cssClass":"pl-en"}],[],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":28,"cssClass":"pl-s1"},{"start":32,"end":36,"cssClass":"pl-c1"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":20,"end":25,"cssClass":"pl-s1"},{"start":26,"end":34,"cssClass":"pl-en"},{"start":37,"end":47,"cssClass":"pl-en"},{"start":50,"end":61,"cssClass":"pl-en"},{"start":62,"end":69,"cssClass":"pl-smi"},{"start":70,"end":86,"cssClass":"pl-c1"}],[{"start":20,"end":25,"cssClass":"pl-s1"},{"start":26,"end":32,"cssClass":"pl-en"},{"start":33,"end":40,"cssClass":"pl-smi"},{"start":41,"end":65,"cssClass":"pl-c1"},{"start":67,"end":79,"cssClass":"pl-s1"},{"start":80,"end":85,"cssClass":"pl-en"}],[{"start":18,"end":22,"cssClass":"pl-k"}],[{"start":20,"end":25,"cssClass":"pl-s1"},{"start":26,"end":32,"cssClass":"pl-en"},{"start":33,"end":40,"cssClass":"pl-smi"},{"start":41,"end":57,"cssClass":"pl-c1"},{"start":59,"end":71,"cssClass":"pl-s1"},{"start":72,"end":77,"cssClass":"pl-en"}],[],[],[],[{"start":12,"end":31,"cssClass":"pl-smi"},{"start":32,"end":35,"cssClass":"pl-s1"},{"start":38,"end":41,"cssClass":"pl-k"},{"start":42,"end":61,"cssClass":"pl-smi"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":23,"cssClass":"pl-s1"},{"start":27,"end":31,"cssClass":"pl-c1"}],[{"start":16,"end":22,"cssClass":"pl-smi"},{"start":23,"end":35,"cssClass":"pl-s1"},{"start":38,"end":41,"cssClass":"pl-k"},{"start":42,"end":52,"cssClass":"pl-smi"},{"start":55,"end":66,"cssClass":"pl-en"},{"start":67,"end":74,"cssClass":"pl-s1"},{"start":76,"end":82,"cssClass":"pl-en"},{"start":83,"end":88,"cssClass":"pl-s1"},{"start":89,"end":102,"cssClass":"pl-en"}],[{"start":16,"end":19,"cssClass":"pl-s1"},{"start":20,"end":30,"cssClass":"pl-en"},{"start":31,"end":43,"cssClass":"pl-s1"}],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":27,"cssClass":"pl-s1"},{"start":31,"end":35,"cssClass":"pl-c1"}],[{"start":16,"end":22,"cssClass":"pl-smi"},{"start":23,"end":35,"cssClass":"pl-s1"},{"start":38,"end":41,"cssClass":"pl-k"},{"start":42,"end":52,"cssClass":"pl-smi"},{"start":55,"end":66,"cssClass":"pl-en"},{"start":67,"end":78,"cssClass":"pl-s1"},{"start":80,"end":86,"cssClass":"pl-en"},{"start":87,"end":92,"cssClass":"pl-s1"},{"start":93,"end":106,"cssClass":"pl-en"}],[{"start":16,"end":19,"cssClass":"pl-s1"},{"start":20,"end":28,"cssClass":"pl-en"},{"start":29,"end":41,"cssClass":"pl-s1"}],[{"start":16,"end":19,"cssClass":"pl-s1"},{"start":20,"end":32,"cssClass":"pl-en"},{"start":33,"end":41,"cssClass":"pl-s"}],[{"start":16,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-en"},{"start":36,"end":47,"cssClass":"pl-s1"},{"start":48,"end":63,"cssClass":"pl-en"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":20,"end":31,"cssClass":"pl-s1"},{"start":32,"end":45,"cssClass":"pl-en"},{"start":51,"end":52,"cssClass":"pl-c1"}],[{"start":20,"end":23,"cssClass":"pl-s1"},{"start":24,"end":36,"cssClass":"pl-en"},{"start":37,"end":48,"cssClass":"pl-s1"},{"start":49,"end":62,"cssClass":"pl-en"},{"start":67,"end":71,"cssClass":"pl-smi"},{"start":72,"end":83,"cssClass":"pl-en"}],[],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":28,"cssClass":"pl-s1"},{"start":32,"end":36,"cssClass":"pl-c1"}],[{"start":16,"end":22,"cssClass":"pl-smi"},{"start":23,"end":35,"cssClass":"pl-s1"},{"start":38,"end":41,"cssClass":"pl-k"},{"start":42,"end":52,"cssClass":"pl-smi"},{"start":55,"end":66,"cssClass":"pl-en"},{"start":67,"end":79,"cssClass":"pl-s1"},{"start":81,"end":87,"cssClass":"pl-en"},{"start":88,"end":93,"cssClass":"pl-s1"},{"start":94,"end":107,"cssClass":"pl-en"}],[{"start":16,"end":19,"cssClass":"pl-s1"},{"start":20,"end":35,"cssClass":"pl-en"},{"start":36,"end":48,"cssClass":"pl-s1"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":20,"end":32,"cssClass":"pl-s1"},{"start":33,"end":46,"cssClass":"pl-en"},{"start":52,"end":53,"cssClass":"pl-c1"}],[{"start":20,"end":23,"cssClass":"pl-s1"},{"start":24,"end":43,"cssClass":"pl-en"},{"start":44,"end":56,"cssClass":"pl-s1"},{"start":57,"end":70,"cssClass":"pl-en"},{"start":75,"end":79,"cssClass":"pl-smi"},{"start":80,"end":91,"cssClass":"pl-en"}],[],[],[{"start":12,"end":15,"cssClass":"pl-smi"},{"start":16,"end":25,"cssClass":"pl-s1"},{"start":28,"end":33,"cssClass":"pl-s1"},{"start":34,"end":46,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":16,"end":22,"cssClass":"pl-s1"},{"start":23,"end":35,"cssClass":"pl-en"},{"start":40,"end":49,"cssClass":"pl-s1"},{"start":51,"end":60,"cssClass":"pl-s1"},{"start":63,"end":69,"cssClass":"pl-s1"},{"start":70,"end":82,"cssClass":"pl-en"}],[{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":34,"cssClass":"pl-en"},{"start":35,"end":44,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":22,"cssClass":"pl-s1"}],[],[],[],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/keycloak/keycloak/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"TokenManager.java","displayUrl":"https://github.com/keycloak/keycloak/blob/88f14b39a71e679fe7ed1699d7b2acb8c1c4742a/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java?raw=true","headerInfo":{"blobSize":"22.5 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"99528c8","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fkeycloak%2Fkeycloak%2Fblob%2F88f14b39a71e679fe7ed1699d7b2acb8c1c4742a%2Fservices%2Fsrc%2Fmain%2Fjava%2Forg%2Fkeycloak%2Fprotocol%2Foidc%2FTokenManager.java","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"488","truncatedSloc":"417"},"mode":"executable file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Java","languageID":181,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/keycloak/keycloak/blob/88f14b39a71e679fe7ed1699d7b2acb8c1c4742a/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/keycloak/keycloak/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/keycloak/keycloak/raw/88f14b39a71e679fe7ed1699d7b2acb8c1c4742a/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"TokenManager","kind":"class","ident_start":1768,"ident_end":1780,"extent_start":1755,"extent_end":23068,"fully_qualified_name":"TokenManager","ident_utf16":{"start":{"line_number":45,"utf16_col":13},"end":{"line_number":45,"utf16_col":25}},"extent_utf16":{"start":{"line_number":45,"utf16_col":0},"end":{"line_number":487,"utf16_col":1}}},{"name":"logger","kind":"field","ident_start":1818,"ident_end":1824,"extent_start":1788,"extent_end":1864,"fully_qualified_name":"TokenManager::logger","ident_utf16":{"start":{"line_number":46,"utf16_col":34},"end":{"line_number":46,"utf16_col":40}},"extent_utf16":{"start":{"line_number":46,"utf16_col":4},"end":{"line_number":46,"utf16_col":80}}},{"name":"applyScope","kind":"method","ident_start":1891,"ident_end":1901,"extent_start":1872,"extent_end":2350,"fully_qualified_name":"TokenManager::applyScope","ident_utf16":{"start":{"line_number":48,"utf16_col":23},"end":{"line_number":48,"utf16_col":33}},"extent_utf16":{"start":{"line_number":48,"utf16_col":4},"end":{"line_number":60,"utf16_col":5}}},{"name":"TokenValidation","kind":"class","ident_start":2378,"ident_end":2393,"extent_start":2358,"extent_end":2905,"fully_qualified_name":"TokenManager::TokenValidation","ident_utf16":{"start":{"line_number":62,"utf16_col":24},"end":{"line_number":62,"utf16_col":39}},"extent_utf16":{"start":{"line_number":62,"utf16_col":4},"end":{"line_number":74,"utf16_col":5}}},{"name":"user","kind":"field","ident_start":2428,"ident_end":2432,"extent_start":2405,"extent_end":2433,"fully_qualified_name":"TokenManager::TokenValidation::user","ident_utf16":{"start":{"line_number":63,"utf16_col":31},"end":{"line_number":63,"utf16_col":35}},"extent_utf16":{"start":{"line_number":63,"utf16_col":8},"end":{"line_number":63,"utf16_col":36}}},{"name":"userSession","kind":"field","ident_start":2473,"ident_end":2484,"extent_start":2443,"extent_end":2485,"fully_qualified_name":"TokenManager::TokenValidation::userSession","ident_utf16":{"start":{"line_number":64,"utf16_col":38},"end":{"line_number":64,"utf16_col":49}},"extent_utf16":{"start":{"line_number":64,"utf16_col":8},"end":{"line_number":64,"utf16_col":50}}},{"name":"clientSession","kind":"field","ident_start":2527,"ident_end":2540,"extent_start":2495,"extent_end":2541,"fully_qualified_name":"TokenManager::TokenValidation::clientSession","ident_utf16":{"start":{"line_number":65,"utf16_col":40},"end":{"line_number":65,"utf16_col":53}},"extent_utf16":{"start":{"line_number":65,"utf16_col":8},"end":{"line_number":65,"utf16_col":54}}},{"name":"newToken","kind":"field","ident_start":2576,"ident_end":2584,"extent_start":2551,"extent_end":2585,"fully_qualified_name":"TokenManager::TokenValidation::newToken","ident_utf16":{"start":{"line_number":66,"utf16_col":33},"end":{"line_number":66,"utf16_col":41}},"extent_utf16":{"start":{"line_number":66,"utf16_col":8},"end":{"line_number":66,"utf16_col":42}}},{"name":"TokenValidation","kind":"method","ident_start":2604,"ident_end":2619,"extent_start":2597,"extent_end":2898,"fully_qualified_name":"TokenManager::TokenValidation::TokenValidation","ident_utf16":{"start":{"line_number":68,"utf16_col":15},"end":{"line_number":68,"utf16_col":30}},"extent_utf16":{"start":{"line_number":68,"utf16_col":8},"end":{"line_number":73,"utf16_col":9}}},{"name":"validateToken","kind":"method","ident_start":2936,"ident_end":2949,"extent_start":2913,"extent_end":5473,"fully_qualified_name":"TokenManager::validateToken","ident_utf16":{"start":{"line_number":76,"utf16_col":27},"end":{"line_number":76,"utf16_col":40}},"extent_utf16":{"start":{"line_number":76,"utf16_col":4},"end":{"line_number":125,"utf16_col":5}}},{"name":"refreshAccessToken","kind":"method","ident_start":5508,"ident_end":5526,"extent_start":5481,"extent_end":6838,"fully_qualified_name":"TokenManager::refreshAccessToken","ident_utf16":{"start":{"line_number":127,"utf16_col":31},"end":{"line_number":127,"utf16_col":49}},"extent_utf16":{"start":{"line_number":127,"utf16_col":4},"end":{"line_number":146,"utf16_col":5}}},{"name":"verifyRefreshToken","kind":"method","ident_start":6866,"ident_end":6884,"extent_start":6846,"extent_end":7860,"fully_qualified_name":"TokenManager::verifyRefreshToken","ident_utf16":{"start":{"line_number":148,"utf16_col":24},"end":{"line_number":148,"utf16_col":42}},"extent_utf16":{"start":{"line_number":148,"utf16_col":4},"end":{"line_number":167,"utf16_col":5}}},{"name":"verifyIDToken","kind":"method","ident_start":7881,"ident_end":7894,"extent_start":7866,"extent_end":8827,"fully_qualified_name":"TokenManager::verifyIDToken","ident_utf16":{"start":{"line_number":168,"utf16_col":19},"end":{"line_number":168,"utf16_col":32}},"extent_utf16":{"start":{"line_number":168,"utf16_col":4},"end":{"line_number":187,"utf16_col":5}}},{"name":"createClientAccessToken","kind":"method","ident_start":8854,"ident_end":8877,"extent_start":8835,"extent_end":9377,"fully_qualified_name":"TokenManager::createClientAccessToken","ident_utf16":{"start":{"line_number":189,"utf16_col":23},"end":{"line_number":189,"utf16_col":46}},"extent_utf16":{"start":{"line_number":189,"utf16_col":4},"end":{"line_number":196,"utf16_col":5}}},{"name":"attachClientSession","kind":"method","ident_start":9404,"ident_end":9423,"extent_start":9385,"extent_end":10652,"fully_qualified_name":"TokenManager::attachClientSession","ident_utf16":{"start":{"line_number":198,"utf16_col":23},"end":{"line_number":198,"utf16_col":42}},"extent_utf16":{"start":{"line_number":198,"utf16_col":4},"end":{"line_number":225,"utf16_col":5}}},{"name":"dettachClientSession","kind":"method","ident_start":10679,"ident_end":10699,"extent_start":10660,"extent_end":11197,"fully_qualified_name":"TokenManager::dettachClientSession","ident_utf16":{"start":{"line_number":227,"utf16_col":23},"end":{"line_number":227,"utf16_col":43}},"extent_utf16":{"start":{"line_number":227,"utf16_col":4},"end":{"line_number":240,"utf16_col":5}}},{"name":"getAccess","kind":"method","ident_start":11234,"ident_end":11243,"extent_start":11205,"extent_end":12105,"fully_qualified_name":"TokenManager::getAccess","ident_utf16":{"start":{"line_number":242,"utf16_col":33},"end":{"line_number":242,"utf16_col":42}},"extent_utf16":{"start":{"line_number":242,"utf16_col":4},"end":{"line_number":262,"utf16_col":5}}},{"name":"verifyAccess","kind":"method","ident_start":12125,"ident_end":12137,"extent_start":12113,"extent_end":13652,"fully_qualified_name":"TokenManager::verifyAccess","ident_utf16":{"start":{"line_number":264,"utf16_col":16},"end":{"line_number":264,"utf16_col":28}},"extent_utf16":{"start":{"line_number":264,"utf16_col":4},"end":{"line_number":288,"utf16_col":5}}},{"name":"transformAccessToken","kind":"method","ident_start":13679,"ident_end":13699,"extent_start":13660,"extent_end":14571,"fully_qualified_name":"TokenManager::transformAccessToken","ident_utf16":{"start":{"line_number":290,"utf16_col":23},"end":{"line_number":290,"utf16_col":43}},"extent_utf16":{"start":{"line_number":290,"utf16_col":4},"end":{"line_number":302,"utf16_col":5}}},{"name":"transformIDToken","kind":"method","ident_start":14589,"ident_end":14605,"extent_start":14577,"extent_end":15432,"fully_qualified_name":"TokenManager::transformIDToken","ident_utf16":{"start":{"line_number":303,"utf16_col":16},"end":{"line_number":303,"utf16_col":32}},"extent_utf16":{"start":{"line_number":303,"utf16_col":4},"end":{"line_number":314,"utf16_col":5}}},{"name":"initToken","kind":"method","ident_start":15464,"ident_end":15473,"extent_start":15442,"extent_end":16440,"fully_qualified_name":"TokenManager::initToken","ident_utf16":{"start":{"line_number":317,"utf16_col":26},"end":{"line_number":317,"utf16_col":35}},"extent_utf16":{"start":{"line_number":317,"utf16_col":4},"end":{"line_number":337,"utf16_col":5}}},{"name":"addComposites","kind":"method","ident_start":16463,"ident_end":16476,"extent_start":16448,"extent_end":17578,"fully_qualified_name":"TokenManager::addComposites","ident_utf16":{"start":{"line_number":339,"utf16_col":19},"end":{"line_number":339,"utf16_col":32}},"extent_utf16":{"start":{"line_number":339,"utf16_col":4},"end":{"line_number":365,"utf16_col":5}}},{"name":"encodeToken","kind":"method","ident_start":17600,"ident_end":17611,"extent_start":17586,"extent_end":17816,"fully_qualified_name":"TokenManager::encodeToken","ident_utf16":{"start":{"line_number":367,"utf16_col":18},"end":{"line_number":367,"utf16_col":29}},"extent_utf16":{"start":{"line_number":367,"utf16_col":4},"end":{"line_number":372,"utf16_col":5}}},{"name":"responseBuilder","kind":"method","ident_start":17858,"ident_end":17873,"extent_start":17824,"extent_end":18136,"fully_qualified_name":"TokenManager::responseBuilder","ident_utf16":{"start":{"line_number":374,"utf16_col":38},"end":{"line_number":374,"utf16_col":53}},"extent_utf16":{"start":{"line_number":374,"utf16_col":4},"end":{"line_number":376,"utf16_col":5}}},{"name":"AccessTokenResponseBuilder","kind":"class","ident_start":18157,"ident_end":18183,"extent_start":18144,"extent_end":23063,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder","ident_utf16":{"start":{"line_number":378,"utf16_col":17},"end":{"line_number":378,"utf16_col":43}},"extent_utf16":{"start":{"line_number":378,"utf16_col":4},"end":{"line_number":485,"utf16_col":5}}},{"name":"realm","kind":"field","ident_start":18206,"ident_end":18211,"extent_start":18195,"extent_end":18212,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::realm","ident_utf16":{"start":{"line_number":379,"utf16_col":19},"end":{"line_number":379,"utf16_col":24}},"extent_utf16":{"start":{"line_number":379,"utf16_col":8},"end":{"line_number":379,"utf16_col":25}}},{"name":"client","kind":"field","ident_start":18234,"ident_end":18240,"extent_start":18222,"extent_end":18241,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::client","ident_utf16":{"start":{"line_number":380,"utf16_col":20},"end":{"line_number":380,"utf16_col":26}},"extent_utf16":{"start":{"line_number":380,"utf16_col":8},"end":{"line_number":380,"utf16_col":27}}},{"name":"event","kind":"field","ident_start":18264,"ident_end":18269,"extent_start":18251,"extent_end":18270,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::event","ident_utf16":{"start":{"line_number":381,"utf16_col":21},"end":{"line_number":381,"utf16_col":26}},"extent_utf16":{"start":{"line_number":381,"utf16_col":8},"end":{"line_number":381,"utf16_col":27}}},{"name":"session","kind":"field","ident_start":18296,"ident_end":18303,"extent_start":18280,"extent_end":18304,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::session","ident_utf16":{"start":{"line_number":382,"utf16_col":24},"end":{"line_number":382,"utf16_col":31}},"extent_utf16":{"start":{"line_number":382,"utf16_col":8},"end":{"line_number":382,"utf16_col":32}}},{"name":"userSession","kind":"field","ident_start":18331,"ident_end":18342,"extent_start":18314,"extent_end":18343,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::userSession","ident_utf16":{"start":{"line_number":383,"utf16_col":25},"end":{"line_number":383,"utf16_col":36}},"extent_utf16":{"start":{"line_number":383,"utf16_col":8},"end":{"line_number":383,"utf16_col":37}}},{"name":"clientSession","kind":"field","ident_start":18372,"ident_end":18385,"extent_start":18353,"extent_end":18386,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::clientSession","ident_utf16":{"start":{"line_number":384,"utf16_col":27},"end":{"line_number":384,"utf16_col":40}},"extent_utf16":{"start":{"line_number":384,"utf16_col":8},"end":{"line_number":384,"utf16_col":41}}},{"name":"accessToken","kind":"field","ident_start":18410,"ident_end":18421,"extent_start":18398,"extent_end":18422,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::accessToken","ident_utf16":{"start":{"line_number":386,"utf16_col":20},"end":{"line_number":386,"utf16_col":31}},"extent_utf16":{"start":{"line_number":386,"utf16_col":8},"end":{"line_number":386,"utf16_col":32}}},{"name":"refreshToken","kind":"field","ident_start":18445,"ident_end":18457,"extent_start":18432,"extent_end":18458,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::refreshToken","ident_utf16":{"start":{"line_number":387,"utf16_col":21},"end":{"line_number":387,"utf16_col":33}},"extent_utf16":{"start":{"line_number":387,"utf16_col":8},"end":{"line_number":387,"utf16_col":34}}},{"name":"idToken","kind":"field","ident_start":18476,"ident_end":18483,"extent_start":18468,"extent_end":18484,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::idToken","ident_utf16":{"start":{"line_number":388,"utf16_col":16},"end":{"line_number":388,"utf16_col":23}},"extent_utf16":{"start":{"line_number":388,"utf16_col":8},"end":{"line_number":388,"utf16_col":24}}},{"name":"AccessTokenResponseBuilder","kind":"method","ident_start":18503,"ident_end":18529,"extent_start":18496,"extent_end":18921,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::AccessTokenResponseBuilder","ident_utf16":{"start":{"line_number":390,"utf16_col":15},"end":{"line_number":390,"utf16_col":41}},"extent_utf16":{"start":{"line_number":390,"utf16_col":8},"end":{"line_number":397,"utf16_col":9}}},{"name":"accessToken","kind":"method","ident_start":18967,"ident_end":18978,"extent_start":18933,"extent_end":19087,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::accessToken","ident_utf16":{"start":{"line_number":399,"utf16_col":42},"end":{"line_number":399,"utf16_col":53}},"extent_utf16":{"start":{"line_number":399,"utf16_col":8},"end":{"line_number":402,"utf16_col":9}}},{"name":"refreshToken","kind":"method","ident_start":19131,"ident_end":19143,"extent_start":19097,"extent_end":19256,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::refreshToken","ident_utf16":{"start":{"line_number":403,"utf16_col":42},"end":{"line_number":403,"utf16_col":54}},"extent_utf16":{"start":{"line_number":403,"utf16_col":8},"end":{"line_number":406,"utf16_col":9}}},{"name":"generateAccessToken","kind":"method","ident_start":19302,"ident_end":19321,"extent_start":19268,"extent_end":19712,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::generateAccessToken","ident_utf16":{"start":{"line_number":408,"utf16_col":42},"end":{"line_number":408,"utf16_col":61}},"extent_utf16":{"start":{"line_number":408,"utf16_col":8},"end":{"line_number":412,"utf16_col":9}}},{"name":"generateRefreshToken","kind":"method","ident_start":19758,"ident_end":19778,"extent_start":19724,"extent_end":20201,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::generateRefreshToken","ident_utf16":{"start":{"line_number":414,"utf16_col":42},"end":{"line_number":414,"utf16_col":62}},"extent_utf16":{"start":{"line_number":414,"utf16_col":8},"end":{"line_number":423,"utf16_col":9}}},{"name":"generateIDToken","kind":"method","ident_start":20247,"ident_end":20262,"extent_start":20213,"extent_end":21128,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::generateIDToken","ident_utf16":{"start":{"line_number":425,"utf16_col":42},"end":{"line_number":425,"utf16_col":57}},"extent_utf16":{"start":{"line_number":425,"utf16_col":8},"end":{"line_number":442,"utf16_col":9}}},{"name":"build","kind":"method","ident_start":21171,"ident_end":21176,"extent_start":21144,"extent_end":23056,"fully_qualified_name":"TokenManager::AccessTokenResponseBuilder::build","ident_utf16":{"start":{"line_number":446,"utf16_col":35},"end":{"line_number":446,"utf16_col":40}},"extent_utf16":{"start":{"line_number":446,"utf16_col":8},"end":{"line_number":484,"utf16_col":9}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/keycloak/keycloak/branches":{"post":"I1sIv5rflkBqgaTZElifoMCENGKfwoZ398FyMEa1R18pBmpYEGCbSTtbdfxFN9yVkbpbUEgLvVKDVrIFzLN3LQ"},"/repos/preferences":{"post":"UknmotTUqFuI0Gj76RBhADX-b4Q0cHY_R6QsRyljozk9qcJA6AUS1EyMV615D7PVi3aY23l4yyTz8pRfT09N9g"}}},"title":"keycloak/services/src/main/java/org/keycloak/protocol/oidc/TokenManager.java at 88f14b39a71e679fe7ed1699d7b2acb8c1c4742a ยท keycloak/keycloak"}