main 9be0f1bad518 cached
835 files
7.0 MB
1.9M tokens
6284 symbols
1 requests
Download .txt
Showing preview only (7,591K chars total). Download the full file or copy to clipboard to get everything.
Repository: quarkiverse/quarkus-jdiameter
Branch: main
Commit: 9be0f1bad518
Files: 835
Total size: 7.0 MB

Directory structure:
gitextract_ummft7m9/

├── .github/
│   ├── CODEOWNERS
│   ├── dependabot.yml
│   ├── project.yml
│   └── workflows/
│       ├── build.yml
│       ├── deploy-snapshots.yml.disabled
│       ├── pre-release.yml
│       ├── quarkus-snapshot.yaml
│       ├── release-perform.yml
│       ├── release-prepare.yml
│       └── release.yml.disabled
├── .gitignore
├── LICENSE
├── README.md
├── core/
│   ├── docs/
│   │   └── sources-asciidoc/
│   │       └── src/
│   │           └── main/
│   │               └── asciidoc/
│   │                   ├── Chapter-Introduction.adoc~
│   │                   ├── Chapter-JDiameter.adoc~
│   │                   ├── Chapter-MUX.adoc~
│   │                   ├── Diameter_User_Guide.adoc~
│   │                   ├── Section-Introduction-Message_Format.adoc~
│   │                   ├── Section-JDiameter-Configuration.adoc~
│   │                   ├── Section-JDiameter-Setup.adoc~
│   │                   ├── Section-JDiameter-Source_Overview.adoc~
│   │                   ├── Section-JDiameter-Validator-Configuration.adoc~
│   │                   ├── Section-JDiameter-Validator-Source_Overview.adoc~
│   │                   ├── Section-JDiameter-Validator.adoc~
│   │                   ├── Section-MUX-Setup.adoc~
│   │                   ├── Section-MUX-Source_Overview.adoc~
│   │                   ├── js/
│   │                   │   └── default.js~
│   │                   └── stylesheets/
│   │                       └── telestax.css~
│   ├── jdiameter/
│   │   ├── api/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── api/
│   │   │                           ├── Answer.java
│   │   │                           ├── ApplicationAlreadyUseException.java
│   │   │                           ├── ApplicationId.java
│   │   │                           ├── Avp.java
│   │   │                           ├── AvpDataException.java
│   │   │                           ├── AvpSet.java
│   │   │                           ├── BaseSession.java
│   │   │                           ├── Configuration.java
│   │   │                           ├── ConfigurationListener.java
│   │   │                           ├── DisconnectCause.java
│   │   │                           ├── EventListener.java
│   │   │                           ├── IllegalDiameterStateException.java
│   │   │                           ├── InternalException.java
│   │   │                           ├── LocalAction.java
│   │   │                           ├── Message.java
│   │   │                           ├── MetaData.java
│   │   │                           ├── Mode.java
│   │   │                           ├── MutableConfiguration.java
│   │   │                           ├── MutablePeerTable.java
│   │   │                           ├── Network.java
│   │   │                           ├── NetworkReqListener.java
│   │   │                           ├── OverloadException.java
│   │   │                           ├── OverloadListener.java
│   │   │                           ├── OverloadManager.java
│   │   │                           ├── Peer.java
│   │   │                           ├── PeerState.java
│   │   │                           ├── PeerStateListener.java
│   │   │                           ├── PeerTable.java
│   │   │                           ├── PeerTableListener.java
│   │   │                           ├── RawSession.java
│   │   │                           ├── Realm.java
│   │   │                           ├── RealmTable.java
│   │   │                           ├── Request.java
│   │   │                           ├── ResultCode.java
│   │   │                           ├── RouteException.java
│   │   │                           ├── Selector.java
│   │   │                           ├── Session.java
│   │   │                           ├── SessionFactory.java
│   │   │                           ├── Stack.java
│   │   │                           ├── StackManager.java
│   │   │                           ├── StackType.java
│   │   │                           ├── Statistic.java
│   │   │                           ├── StatisticRecord.java
│   │   │                           ├── URI.java
│   │   │                           ├── Wrapper.java
│   │   │                           ├── acc/
│   │   │                           │   ├── ClientAccSession.java
│   │   │                           │   ├── ClientAccSessionListener.java
│   │   │                           │   ├── ServerAccSession.java
│   │   │                           │   ├── ServerAccSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── AccountAnswer.java
│   │   │                           │       └── AccountRequest.java
│   │   │                           ├── annotation/
│   │   │                           │   ├── AvpDscr.java
│   │   │                           │   ├── AvpFlag.java
│   │   │                           │   ├── AvpType.java
│   │   │                           │   ├── Child.java
│   │   │                           │   ├── CommandDscr.java
│   │   │                           │   ├── CommandFlag.java
│   │   │                           │   ├── Getter.java
│   │   │                           │   └── Setter.java
│   │   │                           ├── app/
│   │   │                           │   ├── AppAnswerEvent.java
│   │   │                           │   ├── AppEvent.java
│   │   │                           │   ├── AppRequestEvent.java
│   │   │                           │   ├── AppSession.java
│   │   │                           │   ├── State.java
│   │   │                           │   ├── StateChangeListener.java
│   │   │                           │   ├── StateEvent.java
│   │   │                           │   └── StateMachine.java
│   │   │                           ├── auth/
│   │   │                           │   ├── ClientAuthSession.java
│   │   │                           │   ├── ClientAuthSessionListener.java
│   │   │                           │   ├── ServerAuthSession.java
│   │   │                           │   ├── ServerAuthSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── AbortSessionAnswer.java
│   │   │                           │       ├── AbortSessionRequest.java
│   │   │                           │       ├── ReAuthAnswer.java
│   │   │                           │       ├── ReAuthRequest.java
│   │   │                           │       ├── SessionTermAnswer.java
│   │   │                           │       └── SessionTermRequest.java
│   │   │                           ├── cca/
│   │   │                           │   ├── CCASession.java
│   │   │                           │   ├── ClientCCASession.java
│   │   │                           │   ├── ClientCCASessionListener.java
│   │   │                           │   ├── ServerCCASession.java
│   │   │                           │   ├── ServerCCASessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JCreditControlAnswer.java
│   │   │                           │       └── JCreditControlRequest.java
│   │   │                           ├── cxdx/
│   │   │                           │   ├── ClientCxDxSession.java
│   │   │                           │   ├── ClientCxDxSessionListener.java
│   │   │                           │   ├── ServerCxDxSession.java
│   │   │                           │   ├── ServerCxDxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JLocationInfoAnswer.java
│   │   │                           │       ├── JLocationInfoRequest.java
│   │   │                           │       ├── JMultimediaAuthAnswer.java
│   │   │                           │       ├── JMultimediaAuthRequest.java
│   │   │                           │       ├── JPushProfileAnswer.java
│   │   │                           │       ├── JPushProfileRequest.java
│   │   │                           │       ├── JRegistrationTerminationAnswer.java
│   │   │                           │       ├── JRegistrationTerminationRequest.java
│   │   │                           │       ├── JServerAssignmentAnswer.java
│   │   │                           │       ├── JServerAssignmentRequest.java
│   │   │                           │       ├── JUserAuthorizationAnswer.java
│   │   │                           │       └── JUserAuthorizationRequest.java
│   │   │                           ├── gq/
│   │   │                           │   ├── ClientGqSessionListener.java
│   │   │                           │   ├── GqClientSession.java
│   │   │                           │   ├── GqServerSession.java
│   │   │                           │   └── ServerGqSessionListener.java
│   │   │                           ├── gx/
│   │   │                           │   ├── ClientGxSession.java
│   │   │                           │   ├── ClientGxSessionListener.java
│   │   │                           │   ├── ServerGxSession.java
│   │   │                           │   ├── ServerGxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── GxCreditControlAnswer.java
│   │   │                           │       ├── GxCreditControlRequest.java
│   │   │                           │       ├── GxReAuthAnswer.java
│   │   │                           │       └── GxReAuthRequest.java
│   │   │                           ├── rf/
│   │   │                           │   ├── ClientRfSession.java
│   │   │                           │   ├── ClientRfSessionListener.java
│   │   │                           │   ├── ServerRfSession.java
│   │   │                           │   ├── ServerRfSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RfAccountingAnswer.java
│   │   │                           │       └── RfAccountingRequest.java
│   │   │                           ├── ro/
│   │   │                           │   ├── ClientRoSession.java
│   │   │                           │   ├── ClientRoSessionListener.java
│   │   │                           │   ├── ServerRoSession.java
│   │   │                           │   ├── ServerRoSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RoCreditControlAnswer.java
│   │   │                           │       └── RoCreditControlRequest.java
│   │   │                           ├── rx/
│   │   │                           │   ├── ClientRxSession.java
│   │   │                           │   ├── ClientRxSessionListener.java
│   │   │                           │   ├── ServerRxSession.java
│   │   │                           │   ├── ServerRxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RxAAAnswer.java
│   │   │                           │       ├── RxAARequest.java
│   │   │                           │       ├── RxAbortSessionAnswer.java
│   │   │                           │       ├── RxAbortSessionRequest.java
│   │   │                           │       ├── RxReAuthAnswer.java
│   │   │                           │       ├── RxReAuthRequest.java
│   │   │                           │       ├── RxSessionTermAnswer.java
│   │   │                           │       └── RxSessionTermRequest.java
│   │   │                           ├── s13/
│   │   │                           │   ├── ClientS13Session.java
│   │   │                           │   ├── ClientS13SessionListener.java
│   │   │                           │   ├── ServerS13Session.java
│   │   │                           │   ├── ServerS13SessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JMEIdentityCheckAnswer.java
│   │   │                           │       └── JMEIdentityCheckRequest.java
│   │   │                           ├── s6a/
│   │   │                           │   ├── ClientS6aSession.java
│   │   │                           │   ├── ClientS6aSessionListener.java
│   │   │                           │   ├── ServerS6aSession.java
│   │   │                           │   ├── ServerS6aSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JAuthenticationInformationAnswer.java
│   │   │                           │       ├── JAuthenticationInformationRequest.java
│   │   │                           │       ├── JCancelLocationAnswer.java
│   │   │                           │       ├── JCancelLocationRequest.java
│   │   │                           │       ├── JDeleteSubscriberDataAnswer.java
│   │   │                           │       ├── JDeleteSubscriberDataRequest.java
│   │   │                           │       ├── JInsertSubscriberDataAnswer.java
│   │   │                           │       ├── JInsertSubscriberDataRequest.java
│   │   │                           │       ├── JNotifyAnswer.java
│   │   │                           │       ├── JNotifyRequest.java
│   │   │                           │       ├── JPurgeUEAnswer.java
│   │   │                           │       ├── JPurgeUERequest.java
│   │   │                           │       ├── JResetAnswer.java
│   │   │                           │       ├── JResetRequest.java
│   │   │                           │       ├── JUpdateLocationAnswer.java
│   │   │                           │       └── JUpdateLocationRequest.java
│   │   │                           ├── sh/
│   │   │                           │   ├── ClientShSession.java
│   │   │                           │   ├── ClientShSessionListener.java
│   │   │                           │   ├── ServerShSession.java
│   │   │                           │   ├── ServerShSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── ProfileUpdateAnswer.java
│   │   │                           │       ├── ProfileUpdateRequest.java
│   │   │                           │       ├── PushNotificationAnswer.java
│   │   │                           │       ├── PushNotificationRequest.java
│   │   │                           │       ├── SubscribeNotificationsAnswer.java
│   │   │                           │       ├── SubscribeNotificationsRequest.java
│   │   │                           │       ├── UserDataAnswer.java
│   │   │                           │       └── UserDataRequest.java
│   │   │                           ├── slg/
│   │   │                           │   ├── ClientSLgSession.java
│   │   │                           │   ├── ClientSLgSessionListener.java
│   │   │                           │   ├── ServerSLgSession.java
│   │   │                           │   ├── ServerSLgSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── LocationReportAnswer.java
│   │   │                           │       ├── LocationReportRequest.java
│   │   │                           │       ├── ProvideLocationAnswer.java
│   │   │                           │       └── ProvideLocationRequest.java
│   │   │                           ├── slh/
│   │   │                           │   ├── ClientSLhSession.java
│   │   │                           │   ├── ClientSLhSessionListener.java
│   │   │                           │   ├── ServerSLhSession.java
│   │   │                           │   ├── ServerSLhSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── LCSRoutingInfoAnswer.java
│   │   │                           │       └── LCSRoutingInfoRequest.java
│   │   │                           └── validation/
│   │   │                               ├── AvpNotAllowedException.java
│   │   │                               ├── AvpRepresentation.java
│   │   │                               ├── Dictionary.java
│   │   │                               ├── MessageRepresentation.java
│   │   │                               └── ValidatorLevel.java
│   │   ├── impl/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── jdiameter/
│   │   │       │   │           ├── client/
│   │   │       │   │           │   ├── api/
│   │   │       │   │           │   │   ├── IAnswer.java
│   │   │       │   │           │   │   ├── IAssembler.java
│   │   │       │   │           │   │   ├── IContainer.java
│   │   │       │   │           │   │   ├── IEventListener.java
│   │   │       │   │           │   │   ├── IMessage.java
│   │   │       │   │           │   │   ├── IMetaData.java
│   │   │       │   │           │   │   ├── IRequest.java
│   │   │       │   │           │   │   ├── ISession.java
│   │   │       │   │           │   │   ├── ISessionFactory.java
│   │   │       │   │           │   │   ├── StackState.java
│   │   │       │   │           │   │   ├── annotation/
│   │   │       │   │           │   │   │   ├── IRecoder.java
│   │   │       │   │           │   │   │   └── RecoderException.java
│   │   │       │   │           │   │   ├── controller/
│   │   │       │   │           │   │   │   ├── IPeer.java
│   │   │       │   │           │   │   │   ├── IPeerTable.java
│   │   │       │   │           │   │   │   ├── IRealm.java
│   │   │       │   │           │   │   │   └── IRealmTable.java
│   │   │       │   │           │   │   ├── fsm/
│   │   │       │   │           │   │   │   ├── EventTypes.java
│   │   │       │   │           │   │   │   ├── ExecutorFactory.java
│   │   │       │   │           │   │   │   ├── FsmEvent.java
│   │   │       │   │           │   │   │   ├── IContext.java
│   │   │       │   │           │   │   │   ├── IFsmFactory.java
│   │   │       │   │           │   │   │   └── IStateMachine.java
│   │   │       │   │           │   │   ├── io/
│   │   │       │   │           │   │   │   ├── IConnection.java
│   │   │       │   │           │   │   │   ├── IConnectionListener.java
│   │   │       │   │           │   │   │   ├── ITransportLayerFactory.java
│   │   │       │   │           │   │   │   ├── NotInitializedException.java
│   │   │       │   │           │   │   │   ├── TransportError.java
│   │   │       │   │           │   │   │   └── TransportException.java
│   │   │       │   │           │   │   ├── parser/
│   │   │       │   │           │   │   │   ├── IElementParser.java
│   │   │       │   │           │   │   │   ├── IMessageParser.java
│   │   │       │   │           │   │   │   └── ParseException.java
│   │   │       │   │           │   │   └── router/
│   │   │       │   │           │   │       └── IRouter.java
│   │   │       │   │           │   └── impl/
│   │   │       │   │           │       ├── AbstractStateChangeListener.java
│   │   │       │   │           │       ├── BaseSessionImpl.java
│   │   │       │   │           │       ├── DictionarySingleton.java
│   │   │       │   │           │       ├── MessageUtility.java
│   │   │       │   │           │       ├── MetaDataImpl.java
│   │   │       │   │           │       ├── RawSessionImpl.java
│   │   │       │   │           │       ├── SessionFactoryImpl.java
│   │   │       │   │           │       ├── SessionImpl.java
│   │   │       │   │           │       ├── StackImpl.java
│   │   │       │   │           │       ├── StackImplMBean.java
│   │   │       │   │           │       ├── VersionProperties.java
│   │   │       │   │           │       ├── annotation/
│   │   │       │   │           │       │   ├── Recoder.java
│   │   │       │   │           │       │   ├── UnknownAvp.java
│   │   │       │   │           │       │   ├── Value.java
│   │   │       │   │           │       │   └── internal/
│   │   │       │   │           │       │       ├── ClassInfo.java
│   │   │       │   │           │       │       ├── ConstructorInfo.java
│   │   │       │   │           │       │       ├── MethodInfo.java
│   │   │       │   │           │       │       └── Storage.java
│   │   │       │   │           │       ├── app/
│   │   │       │   │           │       │   ├── acc/
│   │   │       │   │           │       │   │   ├── ClientAccSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientAccSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientAccSessionData.java
│   │   │       │   │           │       │   ├── auth/
│   │   │       │   │           │       │   │   ├── ClientAuthSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientAuthSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientAuthSessionData.java
│   │   │       │   │           │       │   ├── cca/
│   │   │       │   │           │       │   │   ├── ClientCCASessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientCCASessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientCCASessionData.java
│   │   │       │   │           │       │   ├── cxdx/
│   │   │       │   │           │       │   │   ├── ClientCxDxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── CxDxClientSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientCxDxSessionData.java
│   │   │       │   │           │       │   ├── gq/
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── GqClientSessionImpl.java
│   │   │       │   │           │       │   ├── gx/
│   │   │       │   │           │       │   │   ├── ClientGxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientGxSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientGxSessionData.java
│   │   │       │   │           │       │   ├── rf/
│   │   │       │   │           │       │   │   ├── ClientRfSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRfSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRfSessionData.java
│   │   │       │   │           │       │   ├── ro/
│   │   │       │   │           │       │   │   ├── ClientRoSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRoSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRoSessionData.java
│   │   │       │   │           │       │   ├── rx/
│   │   │       │   │           │       │   │   ├── ClientRxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRxSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRxSessionData.java
│   │   │       │   │           │       │   ├── s13/
│   │   │       │   │           │       │   │   ├── ClientS13SessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientS13SessionData.java
│   │   │       │   │           │       │   │   └── S13ClientSessionImpl.java
│   │   │       │   │           │       │   ├── s6a/
│   │   │       │   │           │       │   │   ├── ClientS6aSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientS6aSessionData.java
│   │   │       │   │           │       │   │   └── S6aClientSessionImpl.java
│   │   │       │   │           │       │   ├── sh/
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IShClientSessionData.java
│   │   │       │   │           │       │   │   ├── ShClientSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   └── ShClientSessionImpl.java
│   │   │       │   │           │       │   ├── slg/
│   │   │       │   │           │       │   │   ├── ClientSLgSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientSLgSessionData.java
│   │   │       │   │           │       │   │   └── SLgClientSessionImpl.java
│   │   │       │   │           │       │   └── slh/
│   │   │       │   │           │       │       ├── ClientSLhSessionDataLocalImpl.java
│   │   │       │   │           │       │       ├── Event.java
│   │   │       │   │           │       │       ├── IClientSLhSessionData.java
│   │   │       │   │           │       │       └── SLhClientSessionImpl.java
│   │   │       │   │           │       ├── controller/
│   │   │       │   │           │       │   ├── PeerImpl.java
│   │   │       │   │           │       │   ├── PeerTableImpl.java
│   │   │       │   │           │       │   ├── RealmImpl.java
│   │   │       │   │           │       │   └── RealmTableImpl.java
│   │   │       │   │           │       ├── fsm/
│   │   │       │   │           │       │   ├── FsmFactoryImpl.java
│   │   │       │   │           │       │   ├── FsmState.java
│   │   │       │   │           │       │   └── PeerFSMImpl.java
│   │   │       │   │           │       ├── helpers/
│   │   │       │   │           │       │   ├── AppConfiguration.java
│   │   │       │   │           │       │   ├── AssemblerImpl.java
│   │   │       │   │           │       │   ├── EmptyConfiguration.java
│   │   │       │   │           │       │   ├── ExtensionPoint.java
│   │   │       │   │           │       │   ├── IPConverter.java
│   │   │       │   │           │       │   ├── Loggers.java
│   │   │       │   │           │       │   ├── Ordinal.java
│   │   │       │   │           │       │   ├── Parameters.java
│   │   │       │   │           │       │   ├── UIDGenerator.java
│   │   │       │   │           │       │   └── XMLConfiguration.java
│   │   │       │   │           │       ├── parser/
│   │   │       │   │           │       │   ├── AvpImpl.java
│   │   │       │   │           │       │   ├── AvpSetImpl.java
│   │   │       │   │           │       │   ├── ElementParser.java
│   │   │       │   │           │       │   ├── MessageImpl.java
│   │   │       │   │           │       │   └── MessageParser.java
│   │   │       │   │           │       ├── router/
│   │   │       │   │           │       │   ├── RouterImpl.java
│   │   │       │   │           │       │   ├── WeightedLeastConnectionsRouter.java
│   │   │       │   │           │       │   └── WeightedRoundRobinRouter.java
│   │   │       │   │           │       └── transport/
│   │   │       │   │           │           ├── TransportLayerFactory.java
│   │   │       │   │           │           ├── tcp/
│   │   │       │   │           │           │   ├── TCPClientConnection.java
│   │   │       │   │           │           │   ├── TCPTransportClient.java
│   │   │       │   │           │           │   └── netty/
│   │   │       │   │           │           │       ├── DiameterMessageDecoder.java
│   │   │       │   │           │           │       ├── DiameterMessageEncoder.java
│   │   │       │   │           │           │       ├── DiameterMessageHandler.java
│   │   │       │   │           │           │       ├── TCPClientConnection.java
│   │   │       │   │           │           │       └── TCPTransportClient.java
│   │   │       │   │           │           └── tls/
│   │   │       │   │           │               ├── TLSClientConnection.java
│   │   │       │   │           │               ├── TLSTransportClient.java
│   │   │       │   │           │               ├── TLSUtils.java
│   │   │       │   │           │               └── netty/
│   │   │       │   │           │                   ├── DiameterMessageDecoder.java
│   │   │       │   │           │                   ├── DiameterMessageEncoder.java
│   │   │       │   │           │                   ├── DiameterMessageHandler.java
│   │   │       │   │           │                   ├── InbandSecurityHandler.java
│   │   │       │   │           │                   ├── SslContextFactory.java
│   │   │       │   │           │                   ├── StartTlsClientHandler.java
│   │   │       │   │           │                   ├── StartTlsInitiator.java
│   │   │       │   │           │                   ├── StartTlsServerHandler.java
│   │   │       │   │           │                   ├── TLSClientConnection.java
│   │   │       │   │           │                   └── TLSTransportClient.java
│   │   │       │   │           ├── common/
│   │   │       │   │           │   ├── api/
│   │   │       │   │           │   │   ├── app/
│   │   │       │   │           │   │   │   ├── AppSessionDataLocalImpl.java
│   │   │       │   │           │   │   │   ├── IAppSessionData.java
│   │   │       │   │           │   │   │   ├── IAppSessionDataFactory.java
│   │   │       │   │           │   │   │   ├── IAppSessionFactory.java
│   │   │       │   │           │   │   │   ├── IAppSessionState.java
│   │   │       │   │           │   │   │   ├── acc/
│   │   │       │   │           │   │   │   │   ├── ClientAccSessionState.java
│   │   │       │   │           │   │   │   │   ├── IAccMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IAccSessionData.java
│   │   │       │   │           │   │   │   │   ├── IAccSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientAccActionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerAccActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerAccSessionState.java
│   │   │       │   │           │   │   │   ├── auth/
│   │   │       │   │           │   │   │   │   ├── ClientAuthSessionState.java
│   │   │       │   │           │   │   │   │   ├── IAuthMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IAuthSessionData.java
│   │   │       │   │           │   │   │   │   ├── IAuthSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientAuthActionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerAuthActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerAuthSessionState.java
│   │   │       │   │           │   │   │   ├── cca/
│   │   │       │   │           │   │   │   │   ├── ClientCCASessionState.java
│   │   │       │   │           │   │   │   │   ├── ICCAMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ICCASessionData.java
│   │   │       │   │           │   │   │   │   ├── ICCASessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientCCASessionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerCCASessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerCCASessionState.java
│   │   │       │   │           │   │   │   ├── cxdx/
│   │   │       │   │           │   │   │   │   ├── CxDxSessionState.java
│   │   │       │   │           │   │   │   │   ├── ICxDxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ICxDxSessionData.java
│   │   │       │   │           │   │   │   │   └── ICxDxSessionFactory.java
│   │   │       │   │           │   │   │   ├── gx/
│   │   │       │   │           │   │   │   │   ├── ClientGxSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientGxSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IGxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IGxSessionData.java
│   │   │       │   │           │   │   │   │   ├── IGxSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerGxSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerGxSessionState.java
│   │   │       │   │           │   │   │   ├── rf/
│   │   │       │   │           │   │   │   │   ├── ClientRfSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRfActionContext.java
│   │   │       │   │           │   │   │   │   ├── IRfSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRfSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRfActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRfSessionState.java
│   │   │       │   │           │   │   │   ├── ro/
│   │   │       │   │           │   │   │   │   ├── ClientRoSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRoSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IRoMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IRoSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRoSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRoSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRoSessionState.java
│   │   │       │   │           │   │   │   ├── rx/
│   │   │       │   │           │   │   │   │   ├── ClientRxSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRxSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IRxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IRxSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRxSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRxSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRxSessionState.java
│   │   │       │   │           │   │   │   ├── s13/
│   │   │       │   │           │   │   │   │   ├── IS13MessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IS13SessionData.java
│   │   │       │   │           │   │   │   │   ├── IS13SessionFactory.java
│   │   │       │   │           │   │   │   │   └── S13SessionState.java
│   │   │       │   │           │   │   │   ├── s6a/
│   │   │       │   │           │   │   │   │   ├── IS6aMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IS6aSessionData.java
│   │   │       │   │           │   │   │   │   ├── IS6aSessionFactory.java
│   │   │       │   │           │   │   │   │   └── S6aSessionState.java
│   │   │       │   │           │   │   │   ├── sh/
│   │   │       │   │           │   │   │   │   ├── IShMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IShSessionData.java
│   │   │       │   │           │   │   │   │   └── IShSessionFactory.java
│   │   │       │   │           │   │   │   ├── slg/
│   │   │       │   │           │   │   │   │   ├── ISLgMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ISLgSessionData.java
│   │   │       │   │           │   │   │   │   ├── ISLgSessionFactory.java
│   │   │       │   │           │   │   │   │   └── SLgSessionState.java
│   │   │       │   │           │   │   │   └── slh/
│   │   │       │   │           │   │   │       ├── ISLhMessageFactory.java
│   │   │       │   │           │   │   │       ├── ISLhSessionData.java
│   │   │       │   │           │   │   │       ├── ISLhSessionFactory.java
│   │   │       │   │           │   │   │       └── SLhSessionState.java
│   │   │       │   │           │   │   ├── concurrent/
│   │   │       │   │           │   │   │   ├── DummyConcurrentFactory.java
│   │   │       │   │           │   │   │   ├── IConcurrentEntityFactory.java
│   │   │       │   │           │   │   │   └── IConcurrentFactory.java
│   │   │       │   │           │   │   ├── data/
│   │   │       │   │           │   │   │   └── ISessionDatasource.java
│   │   │       │   │           │   │   ├── statistic/
│   │   │       │   │           │   │   │   ├── IStatistic.java
│   │   │       │   │           │   │   │   ├── IStatisticManager.java
│   │   │       │   │           │   │   │   ├── IStatisticProcessor.java
│   │   │       │   │           │   │   │   └── IStatisticRecord.java
│   │   │       │   │           │   │   └── timer/
│   │   │       │   │           │   │       └── ITimerFacility.java
│   │   │       │   │           │   └── impl/
│   │   │       │   │           │       ├── DiameterUtilities.java
│   │   │       │   │           │       ├── app/
│   │   │       │   │           │       │   ├── AppAnswerEventImpl.java
│   │   │       │   │           │       │   ├── AppEventImpl.java
│   │   │       │   │           │       │   ├── AppRequestEventImpl.java
│   │   │       │   │           │       │   ├── AppSessionImpl.java
│   │   │       │   │           │       │   ├── acc/
│   │   │       │   │           │       │   │   ├── AccLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── AccSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── AccountAnswerImpl.java
│   │   │       │   │           │       │   │   ├── AccountRequestImpl.java
│   │   │       │   │           │       │   │   └── AppAccSessionImpl.java
│   │   │       │   │           │       │   ├── auth/
│   │   │       │   │           │       │   │   ├── AbortSessionAnswerImpl.java
│   │   │       │   │           │       │   │   ├── AbortSessionRequestImpl.java
│   │   │       │   │           │       │   │   ├── AppAuthSessionImpl.java
│   │   │       │   │           │       │   │   ├── AuthLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── AuthSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── ReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ReAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── SessionTermAnswerImpl.java
│   │   │       │   │           │       │   │   └── SessionTermRequestImpl.java
│   │   │       │   │           │       │   ├── cca/
│   │   │       │   │           │       │   │   ├── AppCCASessionImpl.java
│   │   │       │   │           │       │   │   ├── CCALocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── CCASessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── JCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   └── JCreditControlRequestImpl.java
│   │   │       │   │           │       │   ├── cxdx/
│   │   │       │   │           │       │   │   ├── CxDxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── CxDxLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── CxDxSession.java
│   │   │       │   │           │       │   │   ├── CxDxSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── JLocationInfoAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JLocationInfoRequestImpl.java
│   │   │       │   │           │       │   │   ├── JMultimediaAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JMultimediaAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── JPushProfileAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JPushProfileRequestImpl.java
│   │   │       │   │           │       │   │   ├── JRegistrationTerminationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JRegistrationTerminationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JServerAssignmentAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JServerAssignmentRequestImpl.java
│   │   │       │   │           │       │   │   ├── JUserAuthorizationAnswerImpl.java
│   │   │       │   │           │       │   │   └── JUserAuthorizationRequestImpl.java
│   │   │       │   │           │       │   ├── gq/
│   │   │       │   │           │       │   │   └── GqSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── gx/
│   │   │       │   │           │       │   │   ├── AppGxSessionImpl.java
│   │   │       │   │           │       │   │   ├── GxCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   ├── GxCreditControlRequestImpl.java
│   │   │       │   │           │       │   │   ├── GxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── GxReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── GxReAuthRequestImpl.java
│   │   │       │   │           │       │   │   └── GxSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── rf/
│   │   │       │   │           │       │   │   ├── AppRfSessionImpl.java
│   │   │       │   │           │       │   │   ├── RfAccountingAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RfAccountingRequestImpl.java
│   │   │       │   │           │       │   │   ├── RfLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   └── RfSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── ro/
│   │   │       │   │           │       │   │   ├── AppRoSessionImpl.java
│   │   │       │   │           │       │   │   ├── RoCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RoCreditControlRequestImpl.java
│   │   │       │   │           │       │   │   ├── RoLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   └── RoSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── rx/
│   │   │       │   │           │       │   │   ├── AppRxSessionImpl.java
│   │   │       │   │           │       │   │   ├── RxAAAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxAARequestImpl.java
│   │   │       │   │           │       │   │   ├── RxAbortSessionAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxAbortSessionRequestImpl.java
│   │   │       │   │           │       │   │   ├── RxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── RxReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxReAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── RxSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── RxSessionTermAnswerImpl.java
│   │   │       │   │           │       │   │   └── RxSessionTermRequestImpl.java
│   │   │       │   │           │       │   ├── s13/
│   │   │       │   │           │       │   │   ├── JMEIdentityCheckAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JMEIdentityCheckRequestImpl.java
│   │   │       │   │           │       │   │   ├── S13LocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── S13LocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── S13Session.java
│   │   │       │   │           │       │   │   └── S13SessionFactoryImpl.java
│   │   │       │   │           │       │   ├── s6a/
│   │   │       │   │           │       │   │   ├── JAuthenticationInformationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JAuthenticationInformationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JCancelLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JCancelLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JDeleteSubscriberDataAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JDeleteSubscriberDataRequestImpl.java
│   │   │       │   │           │       │   │   ├── JInsertSubscriberDataAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JInsertSubscriberDataRequestImpl.java
│   │   │       │   │           │       │   │   ├── JNotifyAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JNotifyRequestImpl.java
│   │   │       │   │           │       │   │   ├── JPurgeUEAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JPurgeUERequestImpl.java
│   │   │       │   │           │       │   │   ├── JResetAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JResetRequestImpl.java
│   │   │       │   │           │       │   │   ├── JUpdateLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JUpdateLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── S6aLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── S6aLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── S6aSession.java
│   │   │       │   │           │       │   │   └── S6aSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── sh/
│   │   │       │   │           │       │   │   ├── ProfileUpdateAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ProfileUpdateRequestImpl.java
│   │   │       │   │           │       │   │   ├── PushNotificationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── PushNotificationRequestImpl.java
│   │   │       │   │           │       │   │   ├── ShLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── ShSession.java
│   │   │       │   │           │       │   │   ├── ShSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── SubscribeNotificationsAnswerImpl.java
│   │   │       │   │           │       │   │   ├── SubscribeNotificationsRequestImpl.java
│   │   │       │   │           │       │   │   ├── UserDataAnswerImpl.java
│   │   │       │   │           │       │   │   └── UserDataRequestImpl.java
│   │   │       │   │           │       │   ├── slg/
│   │   │       │   │           │       │   │   ├── LocationReportAnswerImpl.java
│   │   │       │   │           │       │   │   ├── LocationReportRequestImpl.java
│   │   │       │   │           │       │   │   ├── ProvideLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ProvideLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── SLgLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── SLgLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── SLgSession.java
│   │   │       │   │           │       │   │   └── SLgSessionFactoryImpl.java
│   │   │       │   │           │       │   └── slh/
│   │   │       │   │           │       │       ├── LCSRoutingInfoAnswerImpl.java
│   │   │       │   │           │       │       ├── LCSRoutingInfoRequestImpl.java
│   │   │       │   │           │       │       ├── SLhLocalSessionDataFactory.java
│   │   │       │   │           │       │       ├── SLhLocalSessionDataImpl.java
│   │   │       │   │           │       │       ├── SLhSession.java
│   │   │       │   │           │       │       └── SLhSessionFactoryImpl.java
│   │   │       │   │           │       ├── concurrent/
│   │   │       │   │           │       │   ├── AbstractTask.java
│   │   │       │   │           │       │   ├── BaseThreadFactory.java
│   │   │       │   │           │       │   ├── CommonScheduledExecutorService.java
│   │   │       │   │           │       │   ├── ConcurrentEntityFactory.java
│   │   │       │   │           │       │   ├── ConcurrentFactory.java
│   │   │       │   │           │       │   ├── DefaultCallable.java
│   │   │       │   │           │       │   ├── DefaultRejectedExecutionHandler.java
│   │   │       │   │           │       │   └── DefaultRunnable.java
│   │   │       │   │           │       ├── controller/
│   │   │       │   │           │       │   └── AbstractPeer.java
│   │   │       │   │           │       ├── data/
│   │   │       │   │           │       │   └── LocalDataSource.java
│   │   │       │   │           │       ├── statistic/
│   │   │       │   │           │       │   ├── StatisticImpl.java
│   │   │       │   │           │       │   ├── StatisticManagerImpl.java
│   │   │       │   │           │       │   ├── StatisticProcessorImpl.java
│   │   │       │   │           │       │   └── StatisticRecordImpl.java
│   │   │       │   │           │       ├── timer/
│   │   │       │   │           │       │   └── LocalTimerFacilityImpl.java
│   │   │       │   │           │       └── validation/
│   │   │       │   │           │           ├── AvpRepresentationImpl.java
│   │   │       │   │           │           ├── DictionaryImpl.java
│   │   │       │   │           │           └── MessageRepresentationImpl.java
│   │   │       │   │           └── server/
│   │   │       │   │               ├── api/
│   │   │       │   │               │   ├── IFsmFactory.java
│   │   │       │   │               │   ├── IMetaData.java
│   │   │       │   │               │   ├── IMutablePeerTable.java
│   │   │       │   │               │   ├── INetwork.java
│   │   │       │   │               │   ├── IOverloadManager.java
│   │   │       │   │               │   ├── IPeer.java
│   │   │       │   │               │   ├── IRouter.java
│   │   │       │   │               │   ├── IStateMachine.java
│   │   │       │   │               │   ├── agent/
│   │   │       │   │               │   │   ├── IAgent.java
│   │   │       │   │               │   │   ├── IAgentConfiguration.java
│   │   │       │   │               │   │   ├── IProxy.java
│   │   │       │   │               │   │   └── IRedirect.java
│   │   │       │   │               │   └── io/
│   │   │       │   │               │       ├── INetworkConnectionListener.java
│   │   │       │   │               │       ├── INetworkGuard.java
│   │   │       │   │               │       └── ITransportLayerFactory.java
│   │   │       │   │               └── impl/
│   │   │       │   │                   ├── MessageValidator.java
│   │   │       │   │                   ├── MetaDataImpl.java
│   │   │       │   │                   ├── MutablePeerTableImpl.java
│   │   │       │   │                   ├── NetworkImpl.java
│   │   │       │   │                   ├── OverloadManagerImpl.java
│   │   │       │   │                   ├── PeerImpl.java
│   │   │       │   │                   ├── RouterImpl.java
│   │   │       │   │                   ├── StackImpl.java
│   │   │       │   │                   ├── StackImplMBean.java
│   │   │       │   │                   ├── agent/
│   │   │       │   │                   │   ├── AgentConfigurationImpl.java
│   │   │       │   │                   │   ├── AgentImpl.java
│   │   │       │   │                   │   ├── ProxyAgentImpl.java
│   │   │       │   │                   │   └── RedirectAgentImpl.java
│   │   │       │   │                   ├── app/
│   │   │       │   │                   │   ├── acc/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerAccSessionData.java
│   │   │       │   │                   │   │   ├── ServerAccSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerAccSessionImpl.java
│   │   │       │   │                   │   ├── auth/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerAuthSessionData.java
│   │   │       │   │                   │   │   ├── ServerAuthSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerAuthSessionImpl.java
│   │   │       │   │                   │   ├── cca/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerCCASessionData.java
│   │   │       │   │                   │   │   ├── ServerCCASessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerCCASessionImpl.java
│   │   │       │   │                   │   ├── cxdx/
│   │   │       │   │                   │   │   ├── CxDxServerSessionImpl.java
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerCxDxSessionData.java
│   │   │       │   │                   │   │   └── ServerCxDxSessionDataLocalImpl.java
│   │   │       │   │                   │   ├── gq/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   └── GqServerSessionImpl.java
│   │   │       │   │                   │   ├── gx/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerGxSessionData.java
│   │   │       │   │                   │   │   ├── ServerGxSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerGxSessionImpl.java
│   │   │       │   │                   │   ├── rf/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRfSessionData.java
│   │   │       │   │                   │   │   ├── ServerRfSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRfSessionImpl.java
│   │   │       │   │                   │   ├── ro/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRoSessionData.java
│   │   │       │   │                   │   │   ├── ServerRoSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRoSessionImpl.java
│   │   │       │   │                   │   ├── rx/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRxSessionData.java
│   │   │       │   │                   │   │   ├── ServerRxSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRxSessionImpl.java
│   │   │       │   │                   │   ├── s13/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerS13SessionData.java
│   │   │       │   │                   │   │   ├── S13ServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerS13SessionDataLocalImpl.java
│   │   │       │   │                   │   ├── s6a/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerS6aSessionData.java
│   │   │       │   │                   │   │   ├── S6aServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerS6aSessionDataLocalImpl.java
│   │   │       │   │                   │   ├── sh/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IShServerSessionData.java
│   │   │       │   │                   │   │   ├── ShServerSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ShServerSessionImpl.java
│   │   │       │   │                   │   ├── slg/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerSLgSessionData.java
│   │   │       │   │                   │   │   ├── SLgServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerSLgSessionDataLocalImpl.java
│   │   │       │   │                   │   └── slh/
│   │   │       │   │                   │       ├── Event.java
│   │   │       │   │                   │       ├── IServerSLhSessionData.java
│   │   │       │   │                   │       ├── SLhServerSessionImpl.java
│   │   │       │   │                   │       └── ServerSLhSessionDataLocalImpl.java
│   │   │       │   │                   ├── fsm/
│   │   │       │   │                   │   ├── FsmFactoryImpl.java
│   │   │       │   │                   │   └── PeerFSMImpl.java
│   │   │       │   │                   ├── helpers/
│   │   │       │   │                   │   ├── ApplicationIdSelector.java
│   │   │       │   │                   │   ├── EmptyConfiguration.java
│   │   │       │   │                   │   ├── ExtensionPoint.java
│   │   │       │   │                   │   ├── Loggers.java
│   │   │       │   │                   │   ├── Parameters.java
│   │   │       │   │                   │   └── XMLConfiguration.java
│   │   │       │   │                   └── io/
│   │   │       │   │                       ├── TransportLayerFactory.java
│   │   │       │   │                       ├── tcp/
│   │   │       │   │                       │   ├── NetworkGuard.java
│   │   │       │   │                       │   └── netty/
│   │   │       │   │                       │       └── NetworkGuard.java
│   │   │       │   │                       └── tls/
│   │   │       │   │                           ├── NetworkGuard.java
│   │   │       │   │                           └── netty/
│   │   │       │   │                               └── NetworkGuard.java
│   │   │       │   └── resources/
│   │   │       │       ├── META-INF/
│   │   │       │       │   ├── agpl-3.0.txt
│   │   │       │       │   ├── jdiameter-client.xsd
│   │   │       │       │   ├── jdiameter-server.xsd
│   │   │       │       │   └── version.properties
│   │   │       │       └── dictionary.xml
│   │   │       └── test/
│   │   │           ├── java/
│   │   │           │   └── org/
│   │   │           │       └── jdiameter/
│   │   │           │           └── client/
│   │   │           │               └── impl/
│   │   │           │                   └── router/
│   │   │           │                       └── TestRouter.java
│   │   │           └── resources/
│   │   │               ├── jdiameter-weightedleastconnections-config.xml
│   │   │               └── jdiameter-weightedroundrobin-config.xml
│   │   └── pom.xml
│   ├── jdiameter-ha/
│   │   ├── api/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── api/
│   │   │                           └── ha/
│   │   │                               └── data/
│   │   │                                   └── CachingException.java
│   │   ├── impl/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── impl/
│   │   │                           └── ha/
│   │   │                               ├── client/
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── ClientAccSessionDataReplicatedImpl.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── ClientAuthSessionDataReplicatedImpl.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── ClientCCASessionDataReplicatedImpl.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   └── ClientCxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── ClientGxSessionDataReplicatedImpl.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── ClientRfSessionDataReplicatedImpl.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── ClientRoSessionDataReplicatedImpl.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── ClientRxSessionDataReplicatedImpl.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   └── ClientS13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShClientSessionDataReplicatedImpl.java
│   │   │                               ├── common/
│   │   │                               │   ├── AppSessionDataReplicatedImpl.java
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── AccReplicatedSessionDataFactory.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── AuthReplicatedSessionDataFactory.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── CCAReplicatedSessionDataFactory.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   ├── CxDxReplicatedSessionDataFactory.java
│   │   │                               │   │   └── CxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── GxReplicatedSessionDataFactory.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── RfReplicatedSessionDataFactory.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── RoReplicatedSessionDataFactory.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── RxReplicatedSessionDataFactory.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   ├── S13ReplicatedSessionDataFactory.java
│   │   │                               │   │   └── S13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShReplicatedSessionDataFactory.java
│   │   │                               ├── data/
│   │   │                               │   ├── CachedSessionDatasource.java
│   │   │                               │   └── CachedSessionDatasourceImpl.java
│   │   │                               ├── server/
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── ServerAccSessionDataReplicatedImpl.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── ServerAuthSessionDataReplicatedImpl.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── ServerCCASessionDataReplicatedImpl.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   └── ServerCxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── ServerGxSessionDataReplicatedImpl.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── ServerRfSessionDataReplicatedImpl.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── ServerRoSessionDataReplicatedImpl.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── ServerRxSessionDataReplicatedImpl.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   └── ServerS13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShServerSessionDataReplicatedImpl.java
│   │   │                               └── timer/
│   │   │                                   └── ReplicatedTimerFacilityImpl.java
│   │   └── pom.xml
│   └── pom.xml
├── docs/
│   ├── antora-playbook.yml
│   ├── antora.yml
│   ├── modules/
│   │   └── ROOT/
│   │       ├── assets/
│   │       │   └── images/
│   │       │       └── .keepme
│   │       ├── examples/
│   │       │   └── .keepme
│   │       ├── nav.adoc
│   │       └── pages/
│   │           ├── Author_Group.adoc
│   │           ├── Book_Info.adoc
│   │           ├── Chapter-Introduction.adoc
│   │           ├── Chapter-JDiameter.adoc
│   │           ├── Conventions.adoc
│   │           ├── Diameter_User_Guide.adoc
│   │           ├── Implementing-Diameter-Service.adoc
│   │           ├── Java_Development_Kit-Installing_Configuring_and_Running.adoc
│   │           ├── Preface.adoc
│   │           ├── Revision_History.adoc
│   │           ├── Section-Conventions.adoc
│   │           ├── Section-Feedback.adoc
│   │           ├── Section-Introduction-Message_Format.adoc
│   │           ├── Section-JDiameter-Configuration.adoc
│   │           ├── Section-JDiameter-Design_Overview.adoc
│   │           ├── Section-JDiameter-Setup.adoc
│   │           ├── Section-JDiameter-Source_Overview.adoc
│   │           ├── Section-JDiameter-Validator-Configuration.adoc
│   │           ├── Section-JDiameter-Validator-Source_Overview.adoc
│   │           ├── Section-JDiameter-Validator.adoc
│   │           ├── Setting_the_JBOSS_HOME_Environment_Variable.adoc
│   │           ├── includes/
│   │           │   ├── attributes.adoc
│   │           │   ├── quarkus-jdiameter.adoc
│   │           │   └── quarkus-jdiameter_quarkus.diameter.adoc
│   │           └── index.adoc
│   ├── package.json
│   ├── pom.xml
│   └── templates/
│       └── includes/
│           └── attributes.adoc
├── examples/
│   ├── charging-server-simulator/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── assembly/
│   │           │   └── standalone.xml
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── mobicents/
│   │           │           └── servers/
│   │           │               └── diameter/
│   │           │                   ├── charging/
│   │           │                   │   ├── ChargingServerSimulator.java
│   │           │                   │   └── listeners/
│   │           │                   │       └── RoClientListener.java
│   │           │                   └── utils/
│   │           │                       ├── DiameterUtilities.java
│   │           │                       └── StackCreator.java
│   │           └── resources/
│   │               ├── accounts.properties
│   │               ├── config-server.xml
│   │               ├── dictionary.xml
│   │               └── log4j.properties
│   └── guide1/
│       ├── bin/
│       │   ├── crun.sh
│       │   └── srun.sh
│       ├── pom.xml
│       └── src/
│           └── main/
│               ├── java/
│               │   └── org/
│               │       └── example/
│               │           ├── client/
│               │           │   └── ExampleClient.java
│               │           └── server/
│               │               └── ExampleServer.java
│               └── resources/
│                   ├── log4j.properties
│                   └── org/
│                       └── example/
│                           ├── client/
│                           │   ├── client-jdiameter-config.xml
│                           │   └── dictionary.xml
│                           └── server/
│                               ├── dictionary.xml
│                               └── server-jdiameter-config.xml
├── integration-tests/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── quarkiverse/
│       │   │           └── jdiameter/
│       │   │               └── it/
│       │   │                   └── JdiameterResource.java
│       │   └── resources/
│       │       └── application.properties
│       └── test/
│           └── java/
│               └── io/
│                   └── quarkiverse/
│                       └── jdiameter/
│                           └── it/
│                               ├── JdiameterResourceIT.java
│                               └── JdiameterResourceTest.java
├── lombok.config
├── pom.xml
└── quarkus-diameter/
    ├── deployment/
    │   ├── pom.xml
    │   └── src/
    │       ├── main/
    │       │   └── java/
    │       │       └── io/
    │       │           └── quarkiverse/
    │       │               └── diameter/
    │       │                   └── deployment/
    │       │                       ├── DiameterBuildItem.java
    │       │                       └── DiameterProcessor.java
    │       └── test/
    │           ├── java/
    │           │   └── io/
    │           │       └── quarkiverse/
    │           │           └── diameter/
    │           │               └── deployment/
    │           │                   ├── DiameterConfigTest.java
    │           │                   ├── DiameterInterceptorTest.java
    │           │                   ├── DiameterStackTest.java
    │           │                   └── DiameterValidatorTest.java
    │           └── resources/
    │               └── application.properties
    ├── pom.xml
    └── runtime/
        ├── pom.xml
        └── src/
            └── main/
                ├── java/
                │   └── io/
                │       └── quarkiverse/
                │           └── diameter/
                │               ├── ApplicationMode.java
                │               ├── DiameterApplication.java
                │               ├── DiameterConfig.java
                │               ├── DiameterService.java
                │               ├── DiameterServiceInterceptor.java
                │               ├── DiameterServiceOptions.java
                │               └── runtime/
                │                   ├── DiameterConfiguration.java
                │                   ├── DiameterDetailConfig.java
                │                   ├── DiameterRecorder.java
                │                   ├── DiameterRunTimeConfig.java
                │                   ├── DiameterSetupException.java
                │                   ├── JDiameterVersionRecorder.java
                │                   ├── config/
                │                   │   ├── Agent.java
                │                   │   ├── ApplicationId.java
                │                   │   ├── Concurrent.java
                │                   │   ├── Extension.java
                │                   │   ├── LocalPeer.java
                │                   │   ├── Network.java
                │                   │   ├── OverloadMonitor.java
                │                   │   ├── Parameter.java
                │                   │   ├── Peer.java
                │                   │   └── Realm.java
                │                   └── transport/
                │                       └── TLSClientConnection.java
                └── resources/
                    └── META-INF/
                        └── quarkus-extension.yaml

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/CODEOWNERS
================================================
# Lines starting with '#' are comments.
# Each line is a file pattern followed by one or more owners.

# More details are here: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# The '*' pattern is global owners.

# Order is important. The last matching pattern has the most precedence.
# The folders are ordered as follows:

# In each subsection folders are ordered first by depth, then alphabetically.
# This should make it easy to add new rules without breaking existing ones.

*   @quarkiverse/quarkiverse-jdiameter


================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "maven" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "daily"
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: daily

================================================
FILE: .github/project.yml
================================================
release:
  current-version: "2.5.0"
  next-version: "2.5.1-SNAPSHOT"


================================================
FILE: .github/workflows/build.yml
================================================
name: Build

on:
  push:
    branches:
      - "main"
    paths-ignore:
      - '.gitignore'
      - 'CODEOWNERS'
      - 'LICENSE'
      - '*.md'
      - '*.adoc'
      - '*.txt'
      - '.all-contributorsrc'
  pull_request:
    paths-ignore:
      - '.gitignore'
      - 'CODEOWNERS'
      - 'LICENSE'
      - '*.md'
      - '*.adoc'
      - '*.txt'
      - '.all-contributorsrc'

permissions:
  contents: read
  pull-requests: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

defaults:
  run:
    shell: bash

jobs:
  build:
    name: Build on ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        #        os: [windows-latest, macos-latest, ubuntu-latest]
        os: [ ubuntu-latest ]
    runs-on: ${{ matrix.os }}
    steps:
      - name: Prepare git
        run: git config --global core.autocrlf false
        if: startsWith(matrix.os, 'windows')

      - uses: actions/checkout@v6

      - name: Set up JDK 21
        uses: actions/setup-java@v5
        with:
          distribution: temurin
          java-version: 21
          cache: 'maven'

      - name: Build with Maven
        run: mvn -B clean install -Dno-format


================================================
FILE: .github/workflows/deploy-snapshots.yml.disabled
================================================
# This workflow will build and deploy a snapshot of your artifact to Sonatype Snapshots repository
name: Deploy Snapshots

concurrency:
  group: ${{ github.ref }}-${{ github.workflow }}
  cancel-in-progress: true
on:
  workflow_dispatch:
  push:
    branches: [ main ]

defaults:
  run:
    shell: bash

jobs:
  deploy-snapshot:
    runs-on: ubuntu-latest
    name: Deploy Snapshot artifacts
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: 17
          cache: 'maven'
          server-id: 'ossrh'
          server-username: MAVEN_USERNAME
          server-password: MAVEN_PASSWORD
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg-passphrase: MAVEN_GPG_PASSPHRASE

      - name: Deploy Snapshot
        run: |
          mvn -B clean deploy -DperformRelease=true -Drelease
        env:
            MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
            MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
            MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}


================================================
FILE: .github/workflows/pre-release.yml
================================================
name: Quarkiverse Pre Release

on:
  pull_request:
    paths:
      - '.github/project.yml'

permissions:
  contents: read
  pull-requests: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  pre-release:
    name: Pre-Release
    uses: quarkiverse/.github/.github/workflows/pre-release.yml@main
    secrets: inherit


================================================
FILE: .github/workflows/quarkus-snapshot.yaml
================================================
name: "Quarkus ecosystem CI"
on:
  workflow_dispatch:
  watch:
    types: [started]

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    uses: quarkiverse/.github/.github/workflows/quarkus-ecosystem-ci.yml@main
    secrets: inherit
    with:
      ecosystem_ci_repo_path: quarkiverse-jdiameter
      java_version: 21


================================================
FILE: .github/workflows/release-perform.yml
================================================
name: Quarkiverse Perform Release
run-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release
on:
  push:
    tags:
      - '*'
  workflow_dispatch:
    inputs:
      tag:
        description: 'Tag to release'
        required: true

permissions:
  attestations: write
  id-token: write
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  perform-release:
    name: Perform Release
    uses: quarkiverse/.github/.github/workflows/perform-release.yml@main
    secrets: inherit
    with:
      version: ${{github.event.inputs.tag || github.ref_name}}
      java_version: 21


================================================
FILE: .github/workflows/release-prepare.yml
================================================
name: Quarkiverse Prepare Release

on:
  pull_request:
    types: [ closed ]
    paths:
      - '.github/project.yml'
      - '.github/workflows/release-prepare.yml'

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  prepare-release:
    name: Prepare Release
    if: ${{ github.event.pull_request.merged == true}}
    uses: quarkiverse/.github/.github/workflows/prepare-release.yml@main
    secrets: inherit
    with:
      java_version: 21


================================================
FILE: .github/workflows/release.yml.disabled
================================================
name: Quarkiverse Release

on:
  pull_request:
    types: [ closed ]
    paths:
      - '.github/project.yml'
      - '.github/workflows/release.yml'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

defaults:
  run:
    shell: bash

jobs:
  release:
    runs-on: ubuntu-latest
    name: release
    if: ${{github.event.pull_request.merged == true}}

    steps:
      - uses: radcortez/project-metadata-action@main
        name: Retrieve project metadata
        id: metadata
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}
          metadata-file-path: '.github/project.yml'

      - uses: actions/checkout@v4

      - name: Set up JDK 21
        uses: actions/setup-java@v4.2.2
        with:
          distribution: temurin
          java-version: 21
          cache: 'maven'
          server-id: ossrh
          server-username: MAVEN_USERNAME
          server-password: MAVEN_PASSWORD
          gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg-passphrase: MAVEN_GPG_PASSPHRASE

      - name: Set up Maven 3.9.6
        uses: stCarolas/setup-maven@v5
        with:
          maven-version: 3.9.6

      - name: Configure Git author
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"

      - name: Update latest release version in docs
        run: |
          mvn -B -ntp -pl docs -am package -DskipTests -DskipITs -Denforcer.skip -Dformatter.skip -Dimpsort.skip
          if ! git diff --quiet docs/modules/ROOT/pages/includes; then
            git add docs/modules/ROOT/pages/includes
            git commit -m "Update the latest release version ${{steps.metadata.outputs.current-version}} in documentation"
          fi

      - name: Maven release ${{steps.metadata.outputs.current-version}}
        run: |
          mvn -B release:prepare -Prelease -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
          mvn -B release:perform -Darguments=-DperformRelease -DperformRelease -Prelease
        env:
          MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
          MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
          MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}

      - name: Push changes to ${{github.base_ref}} branch
        run: |
          git push
          git push origin ${{steps.metadata.outputs.current-version}}


================================================
FILE: .gitignore
================================================
# Java compiled #
#################
*.class

# Eclipse #
###########
.classpath
.project
.settings

# IntelliJ IDEA #
#################
.idea/
*.iml
*.iws

# Maven #
#########
target
\$\{env.JBOSS_HOME\}

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db

#ascidoc
**/node_modules/
package-lock.json
**/cache/


================================================
FILE: LICENSE
================================================
                    GNU AFFERO GENERAL PUBLIC LICENSE
                       Version 3, 19 November 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

  A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate.  Many developers of free software are heartened and
encouraged by the resulting cooperation.  However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

  The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community.  It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server.  Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

  An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals.  This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU Affero General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Remote Network Interaction; Use with the GNU General Public License.

  Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software.  This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time.  Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published
    by the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source.  For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code.  There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.


================================================
FILE: README.md
================================================
# Quarkus Diameter Stack

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->
[![Build](https://github.com/quarkiverse/quarkus-jdiameter/actions/workflows/build.yml/badge.svg?style=for-the-badge)](https://github.com/quarkiverse/quarkus-jdiameter/actions/workflows/build.yml)
[![Maven Central](https://img.shields.io/maven-central/v/io.quarkiverse.jdiameter/quarkus-jdiameter.svg?label=Maven%20Central&style=flat-square)](https://search.maven.org/artifact/io.quarkiverse.jdiameter/quarkus-jdiameter)
[![GitHub](https://img.shields.io/github/license/quarkiverse/quarkus-jdiameter?color=blue&style=flat-square)](https://github.com/quarkiverse/quarkus-jdiameter/blob/main/LICENSE)

This is a fork of the RestComm jDiameter Stack with a couple of enhancements done:

- Update the minimum java compatibility to Java 21
- Added support for Virtual Threading
- Removed use of Pico Containers
- Added Quarkus Extension
- Updated all the dependencies to latest versions
- Removed support for SCTP protocol (Not used and deprecated for 5G)
- Reworked the jdiameter-ha component to use Infinispan as the caching provider

**NOTE**: This is a community extension, and it is not related nor supported by RestComm Ltd.

## Virtual Threading

There is now a new parameter called "UseVirtualThreads" that if set to true will use virtual threads for the diameter
stack.

To use virtual threading, the minimum supported Java version had to be changed to Java 21.

## Quarkus Extension

The extension allows for the injection of configurations and stacks.
See the docs folder for the relevant documentation.


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Chapter-Introduction.adoc~
================================================
[[_introduction]]
= Introduction to &THIS.PLATFORM; Diameter

Diameter is a computer networking protocol for Authentication, Authorization and Accounting (), as defined in RFC3588.
It is a successor to RADIUS, and has been designed to overcome certain RADIUS limitations:

* No transport reliability and flexibility (Diameter uses TCP/SCTP instead of UDP).
* No security within protocol (Diameter supports IPSec (mandatory) and TLS (optional)).
* Limited address space for AVPs (Diameter uses 32-bit address space instead of 8-bit). 
* Only stateless mode is possible (Diameter supports both stateful and stateless modes).
* Static peers (Diameter offers dynamic discovery, using DNS, SRV and NAPTR).
* No peer alignment capabilities (Diameter introduces capabilities negotiation).
* No support for transport layer failover.
  Diameter follows http://tools.ietf.org/html/rfc3539[RFC3539], which introduces correct procedures.
* Limited support for roaming (Diameter introduces mechanisms for secure and scalable roaming).
* No extension possible (Diameter allows extension - new commands and AVPs to be defined).

Diameter offers all of the capabilities of the RADIUS protocol, and is compatible with RADIUS.
It can also define extensions, or "Applications".

Each application may introduce new types of messages, AVP codes, and state machines.
The Message and AVP codes are assigned by the .
Each application has its own Application ID and Vendor ID that is used to distinguish between applications.
Application code is used to signal to other peers which operations are supported by the connecting peer (Capabilities Exchange / Negotiation).

:leveloffset: +1

include::Section-Introduction-Message_Format.adoc[]

:leveloffset: -1

[[_introduction_contents]]
== Contents

&THIS.PLATFORM;Diameter core is built on top of three basic components:

Stack::
  Extensible Diameter Stack.
  It provides basic session support along with application specific sessions.

Multiplexer (MUX)::
  Diameter Stack multiplexer.
  Allows different listeners to share the same stack instance.

Dictionary::
  Diameter Message and AVP Dictionary.
  Provides an API to access information about AVPs.
  Dictionary is embeded in the MUX.


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Chapter-JDiameter.adoc~
================================================
[[_jdiameter]]
= {this-platform}  Diameter Stack

The Diameter Stack is the core component of the presented Diameter solution.
It performs all necessary tasks to allow user interaction with the Diameter network.
It manages the state of diameter peers and allows to route messages between them.
For more details, refer to http://tools.ietf.org/html/rfc3588[RFC 3588].

The Diameter Stack currently supports the following application sessions:

* Base
* Credit Control Application (CCA)
* Sh
* Ro
* Rf
* Cx/Dx
* Gx
* Gq'
* Rx

:leveloffset: 1
include::Section-JDiameter-Design_Overview.adoc[]
:leveloffset: 0

:leveloffset: 1
include::Section-JDiameter-Setup.adoc[]
:leveloffset: 0

:leveloffset: 1
include::Section-JDiameter-Configuration.adoc[]
:leveloffset: 0

:leveloffset: 1
include::Section-JDiameter-Source_Overview.adoc[]
:leveloffset: 0

:leveloffset: 1
include::Section-JDiameter-Validator.adoc[]
:leveloffset: 0


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Chapter-MUX.adoc~
================================================
[[_mux]]
= Multiplexer (MUX)

The Multiplexer (MUX) is designed as a stack wrapper.
It serves two purposes:

Expose Stack::
  It exposes the stack and allows it to be shared between multiple listeners.
  The stack follows the life cycle of the MUX.
  It is created and destroyed with MUX.

Expose Management Operations::
  Exposes the management operations for  clients, one of them being the &MANAGEMENT.PLATFORM; Console.
  For specific information please refer to the &THIS.PLATFORM; Diameter Management Console User Guide.

:leveloffset: +1

include::Section-MUX-Design_Overview.adoc[]

:leveloffset: -1

:leveloffset: +1

include::Section-MUX-Setup.adoc[]

:leveloffset: -1

:leveloffset: +1

include::Section-MUX-Configuration.adoc[]

:leveloffset: -1

:leveloffset: +1

include::Section-MUX-Source_Overview.adoc[]

:leveloffset: -1

:leveloffset: +1

include::Section-MUX-Dictionary.adoc[]

:leveloffset: -1


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Diameter_User_Guide.adoc~
================================================
= User Guide to {this-platform} {this-application} {project-version} 
:doctype: book
:sectnums:
:toc: left
:icons: font
:experimental:
:sourcedir: .

:leveloffset: 1

include::Book_Info.adoc[]

:leveloffset: 0

:leveloffset: 1

include::common/Preface.adoc[]

:leveloffset: 0

:leveloffset: 1

include::Chapter-Introduction.adoc[]

:leveloffset: 0

:leveloffset: 1

include::Chapter-JDiameter.adoc[]

:leveloffset: 0

:leveloffset: 1

include::Chapter-MUX.adoc[]

:leveloffset: 0

:leveloffset: 1

include::Revision_History.adoc[]

:leveloffset: 0


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-Introduction-Message_Format.adoc~
================================================

[[_mf_message_format]]
= Message Format

Diameter is a byte based protocol.
Each message has a fixed structure, which consists of two parts: header and payload.

The message header structure is common for every message.
The content is fixed, as is the length.
Message header content includes the code, application and certain bit flags, which helps identify the message in Diameter scope.

The message payload is built up of AVPs.
Its content differs for each command and application, though they all define the Session-ID AVP as mandatory.

.Diameter Message Structure
image::images/dia-Introduction-dia-DiameterPacketFormat.png[]

The header has the following fields:

.Message Headers
Version::
  Indicates the Diameter protocol version.
  This value is always set to `1`.

Message Length::
  Indicates the Diameter message length, including the header fields.

Flags::
  Composed by eight bits, to provide information regarding the message.
  The first four bits in the flags octet have the following meaning:

* R = The message is a request (1) or an answer (0).
* P = The message is proxiable (1) and may be proxied, relayed or redirected, or it must be processed locally (0).
* E = The message is an error message (1) or a regular message (0).
* T = The message is potentially being re-transmitted (1) or being sent for the first time (0).

The last four bits are reserved for future use, and should be set to 0.

Command Code::
  Indicates the command associated with the message.

Application-ID::
  Identifies the application to which the message is applicable for.
  The application is an authentication, accounting, or vendor specific application.
  The `application-id` in the header must be the same as what is contained in any relevant AVPs in the message.

Hop-by-Hop ID::
  A unique ID that is used to match requests and answers.
  The header field of the answer message must contain the same value present in the corresponding request.
  This is how answers are routed back to the peer that sent the message.

End-to-End ID::
  A time-limited unique ID that is used to to detect duplicate messages.
  The ID must be unique for at least four minutes.
  The answer message originator must ensure that this header contains the same value present in the corresponding request.

The message payload is built up from AVPs.
Each AVP has a similar structure: a header, and encoded data.
Data can be simple (eg, integer, long) or complex (another encoded AVP).

.Payload Structure
image::images/dia-Introduction-dia-DiameterAVPLayout.png[]

.Payload AVPs
AVP Code::
  Uniquely identifies the attribute, by combining the specified code with the value contained within the Vendor-ID header field.
  AVP numbers 1 to 255 are reserved for RADIUS backwards compatibility, and do not require the Vendor-ID header field. AVP numbers 256 and above are used exclusively for the Diameter protocol, and are allocated by IANA.

Flags::
  Bit flags that specify how each attribute must be handled.
  Flags octets have the following structure: V M P r r r r r.
  A full description is available in http://tools.ietf.org/html/rfc3588#section-4.1[Section 4.1 of RFC3588].
  The first three bits have the following meaning:

* V If set, indicates that optional octets (Vendor-ID) is present in AVP header.
* M If set, it indicates that receiveing peer must understand this AVP or send error answer.
* P If set, it indicates the need for encryption for end-to-end security.

The last 5 bits are reserved for future use, and should be set to 0.

AVP Length::
  Indicates the number of octets in the AVP, including the following information:

Vendor-ID::
  An optional octet that identifies the AVP in application space.
  AVP code and AVP Vendor-ID create a unique identifier for the AVP.


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Configuration.adoc~
================================================

[[_jdiameter_configuration]]
= Diameter Stack Configuration

The stack is initially configured by parsing an XML file.
The top level structure of the file is described below.
Further explanation of each child element, and the applicable attributes, is provided later in this section.

[source,xml]
----
<Configuration xmlns="http://www.jdiameter.org/jdiameter-server">

	<LocalPeer></LocalPeer>
	<Parameters></Parameters>
	<Network></Network>
	<Extensions></Extensions>

</Configuration>
----

[source,xml]
----
<LocalPeer>
	<URI value="aaa://localhost:3868"/>
	<IPAddresses>
		<IPAddress value="127.0.0.1"/>
	</IPAddresses>

	<Realm value="mobicents.org"/>
	<VendorID value="193"/>
	<ProductName value="jDiameter"/>
	<FirmwareRevision value="1"/>

	<OverloadMonitor>
		<Entry index="1" lowThreshold="0.5" highThreshold="0.6">
			<ApplicationID>
				<VendorId value="193"/>
				<AuthApplId value="0"/>
				<AcctApplId value="19302"/>
			</ApplicationID>
		</Entry>
	</OverloadMonitor>
	<Applications>
		<ApplicationID>
			<VendorId value="193"/>
			<AuthApplId value="0"/>
			<AcctApplId value="19302"/>
		</ApplicationID>
	</Applications>
</LocalPeer>
----

The <LocalPeer> element contains parameters that affect the local Diameter peer.
The available elements and attributes are listed for reference.

.<LocalPeer> Elements and Attributes
<URI>::
  Specifies the URI for the local peer.
  The URI has the following format: "aaa://FQDN:port".

<IPAddresses>::
  Contains one or more child <IPAddress> element, which contain a single, valid IP address for the local peer, stored in the [parameter]`value` attribute of the IPAddress.

<Realm>::
  Specifies the realm of the local peer, using the [parameter]`value` attribute.

<VendorID>::
  Specifies a numeric identifier that corresponds to the vendor ID allocated by IANA. 

<ProductName>::
  Specifies the name of the local peer product.

<FirmwareRevision>::
  Specifies the version of the firmware.

<OverloadMonitor>::
  Optional parent element containing child elements that specify settings relating to the Overload Monitor.

<Entry>::
  Supports <ApplicationID> child elements that specify the ID of the tracked application(s). It also supports the following properties: 

index
  Defines the index of this overload monitor, so priorities/orders can be specified.

lowThreshold
  The low threshold for activation of the overload monitor.

highThreshold
  The high threshold for activation of the overload monitor.

<ApplicationID>::
  Parent element containing child elements that specify information about the application.
  The child elements create a unique application identifier.
  The child elements are:

<VendorId>
Specifies the vendor ID for application definition. It supports a single property: "value".

<AuthAppId>
The Authentication Application ID for application definition. It supports a single property: "value".

<AcctAplId>
The Account Application ID for application definition. It supports a single property: "value".

<Applications>::
  Contains a child element <ApplicationID>, which defines the list of default supported applications.
  It is used for the server side, when the stack is configured to accept incoming calls and there is an empty list of preconfigured peers (server is configured to accept any connection).

[source,xml]
----
<Parameters>

	<AcceptUndefinedPeer value="true"/>
	<DuplicateProtection value="true"/>
  <DuplicateTimer value="240000"/>
  <DuplicateSize value="5000"/>
	<UseUriAsFqdn value="true"/> <!-- Needed for Ericsson SDK Emulator -->
	<QueueSize value="10000"/>
	<MessageTimeOut value="60000"/>
	<StopTimeOut value="10000"/>
	<CeaTimeOut value="10000"/>
	<IacTimeOut value="30000"/>
	<DwaTimeOut value="10000"/>
	<DpaTimeOut value="5000"/>
	<RecTimeOut value="10000"/>

	<!-- Peer FSM Thread Count Configuration -->
	<PeerFSMThreadCount value="3" />

	<Concurrent>
		<Entity name="ThreadGroup" size="64"/>
		<Entity name="ProcessingMessageTimer" size="1"/>
		<Entity name="DuplicationMessageTimer" size="1"/>
		<Entity name="RedirectMessageTimer" size="1"/>
		<Entity name="PeerOverloadTimer" size="1"/>
		<Entity name="ConnectionTimer" size="1"/>
		<Entity name="StatisticTimer" size="1"/>
		<Entity name="ApplicationSession" size="16"/>
	</Concurrent>

</Parameters>
----

The <Parameters> element contains elements that specify parameters for the Diameter stack.
The available elements and attributes are listed for reference.
If not specified otherwise, each tag supports a single property - "value", which indicates the value of the tag.

.<Parameters> Elements and Attributes
<AcceptUndefinedPeer>::
  Specifies whether the stack will accept connections from undefined peers.
  The default value is `false`.

<DuplicateProtection>::
  Specifies whether duplicate message protection is enabled.
  The default value is `false`.

<DuplicateTimer>::
  Specifies the time each duplicate message is valid for (in extreme cases, it can live up to 2 * DuplicateTimer - 1 milliseconds). The default, minimum value is `240000` (4 minutes in milliseconds).

<DuplicateSize>::
  Specifies the number of requests stored for duplicate protection.
  The default value is `5000`.

<UseUriAsFqdn>::
  Determines whether the URI should be used as FQDN.
  If it is set to `true`, the stack expects the destination/origin host to be in the format of "aaa://isdn.domain.com:3868" rather than the normal "isdn.domain.com". The default value is `false`.

<QueueSize>::
  Determines how many tasks the peer state machine can have before rejecting the next task.
  This queue contains FSM events and messaging.

<MessageTimeOut>::
  Determines the timeout for messages other than protocol FSM messages.
  The delay is in milliseconds.

<StopTimeOut>::
  Determines how long the stack waits for all resources to stop.
  The delays are in milliseconds.

<CeaTimeOut>::
  Determines how long it takes for CER/CEA exchanges to timeout if there is no response.
  The delays are in milliseconds.

<IacTimeOut>::
  Determines how long the stack waits to retry the communication with a peer that has stopped answering DWR messages.
  The delay is in milliseconds.

<DwaTimeOut>::
  Determines how long it takes for a DWR/DWA exchange to timeout if there is no response.
  The delay is in milliseconds.

<DpaTimeOut>::
  Determines how long it takes for a DPR/DPA exchange to timeout if there is no response.
  The delay is in milliseconds.

<RecTimeOut>::
  Determines how long it takes for the reconnection procedure to timeout.
  The delay is in milliseconds.

<PeerFSMThreadCount>::
  Determines the number of threads for handling events in the Peer FSM.

<Concurrent />::
  Controls the thread pool sizes for different aspects of the stack.
  It supports multiple [parameter]`Entity` child elements. [parameter]`Entity` elements configure thread groups.
  These elements support the following properties:

name
Specifies the name of the entity.

size
Specifies the thread pool size of the entity.

The default supported entities are:

ThreadGroup
Determines the maximum thread count in other entities.

ProcessingMessageTimer
Determines the thread count for message processing tasks.

DuplicationMessageTimer
Specifies the thread pool for identifying duplicate messages.

RedirectMessageTimer
Specifies the thread pool for redirecting messages that do not need any further processing.

PeerOverloadTimer
Determines the thread pool for managing the overload monitor.

ConnectionTimer
Determines the thread pool for managing tasks regarding peer connection FSM.

StatisticTimer
Determines the thread pool for statistic gathering tasks.

ApplicationSession
Determines the thread pool for managing the invocation of application session FSMs, which will invoke listeners.

[source,xml]
----
<Network>

	<Peers>
		<!-- This peer is a server, if it's a client attempt_connect should be set to false -->
		<Peer name="aaa://127.0.0.1:3868" attempt_connect="true" rating="1"/>
	</Peers>

	<Realms>
		<Realm name="mobicents.org" peers="127.0.0.1" local_action="LOCAL" dynamic="false" exp_time="1">
			<ApplicationID>
				<VendorId value="193"/>
				<AuthApplId value="0"/>
				<AcctApplId value="19302"/>
			</ApplicationID>
		</Realm>
	</Realms>

</Network>
----

The <Network> element contains elements that specify parameters for external peers.
The available elements and attributes are listed for reference.

.<Network> Elements and Attributes
<Peers>::
  Parent element containing the child element <Peer>, which specifies external peers and the way they connect.
  <Peer> specifies the name of external peers, whether they should be treated as a server or client, and what rating the peer has externally.

<Peer> supports the following properties:

name
Specifies the name of the peer in the form of a URI. The structure is "aaa://[fqdn|ip]:port" (for example, "aaa://192.168.1.1:3868").

attempt_connect
Determines if the stack should try to connect to this peer. This property accepts boolean values.

rating
Specifies the rating of this peer in order to achieve peer priorities/sorting.

<Realms>::
  Parent element containing the child element <Realm>, which specifies all realms that connect into the Diameter network.
  <Realm> contains attributes and elements that describe different realms configured for the Core.
  It supports <ApplicationID> child elements, which define the applications supported.

<Realm> supports the following parameters:

peers
Comma separated list of peers. Each peer is represented by an IP Address or FQDN.

local_action
Determines the action the Local Peer will play on the specified realm: Act as a LOCAL peer.

dynamic
Specifies if this realm is dynamic. That is, peers that connect to peers with this realm name will be added to the realm peer list if not present already.

exp_time
The time before a peer belonging to this realm is removed if no connection is available.



Below is an example configuration file for a server supporting the CCA, Sh and Ro Applications:

[source,xml]
----
<?xml version="1.0"?>
<Configuration xmlns="http://www.jdiameter.org/jdiameter-server">

	<LocalPeer>
		<URI value="aaa://127.0.0.1:3868" />
		<Realm value="mobicents.org" />
		<VendorID value="193" />
		<ProductName value="jDiameter" />
		<FirmwareRevision value="1" />
		<OverloadMonitor>
			<Entry index="1" lowThreshold="0.5" highThreshold="0.6">
				<ApplicationID>
					<VendorId value="193" />
					<AuthApplId value="0" />
					<AcctApplId value="19302" />
				</ApplicationID>
			</Entry>
		</OverloadMonitor>
	</LocalPeer>

	<Parameters>
		<AcceptUndefinedPeer value="true" />
		<DuplicateProtection value="true" />
    <DuplicateTimer value="240000" />
    <DuplicateSize value="5000" />
		<UseUriAsFqdn value="false" /> <!-- Needed for Ericsson Emulator (set to true) -->
		<QueueSize value="10000" />
		<MessageTimeOut value="60000" />
		<StopTimeOut value="10000" />
		<CeaTimeOut value="10000" />
		<IacTimeOut value="30000" />
		<DwaTimeOut value="10000" />
		<DpaTimeOut value="5000" />
		<RecTimeOut value="10000" />

		<PeerFSMThreadCount value="3" />

		<Concurrent>
			 <Entity name="ThreadGroup" size="64"/>
			 <Entity name="ProcessingMessageTimer" size="1"/>
			 <Entity name="DuplicationMessageTimer" size="1"/>
			 <Entity name="RedirectMessageTimer" size="1"/>
			 <Entity name="PeerOverloadTimer" size="1"/>
			 <Entity name="ConnectionTimer" size="1"/>
			 <Entity name="StatisticTimer" size="1"/>
			 <Entity name="ApplicationSession" size="16"/>
		</Concurrent>
	</Parameters>

	<Network>
		<Peers>
			<Peer name="aaa://127.0.0.1:1218" attempt_connect="false" rating="1" />
		</Peers>
		<Realms>
			<!-- CCA -->
			<Realm name="mobicents.org" peers="127.0.0.1" local_action="LOCAL" 
				dynamic="false" exp_time="1">
				<ApplicationID>
					<VendorId value="0" />
					<AuthApplId value="4" />
					<AcctApplId value="0" />
				</ApplicationID>
			</Realm>
			
			<!-- Sh -->
			<Realm name="mobicents.org" peers="127.0.0.1" local_action="LOCAL" 
				dynamic="false" exp_time="1">
				<ApplicationID>
					<VendorId value="10415" />
					<AuthApplId value="16777217" />
					<AcctApplId value="0" />
				</ApplicationID>
			</Realm>

			<!-- Ro -->
			<Realm name="mobicents.org" peers="127.0.0.1" local_action="LOCAL" 
				dynamic="false" exp_time="1">
				<ApplicationID>
					<VendorId value="10415" />
					<AuthApplId value="4" />
					<AcctApplId value="0" />
				</ApplicationID>
			</Realm>
		</Realms>
	</Network>

	<Extensions />

</Configuration>
----

[[_jdiameter_cluster_configuration]]
== Cluster configuration

The following list defines the requirements for enabling stack cluster mode

* Add the following entries to the `Parameters` section of [path]_jdiameter-config.xml_: 
+
[source,xml]
----

				
<SessionDatasource>org.mobicents.diameter.impl. ha.data.ReplicatedData</SessionDatasource>
<TimerFacility>org.mobicents.diameter.impl.ha. timer.ReplicatedTimerFacilityImpl</TimerFacility>
----

* A proper `JBoss Cache` configuration file: [path]_jdiameter-jbc.xml_ (located in the [path]_config_ directory).
+
The following content is sufficient for the JBoss Cache configuration file: 
+
[source,xml]
----

				
<?xml version="1.0" encoding="UTF-8"?>

<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="urn:jboss:jbosscache-core:config:3.0">

	<locking isolationLevel="REPEATABLE_READ"
		lockParentForChildInsertRemove="false" lockAcquisitionTimeout="20000"
		nodeLockingScheme="mvcc" writeSkewCheck="false" concurrencyLevel="500" />

	<jmxStatistics enabled="false" />

	<startup regionsInactiveOnStartup="false" />
	<shutdown hookBehavior="DEFAULT" />
	<listeners asyncPoolSize="1" asyncQueueSize="100000" />

	<invocationBatching enabled="false" />

	<serialization objectInputStreamPoolSize="12"
		objectOutputStreamPoolSize="14" version="3.0.0"
		marshallerClass="org.jboss.cache.marshall.CacheMarshaller300"
		useLazyDeserialization="false" useRegionBasedMarshalling="false" />

	<clustering mode="replication" clusterName="DiameterCluster">

		<async useReplQueue="true" replQueueInterval="1000"
			replQueueMaxElements="500" serializationExecutorPoolSize="20"
			serializationExecutorQueueSize="5000000"/>

		<jgroupsConfig>
			<UDP
				mcast_addr="${jgroups.udp.mcast_addr:228.10.10.10}"
				mcast_port="${jgroups.udp.mcast_port:18811}"
				discard_incompatible_packets="true"
				max_bundle_size="60000"
				max_bundle_timeout="30"
				ip_ttl="${jgroups.udp.ip_ttl:2}"
				enable_bundling="true"
				thread_pool.enabled="true"
				thread_pool.min_threads="1"
				thread_pool.max_threads="25"
				thread_pool.keep_alive_time="5000"
				thread_pool.queue_enabled="false"
				thread_pool.queue_max_size="100"
				thread_pool.rejection_policy="Run"
				oob_thread_pool.enabled="true"
				oob_thread_pool.min_threads="1"
				oob_thread_pool.max_threads="8"
				oob_thread_pool.keep_alive_time="5000"
				oob_thread_pool.queue_enabled="false"
				oob_thread_pool.queue_max_size="100"
				oob_thread_pool.rejection_policy="Run"/>

			<PING timeout="2000"
				num_initial_members="3"/>
			<MERGE2 max_interval="30000"
				min_interval="10000"/>
			<FD_SOCK/>
			<FD timeout="10000" max_tries="5" />
			<VERIFY_SUSPECT timeout="1500"  />
			<BARRIER />
			<pbcast.NAKACK
				use_mcast_xmit="false" gc_lag="0"
				retransmit_timeout="300,600,1200,2400,4800"
				discard_delivered_msgs="true"/>
			<UNICAST timeout="300,600,1200,2400,3600"/>
			<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
				max_bytes="400000"/>
			<VIEW_SYNC avg_send_interval="60000"   />
			<pbcast.GMS print_local_addr="true" join_timeout="3000"
				view_bundling="true"/>
			<FC max_credits="20000000"
				min_threshold="0.10"/>
			<FRAG2 frag_size="60000"  />
			<pbcast.STATE_TRANSFER  />
		</jgroupsConfig>
	</clustering>

</jbosscache>
----


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Setup.adoc~
================================================

[[_jdiameter_setup]]
= {this-platform}  Diameter Stack Setup

[[_jdiameter_preinstall_requirements_and_prerequisites]]
== Pre-Install Requirements and Prerequisites

Ensure that the following requirements have been met before continuing with the install.

[[_jdiameter_hardware_requirements]]
=== Hardware Requirements

{this-platform} Diameter Stack does not have any hardware requirements.

[[_jdiameter_software_prerequisites]]
=== Software Prerequisites

{this-platform} Diameter Stack has the following software dependencies:

* Pico Container
* slf4j

Clustered setup also requires following:

* JDiameter HA
* JBoss Cache

[[_jdiameter_source_code]]
== Source Code

This section provides instructions on how to obtain and build the {this-platform} Diameter Stack from source code.

[[_jdiameter_release_source_building]]
=== Release Source Code Building


. Downloading the source code
+
IMPORTANT: Subversion is used to manage its source code.
Instructions for using Subversion, including install, can be found at http://svnbook.red-bean.com
+
Use SVN to checkout a specific release source, the base URL is {this-trunk-source-code-url} , then add the specific release version, lets consider &THIS.VERSION;.
+
[source]
----
[usr]$ git clone git@github.com:RestComm/jss7.git
----

. Building the source code
+
IMPORTANT: Maven 3.2.5 (or higher) is used to build the release.
Instructions for using Maven2, including install, can be found at http://maven.apache.org
+
Use Maven to build the deployable unit binary.
+
[source]
----

						[usr]$ cd -
						[usr]$ mvn install
----
+
Once the process finishes you should have the  files deployed in maven archive.


[[_jdiameter_trunk_source_building]]
=== Development Trunk Source Building

Follow the process in <<_jdiameter_release_source_building>>, replacing the SVN source code URL with &THIS.JDIAMETER_TRUNK_SOURCE_CODE_URL;.


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Source_Overview.adoc~
================================================

[[_jdiameter_source_overview]]
= Diameter Stack Source overview

Diameter stack is built with the following basic components:



Session Factory::
  The Session Factory governs the creation of sessions - raw and specific application sessions.

Raw and Application Sessions::
  Sessions govern stateful message routing between peers.
  Specific application sessions consume different type of messages and act differently based on the data present.

Stack::
  The Stack governs all necessary components, which are used to establish connection and communicate with remote peers.		

NOTE: For more detailed information, please refer to the Javadoc or the simple examples that can be found here: https://github.com/RestComm/jdiameter/tree/master/testsuite/load[Git Testsuite HEAD].	

[[_jdiameter_source_overview_session_factory]]
== Session Factory

[class]`SessionFactory` provides the stack user with access to session objects.
It manages registered application session factories in order to allow for the creation of specific application sessions.
A Session Factory instance can be obtained from the stack using the [method]`getSessionFactory()` method.
The base [class]`SessionFactory` interface is defined below:

[source,java]
----
package org.jdiameter.api;

import org.jdiameter.api.app.AppSession;

public interface SessionFactory {

	RawSession getNewRawSession() throws InternalException;

	Session getNewSession() throws InternalException;

	Session getNewSession(String sessionId) throws InternalException;

	<T extends AppSession> T getNewAppSession(ApplicationId applicationId, 
		Class<? extends AppSession> userSession) throws InternalException;

	<T extends AppSession> T getNewAppSession(String sessionId, ApplicationId
		applicationId, Class<? extends AppSession> userSession) throws InternalException;
}
----

However, since the stack is extensible, it is safe to cast the [class]`SessionFactory` object to this interface:

[source,java]
----
package org.jdiameter.client.api;


public interface ISessionFactory extends SessionFactory {

	<T extends AppSession> T getNewAppSession(String sessionId, 
		ApplicationId applicationId, java.lang.Class<? extends AppSession> 
		aClass, Object... args) throws InternalException;

	void registerAppFacory(Class<? extends AppSession> sessionClass, 
		IAppSessionFactory factory);

	void unRegisterAppFacory(Class<? extends AppSession> sessionClass);

	IConcurrentFactory getConcurrentFactory();

}
----

[method]`RawSession getNewRawSession() throws InternalException;`::
  This method creates a [class]`RawSession`.
  Raw sessions are meant as handles for code performing part of the routing decision on the stack's, such as rely agents for instance.

[method]`Session getNewSession() throws InternalException;`::
  This method creates a session that acts as the endpoint for peer communication (for a given session ID). It declares the method that works with the [class]`Request` and [class]`Answer` objects.
  A session created with this method has an autogenerated ID.
  It should be considered as a client session.

[method]`Session getNewSession(String sessionId) throws InternalException;`::
  As above.
  However, the created session has an ID equal to that passsed as an argument.
  This created session should be considered a server session.

[method]`<T extends AppSession> T getNewAppSession(ApplicationId applicationId, Class<? extends AppSession> userSession) throws InternalException;`::
  This method creates a new specific application session, identified by the application ID and class of the session passed.
  The session ID is generated by implementation.
  New application sessions should be considered as client sessions.
  It is safe to type cast the return value to class passed as an argument.
  This method delegates the call to a specific application session factory. 

[method]`<T extends AppSession> T getNewAppSession(String sessionId, ApplicationId applicationId, Class<? extends AppSession> userSession) throws InternalException;`::
  As above.
  However, the session Id is equal to the argument passed.
  New sessions should be considered server sessions.

[method]`<T extends AppSession> T getNewAppSession(String sessionId, ApplicationId applicationId, java.lang.Class<? extends AppSession> aClass, Object... args) throws InternalException;`::
  As above.
  However, it allows the stack to pass some additional arguments.
  Passed values are implementation specifc.

[method]`void registerAppFacory(Class<? extends AppSession> sessionClass, IAppSessionFactory factory);`::
  Registers the [parameter]`factory` for a certain [parameter]`sessionClass`.
  This factory will receive a delegated call when ever the [method]`getNewAppSession` method is called with an application class matching one from the register method.

[method]`void unRegisterAppFacory(Class<? extends AppSession> sessionClass);`::
  Removes the application session factory registered for the [parameter]`sessionClass`. 

.SessionFactory use example
====
[source,java]
----
class Test implements EventListener<Request, Answer>
{

....
public void test(){
	Stack stack = new StackImpl();
	XMLConfiguration config = new XMLConfiguration(new FileInputStream(new File(configFile));

	SessionFactory sessionFactory = stack.init(config);
	stack.start();
	//perferctly legal, both factories are the same.
	sessionFactor = stack.getSessionFactory(); 
	Session session = sessionFactory.getNewSession();
	session.setRequestListener(this);
	Request r = session.createRequest(308,ApplicationId.createByAuth(100L,10101L),
		"mobicents.org","aaa://uas.fancyapp.mobicents.org");
	
	//add avps specific for app
	session.send(r,this);
	}
}
----
====

.SessionFactory use example
====
[source,java]
----
class Test implements EventListener<Request, Answer>
{
	Stack stack = new StackImpl();
	XMLConfiguration config = new XMLConfiguration(new FileInputStream(new File(configFile));

	ISessionFactory sessionFactory = (ISessionFactory)stack.init(config);
	stack.start();
	//perferctly legal, both factories are the same.
	sessionFactor = (ISessionFactory)stack.getSessionFactory(); 
	sessionFactory.registerAppFacory(ClientShSession.class, new ShClientSessionFactory(this));
	
	//our implementation of factory does not require any parameters
	ClientShSession session = (ClientShSession) sessionFactory.getNewAppSession(null, null
		, ClientShSession.class, null);
	
	...
	session.sendUserDataRequest(udr);
}
----
====

[[_jdiameter_source_overview_session]]
== Sessions

[class]`RawSessions`, [class]`Sessions` and [class]`ApplicationSessions` provide the means for dispatching and receiving messages.
Specific implementation of [class]`ApplicationSession` may provide non standard methods.

The [class]`RawSession` and the [class]`Session` life span is controlled entirely by the application.
However, the [class]`ApplicationSession` life time depends on the implemented state machine.

[class]`RawSession` is defined as follows:

[source,java]
----
public interface BaseSession extends Wrapper, Serializable {
 
	long getCreationTime();

	long getLastAccessedTime();

	boolean isValid();

	Future<Message> send(Message message) throws InternalException, 
		IllegalDiameterStateException, RouteException, OverloadException;

	Future<Message> send(Message message, long timeOut, TimeUnit timeUnit) 
		throws InternalException, IllegalDiameterStateException, RouteException, OverloadException;

	void release();
}

public interface RawSession extends BaseSession {

	Message createMessage(int commandCode, ApplicationId applicationId, Avp... avp);

	Message createMessage(int commandCode, ApplicationId applicationId, 
		long hopByHopIdentifier, long endToEndIdentifier, Avp... avp);

	Message createMessage(Message message, boolean copyAvps);

	void send(Message message, EventListener<Message, Message> listener) 
		throws InternalException, IllegalDiameterStateException, RouteException, OverloadException;

	void send(Message message, EventListener<Message, Message> listener,
		long timeOut, TimeUnit timeUnit) throws InternalException, 
		IllegalDiameterStateException, RouteException, OverloadException;
}
----

[method]`long getCreationTime();`::
  Returns the time stamp of this session creation.

[method]`long getLastAccessedTime();`::
  Returns the time stamp indicating the last sent or received operation.

[method]`boolean isValid();`::
  Returns `true` when this session is still valid (ie, [method]`release()` has not been called).

[method]`void release();`::
  Application calls this method to inform the user that the session should free any associated resource - it shall not be used anymore.

[method]`Future<Message> send(Message message)`::
  Sends a message in async mode.
  The [class]`Future` reference provides the means of accessing the answer once it is received

[method]`void send(Message message, EventListener<Message, Message> listener, long timeOut, TimeUnit timeUnit)`::
  As above.
  Allows to specify the time out value for send operations.

[method]`Message createMessage(int commandCode, ApplicationId applicationId, Avp... avp);`::
  Creates a Diameter message.
  It should be explicitly set either as a request or answer.
  Passed parameters are used to build messages.

[method]`Message createMessage(int commandCode, ApplicationId applicationId, long hopByHopIdentifier, long endToEndIdentifier, Avp... avp);`::
  As above.
  However, it also allows for the Hop-by-Hop and End-to-End Identifiers in the message header to be set.
  This method should be used to create answers.

[method]`Message createMessage(Message message, boolean copyAvps);`::
  Clones a message and returns the created object.
  The copyAvps parameter defines whether basic AVPs (Session, Route and Proxy information) should be copied to the new object.

[method]`void send(Message message, EventListener<Message, Message> listener)`::
  Sends a message.
  The answer will be delivered by the specified listener

[method]`void send(Message message, EventListener<Message, Message> listener, long timeOut, TimeUnit timeUnit)`::
  As above.
  It also allows for the answer to be passed after timeout.

[class]`Session` defines similar methods, with exactly the same purpose:

[source,java]
----
public interface Session extends BaseSession {
	String getSessionId();

	void setRequestListener(NetworkReqListener listener);

	Request createRequest(int commandCode, ApplicationId appId, String destRealm);

	Request createRequest(int commandCode, ApplicationId appId, String destRealm, String destHost);

	Request createRequest(Request prevRequest);

	void send(Message message, EventListener<Request, Answer> listener) 
		throws InternalException, IllegalDiameterStateException, RouteException, OverloadException;

	void send(Message message, EventListener<Request, Answer> listener, long timeOut,
		TimeUnit timeUnit) throws InternalException, IllegalDiameterStateException, 
		RouteException, OverloadException;
}
----

== Application Session Factories

In the table below, you can find session factories provided by current implementation, along with a short description:

.Application Factories
[cols="1,1,1,1", frame="all", options="header"]
|===
| Factory class
| Application type & id
| Application
| Reference
| RFC3588  

| RFC3588

| RFC4006

| TS.29328, TS.29329

| TS.29228, TS.29229

| TS.29228, TS.29229

| TS.32240

| TS.32240
|===

NOTE: There is no specific factory for Ro and Rf.
Those applications reuse the respective session and session factories.

NOTE: Application IDs contain two numbers - [VendorId:ApplicationId].

IMPORTANT: Spaces have been introduced in the `Factory class` column values to correctly render the table.
Please remove them when using copy/paste.


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator-Configuration.adoc~
================================================

[[_jdiameter_validator_configuration]]
= Validator Configuration

The Validator is configured with a single XML file.
This file contains the structure definition for both messages and AVPs.

Upon creation of the Diameter Stack, the validator is initialized.
It performs the initialization by looking up the [path]_dictionary.xml_ file in classpath.

NOTE: The configuration file contains more data that `Validator` uses to build its data base.
This is because the `Dictionary` uses the same file to configure itself.
It reuses the AVP definitions, with some extra information like AVP type and flags. 

The configuration file has the following structure:

[source,xml]
----

<dictonary>
	<validator enabled="true|false" sendLevel="OFF|MESSAGE|ALL" receiveLevel="OFF|MESSAGE|ALL" />
	<vendor name="" vendor-id="" code=""/>
	<typedefn type-name="" type-parent=""/>
	<application id="" name="">
		<avp ...>
			<type type-name=""/>
			<enum name="" code=""/>
			<grouped>
				<gavp name=""/>
			<grouped/>
		<avp/>
		<command name="" code="" request="true|false"/>
		<avp ...>
			<type type-name=""/>
			<enum name="" code=""/>
			<grouped>
				<gavp name=""/>
			<grouped/>
		<avp/>
	<application>
<dictionary/>
----

<dictionary>::
  The root element that contains the child elements comprising the validator and dictionary components.
  This element does not support any attributes. 

<validator>::
  Specifies whether message validation is activated for sent and received stack messages.
  The element supports the following optional attributes: 

enabled
Specifies whether the validator is activated or deactivated. If not specified, the validator is deactivated.

sendLevel
Determines the validation level for messages sent by the stack instance. Values determine if sent messages are not validated at all (OFF), only message level AVPs are checked (MESSAGE) or all AVPs are checked (ALL).

receiveLevel
Determines the validation level for messages received by the stack instance. Values determine if sent messages are not validated at all (OFF), only message level AVPs are checked (MESSAGE) or all AVPs are checked (ALL).

<vendor>::
  Optional element that specifies the mapping between the vendor name, vendor ID, and vendor code.
  The element supports the following required attributes: 

name
Specifies the vendor name. For example, "Hewlett Packard".

vendor-id
Specifies the unique ID associated with the vendor. For example, "HP".

code
Specifies the alpha-numeric code allocated to the vendor by IANA. For example, "11". The value must be unique for each <vendor> declaration.

.<vendor> XML Attributes
====
[source,xml]
----
...
<vendor vendor-id="None" code="0" name="None" />
<vendor vendor-id="HP" code="11" name="Hewlett Packard" />
<vendor vendor-id="Merit" code="61" name="Merit Networks" />
<vendor vendor-id="Sun" code="42" name="Sun Microsystems, Inc." />
<vendor vendor-id="USR" code="429" name="US Robotics Corp." />
<vendor vendor-id="3GPP2" code="5535" name="3GPP2" />
<vendor vendor-id="TGPP" code="10415" name="3GPP" />
<vendor vendor-id="TGPPCX" code="16777216" name="3GPP CX/DX" />
<vendor vendor-id="TGPPSH" code="16777217" name="3GPP SH" />
<vendor vendor-id="Ericsson" code="193" name="Ericsson" />
<vendor vendor-id="ETSI" code="13019" name="ETSI" />
<vendor vendor-id="Vodafone" code="12645" name="Vodafone" />
----
====

<typedefn>::
  Defines the simple Attribute Value Pair (AVP) types.
  The element supports the following required attributes: 

type-name
Specifies a type name in accordance with the acceptable base types defined in RFC 3588. For example; "Enumerated", "OctetString", "Integer32".

type-parent
Specifies the parent type name used to define the base characteristics of the type. The values are restricted to defined <typedefn> elements. For example; "OctetString", "UTF8String", "IPAddress".

.<typedefn> XML Attributes
====
[source,xml]
----
<!-- Primitive types, see http://tools.ietf.org/html/rfc3588#section-4.2 -->
<typedefn type-name="OctetString" />
<typedefn type-name="Float64" />
<typedefn type-name="Float32" />
<typedefn type-name="Integer64" />
<typedefn type-name="Integer32" />
<typedefn type-name="Unsigned64" />
<typedefn type-name="Unsigned32" />

<!-- derived avp types, see http://tools.ietf.org/html/rfc3588#section-4.3 -->
<typedefn type-name="Address" type-parent="OctetString" />
<typedefn type-name="Time" type-parent="OctetString" />
<typedefn type-name="UTF8String" type-parent="OctetString" />
<typedefn type-name="DiameterIdentity" type-parent="OctetString" />
----
====

<application>::
  Defines the specific applications used within the dictionary.
  Two child elements are supported by <application>: <avp> and <command>. 

The <application> element supports the following attributes:

id
Specifies the unique ID allocated to the application. The attribute is used in all messages and forms part of the message header.

name
Optional attribute that specifies the logical name of the application.

uri
Optional attribute that specifies a link to additional application information.


.<application> XML Attributes
====
[source,xml]
----
<application id="16777216" name="3GPP Cx/Dx" uri="http://www.ietf.org/rfc/rfc3588.txt?number=3588">
----
====

<avp>::
  Element containing information necessary to configure the Attribute Value Pairs. <<_table_avp_attributes>> contains the complete list of supported attributes, and their available values (if applicable). 
  The <avp> element supports a number of child elements that are used to set finer parameters for the individual AVP. The supported elements are <type>, <enum>, and <grouped>.

NOTE: Different sets of elements are supported by <avp> depending on its position in the dictionary.xml file.

.<avp> Child Elements and Attributes
====
[source,xml]
----
<avp name="Server-Assignment-Type" code="614" mandatory="must" vendor-bit="must" 
 vendor-id="TGPP" may-encrypt="no">
	 <type type-name="Unsigned32" />
	 <enum name="NO_ASSIGMENT" code="0" />
	 <enum name="REGISTRATION" code="1" />
	 <enum name="RE_REGISTRATION" code="2" />
	 <enum name="UNREGISTERED_USER" code="3" />
	 <grouped>
		 <gavp name="SIP-Item-Number" multiplicity="0-1"/>
		 <gavp name="SIP-Authentication-Scheme" multiplicity="0-1"/>
		 <gavp name="SIP-Authenticate" multiplicity="0-1"/>
		 <gavp name="Line-Identifier" multiplicity="0+"/>
	 </grouped>
</avp>
----
====

<type>::
  Child element of <avp> that is used to match the AVP with the AVP type as defined in the <typedefn> element.
  The element supports the following mandatory attribute: 

type-name
Specifies the type-name of the element. This is used to match the type-name value in the <typedefn> element.

NOTE: <type> is ignored if the <avp> element contains the <grouped> element.

<enum>::
  Child element of <avp> that specifies the enumeration value for the specified AVP.
  <enum> is used only when the type-name attribute of <type> is specified.
  The element supports the following mandatory attributes: 

name
Specifies the name of a constant value that applies to the AVP.

code
Specifies the integer value associated with the name of the constant. The value is passed as a value of the AVP, and maps to the name attribute.

NOTE: <enum> is ignored if the <avp> element contains the <grouped> element.

<grouped>::
  Child element of <avp> that specifies the AVP is a grouped type.
  A grouped AVP is one that has no <typedefn> element present.
  The element does not support any attributes, however the <gavp> element is allowed as a child element. 

The <gavp>, which specifies a reference to a grouped AVP, supports one mandatory attribute:

name
Specifies the name of the grouped AVP member. The value must match the defined AVP name.


.<avp> Attributes
[cols="1,1,1", frame="all", options="header"]
|===
| Attribute Name (optional in brackets) | Explicit Values (default in brackets) | Description
| name |  | Specifies the name of the AVP. This is used to match the AVP definition to any grouped AVP references. For further information about grouped AVPs, refer to the element description in this section.
| code |  | Specifies the integer code of the AVP.
| (vendor-id) | (none) | Used to match the vendor ID reference to the value defined in the <vendor> element.
| (multiplicity) |  | Specifies the number of acceptable AVPs in a message using an explicit value.
|  | 0 | An AVP must not be present in the message.
|  | (0+) | Zero or more instances of the AVP must be present in the message.
|  | 0-1 | Zero, or one instance of the AVP may be present in the message. An error occurs if the message contains more than one instance of the AVP.
|  | 1 | One instance of the AVP must be present in the message.
|  | 1+ | At least one instance of the AVP must be present in the message.
| may-encrypt | Yes \| (No) | Specifies whether the AVP can be encrypted.
| protected | may \| must \| mustnot | Determines actual state of AVP that is expected, if it MUST be encrypted , may or MUST NOT.
| vendor-bit | must \| mustnot | Specifies whether the Vendor ID should be set.
| mandatory | may \| must \| mustnot | Determines if support for this AVP is mandatory in order to consume/process message.
| vendor |  | Specifies the defined vendor code, which is used by the <command> child element
|===

.<avp> XML Attributes
====
[source,xml]
----
<!-- MUST -->
<avp name="Session-Id" code="263" vendor="0" multiplicity="1" index="0" />
<avp name="Auth-Session-State" code="277" vendor="0" multiplicity="1" index="-1" />

<!-- MAY -->
<avp name="Destination-Host" code="293" vendor="0" multiplicity="0-1" index="-1" />
<avp name="Supported-Features" code="628" vendor="10415" multiplicity="0+" index="-1" />

<!-- FORBBIDEN -->
<avp name="Auth-Application-Id" code="258" vendor="0" multiplicity="0" index="-1" />
<avp name="Error-Reporting-Host" code="294" vendor="0" multiplicity="0" index="-1" />
----
====

<command>::
  Specifies the command for the application.
  The element supports the <avp> element, which specifies the structure of the command.
  The element supports the following attributes: 

NOTE: If the <avp> element is specified in <command>, it does not support any child elements.
The <avp> element only refers to defined AVPs when used in this context.

.<command> Elements and Attributes
====
[source,xml]
----
<command name="User-Authorization" code="300" vendor-id="TGPP" request="true">
	<avp name="Server-Assignment-Type" code="614" mandatory="must" vendor-bit="must" vendor-id="TGPP" may-encrypt="no"/>
</command>
----
====


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator-Source_Overview.adoc~
================================================

[[_jdiameter_validator_source_overview]]
= Validator Source Overview

The Validator	API defines methods to access its database of AVPs and check if the AVP and message have the proper structure.

The Validator is currently message oriented.
This means that it declares methods that center on message consistency checks.
The class containing all validation logic is [class]`org.jdiameter.common.impl.validation.DiameterMessageValidator`.
It exposes the following methods:

public boolean isOn();::
  Simple method to determine if the `Validator` is enabled.

public ValidatorLevel getSendLevel();
			::
  Returns the validation level of outgoing messages.
  It can have one of the following values: `OFF`, `MESSAGE`, `ALL`.

public ValidatorLevel getReceiveLevel()::
  Returns the validation level of incoming messages.
  It can have one of the following values: `OFF`, `MESSAGE`, `ALL`.

public void validate(Message msg, boolean incoming) throws JAvpNotAllowedException::
  Performs validation on a message.
  Based on the [parameter]`incoming` flag, the correct validation level is applied.
  If validation fails, an exception with details is thrown.

public void validate(Message msg, ValidatorLevel validatorLevel) throws JAvpNotAllowedException::
  Performs validation on messages with a specified level.
  It is a programatical way to allow different levels of validation from those configured.
  If validation fails, a [class]`JAvpNotAllowedException` with details is thrown.

NOTE: The current implementation provides more methods, however those are out of scope for this documentation.

A simple example of a Validator use case is shown below:

.Validator Message Check Example
====
The example below is pseudo-code.

[source,java]
----

...
boolean isRequest = true;
boolean isIncoming = false;

DiameterMessageValidator messageValidator = DiameterMessageValidator.getInstance();
Message message = createMessage(UserDataRequest.MESSAGE_CODE, isRequest,
	applicationId);

//add AVPs
...
//perform check
try{
	messageValidator.validate(message, isIncoming);
}
catch(JAvpNotAllowedException e) {
	System.err.println("Failed to validate ..., avp code: " + e.getAvpCode() + " avp vendor:" + e.getVendorId() + ", message:" + e.getMessage());
}
----
====

================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator.adoc~
================================================

[[_jdiameter_validator]]
= Diameter Stack Validator

Validator is one of the Stack features.
The primary purpose of the Validator is to detect malformed messages, such as an Answer message containing a Destination-Host Attribute Value Pair (AVP).

The Validator is capable of validating multi-leveled, grouped AVPs, excluding the following content types:

* URI, or Identifier types.
* Enumerated types against defined values.

The Validator is only capable of checking structural integrity, not the content of the message.

The Validator performs the following checks:

Index::
  Checks that the AVPs are in the correct place.
  For example, `Session-Id` must always be encoded before any other AVP.

Multiplicity::
  Checks that the message AVPs occur the proper number of times.
  For example, the Session-ID should only be present once.

The `Validator` is called by the stack implementation.
It is invoked after the message is received, but before it is dispatched to a remote peer.

NOTE: This means that if the peer does not exist in the local peer table, the validator is not called, as the stack fails before calling it. 

:leveloffset: 1
include::Section-JDiameter-Validator-Configuration.adoc[]
:leveloffset: 0

:leveloffset: 1
include::Section-JDiameter-Validator-Source_Overview.adoc[]
:leveloffset: 0

================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-MUX-Setup.adoc~
================================================

[[_mux_setup]]
= Diameter Multiplexer (MUX) Setup

[[_mux_preinstall_requirements_and_prerequisites]]
== Pre-Install Requirements and Prerequisites

Ensure that the following requirements have been met before continuing with the installation process.

[[_mux_hardware_requirements]]
=== Hardware Requirements

MUX does not have any hardware requirements.

[[_mux_software_prerequisites]]
=== Software Prerequisites

MUX must be deployed either in {jee-version} v4.x or v5.x.
However it is possible to adapt configuration files and run in any JMX container.

[[_mux_source_code]]
== Source Code

This section provides instructions on how to obtain and build the {this-platform} Diameter MUX from source code.

[[_mux_release_source_building]]
=== Release Source Code Building


. Downloading the source code
+
IMPORTANT: Subversion is used to manage its source code.
Instructions for using Subversion, including installation, can be found at http://svnbook.red-bean.com.
+
Use SVN to checkout a specific release source.
The base URL is {this-trunk-source-code-url} .
Then add the specific release version, for example {project-version} .
+
[source]
----
[usr]$ git clone git@github.com:RestComm/jdiameter.git
----

. Building the source code
+
IMPORTANT: Maven 3.2.5 (or higher) is used to build the release.
Instructions for using Maven2, including installation, can be found at http://maven.apache.org.
+
Use Maven to build the deployable unit binary.
+
[source]
----

						[usr]$ cd -
						[usr]$ mvn install
----
+
Once the process finishes you should have the SAR built.
If the [var]`JBOSS_HOME` environment variable is set, the  will be deployed in the container after execution.


NOTE: By default {this-platform} Diameter MUX; deploys in the {jee-version} v5.x .
To change it, run [app]`maven` with the profile switch command: [parameter]`-Pjboss4`.

[[_mux_trunk_source_building]]
=== Development Trunk Source Building

Follow the <<_mux_release_source_building>> procedure, replacing the SVN source code URL with {this-trunk-source-code-url} .


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/Section-MUX-Source_Overview.adoc~
================================================

[[_mux_source_overview]]
= Diameter MUX Source Overview

The Diameter MUX capabilities are defined by the `MBean` interface `org.mobicents.diameter.stack.DiameterStackMultiplexerMBean`.
This interface defines two types of methods:

Management::
  Used by &MANAGEMENT.PLATFORM;console.
  These methods are outside the scope of this documentation.

Stack Accessors::
  Methods that allow the user to retrieve and use a wrapped stack.

The methods below are of interest to a Diameter MUX user:

[method]`public Stack getStack();`::
  Returns a stack wrapped by the multiplexer.
  It is present as a convenience method, and the stack should only be changed directly by expert users.

[method]`public void registerListener(DiameterListener listener, ApplicationId[] appIds) throws IllegalStateException;`::
  Registers a listener to be triggered when a message for a certain application ID is received.

[method]`public void unregisterListener(DiameterListener listener);`::
  Removes the message listener.

[method]`public DiameterStackMultiplexerMBean getMultiplexerMBean();`::
  Returns the actual instance of MUX.

The listener interface is defined below:

[source,java]
----

package org.mobicents.diameter.stack;

import java.io.Serializable;

import org.jdiameter.api.Answer;
import org.jdiameter.api.EventListener;
import org.jdiameter.api.NetworkReqListener;
import org.jdiameter.api.Request;

public interface DiameterListener extends NetworkReqListener, Serializable, 
	EventListener<Request, Answer>
{

}
----

MUX can be used as follows:

[source,java]
----
public class DiameterActor implements DiameterListener
{
	private ObjectName diameterMultiplexerObjectName = null;
	private DiameterStackMultiplexerMBean diameterMux = null;

	private synchronized void initStack() throws Exception {
		this.diameterMultiplexerObjectName = 
			new ObjectName("diameter.mobicents:service=DiameterStackMultiplexer");

		Object[] params = new Object[]{};
		String[] signature = new String[]{};

		String operation = "getMultiplexerMBean";
		this.diameterMux=mbeanServer.invoke(this.diameterMultiplexerObjectName, operation,
			params, signature);

		long acctAppIds = new long[]{19312L};
		long acctVendorIds = new long[]{193L};
		long authAppIds = new long[]{4L};
		long authVendorIds = new long[]{0L};
		List<ApplicationId> appIds = new ArrayList<ApplicationId>();
		for(int index = 0;index<acctAppIds.length;index++) {
			appIds.add(ApplicationId.createByAccAppId(acctVendorIds[index], acctAppIds[index]));
		}

		for(int index = 0;index<authAppIds.length;index++) {
			appIds.add(ApplicationId.createByAuthAppId(authVendorIds[index], authAppIds[index]));
		}

		this.diameterMux.registerListener(this, appIds.toArray(new ApplicationId[appIds.size()]));
		this.stack = this.diameterMux.getStack();
		this.messageTimeout = stack.getMetaData().getConfiguration().getLongValue(
			MessageTimeOut.ordinal(), (Long) MessageTimeOut.defValue());
	}
}
----


================================================
FILE: core/docs/sources-asciidoc/src/main/asciidoc/js/default.js~
================================================
var $j = jQuery.noConflict();
var $scroll = 0;
var $window_width = $j(window).width();
var $window_height = $j(window).height();
var logo_height;
var menu_dropdown_height_set = false;
var sticky_amount = 0;
var content_menu_position;
var content_menu_top;
var content_menu_top_add = 0;
var src;
var next_image;
var prev_image;
var $top_header_height;

var min_w = 1500; // minimum video width allowed
var video_width_original = 1280;  // original video dimensions
var video_height_original = 720;
var vid_ratio = 1280/720;
var skrollr_slider;
var paspartu_width;
if(typeof paspartu_width_init == 'undefined'){ //check if variable is defined in default_dynamic.php (deafult_dynamic.js)
    var paspartu_width_init = 0.02;
}

$j(document).ready(function() {
	"use strict";
	
	if($j('header').hasClass('regular')){
		content_menu_top = 0;
	}
	if($j('header').hasClass('fixed_top_header')){
		content_menu_top = header_height;
	}
	if($j('header').hasClass('fixed')){
		content_menu_top = min_header_height_scroll;
	}
	if($j('header').hasClass('fixed_hiding')){
		content_menu_top = min_header_height_fixed_hidden + 40; //40 is top and bottom margin of logo
	}
	if($j('header').hasClass('stick') || $j('header').hasClass('stick_with_left_right_menu')){
		content_menu_top = 0;
	}
	if((!$j('header.page_header').hasClass('scroll_top')) && ($j('header.page_header').hasClass('has_top')) && ($j('header.page_header').hasClass('fixed'))){
		content_menu_top_add = 34;
	}
    if($j('body').hasClass('vertical_menu_enabled')){
        content_menu_top = 0;
        content_menu_top_add = 0;
        var min_header_height_sticky = 0;
    }

    //check paspartu width depending on window size
    paspartu_width = $window_width < 1024 ? 0.02 : paspartu_width_init;

    contentMinHeight();
    contentMinHeightWithPaspartu();
    setDropDownMenuPosition();
    initDropDownMenu();
	initVerticalMenu();
	initVerticalMobileMenu();
	initQodeSlider();
	initSideMenu();
    initPopupMenu();
	initMessageHeight();
	initToCounter();
	initCounter();
	if(!$j('.vertical_split_slider').length){
		initCountdown();
	}
	initProgressBars();
	initListAnimation();
	initPieChart();
	initPieChartWithIcon();
	initServiceAnimation();
	initParallaxTitle();
	initSideAreaScroll();
	initVerticalAreaMenuScroll();
	loadMore();
	prettyPhoto();
	alterWPMLSwitcherHeaderBottom();
	initMobileMenu();
	initFlexSlider();
	fitVideo();
	fitAudio();
	initAccordion();
	initAccordionContentLink();
	initMessages();
	initProgressBarsIcon();
	initMoreFacts();
	placeholderReplace();
	backButtonShowHide();
	backToTop();
	initSteps();
	showGoogleMap();
	initProgressBarsVertical();
	initElementsAnimation();
	updateShoppingCart();
	initHashClick();
	initIconWithTextAnimation();
	initVideoBackground();
	initCheckSafariBrowser();
	initSearchButton();
	initCoverBoxes();
	createContentMenu();
	contentMenuScrollTo();
	createSelectContentMenu();
    initButtonHover();
    initSocialIconHover();
    initPageTitleAnimation();
    initIconShortcodeHover();
    initIconWithTextHover();
    parallaxLayers();

	$j('.widget #searchform').mousedown(function(){$j(this).addClass('form_focus');}).focusout(function(){$j(this).removeClass('form_focus');});
	$scroll = $j(window).scrollTop();
	checkTitleToShowOrHide(); //this has to be after setting $scroll since function uses $scroll variable
    checkVerticalMenuTransparency(); //this has to be after setting $scroll since function uses $scroll variable
	
	/* set header and content menu position and appearance on page load - START */
    if($j(window).width() > 1000){
        headerSize($scroll);
    }else{
        logoSizeOnSmallScreens();
    }

	if($j(window).width() > 768){
		contentMenuPosition();
	}
	contentMenuCheckLastSection();

    $j('header:not(.stick_with_left_right_menu) .q_logo a').css('visibility','visible');
	/* set header and content menu position and appearance on page load - END */
	
	initFullScreenTemplate();
    showHideVerticalMenu();
    initMasonryGallery();
	initLoadNextPostOnBottom();
});

$j(window).load(function(){
	"use strict";
	
	$j('.touch .main_menu li:has(div.second)').doubleTapToGo(); // load script to close menu on touch devices
	initSmallImageBlogHeight();
	setDropDownMenuPosition();
	initDropDownMenu();
	initPortfolio();
	initPortfolioZIndex();
	initPortfolioSingleInfo();
	initTestimonials();
	initVideoBackgroundSize();
	initBlog();
	initBlogMasonryFullWidth();
	initQBlog();
	initPortfolioMasonry();
	initPortfolioMasonryFilter();
	initTabs();
	countClientsPerRow();
	animatedTextIconHeight();
	countAnimatedTextIconPerRow();
	initTitleAreaAnimation();
	setContentBottomMargin();
	footerWidth();
	if($j('nav.content_menu').length > 0){
		content_menu_position = $j('nav.content_menu').offset().top;
		contentMenuPosition();
	}
	contentMenuCheckLastSection();
    initQodeCarousel();
    initPortfolioSlider();
    initBlogSlider();
    initTabsActiveBorder();
    setActiveTabBorder();
	initImageHover();
    $j('header.stick_with_left_right_menu .q_logo a').css('visibility','visible');
    setMargingsForLeftAndRightMenu();
    initImageGallerySliderNoSpace();
    initVerticalSplitSlider();
    initParallax(); //has to be here on last place since some function is interfering with parallax
    initQodeElementAnimationSkrollr();
	setTimeout(function(){
        checkAnchorOnScroll();
        checkAnchorOnLoad(); // it has to be after content top margin initialization to know where to scroll
        checkHeaderStyleOnScroll(); //moved to window load because sections are not fully initialized on dom ready and calculations are wrong
        if($j('.no-touch .carousel').length){skrollr_slider.refresh();} //in order to reload rest of scroll animation on same page after page loads
    },700); //timeout is set because of some function that interferes with calculating
});

$j(window).scroll(function() {
	"use strict";

	$scroll = $j(window).scrollTop();

	if($j(window).width() > 1000){
		headerSize($scroll);
	}
	
	if($j(window).width() > 768){
		contentMenuPosition();
	}
	contentMenuCheckLastSection();
    checkVerticalMenuTransparency();

	$j('.touch .drop_down > ul > li').mouseleave();
	$j('.touch .drop_down > ul > li').blur();
});

$j(window).resize(function() {
	"use strict";

    $window_width = $j(window).width();
    $window_height = $j(window).height();

    //check paspartu width depending on window size
    paspartu_width = $window_width < 1024 ? 0.02 : paspartu_width_init;

	if($j(window).width() > 1000){
		headerSize($scroll);
	}else{
		logoSizeOnSmallScreens();
	}
	initMessageHeight();
	initTestimonials();
	fitAudio();
	initSmallImageBlogHeight();
	initBlog();
	initBlogMasonryFullWidth();
    initQBlog();
	animatedTextIconHeight();
	countAnimatedTextIconPerRow();
	initVideoBackgroundSize();
	countClientsPerRow();
	setContentBottomMargin();
	footerWidth();
    calculateHeights();
    $j('.vertical_split_slider').height($window_height); //used for vertical split slider holder
    initMasonryGallery();
    contentMinHeight();
    contentMinHeightWithPaspartu();
});

/*
**	Calculating header size on page load and page scroll
*/
var sticky_animate;
function headerSize($scroll){
	"use strict";
	
	if(($j('header.page_header').hasClass('scroll_top')) && ($j('header.page_header').hasClass('has_top')) &&
        ($j('header.page_header').hasClass('fixed') || $j('header.page_header').hasClass('fixed_hiding'))){
		if($scroll >= 0 && $scroll <= 34){
			$j('header.page_header').css('top',-$scroll);
			$j('header.page_header').css('margin-top',0);
			$j('.header_top').show();
		}else if($scroll > 34){
			$j('header.page_header').css('top','-34px');
			$j('header.page_header').css('margin-top',34);
			$j('.header_top').hide();
		}
	}

	//is scroll amount for sticky set on page?
	if(typeof page_scroll_amount_for_sticky !== 'undefined') {
		sticky_amount = page_scroll_amount_for_sticky;
	}

	//do we have slider on the page?
	else if($j('.carousel.full_screen').length) {
		sticky_amount = $j('.carousel').height();
	}

	//take value from theme options
	else {
		sticky_amount = scroll_amount_for_sticky;
	}
	
	if($j('header').hasClass('regular')){
//		$j('header .drop_down .second').css('top', header_height + header_bottom_border_weight +'px');
		if(header_height - logo_height >= 10){
			$j('.q_logo a').height(logo_height);
		}else{
			$j('.q_logo a').height(header_height - 10);
		}
        $j('.q_logo a img').css('height','100%');
	}
	
	if($j('header.page_header').hasClass('fixed')){
		if($j('header.page_header').hasClass('scroll_top')){
			$top_header_height = 34;
		}else{
			$top_header_height = 0;
		}
	
		if((header_height - $scroll + $top_header_height >= min_header_height_scroll) && ($scroll >= $top_header_height)){
			$j('header.page_header').removeClass('scrolled');
			$j('header:not(.centered_logo.centered_logo_animate) nav.main_menu > ul > li > a').css('line-height', header_height - $scroll + $top_header_height+'px');
//			$j('header .drop_down .second').css('top', header_height + header_bottom_border_weight - ($scroll + $top_header_height)/8+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .side_menu_button').css('height', header_height - $scroll + $top_header_height+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .shopping_cart_inner').css('height', header_height - $scroll + $top_header_height+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .logo_wrapper').css('height', header_height - $scroll + $top_header_height +'px');
			if(header_height - logo_height > 0){
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', logo_height +'px');
	        }else{
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', (header_height - $scroll + $top_header_height - 10) +'px');
	        }

		}else if($scroll < $top_header_height){	
			$j('header.page_header').removeClass('scrolled');
			$j('header:not(.centered_logo.centered_logo_animate) nav.main_menu > ul > li > a').css('line-height', header_height+'px');
//			$j('header .drop_down .second').css('top', header_height + header_bottom_border_weight +'px');
			$j('header:not(.centered_logo.centered_logo_animate) .side_menu_button').css('height', header_height+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .shopping_cart_inner').css('height', header_height+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .logo_wrapper').css('height', header_height+'px');
            if(header_height - logo_height > 0){
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', logo_height +'px');
	        }else{
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', (header_height-10)+'px');
	        }
			
		}else if((header_height - $scroll + $top_header_height) < min_header_height_scroll){
			$j('header.page_header').addClass('scrolled');
			$j('header:not(.centered_logo.centered_logo_animate) nav.main_menu > ul > li > a').css('line-height', min_header_height_scroll+'px');
//			$j('header .drop_down .second').css('top', min_header_height_scroll + header_bottom_border_weight +'px');
			$j('header:not(.centered_logo.centered_logo_animate) .side_menu_button').css('height', min_header_height_scroll+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .shopping_cart_inner').css('height', min_header_height_scroll+'px');
			$j('header:not(.centered_logo.centered_logo_animate) .logo_wrapper').css('height', min_header_height_scroll+'px');
            if(min_header_height_scroll - logo_height > 0){
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', logo_height +'px');
	        }else{
	            $j('header:not(.centered_logo.centered_logo_animate) .q_logo a').css('height', (min_header_height_scroll-10)+'px');
	        }
		}

        // logo part - start //

        if($j('header.page_header').hasClass('centered_logo') && $j('header.page_header').hasClass('centered_logo_animate')){
            if((header_height - $scroll + $top_header_height < logo_height) && (header_height - $scroll + $top_header_height >= min_header_height_scroll) && (logo_height > min_header_height_scroll - 10) && ($scroll >= $top_header_height)){
                $j('.q_logo a').height(header_height - $scroll + $top_header_height - 10);
            }else if((header_height - $scroll + $top_header_height < logo_height) && (header_height - $scroll + $top_header_height >= min_header_height_scroll) && (logo_height > min_header_height_scroll - 10) && ($scroll < $top_header_height)){
                $j('.q_logo a').height(header_height - 10);
            }else if((header_height - $scroll + $top_header_height < logo_height) && (header_height - $scroll + $top_header_height < min_header_height_scroll) && (logo_height > min_header_height_scroll - 10)){
                $j('.q_logo a').height(min_header_height_scroll - 10);
            }else if((header_height - $scroll + $top_header_height < logo_height) && (header_height - $scroll + $top_header_height < min_header_height_scroll) && (logo_height < min_header_height_scroll - 10)){
                $j('.q_logo a').height(logo_height);
            }else if(($scroll + $top_header_height === 0) && (logo_height > header_height - 10)){
                $j('.q_logo a').height(logo_height);
            }else{
                $j('.q_logo a').height(logo_height);
            }
        }else if($j('header.page_header').hasClass('centered_logo')) {
            $j('.q_logo a').height(logo_height);
            $j('.q_logo img').height('auto');
        }else{
            $j('.q_logo img').height('100%');
        }
        // logo part - end //

	}

    if($j('header.page_header').hasClass('fixed_hiding')){

        if($scroll < scroll_amount_for_fixed_hiding){
            $j('header.page_header').removeClass('scrolled');
        }else{
            $j('header.page_header').addClass('scrolled');
        }

        $j('.q_logo a').height(logo_height/2); //because of retina displays
        $j('.q_logo img').height('100%');
    }
	
	if($j('header.page_header').hasClass('stick') || $j('header.page_header').hasClass('stick_with_left_right_menu')){
		if($scroll > sticky_amount){
			if(!$j('header.page_header').hasClass('sticky')){			
				if($j('header.page_header').hasClass('has_top')){
					$top_header_height = 34;
				}else{
					$top_header_height = 0;
				}
				var padding_top = $j('header.page_header').hasClass('centered_logo') ? $j('header.page_header').height() : header_height + $top_header_height;
				if($j('header.page_header').hasClass('menu_bottom')){
                	padding_top = header_height + 60; //60 is menu height for Sticky Advance header type
                }
				$j('header.page_header').addClass('sticky');
				$j('.content').css('padding-top',padding_top);
				
				window.clearTimeout(sticky_animate);
				sticky_animate = window.setTimeout(function(){$j('header.page_header').addClass('sticky_animate');},100);
				
				
				if(min_header_height_sticky - logo_height >= 10){
					$j('.q_logo a').height(logo_height);
				}else{
					$j('.q_logo a').height(min_header_height_sticky - 10);
				}
				
				if($j('header.page_header').hasClass('menu_bottom')){
					initDropDownMenu(); //recalculate dropdown menu position
				}
			}

            //  logo part - start //
            if(min_header_height_sticky - logo_height >= 10){
                $j('.q_logo a').height(logo_height);
            }else{
                $j('.q_logo a').height(min_header_height_sticky - 10);
            }
            //  logo part - end //
		}else{
			if($j('header.page_header').hasClass('sticky')){
				$j('header').removeClass('sticky_animate');
				$j('header').removeClass('sticky');
				$j('.content').css('padding-top','0px');
				
				if($j('header.page_header').hasClass('menu_bottom')){
					initDropDownMenu(); //recalculate dropdown menu position
				}
			}

            setMargingsForLeftAndRightMenu(); //need to set margins here since on sticky menu, logo is not visible on left/right logo

            // logo part - start //
            if(!$j('header.page_header').hasClass('centered_logo')){
                if(header_height - logo_height >= 10){
                    $j('.q_logo a').height(logo_height);
                }else{
                    $j('.q_logo a').height(header_height - 10);
                }
            }else{
                $j('.q_logo a').height(logo_height);
    			$j('.q_logo img').height('auto');
            }
            $j('.q_logo a img').css('height','100%');
           // logo part - end //
        }
	}
}

function setMargingsForLeftAndRightMenu(){
    "use strict";

    if($j('header.page_header').hasClass('stick_with_left_right_menu') && !$j('header.page_header').hasClass('left_right_margin_set')){
        var logo_width = $j('.q_logo a img').width()/2;
        if($scroll == 0 && logo_width != 0){
            $j('header.page_header').addClass('left_right_margin_set');
        }
        $j('.logo_wrapper').width(logo_width*2);
        $j('nav.main_menu.left_side > ul > li:last-child').css('margin-right',logo_width);
        $j('nav.main_menu.right_side > ul > li:first-child').css('margin-left',logo_width);

        $j('.rtl nav.main_menu.left_side > ul > li:first-child').css('margin-right',logo_width);	// add for rtl
        $j('.rtl nav.main_menu.left_side > ul > li:last-child').css('margin-right',0);				// add for rtl
        $j('.rtl nav.main_menu.right_side > ul > li:last-child').css('margin-left',logo_width);		// add for rtl
        $j('.rtl nav.main_menu.right_side > ul > li:first-child').css('margin-left',0);				// add for rtl 
    }
}

/*
**	Calculating logo size on smaller screens
*/
function logoSizeOnSmallScreens(){
	"use strict";
	// 100 is height of header on small screens
	
	if((100 - 20 < logo_height)){
		$j('.q_logo a').height(100 - 20);
	}else{
		$j('.q_logo a').height(logo_height);
	}
	$j('.q_logo a img').css('height','100%');
	
	$j('header.page_header').removeClass('sticky_animate sticky');
	$j('.content').css('padding-top','0px');
	
}

/*
 ** Calculating minimal height for content
 */
function contentMinHeight(){
    "use strict";

    if($j('header .header_bottom').length || $j('header .bottom_header').length){
        if($j('header .header_bottom').length){ var headerColorString = $j('header .header_bottom').css('background-color'); }
        if($j('header .bottom_header').length){ var headerColorString = $j('header .bottom_header').css('background-color'); }
        var headerTransparency = headerColorString.substring(headerColorString.indexOf('(') + 1, headerColorString.lastIndexOf(')')).split(/,\s*/)[3];
        var haeder_add = headerTransparency == undefined && !$j('header.page_header').hasClass('transparent') ? $j('header.page_header').height() : 0;
        $j('body .content').css('min-height',$window_height - haeder_add - $j('footer:not(.uncover)').height());
    }
}

/*
 ** Calculating minimal height for content when paspartu is enabled
 */

function contentMinHeightWithPaspartu(){
    "use strict";

    if ($j('.paspartu_enabled').length) {
        var content_height;
        var paspartu_final_width_px = 0;
        var paspartu_width_px = $window_width*paspartu_width;
        var footer_height = $j('footer').height();

        if ($j('.disable_footer').length){
            footer_height = 0;
        }

        if ($j('.vertical_menu_enabled').length){
            if ($j('.paspartu_top').length && $j('.paspartu_middle_inner').length){
                paspartu_final_width_px += paspartu_width_px;
            }
        }
        else {
            if ($j('.paspartu_top').length){
                paspartu_final_width_px += paspartu_width_px;
            }
        }
        if ($j('.paspartu_bottom').length || !$j('.disable_bottom_paspartu').length){
            paspartu_final_width_px += paspartu_width_px;
        }

        if ($j('.vertical_menu_enabled').length){
            content_height = $window_height - paspartu_final_width_px - footer_height;
        }
        else {
            if($j('header .header_bottom').length){ var headerColorString = $j('header .header_bottom').css('background-color'); }
            if($j('header .bottom_header').length){ var headerColorString = $j('header .bottom_header').css('background-color'); }
            var headerTransparency = headerColorString.substring(headerColorString.indexOf('(') + 1, headerColorString.lastIndexOf(')')).split(/,\s*/)[3];
            var header_height = headerTransparency == undefined && !$j('header.page_header').hasClass('transparent') ? $j('header.page_header').height() : 0;
            content_height = $window_height - header_height - paspartu_final_width_px - footer_height;
        }

        /*if($j('.content').length){
            $j('.content').css('min-height',content_height);
        }*/
    }
}

/*
**	Initialize Qode Slider
*/
var default_header_style;
function initQodeSlider(){
	"use strict";
	
	var image_regex = /url\(["']?([^'")]+)['"]?\)/;
	default_header_style = "";
	if($j('header.page_header').hasClass('light')){ default_header_style = 'light';}
	if($j('header.page_header').hasClass('dark')){ default_header_style = 'dark';}
	
	if($j('.carousel').length){
		
		var matrixArray = { zoom_center : '1.2, 0, 0, 1.2, 0, 0', zoom_top_left: '1.2, 0, 0, 1.2, -150, -150', zoom_top_right : '1.2, 0, 0, 1.2, 150, -150', zoom_bottom_left: '1.2, 0, 0, 1.2, -150, 150', zoom_bottom_right: '1.2, 0, 0, 1.2, 150, 150'};
		
		// Function for translating image in slide - START //
		(function ($) {
			//
			// regular expression for parsing out the matrix
			// components from the matrix string
			//
			var matrixRE = /\([0-9epx\.\, \t\-]+/gi;

			//
			// parses a matrix string of the form
			// "matrix(n1,n2,n3,n4,n5,n6)" and
			// returns an array with the matrix
			// components
			//
			var parseMatrix = function (val) {
				return val.match(matrixRE)[0].substr(1).
						  split(",").map(function (s) {
					return parseFloat(s);
				});
			};
			
			//
			// transform css property names with vendor prefixes;
			// the plugin will check for values in the order the 
			// names are listed here and return as soon as there
			// is a value; so listing the W3 std name for the
			// transform results in that being used if its available
			//
			var transformPropNames = [
				"transform",
				"-webkit-transform"
			];

			var getTransformMatrix = function (el) {
				//
				// iterate through the css3 identifiers till we
				// hit one that yields a value
				//
				var matrix = null;
				transformPropNames.some(function (prop) {
					matrix = el.css(prop);
					return (matrix !== null && matrix !== "");
				});

				//
				// if "none" then we supplant it with an identity matrix so
				// that our parsing code below doesn't break
				//
				matrix = (!matrix || matrix === "none") ?
							  "matrix(1,0,0,1,0,0)" : matrix;
				return parseMatrix(matrix);
			};

			//
			// set the given matrix transform on the element; note that we
			// apply the css transforms in reverse order of how its given
			// in "transformPropName" to ensure that the std compliant prop
			// name shows up last
			//
			var setTransformMatrix = function (el, matrix) {
				var m = "matrix(" + matrix.join(",") + ")";
				for (var i = transformPropNames.length - 1; i >= 0; --i) {
					el.css(transformPropNames[i], m + ' rotate(0.01deg)');
				}
			};
			
			//
			// interpolates a value between a range given a percent
			//
			var interpolate = function (from, to, percent) {
				return from + ((to - from) * (percent / 100));
			};

			$.fn.transformAnimate = function (opt) {
				//
				// extend the options passed in by caller
				//
				var options = {
					transform: "matrix(1,0,0,1,0,0)"
				};
				$.extend(options, opt);

				//
				// initialize our custom property on the element
				// to track animation progress
				//
				this.css("percentAnim", 0);

				//
				// supplant "options.step" if it exists with our own
				// routine
				//
				var sourceTransform = getTransformMatrix(this);
				var targetTransform = parseMatrix(options.transform);
				options.step = function (percentAnim, fx) {
					//
					// compute the interpolated transform matrix for
					// the current animation progress
					//
					var $this = $(this);
					var matrix = sourceTransform.map(function (c, i) {
						return interpolate(c, targetTransform[i], 
								 percentAnim);
					});

					//
					// apply the new matrix
					//
					setTransformMatrix($this, matrix);

					//
					// invoke caller's version of "step" if one
					// was supplied;
					//
					if (opt.step) {
						opt.step.apply(this, [matrix, fx]);
					}
				};

				//
				// animate!
				//
				return this.stop().animate({ percentAnim: 100 }, options);
			};
		})(jQuery);
		// Function for translating image in slide - END //
		
		$j('.carousel').each(function(){
			var $this = $j(this);
			var mobile_header;

            var mobile_header = $j(window).width() < 1000 ? $j('header.page_header').height() : 0;
            var header_height_add_for_paspartu = $window_width > 1000 && !$j('header.page_header').hasClass('transparent') && $j('body.paspartu_on_top_fixed').length == 0 ? $j('header.page_header').height() : 0;
            var paspartu_amount_with_top = $j('.paspartu_outer:not(.disable_top_paspartu)').length > 0 ? Math.round($window_width*paspartu_width + header_height_add_for_paspartu) : 0;
            var paspartu_amount_with_bottom = $j('.paspartu_outer.paspartu_on_bottom_slider').length > 0 ? Math.round($window_width*paspartu_width) : 0;
			var slider_graphic_coefficient;
            var slider_title_coefficient;
            var slider_subtitle_coefficient;
            var slider_text_coefficient;
            var slider_button_coefficient;
			
			var responsive_breakpoint_set = [1300,1000,768];
			if($this.hasClass('advanced_responsiveness')){
				responsive_breakpoint_set = [1600,1200,900,650,500,320];
				if($this.data('q_responsive_breakpoints')){
					if($this.data('q_responsive_breakpoints') == 'set2'){
						responsive_breakpoint_set = [1600,1300,1000,768,567,320];
					}
				}

                var coefficients_graphic_array = $this.data('q_responsive_graphic_coefficients').split(',');
                var coefficients_title_array = $this.data('q_responsive_title_coefficients').split(',');
                var coefficients_subtitle_array = $this.data('q_responsive_subtitle_coefficients').split(',');
                var coefficients_text_array = $this.data('q_responsive_text_coefficients').split(',');
                var coefficients_button_array = $this.data('q_responsive_button_coefficients').split(',');
			}

            //calculate heights for slider holder and slide item, depending on size, but only if slider is set to be responsive and not full screen
            function setSliderHeight($this, $def_height){
                var slider_height = $def_height;
                
				if($this.hasClass('advanced_responsiveness')){
					//advanced responsiveness
					if($window_width > responsive_breakpoint_set[0]){
						slider_height = $def_height;
					}else if($window_width > responsive_breakpoint_set[1]){
						slider_height = $def_height * 0.75;
					}else if($window_width > responsive_breakpoint_set[2]){
						slider_height = $def_height * 0.6;
					}else if($window_width > responsive_breakpoint_set[3]){
						slider_height = $def_height * 0.55;
					}else if($window_width <= responsive_breakpoint_set[3]){
						slider_height = $def_height * 0.45;
					}
				}else{
					//old way responsiveness
					if($window_width > responsive_breakpoint_set[0]){
						slider_height = $def_height;
					}else if($window_width > responsive_breakpoint_set[1]){
						slider_height = $def_height * 0.8;
					}else if($window_width > responsive_breakpoint_set[2]){
						slider_height = $def_height * 0.7;
					}else if($window_width <= responsive_breakpoint_set[2]){
						slider_height = $def_height * 1;
					}
				}

                $this.css({'height': (slider_height) + 'px'});
                $this.find('.qode_slider_preloader').css({'height': (slider_height) + 'px'});
                $this.find('.qode_slider_preloader .ajax_loader').css({'display': 'block'});
                $this.find('.item').css({'height': (slider_height) + 'px'});
            }

            function resetSliderHeight($def_height){
                $this.css({'height': ($def_height) + 'px'});
                $this.find('.qode_slider_preloader').css({'height': ($def_height) + 'px'});
                $this.find('.qode_slider_preloader .ajax_loader').css({'display': 'block'});
                $this.find('.item').css({'height': ($def_height) + 'px'});
            }

            function setSliderInitialElementsSize($item,i){
				
				window["slider_graphic_width_" + i] = [];
                window["slider_graphic_height_" + i] = [];
                window["slider_svg_width_" + i] = [];
                window["slider_svg_height_" + i] = [];
                window["slider_title_" + i] = [];
                window["slider_subtitle_" + i] = [];
                window["slider_text_" + i] = [];
                window["slider_button1_" + i] = [];
                window["slider_button2_" + i] = [];
                window["slider_separator_" + i] = [];

                //graphic size
                window["slider_graphic_width_" + i].push(parseFloat($item.find('.thumb img').data("width")));
                window["slider_graphic_height_" + i].push(parseFloat($item.find('.thumb img').data("height")));
                window["slider_svg_width_" + i].push(parseFloat($item.find('.qode_slide-svg-holder svg').attr("width")));
                window["slider_svg_height_" + i].push(parseFloat($item.find('.qode_slide-svg-holder svg').attr("height")));

                // font-size (0)
                window["slider_title_" + i].push(parseFloat($item.find('.q_slide_title').css("font-size")));
                window["slider_subtitle_" + i].push(parseFloat($item.find('.q_slide_subtitle').css("font-size")));
                window["slider_text_" + i].push(parseFloat($item.find('.q_slide_text').css("font-size")));
                window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("font-size")));
                window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("font-size")));

                // line-height (1)
                window["slider_title_" + i].push(parseFloat($item.find('.q_slide_title').css("line-height")));
                window["slider_subtitle_" + i].push(parseFloat($item.find('.q_slide_subtitle').css("line-height")));
                window["slider_text_" + i].push(parseFloat($item.find('.q_slide_text').css("line-height")));
                window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("line-height")));
                window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("line-height")));

                // letter-spacing (2)
                window["slider_title_" + i].push(parseFloat($item.find('.q_slide_title').css("letter-spacing")));
                window["slider_subtitle_" + i].push(parseFloat($item.find('.q_slide_subtitle').css("letter-spacing")));
                window["slider_text_" + i].push(parseFloat($item.find('.q_slide_text').css("letter-spacing")));
                window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("letter-spacing")));
                window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("letter-spacing")));

                // margin-bottom (3)
                window["slider_title_" + i].push(parseFloat($item.find('.q_slide_title').css("margin-bottom")));
                window["slider_subtitle_" + i].push(parseFloat($item.find('.q_slide_subtitle').css("margin-bottom")));

                // slider_button height(3), width(4), padding(5)
                window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("height")));
                window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("height")));
                if(parseFloat($item.find('.qbutton:eq(0)').css("width")) != 0){
                    window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("width")));
                }else{
                    window["slider_button1_" + i].push(0);
                }
                if(parseFloat($item.find('.qbutton:eq(1)').css("width")) != 0){
                    window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("width")));
                }else{
                    window["slider_button2_" + i].push(0);
                }
                window["slider_button1_" + i].push(parseFloat($item.find('.qbutton:eq(0)').css("padding-left")));
                window["slider_button2_" + i].push(parseFloat($item.find('.qbutton:eq(1)').css("padding-left")));

                // margin separator, margin top(0), margin bottom(1)
                window["slider_separator_" + i].push(parseFloat($item.find('.separator').css("margin-top")));
                window["slider_separator_" + i].push(parseFloat($item.find('.separator').css("margin-bottom")));

            }

            //calculate size for slider title, subtitle and text, depending on window size
            function setSliderElementsSize($item,i){
                if($window_width > responsive_breakpoint_set[0]) {
                    slider_graphic_coefficient = coefficients_graphic_array[0];
                    slider_title_coefficient = coefficients_title_array[0];
                    slider_subtitle_coefficient = coefficients_subtitle_array[0];
                    slider_text_coefficient = coefficients_text_array[0];
                    slider_button_coefficient = coefficients_button_array[0];
                }else if($window_width > responsive_breakpoint_set[1]){
                    slider_graphic_coefficient = coefficients_graphic_array[1];
                    slider_title_coefficient = coefficients_title_array[1];
                    slider_subtitle_coefficient = coefficients_subtitle_array[1];
                    slider_text_coefficient = coefficients_text_array[1];
                    slider_button_coefficient = coefficients_button_array[1];
                }else if($window_width > responsive_breakpoint_set[2]){
                    slider_graphic_coefficient = coefficients_graphic_array[2];
                    slider_title_coefficient = coefficients_title_array[2];
                    slider_subtitle_coefficient = coefficients_subtitle_array[2];
                    slider_text_coefficient = coefficients_text_array[2];
                    slider_button_coefficient = coefficients_button_array[2];
                }else if($window_width > responsive_breakpoint_set[3]){
                    slider_graphic_coefficient = coefficients_graphic_array[3];
                    slider_title_coefficient = coefficients_title_array[3];
                    slider_subtitle_coefficient = coefficients_subtitle_array[3];
                    slider_text_coefficient = coefficients_text_array[3];
                    slider_button_coefficient = coefficients_button_array[3];
                }else if ($window_width > responsive_breakpoint_set[4]) {
                    slider_graphic_coefficient = coefficients_graphic_array[4];
                    slider_title_coefficient = coefficients_title_array[4];
                    slider_subtitle_coefficient = coefficients_subtitle_array[4];
                    slider_text_coefficient = coefficients_text_array[4];
                    slider_button_coefficient = coefficients_button_array[4];
                }else if ($window_width > responsive_breakpoint_set[5]){
                    slider_graphic_coefficient = coefficients_graphic_array[5];
                    slider_title_coefficient = coefficients_title_array[5];
                    slider_subtitle_coefficient = coefficients_subtitle_array[5];
                    slider_text_coefficient = coefficients_text_array[5];
                    slider_button_coefficient = coefficients_button_array[5];
                }
                else{
                    slider_graphic_coefficient = coefficients_graphic_array[6];
                    slider_title_coefficient = coefficients_title_array[6];
                    slider_subtitle_coefficient = coefficients_subtitle_array[6];
                    slider_text_coefficient = coefficients_text_array[6];
                    slider_button_coefficient = coefficients_button_array[6];
                }

                // letter-spacing decrease quicker
                var slider_title_coefficient_letter_spacing = slider_title_coefficient;
                var slider_subtitle_coefficient_letter_spacing = slider_subtitle_coefficient;
                var slider_text_coefficient_letter_spacing = slider_text_coefficient;
                if($window_width <= responsive_breakpoint_set[0]) {
                    slider_title_coefficient_letter_spacing = slider_title_coefficient/2;
                    slider_subtitle_coefficient_letter_spacing = slider_subtitle_coefficient/2;
                    slider_text_coefficient_letter_spacing = slider_text_coefficient/2;
                }

                $item.find('.thumb').css({"width": Math.round(window["slider_graphic_width_" + i][0]*slider_graphic_coefficient) + 'px'}).css({"height": Math.round(window["slider_graphic_height_" + i][0]*slider_graphic_coefficient) + 'px'});
                $item.find('.qode_slide-svg-holder svg').css({"width": Math.round(window["slider_svg_width_" + i][0]*slider_graphic_coefficient) + 'px'}).css({"height": Math.round(window["slider_svg_height_" + i][0]*slider_graphic_coefficient) + 'px'});

                $item.find('.q_slide_title').css({"font-size": Math.round(window["slider_title_" + i][0]*slider_title_coefficient) + 'px'});
                $item.find('.q_slide_title').css({"line-height": Math.round(window["slider_title_" + i][1]*slider_title_coefficient) + 'px'});
                $item.find('.q_slide_title').css({"letter-spacing": Math.round(window["slider_title_" + i][2]*slider_title_coefficient_letter_spacing) + 'px'});
                $item.find('.q_slide_title').css({"margin-bottom": Math.round(window["slider_title_" + i][3]*slider_title_coefficient) + 'px'});

                $item.find('.q_slide_subtitle').css({"font-size": Math.round(window["slider_subtitle_" + i][0]*slider_subtitle_coefficient) + 'px'});
                $item.find('.q_slide_subtitle').css({"line-height": Math.round(window["slider_subtitle_" + i][1]*slider_subtitle_coefficient) + 'px'});
                $item.find('.q_slide_subtitle').css({"letter-spacing": Math.round(window["slider_subtitle_" + i][2]*slider_subtitle_coefficient_letter_spacing) + 'px'});
                $item.find('.q_slide_subtitle').css({"margin-bottom": Math.round(window["slider_subtitle_" + i][3]*slider_subtitle_coefficient) + 'px'});

                $item.find('.q_slide_text').css({"font-size": Math.round(window["slider_text_" + i][0]*slider_text_coefficient) + 'px'});
                $item.find('.q_slide_text').css({"line-height": Math.round(window["slider_text_" + i][1]*slider_text_coefficient) + 'px'});
                $item.find('.q_slide_text').css({"letter-spacing": Math.round(window["slider_text_" + i][2]*slider_text_coefficient_letter_spacing) + 'px'});

                $item.find('.qbutton:eq(0)').css({"font-size": Math.round(window["slider_button1_" + i][0]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"font-size": Math.round(window["slider_button2_" + i][0]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(0)').css({"line-height": Math.round(window["slider_button1_" + i][1]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"line-height": Math.round(window["slider_button2_" + i][1]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(0)').css({"letter-spacing": Math.round(window["slider_button1_" + i][2]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"letter-spacing": Math.round(window["slider_button2_" + i][2]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(0)').css({"height": Math.round(window["slider_button1_" + i][3]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"height": Math.round(window["slider_button2_" + i][3]*slider_button_coefficient) + 'px'});
                if(window["slider_button1_" + i][4] != 0) {
                    $item.find('.qbutton:eq(0)').css({"width": Math.round(window["slider_button1_" + i][4]*slider_button_coefficient) + 'px'});
                }else{
                    $item.find('.qbutton:eq(0)').css({"width": 'auto'});
                }
                if(window["slider_button2_" + i][4] != 0) {
                    $item.find('.qbutton:eq(1)').css({"width": Math.round(window["slider_button2_" + i][4]*slider_button_coefficient) + 'px'});
                }else{
                    $item.find('.qbutton:eq(1)').css({"width": 'auto'});
                }
                $item.find('.qbutton:eq(0)').css({"padding-left": Math.round(window["slider_button1_" + i][5]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"padding-left": Math.round(window["slider_button2_" + i][5]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(0)').css({"padding-right": Math.round(window["slider_button1_" + i][5]*slider_button_coefficient) + 'px'});
                $item.find('.qbutton:eq(1)').css({"padding-right": Math.round(window["slider_button2_" + i][5]*slider_button_coefficient) + 'px'});

                $item.find('.separator').css({"margin-top": Math.round(window["slider_separator_" + i][0]*slider_title_coefficient) + 'px'});
                $item.find('.separator').css({"margin-bottom": Math.round(window["slider_separator_" + i][1]*slider_title_coefficient) + 'px'});

            }

            function resetSliderElementsSize($item,i){
                $item.find('.thumb').css({"width": Math.round(window["slider_graphic_width_" + i][0]) + 'px'}).css({"height": Math.round(window["slider_graphic_height_" + i][0]) + 'px'});
                $item.find('.qode_slide-svg-holder svg').css({"width": Math.round(window["slider_svg_width_" + i][0]) + 'px'}).css({"height": Math.round(window["slider_svg_height_" + i][0]) + 'px'});

                $item.find('.q_slide_title').css({"font-size": Math.round(window["slider_title_" + i][0]) + 'px'});
                $item.find('.q_slide_title').css({"line-height": Math.round(window["slider_title_" + i][1]) + 'px'});
                $item.find('.q_slide_title').css({"letter-spacing": Math.round(window["slider_title_" + i][2]) + 'px'});
                $item.find('.q_slide_title').css({"margin-bottom": Math.round(window["slider_title_" + i][3]) + 'px'});

                $item.find('.q_slide_subtitle').css({"font-size": Math.round(window["slider_subtitle_" + i][0]) + 'px'});
                $item.find('.q_slide_subtitle').css({"line-height": Math.round(window["slider_subtitle_" + i][1]) + 'px'});
                $item.find('.q_slide_subtitle').css({"letter-spacing": Math.round(window["slider_subtitle_" + i][2]) + 'px'});
                $item.find('.q_slide_subtitle').css({"margin-bottom": Math.round(window["slider_subtitle_" + i][3]) + 'px'});

                $item.find('.q_slide_text').css({"font-size": Math.round(window["slider_text_" + i][0]) + 'px'});
                $item.find('.q_slide_text').css({"line-height": Math.round(window["slider_text_" + i][1]) + 'px'});
                $item.find('.q_slide_text').css({"letter-spacing": Math.round(window["slider_text_" + i][2]) + 'px'});

                $item.find('.qbutton:eq(0)').css({"font-size": Math.round(window["slider_button1_" + i][0]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"font-size": Math.round(window["slider_button2_" + i][0]) + 'px'});
                $item.find('.qbutton:eq(0)').css({"line-height": Math.round(window["slider_button1_" + i][1]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"line-height": Math.round(window["slider_button2_" + i][1]) + 'px'});
                $item.find('.qbutton:eq(0)').css({"letter-spacing": Math.round(window["slider_button1_" + i][2]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"letter-spacing": Math.round(window["slider_button2_" + i][2]) + 'px'});
                $item.find('.qbutton:eq(0)').css({"height": Math.round(window["slider_button1_" + i][3]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"height": Math.round(window["slider_button2_" + i][3]) + 'px'});
                if(window["slider_button1_" + i][4] != 0) {
                    $item.find('.qbutton:eq(0)').css({"width": Math.round(window["slider_button1_" + i][4]) + 'px'});
                }else{
                    $item.find('.qbutton:eq(0)').css({"width": 'auto'});
                }
                if(window["slider_button2_" + i][4] != 0) {
                    $item.find('.qbutton:eq(1)').css({"width": Math.round(window["slider_button2_" + i][4]) + 'px'});
                }else{
                    $item.find('.qbutton:eq(1)').css({"width": 'auto'});
                }
                $item.find('.qbutton:eq(0)').css({"padding-left": Math.round(window["slider_button1_" + i][5]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"padding-left": Math.round(window["slider_button2_" + i][5]) + 'px'});
                $item.find('.qbutton:eq(0)').css({"padding-right": Math.round(window["slider_button1_" + i][5]) + 'px'});
                $item.find('.qbutton:eq(1)').css({"padding-right": Math.round(window["slider_button2_" + i][5]) + 'px'});

                $item.find('.separator').css({"margin-top": Math.round(window["slider_separator_" + i][0]) + 'px'});
                $item.find('.separator').css({"margin-bottom": Math.round(window["slider_separator_" + i][1]) + 'px'});

            }
			
			if($this.hasClass('full_screen')){
				$this.css({'height': ($j(window).height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px'});
				$this.find('.qode_slider_preloader').css({'height': ($j(window).height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px'});
                $this.find('.qode_slider_preloader .ajax_loader').css({'display': 'block'});
				$this.find('.item').css({'height': ($j(window).height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px'});

                if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                    if(!$j('body').hasClass('paspartu_on_top_fixed')){
                        $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                    }
                }

                if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                    $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                }

                $j(window).resize(function() {
					mobile_header = $j(window).width() < 1000 ? $j('header.page_header').height() : 0;
                    header_height_add_for_paspartu = $window_width > 1000 && !$j('header.page_header').hasClass('transparent') && $j('body.paspartu_on_top_fixed').length == 0 ? $j('header.page_header').height() : 0;
                    paspartu_amount_with_top = $j('.paspartu_outer:not(.disable_top_paspartu)').length > 0 ? Math.round($window_width*paspartu_width + header_height_add_for_paspartu) : 0;
                    paspartu_amount_with_bottom = $j('.paspartu_outer.paspartu_on_bottom_slider').length > 0 ? Math.round($window_width*paspartu_width) : 0;
                    $this.css({'height': ($j(window).height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px'});
                    $this.find('.qode_slider_preloader .ajax_loader').css({'display': 'block'});
                    $this.find('.item').css({'height': ($j(window).height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px'});

                    if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                        if(!$j('body').hasClass('paspartu_on_top_fixed')){
                            $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                        }
                    }
                    if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                        $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                    }
					
					if($this.hasClass('advanced_responsiveness')){
						$this.find('.item').each(function(i){
							setSliderElementsSize($j(this),i);
						});
					}
				});
			}else if($this.hasClass('responsive_height')){
                var $def_height = $this.data('height');
                
                $this.find('.qode_slider_preloader').css({'height': ($this.height() - mobile_header - paspartu_amount_with_top - paspartu_amount_with_bottom) + 'px', 'display': 'block'});
                if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                    if(!$j('body').hasClass('paspartu_on_top_fixed')){
                        $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                    }
                }
                if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                    $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                }

                setSliderHeight($this, $def_height);

                $j(window).resize(function() {
                    if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                        header_height_add_for_paspartu = $window_width > 1000 && !$j('header.page_header').hasClass('transparent') ? $j('header.page_header').height() : 0;
                        if(!$j('body').hasClass('paspartu_on_top_fixed')){
                            $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                        }
                    }
                    if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                        $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                    }

                    setSliderHeight($this, $def_height);
					if($this.hasClass('advanced_responsiveness')){
						$this.find('.item').each(function(i){
							setSliderElementsSize($j(this),i);
						});
					}
                });
            }else {
                $this.find('.qode_slider_preloader').css({'height': ($this.height() - mobile_header) + 'px', 'display': 'block'});
                $this.find('.qode_slider_preloader .ajax_loader').css({'display': 'block'});
                if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                    if(!$j('body').hasClass('paspartu_on_top_fixed')){
                        $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                    }
                }
                if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                    $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                }
				
				if($this.hasClass('advanced_responsiveness')){
					$this.find('.item').each(function(i){
						setSliderInitialElementsSize($j(this),i);
						setSliderElementsSize($j(this),i);
					});
				}
                $window_width < 1000 ? setSliderHeight($this, $def_height) : resetSliderHeight($def_height);

                $j(window).resize(function() {
                    if($j('.paspartu_outer:not(.disable_top_paspartu)').length){
                        header_height_add_for_paspartu = $window_width > 1000 && !$j('header.page_header').hasClass('transparent') ? $j('header.page_header').height() : 0;
                        if(!$j('body').hasClass('paspartu_on_top_fixed')){
                            $this.closest('.q_slider').css('padding-top', Math.round(header_height_add_for_paspartu + $window_width * paspartu_width));
                        }
                    }
                    if($j('.paspartu_outer.paspartu_on_bottom_slider').length){
                        $this.closest('.q_slider').css('padding-bottom', Math.round($window_width * paspartu_width));
                    }
					
					if($window_width < 1000){
                        setSliderHeight($this, $def_height);
						if($this.hasClass('advanced_responsiveness')){
							$this.find('.item').each(function(i){
								setSliderElementsSize($j(this),i);
							});
						}
                    }else{
                        resetSliderHeight($def_height);
                        if($this.hasClass('advanced_responsiveness')){
							$this.find('.item').each(function(i){
								resetSliderElementsSize($j(this),i);
							});
						}
                    }
                });
			}

			if($j('body:not(.boxed):not(.vertical_menu_transparency):not(.vertical_menu_hidden):not(.page-template-landing_page-php)').hasClass('vertical_menu_enabled') && $j(window).width() > 1000){
                var paspartu_add = $j('body').hasClass('paspartu_enabled') ? 2*Math.round($window_width*paspartu_width) : 0; //2 times paspartu (left and right side)
                $this.find('.carousel-inner').width($window_width - 260 - paspartu_add);
				$j(window).resize(function() {
					if($j(window).width() > 1000){
                        paspartu_add = $j('body').hasClass('paspartu_enabled') ? 2*Math.round($window_width*paspartu_width) : 0; //2 times paspartu (left and right side)
                        $this.find('.carousel-inner').width($window_width - 260 - paspartu_add);
					} else {
						$this.find('.carousel-inner').css('width','100%');
					}
				});
			}

            if($j('body:not(.boxed):not(.vertical_menu_transparency):not(.page-template-landing_page-php)').hasClass('vertical_menu_hidden') && $window_width > 1000){
                var paspartu_add = $j('body').hasClass('paspartu_enabled') ? 2*Math.round($window_width*paspartu_width) : 0; //2 times paspartu (left and right side)
                $this.find('.carousel-inner').width($window_width - 40 - paspartu_add);
                $j(window).resize(function() {
                    if($j(window).width() > 1000){
                        paspartu_add = $j('body').hasClass('paspartu_enabled') ? 2*Math.round($window_width*paspartu_width) : 0; //2 times paspartu (left and right side)
                        $this.find('.carousel-inner').width($window_width - 40 - paspartu_add);
                    } else {
                        $this.find('.carousel-inner').css('width','100%');
                    }
                });
            }

			$j(window).scroll(function() {
				if($scroll > ($this.height()+$j('header.page_header').height()) && $j(window).width() > 1000){
					$this.find('.carousel-inner, .carousel-indicators, button').hide();
				}else{
					$this.find('.carousel-inner, .carousel-indicators, button').show();
				}
			});

			var $slide_animation = $this.data('slide_animation');
			if($slide_animation === ""){
				$slide_animation = 6000;
			}
			
			// function for setting prev/next numbers on arrows
			var all_items_count = $j('div.item').length;
			function setPrevNextNumbers(curr_item, all_items_count){
				if(curr_item == 1){
					$this.find('.left.carousel-control .prev').html(all_items_count);
					$this.find('.right.carousel-control .next').html(curr_item + 1);
				}else if(curr_item == all_items_count){
					$this.find('.left.carousel-control .prev').html(curr_item - 1);
					$this.find('.right.carousel-control .next').html(1);
				}else{
					$this.find('.left.carousel-control .prev').html(curr_item - 1);
					$this.find('.right.carousel-control .next').html(curr_item + 1);
				}
			}
			
			function initSlider(){
				//set active class on first item
				$this.find('.carousel-inner .item:first-child').addClass('active');
				checkSliderForHeaderStyle($j('.carousel .active'), $this.hasClass('header_effect'));
				
				if($this.hasClass('slider_thumbs')){
					// initial state of prev/next numbers
					setPrevNextNumbers(1, all_items_count); 

					//set prev and next thumb on load
					if($this.find('.active').next('div').find('.image').length){
						src = image_regex.exec($this.find('.active').next('div').find('.image').attr('style'));    
						next_image = new Image();
						next_image.src = src[1];
					}else{
						next_image = $this.find('.active').next('div').find('> .video').clone();
						next_image.find('.video-overlay').remove();
						next_image.find('.video-wrap').width(170).height(95);
						next_image.find('.mejs-container').width(170).height(95);
						next_image.find('video').width(170).height(95);
					}
					$this.find('.right.carousel-control .img').html(next_image).find('img, div.video').addClass('old');

					if($this.find('.carousel-inner .item:last-child .image').length){
						src = image_regex.exec($this.find('.carousel-inner .item:last-child .image').attr('style'));
						prev_image = new Image();
						prev_image.src = src[1];
					}else{
						prev_image = $this.find('.carousel-inner .item:last-child > .video').clone();
						prev_image.find('.video-overlay').remove();
						prev_image.find('.video-wrap').width(170).height(95);
						prev_image.find('.mejs-container').width(170).height(95);
						prev_image.find('video').width(170).height(95);
					}
					$this.find('.left.carousel-control .img').html(prev_image).find('img, div.video').addClass('old');
				}
				
				if($this.hasClass('q_auto_start')){
					$this.carousel({
						interval: $slide_animation,
						pause: false
					});	
				} else {
					$this.carousel({
						interval: 0,
						pause: false
					});
				}
				if($this.find('.item video').length){
					initVideoBackgroundSize();
				}
				
				if($this.hasClass('advanced_responsiveness') && ($this.hasClass('responsive_height') || $this.hasClass('full_screen'))){
                    $this.find('.item').each(function (i) {
                        setSliderInitialElementsSize($j(this), i);
                        setSliderElementsSize($j(this), i);
                    });
                }
				
				//initiate image animation
				if($j('.carousel-inner .item:first-child').hasClass('animate_image') && $window_width > 1000){
					$this.find('.carousel-inner .item.animate_image:first-child .image').transformAnimate({
						transform: "matrix("+matrixArray[$j('.carousel-inner .item:first-child').data('animate_image')]+")",
						duration: 30000
					});
				}
			}

			if($j('html').hasClass('touch')){
				if($this.find('.item:first-child .mobile-video-image').length > 0){
					src = image_regex.exec($this.find('.item:first-child .mobile-video-image').attr('style'));
					if (src) {        
						var backImg = new Image();
						backImg.src = src[1];
						$j(backImg).load(function(){ 
							$j('.qode_slider_preloader').fadeOut(500);
							initSlider();
                            checkSVG($this);
						});
					}
				}
				else{
					src = image_regex.exec($this.find('.item:first-child .image').attr('style'));
					if (src) {        
						var backImg = new Image();
						backImg.src = src[1];
						$j(backImg).load(function(){ 
							$j('.qode_slider_preloader').fadeOut(500);
							initSlider();
                            checkSVG($this);
						});
					}
				}
			} else {
				if($this.find('.item:first-child video').length > 0){
					$this.find('.item:first-child video').get(0).addEventListener('loadeddata',function(){
						$j('.qode_slider_preloader').fadeOut(500);
						initSlider();
                        checkSVG($this);
					});
				}else{
					src = image_regex.exec($this.find('.item:first-child .image').attr('style'));
					if (src) {        
						var backImg = new Image();
						backImg.src = src[1];
						$j(backImg).load(function(){ 
							$j('.qode_slider_preloader').fadeOut(500);
							initSlider();
                            checkSVG($this);
						});
					}
				}	
			}

			$this.on('slide.bs.carousel', function () {
				$this.addClass('in_progress');
				$this.find('.active .slider_content_outer').fadeTo(800,0);
			});
			$this.on('slid.bs.carousel', function () {
				$this.removeClass('in_progress');
				$this.find('.active .slider_content_outer').fadeTo(0,1);
                checkSVG($this);
				
				// initiate image animation on active slide and reset all others
				$j('div.item.animate_image .image').stop().css({'transform':'', '-webkit-transform':''});
				if($j('div.item.active').hasClass('animate_image') && $window_width > 1000){
					$j('div.item.animate_image.active .image').transformAnimate({
						transform: "matrix("+matrixArray[$j('div.item.animate_image.active').data('animate_image')]+")",
						duration: 30000
					});
				}
				
				if($this.hasClass('slider_thumbs')){
					var curr_item = $j('div.item').index($j('div.item.active')[0]) + 1;
					setPrevNextNumbers(curr_item, all_items_count);
					
					// prev thumb
					if($this.find('.active').prev('div.item').length){
						if($this.find('.active').prev('div').find('.image').length){
							src = image_regex.exec($this.find('.active').prev('div').find('.image').attr('style'));    
							prev_image = new Image();
							prev_image.src = src[1];
						}else{
							prev_image = $this.find('.active').prev('div').find('> .video').clone();
							prev_image.find('.video-overlay').remove();
							prev_image.find('.video-wrap').width(170).height(95);
							prev_image.find('.mejs-container').width(170).height(95);
							prev_image.find('video').width(170).height(95);
						}
						$this.find('.left.carousel-control .img .old').fadeOut(300,function(){
							$j(this).remove();
						});
						$this.find('.left.carousel-control .img').append(prev_image).find('img, div.video').fadeIn(300).addClass('old');
						
					}else{
						if($this.find('.carousel-inner .item:last-child .image').length){
							src = image_regex.exec($this.find('.carousel-inner .item:last-child .image').attr('style'));    
							prev_image = new Image();
							prev_image.src = src[1];
						}else{
							prev_image = $this.find('.carousel-inner .item:last-child > .video').clone();
							prev_image.find('.video-overlay').remove();
							prev_image.find('.video-wrap').width(170).height(95);
							prev_image.find('.mejs-container').width(170).height(95);
							prev_image.find('video').width(170).height(95);
						}
						$this.find('.left.carousel-control .img .old').fadeOut(300,function(){
							$j(this).remove();
						});
						$this.find('.left.carousel-control .img').append(prev_image).find('img, div.video').fadeIn(300).addClass('old');
					}
					
					// next thumb
					if($this.find('.active').next('div.item').length){
						if($this.find('.active').next('div').find('.image').length){
							src = image_regex.exec($this.find('.active').next('div').find('.image').attr('style'));    
							next_image = new Image();
							next_image.src = src[1];
						}else{
							next_image = $this.find('.active').next('div').find('> .video').clone();
							next_image.find('.video-overlay').remove();
							next_image.find('.video-wrap').width(170).height(95);
							next_image.find('.mejs-container').width(170).height(95);
							next_image.find('video').width(170).height(95);
						}
						
						$this.find('.right.carousel-control .img .old').fadeOut(300,function(){
							$j(this).remove();
						});
						$this.find('.right.carousel-control .img').append(next_image).find('img, div.video').fadeIn(300).addClass('old');
						
					}else{
						if($this.find('.carousel-inner .item:first-child .image').length){
							src = image_regex.exec($this.find('.carousel-inner .item:first-child .image').attr('style'));    
							next_image = new Image();
							next_image.src = src[1];
						}else{
							next_image = $this.find('.carousel-inner .item:first-child > .video').clone();
							next_image.find('.video-overlay').remove();
							next_image.find('.video-wrap').width(170).height(95);
							next_image.find('.mejs-container').width(170).height(95);
							next_image.find('video').width(170).height(95);
						}
						$this.find('.right.carousel-control .img .old').fadeOut(300,function(){
							$j(this).remove();
						});
						$this.find('.right.carousel-control .img').append(next_image).find('img, div.video').fadeIn(300).addClass('old');
					}
				}
			});

            $this.swipe( {
                swipeLeft: function(event, direction, distance, duration, fingerCount){ $this.carousel('next'); },
                swipeRight: function(event, direction, distance, duration, fingerCount){ $this.carousel('prev'); },
                threshold:20
            });

		});

        if ($j('.no-touch .carousel').length) {
            skrollr_slider = skrollr.init({
                edgeStrategy: 'set',
                smoothScrolling: true,
                forceHeight: false
            });
            skrollr_slider.refresh();
        }
	}	
}

function checkSliderForHeaderStyle($this, header_effect){
	"use strict";
	
	var slide_header_style = "";
	var navigation_color = $this.data('navigation-color');
	if($this.hasClass('light')){ slide_header_style = 'light';}
	if($this.hasClass('dark')){ slide_header_style = 'dark';}
	
	if( slide_header_style !== ""){
		if(header_effect){
			$j('header.page_header').removeClass('dark light').addClass(slide_header_style);
            $j('aside.vertical_menu_area').removeClass('dark light').addClass(slide_header_style);
		}
		$j('.carousel .carousel-control, .carousel .carousel-indicators').removeClass('dark light').addClass(slide_header_style);
	}else{
		if(header_effect){
			$j('header.page_header').removeClass('dark light').addClass(default_header_style);
            $j('aside.vertical_menu_area').removeClass('dark light').addClass(default_header_style);
		}
		$j('.carousel .carousel-control, .carousel .carousel-indicators').removeClass('dark light').addClass(default_header_style);
	}
	
	if(navigation_color !== undefined){
		$j('.carousel-control .thumb_holder .thumb_top, .carousel-indicators li').css('background-color',navigation_color);
		$j('.carousel-control .prev_nav, .carousel-control .next_nav').css('border-color',navigation_color);
		$j('.carousel-control .prev_nav i, .carousel-control .next_nav i').css('color',navigation_color);
	}else{
		$j('.carousel-control .thumb_holder .thumb_top, .carousel-indicators li').css('background-color','');
		$j('.carousel-control .prev_nav, .carousel-control .next_nav').css('border-color','');
		$j('.carousel-control .prev_nav i, .carousel-control .next_nav i').css('color','');
	}
}

/*
 ** Set heights for qode carousel, portfolio slider and blog slider
 */
function calculateHeights(){
    if($j('.portfolio_slides').length){
        $j('.portfolio_slides').each(function(){
            $j(this).parents('.caroufredsel_wrapper').css({'height' : ($j(this).find('li.item').outerHeight()-3) + 'px'}); //3 is because of the white line bellow the slider
        });
    }

    if($j('.qode_carousels .slides').length){
        $j('.qode_carousels .slides').each(function(){
            $j(this).parents('.caroufredsel_wrapper').css({'height' : ($j(this).find('li.item').outerHeight()) + 'px'});
        });
    }

    if($j('.blog_slides').length){
        $j('.blog_slides').each(function(){
            $j(this).parents('.caroufredsel_wrapper').css({'height' : ($j(this).find('li.item').outerHeight()-3) + 'px'});
        });
    }
}

/*
 ** Init Qode Carousel
 */
function initQodeCarousel(){
    "use strict";

    if($j('.qode_carousels').length){
        $j('.qode_carousels').each(function(){
            var itemWidth = ($j(this).parents('.grid_section').length == 1) ? 170 : 315;
            $j(this).find('.slides').carouFredSel({
                circular: true,
                responsive: true,
                scroll : {
                    items           : 1,
                    duration        : 1000,
                    pauseOnHover    : false
                },
                items: {
                    width: itemWidth,
                    visible: {
                        min: 1,
                        max: 6
                    }
                },
                auto: true,
                mousewheel: false,
                swipe: {
                    onMouse: true,
                    onTouch: true
                }

            }).animate({'opacity': 1},1000);
        });
        calculateHeights();
    }
}

/*
** Init Portfolio Slider
*/
function initPortfolioSlider(){
    "use strict";

    if($j('.portfolio_slider').length){

        $j('.portfolio_slider').each(function(){

            var number_of_items;
            var item_width_fw;
            if(typeof $j(this).data('number_of_items') !== 'undefined') {
                number_of_items = $j(this).data('number_of_items');
            }
            else {
                number_of_items = 'auto';
            }

            switch(number_of_items){
                case 4:
                    item_width_fw = 500;
                break;
                case 5:
                    item_width_fw = 350;
                break;
                default:
                	item_width_fw = 500;
            	break;
            }

            var maxItems = ($j(this).parents('.grid_section').length == 1) ? 3 : number_of_items;
            var itemWidth = ($j(this).parents('.grid_section').length == 1) ? 353 : item_width_fw;

            $j(this).find('.portfolio_slides').carouFredSel({
                circular: true,
                responsive: true,
                scroll: 1,
                prev : { 
					button : function() {
						return $j(this).parent().siblings('.caroufredsel-direction-nav').find('#caroufredsel-prev');
					}
				},
				next : { 
					button : function() {
						return $j(this).parent().siblings('.caroufredsel-direction-nav').find('#caroufredsel-next');
					}
				},
                items: {
                    width: itemWidth,
                    visible: {
                        min: 1,
                        max: maxItems
                    }
                },
                auto: false,
                mousewheel: false,
                swipe: {
                    onMouse: true,
                    onTouch: true
                }
            }).animate({'opacity': 1},1000);
        });

        calculateHeights();

        $j('.portfolio_slider .flex-direction-nav a').click(function(e){
            e.preventDefault();
            e.stopImmediatePropagation();
            e.stopPropagation();
        });
    }
}

/*
 ** Init Blog Slider
 */
function initBlogSlider(){
    "use strict";

    if($j('.blog_slider').length){

        $j('.blog_slider').each(function(){

            var blogs_shown;
            var maxItems;
            var itemWidth;
            var autoPlay = false;
            if(typeof $j(this).data('blogs_shown') !== 'undefined') {
                blogs_shown = $j(this).data('blogs_shown');
            }
            else if($j(this).hasClass('simple_slider')){
				blogs_shown = 1;
            }
        	else{
                blogs_shown = 'auto';
            }

            if ($j(this).hasClass('simple_slider')) {
            	maxItems = 1;
            	itemWidth = 300;
            	autoPlay = false;
            }
            else {
	            maxItems = ($j(this).parents('.grid_section').length == 1) ? 3 : blogs_shown;
	            var itemWidthTemp;

	            switch (blogs_shown) {
	                case 3:
	                    itemWidthTemp = 667;
	                    break;
	                case 4:
	                    itemWidthTemp = 500;
	                    break;
	                case 5:
	                    itemWidthTemp = 400;
	                    break;
	                case 6:
	                    itemWidthTemp = 334;
	                    break;
	                default:
	                    itemWidthTemp = 500;

	                    break;
	            }

	            itemWidth = ($j(this).parents('.grid_section').length == 1) ? 353 : itemWidthTemp;
	        }

            $j(this).find('.blog_slides').carouFredSel({
                circular: true,
                responsive: true,
                scroll: 1,
                prev : {
                    button : function() {
                        return $j(this).parent().siblings('.caroufredsel-direction-nav').find('#caroufredsel-prev');
                    }
                },
                next : {
                    button : function() {
                        return $j(this).parent().siblings('.caroufredsel-direction-nav').find('#caroufredsel-next');
                    }
                },
                items: {
                    width: itemWidth,
                    visible: {
                        min: 1,
                        max: maxItems
                    }
                },
                auto: autoPlay,
                mousewheel: false,
                swipe: {
                    onMouse: true,
                    onTouch: true
                }
            }).animate({'opacity': 1},1000);
        });

        calculateHeights();

        $j('.blog_slider .flex-direction-nav a').click(function(e){
            e.preventDefault();
            e.stopImmediatePropagation();
            e.stopPropagation();
        });
    }
}

/*
**	Opening side menu on "menu button" click
*/
var current_scroll;
function initSideMenu(){
	"use strict";
	
	if ($j('body').hasClass('side_area_uncovered_from_content')) {
		$j('.side_menu_button_wrapper a.side_menu_button_link,  a.close_side_menu').click(function(e){
			e.preventDefault();
			$j('.side_menu').css({'right':'0'});
			if(!$j('.side_menu_button_wrapper a.side_menu_button_link').hasClass('opened')){
				$j('.side_menu').css({'visibility':'visible'});
				$j(this).addClass('opened');
				$j('body').addClass('right_side_menu_opened');
				current_scroll = $j(window).scrollTop();
				
				$j(window).scroll(function() {
					if(Math.abs($scroll - current_scroll) > 400){
						$j('body').removeClass('right_side_menu_opened');
						$j('.side_menu_button_wrapper a').removeClass('opened');
						var hide_side_menu = setTimeout(function(){
							$j('.side_menu').css({'visibility':'hidden'});
							clearTimeout(hide_side_menu);
						},400);
					}
				});
			}else{
				$j('.side_menu_button_wrapper a.side_menu_button_link').removeClass('opened');
				$j('body').removeClass('right_side_menu_opened');
				var hide_side_menu = setTimeout(function(){
					$j('.side_menu').css({'visibility':'hidden'});
					clearTimeout(hide_side_menu);
				},400);
			}
		});	
	}	
	
	if ($j('body').hasClass('side_menu_slide_with_content')) {
			$j('.side_menu_button_wrapper a.side_menu_button_link, a.close_side_menu').click(function(e){
			e.preventDefault();

			if(!$j('.side_menu_button_wrapper a.side_menu_button_link').hasClass('opened')){
				$j(this).addClass('opened');
				$j('body').addClass('side_menu_open');
				current_scroll = $j(window).scrollTop();
				$j(window).scroll(function() {

					if(Math.abs($scroll - current_scroll) > 400){
						$j('body').removeClass('side_menu_open');
						$j('.side_menu_button_wrapper a').removeClass('opened');
					}
				});
			}else{//hamburger icon has class open on its click
				$j('body').removeClass('side_menu_open');


				$j('.side_menu_button_wrapper a.side_menu_button_link').removeClass('opened');
				$j('body').removeClass('side_menu_open');

			}

			e.stopPropagation();
			$j('.wrapper').click(function() {
				e.preventDefault();
				$j('body').removeClass('side_menu_open');
				$j('.side_menu_button_wrapper a.side_menu_button_link').removeClass('opened');
				$j('body').removeClass('side_menu_open');
			});
		});
	}


	if ($j('body').hasClass('side_menu_slide_from_right')) {
			$j('.wrapper').prepend('<div class="cover"/>');
			$j('.side_menu_button_wrapper a.side_menu_button_link, a.close_side_menu').click(function(e){
			e.preventDefault();

			if(!$j('.side_menu_button_wrapper a.side_menu_button_link').hasClass('opened')){
				$j(this).addClass('opened');
				$j('body').addClass('right_side_menu_opened');

				$j(' .wrapper .cover').click(function() {
					$j('.side_menu_button_wrapper a.side_menu_button_link').removeClass('opened');
					$j('body').removeClass('right_side_menu_opened');
					$j('.side_menu_button_wrapper a').removeClass('opened');
				});
				current_scroll = $j(window).scrollTop();
				$j(window).scroll(function() {
					if(Math.abs($scroll - current_scroll) > 400){
						$j('body').removeClass('right_side_menu_opened');
						$j('.side_menu_button_wrapper a').removeClass('opened');
					}
				});
			}else{
				$j('.side_menu_button_wrapper a.side_menu_button_link').removeClass('opened');
				$j('body').removeClass('right_side_menu_opened');
			}
		});
	}
}

function setDropDownMenuPosition(){
	"use strict";

	var menu_items = $j(".drop_down > ul > li.narrow");
	menu_items.each( function(i) {

		var browser_width = $j(window).width()-16; // 16 is width of scroll bar
		var boxed_layout = 1150; // boxed layout width
		var menu_item_position = $j(menu_items[i]).offset().left;
		var sub_menu_width = $j(menu_items[i]).find('.second .inner ul').width();
		var menu_item_from_left = 0;
		if($j('body').hasClass('boxed')){
			menu_item_from_left = boxed_layout - (menu_item_position - (browser_width - boxed_layout)/2) + 17; // 17 is right padding between menu elements
		} else {
			menu_item_from_left = browser_width - menu_item_position + 17; // 17 is right padding between menu elements
		}
		var sub_menu_from_left;
			
		if($j(menu_items[i]).find('li.sub').length > 0){
			sub_menu_from_left = menu_item_from_left - sub_menu_width;
		}
		
		if(menu_item_from_left < sub_menu_width || sub_menu_from_left < sub_menu_width){
			$j(menu_items[i]).find('.second').addClass('right');
			$j(menu_items[i]).find('.second .inner ul').addClass('right');
		}
	});
}

function initDropDownMenu(){
	"use strict";
	
	var menu_items = $j('.drop_down > ul > li');
	
	menu_items.each( function(i) {
		if ($j(menu_items[i]).find('.second').length > 0) {
			if($j(menu_items[i]).hasClass('wide')){
                var dropdown = $j(this).find('.inner > ul');
                var dropdownPadding = parseInt(dropdown.css('padding-left').slice(0, -2)) + parseInt(dropdown.css('padding-right').slice(0, -2));

				if(!$j(this).hasClass('left_position') && !$j(this).hasClass('right_position')){
					$j(this).find('.second').css('left',0);
				}

				var tallest = 0;
				$j(this).find('.second > .inner > ul > li').each(function() {
					var thisHeight = $j(this).height();
					if(thisHeight > tallest) {
						tallest = thisHeight;
					}
				});

				$j(this).find('.second > .inner > ul > li').height(tallest);
				
				var row_number;
				if($j(this).find('.second > .inner > ul > li').length > 4){
					row_number = 4;
				}else{
					row_number = $j(this).find('.second > .inner > ul > li').length;
				}

				var width = row_number*($j(this).find('.second > .inner > ul > li').outerWidth());
				$j(this).find('.second > .inner > ul').width(width);

				if(!$j(this).hasClass('wide_background')){
					if(!$j(this).hasClass('left_position') && !$j(this).hasClass('right_position')){
						var left_position = ($j(window).width() - 2 * ($j(window).width()-$j(this).find('.second').offset().left))/2 + (width+dropdownPadding)/2;
						$j(this).find('.second').css('left',-left_position);
					}
				} else{
					if(!$j(this).hasClass('left_position') && !$j(this).hasClass('right_position')){
						var left_position = $j(this).find('.second').offset().left;
						$j(this).find('.second').css('left',-left_position);
						$j(this).find('.second').css('width',$j(window).width());
					}
				}
			}
			
			if(!menu_dropdown_height_set){
				$j(menu_items[i]).data('original_height', $j(menu_items[i]).find('.second').height() + 'px');
				$j(menu_items[i]).find('.second').height(0);
			}
			
			if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
				$j(menu_items[i]).on("touchstart mouseenter",function(){
					$j(menu_items[i]).find('.second').css({'height': $j(menu_items[i]).data('original_height'), 'overflow': 'visible', 'visibility': 'visible', 'opacity': '1'});
				}).on("mouseleave", function(){
					$j(menu_items[i]).find('.second').css({'height': '0px','overflow': 'hidden', 'visivility': 'hidden', 'opacity': '0'});
				});
			
			}else{
				var config = {    
					interval: 0,
					over: function(){
						setTimeout(function() {
							$j(menu_items[i]).find('.second').addClass('drop_down_start');
							$j(menu_items[i]).find('.second').stop().css({'height': $j(menu_items[i]).data('original_height')});
						}, 150);
					},  
					timeout: 150,
					out: function(){
						$j(menu_items[i]).find('.second').stop().css({'height': '0px'});
						$j(menu_items[i]).find('.second').removeClass('drop_down_start');
					}
				};
				$j(menu_items[i]).hoverIntent(config);
			}	
		}
	});
	$j('.drop_down ul li.wide ul li a, .drop_down ul li.narrow ul li a').on('click',function(){
		var $this = $j(this);

		if(!$this.next('ul').length && ($this.attr('href') !== "http://#") && ($this.attr('href') !== "#") && !$this.hasClass('no_link')) {
			setTimeout(function() {
				$this.mouseleave();
			}, 500);
		}
	});
	
	menu_dropdown_height_set = true;
}


/*
 **	Vertical menu toggle dropdown
 */

function initVerticalMenu(){
	"use strict";

	if ($j('.no-touch .vertical_menu_toggle').length) {
		var menu_items = $j('.no-touch .vertical_menu_toggle > ul > li');
		var menu_items_2 = $j('.no-touch .vertical_menu_toggle ul li ul li');

		menu_items.each( function(i) {
			if($j(menu_items[i]).hasClass('has_sub')){
	            var subitems_number = $j(menu_items[i]).find('.inner > ul > li').length;
				$j(menu_items[i]).hoverIntent({
	                over: function() {
	                    $j(menu_items[i]).addClass('open');
						$j(menu_items[i]).find('.second').slideDown(subitems_number*40, 'easeInOutSine', function(){
							$j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
						});

					},
					out: function() {
						//if(!$j(menu_items[i]).hasClass('active')){
						$j(menu_items[i]).removeClass('open');
						$j(menu_items[i]).find('.second').slideUp(subitems_number*40, 'easeInOutSine');
						//}
					},
					timeout: 1000
				});
			}
		});

		menu_items_2.each( function(i) {
			if($j(menu_items_2[i]).hasClass('menu-item-has-children')){
	            var subitems_number = $j(menu_items_2[i]).find('ul > li').length;
	            $j(menu_items_2[i]).hoverIntent({
					over: function() {
						$j(menu_items_2[i]).addClass('open');
						$j(menu_items_2[i]).find('ul').slideDown(subitems_number*40, 'easeInOutSine', function(){
							$j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
						});
					},
					out: function() {
						$j(menu_items_2[i]).removeClass('open');
						$j(menu_items_2[i]).find('ul').slideUp(subitems_number*40, 'easeInOutSine');
					},
					timeout: 1000
				});
			}
		});
	}
	else if ($j('.vertical_menu_on_click').length) {
		var menu_items = $j('.vertical_menu_on_click > ul > li > a');
		var menu_items_2 = $j('.vertical_menu_on_click ul li ul li a');

		menu_items.each( function(i) {
			if($j(menu_items[i]).parent().hasClass('has_sub')){
				$j(menu_items[i]).on('tap click',function(e) {
					e.preventDefault();
					if(!$j(this).parent().hasClass('open')) {
						$j('.vertical_menu_on_click > ul > li').removeClass('open');
						$j('.vertical_menu_on_click > ul > li').find('.second').slideUp('fast');

						$j(this).parent().addClass('open');
						$j(this).parent().find('.second').slideDown('slow', function () {
						    $j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
						});
					}else{

						$j(this).parent().removeClass('open');
						$j(this).parent().find('.second').slideUp('fast', function () {
							$j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
						});
					}
					return false;
				});
			}
		});

		menu_items_2.each( function(i) {
			if($j(menu_items_2[i]).parent().hasClass('menu-item-has-children')){
                $j(menu_items_2[i]).on('tap click',function(e) {
                    e.preventDefault();
                    if(!$j(this).parent().hasClass('open')) {
                        $j('.vertical_menu_on_click ul li ul li').removeClass('open');
                        $j('.vertical_menu_on_click ul li ul li').find('ul').slideUp('fast');

                        $j(this).parent().addClass('open');
                        $j(this).parent().find('ul').slideDown('slow', function () {
                            $j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
                        });
                    }else{
                        $j(this).parent().removeClass('open');
                        $j(this).parent().find('ul').slideUp('fast', function () {
                            $j('.vertical_menu_area.with_scroll').getNiceScroll().resize();
                        });
                    }
                    return false;
                });
			}
		});
	}
	else if ($j('.no-touch .vertical_menu_float').length){
        //show dropdown to content on menu item hover, link is available on menu item click
        var menu_items = $j('.no-touch .vertical_menu_float > ul > li');
        var menu_items_2 = $j('.no-touch .vertical_menu_float ul li ul li');
        menu_items.each( function(i) {
            if($j(menu_items[i]).hasClass('has_sub')){
                $j(menu_items[i]).hoverIntent({
                   over: function() {
                        $j(menu_items[i]).addClass('open');
                        $j(menu_items[i]).find('.second').addClass('vertical_menu_start');
                    },
                    out: function() {
                        //if(!$j(menu_items[i]).hasClass('active')){
                        $j(menu_items[i]).removeClass('open');                        
                        $j(menu_items[i]).find('.second').removeClass('vertical_menu_start');
                    },
                    timeout: 300
                });
            }
        });

        menu_items_2.each( function(i) {
            if($j(menu_items_2[i]).hasClass('menu-item-has-children')){
                var subitems_number = $j(menu_items_2[i]).find('ul > li').length;
                $j(menu_items_2[i]).hoverIntent({
                    over: function() {
                        $j(menu_items_2[i]).addClass('open');
                        $j(menu_items_2[i]).find('ul').addClass('vertical_submenu_start');
                    },
                    out: function() {
                        $j(menu_items_2[i]).removeClass('open');
                        $j(menu_items_2[i]).find('ul').removeClass('vertical_submenu_start');
                    },
                    timeout: 300
                });
            }
        });
	}

}

/*
 **	Show/Hide Vertical menu for mobile
 */
function initVerticalMobileMenu(){
	"use strict";

	if ($j('.vertical_menu_toggle').length) {
		//register tap / click event for main menu item plus icon
		$j('.touch .vertical_menu_toggle > ul > li.has_sub > a .plus').on('tap click', function(e){
			//first prevent event propagation and it's default behavior
			e.stopPropagation();
			e.preventDefault();

			//is dropdown for clicked item visible?
			if($j(this).parent().next('div.second').is(":visible")){
				//if it is remove 'open' class and slide it up
				$j(this).parents('.touch .vertical_menu_toggle > ul > li.has_sub').removeClass('open');
				$j(this).parent().next('div.second').slideUp(200);
			} else {
				//if it's not visible add 'open' class and slide it down
				$j(this).parents('.touch .vertical_menu_toggle > ul > li.has_sub').addClass('open');
				$j(this).parent().next('div.second').slideDown(200);
			}
		});

		//register tap / click event for second level main menu item plus icon
		$j('.touch .vertical_menu_toggle ul li ul li > a .plus').on('tap click', function(e){
			//first prevent event propagation and it's default behavior
			e.stopPropagation();
			e.preventDefault();

			//is dropdown for clicked item visible?
			if($j(this).parent().next('ul').is(":visible")){
				//if it is remove 'open' class and slide it up
				$j(this).parents('.touch .vertical_menu_toggle ul li ul li').removeClass('open');
				$j(this).parent().next('ul').slideUp(200);
			} else {
				//if it's not visible add 'open' class and slide it down
				$j(this).parents('.touch .vertical_menu_toggle ul li ul li').addClass('open');
				$j(this).parent().next('ul').slideDown(200);
			}
		});
	}
	else if ($j('.vertical_menu_float').length){
		$j('.touch .vertical_menu_float > ul > li.has_sub > a .plus').on('tap click', function(e){
			//first prevent event propagation and it's default behavior
			e.stopPropagation();
			e.preventDefault();

			//is dropdown for clicked item visible?
			if($j(this).parent().next('div.second').hasClass('vertical_menu_start')){
				//if it is remove 'open' class and 'vertical_menu_start'
				$j(this).parents('.touch .vertical_menu_float > ul > li.has_sub').removeClass('open');
				$j(this).parents('.touch .vertical_menu_float > ul > li.has_sub').find('.second').removeClass('vertical_menu_start');
			} else {				//if it's not visible add 'open' class and 'vertical_menu_start'
				$j(this).parents('.touch .vertical_menu_float > ul > li.has_sub').addClass('open');
				$j(this).parents('.touch .vertical_menu_float > ul > li.has_sub').find('.second').addClass('vertical_menu_start');
			}
		});
		//register tap / click event for second level main menu item plus icon
		$j('.touch .vertical_menu_float ul li ul li > a .plus').on('tap click', function(e){
			//first prevent event propagation and it's default behavior
			e.stopPropagation();
			e.preventDefault();

			//is dropdown for clicked item visible?
			if($j(this).parent().next('ul').hasClass('vertical_submenu_start')){
				//if it is remove 'open' class and slide it up
				$j(this).parents('.touch .vertical_menu_float ul li ul li').removeClass('open');
				$j(this).parents('.touch .vertical_menu_float ul li ul li').find('ul').removeClass('vertical_submenu_start');

			} else {
				//if it's not visible add 'open' class and slide it down
				$j(this).parents('.touch .vertical_menu_float ul li ul li').addClass('open');
				$j(this).parents('.touch .vertical_menu_float ul li ul li').find('ul').addClass('vertical_submenu_start');
			}
		});
	}
}

/*
 **	Set transparency for left menu area
 */
function checkVerticalMenuTransparency(){
    if($scroll !== 0){
        $j('body.vertical_menu_transparency').removeClass('vertical_menu_transparency_on');
    }else{
        $j('body.vertical_menu_transparency').addClass('vertical_menu_transparency_on');
    }
}

/*
 **	Show/Hide hidden Vertical menu
 */
function showHideVerticalMenu(){

    if($j('.vertical_menu_hidden').length) {
        var vertical_menu = $j('aside.vertical_menu_area');
		var vertical_menu_bottom_logo = $j('.vertical_menu_area_bottom_logo');
        var hovered_flag = true;

        $j('.vertical_menu_hidden_button').on('click',function (e) {
            e.preventDefault();
            if(hovered_flag) {
                hovered_flag = false;
                current_scroll = $j(window).scrollTop(); //current scroll is defined in front of "initSideMenu" function
                vertical_menu.addClass('active');
				 vertical_menu_bottom_logo.addClass('active');
            }else{
                hovered_flag = true;
                vertical_menu.removeClass('active');
				 vertical_menu_bottom_logo.removeClass('active');
            }
        });

        $j(window).scroll(function() {
            if(Math.abs($scroll - current_scroll) > 400){
                hovered_flag = true;
                vertical_menu.removeClass('active');
				vertical_menu_bottom_logo.removeClass('active');
            }
        });

        //take click outside vertical left/rifgt area and close it
        (function() {
            var Outclick, outclick,
                _this = this;
            Outclick = (function() {
                Outclick.name = 'Outclick';
                function Outclick() {
                    this.objects = [];
                }
                Outclick.prototype.check = function(element, event) {
                    return !element.is(event.target) && element.has(event.target).length === 0;
                };
                Outclick.prototype.trigger = function(e) {
                    var execute,
                        _this = this;
                    execute = false;
                    return $j.each(this.objects, function(index, el) {
                        if (_this.check(el.container, e)) {
                            if (el.related.length < 1) {
                                execute = true;
                            } else {
                                $j.each(el.related, function(index, relation) {
                                    if (_this.check(relation, e)) {
                                        return execute = true;
                                    } else {
                 
Download .txt
gitextract_ummft7m9/

├── .github/
│   ├── CODEOWNERS
│   ├── dependabot.yml
│   ├── project.yml
│   └── workflows/
│       ├── build.yml
│       ├── deploy-snapshots.yml.disabled
│       ├── pre-release.yml
│       ├── quarkus-snapshot.yaml
│       ├── release-perform.yml
│       ├── release-prepare.yml
│       └── release.yml.disabled
├── .gitignore
├── LICENSE
├── README.md
├── core/
│   ├── docs/
│   │   └── sources-asciidoc/
│   │       └── src/
│   │           └── main/
│   │               └── asciidoc/
│   │                   ├── Chapter-Introduction.adoc~
│   │                   ├── Chapter-JDiameter.adoc~
│   │                   ├── Chapter-MUX.adoc~
│   │                   ├── Diameter_User_Guide.adoc~
│   │                   ├── Section-Introduction-Message_Format.adoc~
│   │                   ├── Section-JDiameter-Configuration.adoc~
│   │                   ├── Section-JDiameter-Setup.adoc~
│   │                   ├── Section-JDiameter-Source_Overview.adoc~
│   │                   ├── Section-JDiameter-Validator-Configuration.adoc~
│   │                   ├── Section-JDiameter-Validator-Source_Overview.adoc~
│   │                   ├── Section-JDiameter-Validator.adoc~
│   │                   ├── Section-MUX-Setup.adoc~
│   │                   ├── Section-MUX-Source_Overview.adoc~
│   │                   ├── js/
│   │                   │   └── default.js~
│   │                   └── stylesheets/
│   │                       └── telestax.css~
│   ├── jdiameter/
│   │   ├── api/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── api/
│   │   │                           ├── Answer.java
│   │   │                           ├── ApplicationAlreadyUseException.java
│   │   │                           ├── ApplicationId.java
│   │   │                           ├── Avp.java
│   │   │                           ├── AvpDataException.java
│   │   │                           ├── AvpSet.java
│   │   │                           ├── BaseSession.java
│   │   │                           ├── Configuration.java
│   │   │                           ├── ConfigurationListener.java
│   │   │                           ├── DisconnectCause.java
│   │   │                           ├── EventListener.java
│   │   │                           ├── IllegalDiameterStateException.java
│   │   │                           ├── InternalException.java
│   │   │                           ├── LocalAction.java
│   │   │                           ├── Message.java
│   │   │                           ├── MetaData.java
│   │   │                           ├── Mode.java
│   │   │                           ├── MutableConfiguration.java
│   │   │                           ├── MutablePeerTable.java
│   │   │                           ├── Network.java
│   │   │                           ├── NetworkReqListener.java
│   │   │                           ├── OverloadException.java
│   │   │                           ├── OverloadListener.java
│   │   │                           ├── OverloadManager.java
│   │   │                           ├── Peer.java
│   │   │                           ├── PeerState.java
│   │   │                           ├── PeerStateListener.java
│   │   │                           ├── PeerTable.java
│   │   │                           ├── PeerTableListener.java
│   │   │                           ├── RawSession.java
│   │   │                           ├── Realm.java
│   │   │                           ├── RealmTable.java
│   │   │                           ├── Request.java
│   │   │                           ├── ResultCode.java
│   │   │                           ├── RouteException.java
│   │   │                           ├── Selector.java
│   │   │                           ├── Session.java
│   │   │                           ├── SessionFactory.java
│   │   │                           ├── Stack.java
│   │   │                           ├── StackManager.java
│   │   │                           ├── StackType.java
│   │   │                           ├── Statistic.java
│   │   │                           ├── StatisticRecord.java
│   │   │                           ├── URI.java
│   │   │                           ├── Wrapper.java
│   │   │                           ├── acc/
│   │   │                           │   ├── ClientAccSession.java
│   │   │                           │   ├── ClientAccSessionListener.java
│   │   │                           │   ├── ServerAccSession.java
│   │   │                           │   ├── ServerAccSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── AccountAnswer.java
│   │   │                           │       └── AccountRequest.java
│   │   │                           ├── annotation/
│   │   │                           │   ├── AvpDscr.java
│   │   │                           │   ├── AvpFlag.java
│   │   │                           │   ├── AvpType.java
│   │   │                           │   ├── Child.java
│   │   │                           │   ├── CommandDscr.java
│   │   │                           │   ├── CommandFlag.java
│   │   │                           │   ├── Getter.java
│   │   │                           │   └── Setter.java
│   │   │                           ├── app/
│   │   │                           │   ├── AppAnswerEvent.java
│   │   │                           │   ├── AppEvent.java
│   │   │                           │   ├── AppRequestEvent.java
│   │   │                           │   ├── AppSession.java
│   │   │                           │   ├── State.java
│   │   │                           │   ├── StateChangeListener.java
│   │   │                           │   ├── StateEvent.java
│   │   │                           │   └── StateMachine.java
│   │   │                           ├── auth/
│   │   │                           │   ├── ClientAuthSession.java
│   │   │                           │   ├── ClientAuthSessionListener.java
│   │   │                           │   ├── ServerAuthSession.java
│   │   │                           │   ├── ServerAuthSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── AbortSessionAnswer.java
│   │   │                           │       ├── AbortSessionRequest.java
│   │   │                           │       ├── ReAuthAnswer.java
│   │   │                           │       ├── ReAuthRequest.java
│   │   │                           │       ├── SessionTermAnswer.java
│   │   │                           │       └── SessionTermRequest.java
│   │   │                           ├── cca/
│   │   │                           │   ├── CCASession.java
│   │   │                           │   ├── ClientCCASession.java
│   │   │                           │   ├── ClientCCASessionListener.java
│   │   │                           │   ├── ServerCCASession.java
│   │   │                           │   ├── ServerCCASessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JCreditControlAnswer.java
│   │   │                           │       └── JCreditControlRequest.java
│   │   │                           ├── cxdx/
│   │   │                           │   ├── ClientCxDxSession.java
│   │   │                           │   ├── ClientCxDxSessionListener.java
│   │   │                           │   ├── ServerCxDxSession.java
│   │   │                           │   ├── ServerCxDxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JLocationInfoAnswer.java
│   │   │                           │       ├── JLocationInfoRequest.java
│   │   │                           │       ├── JMultimediaAuthAnswer.java
│   │   │                           │       ├── JMultimediaAuthRequest.java
│   │   │                           │       ├── JPushProfileAnswer.java
│   │   │                           │       ├── JPushProfileRequest.java
│   │   │                           │       ├── JRegistrationTerminationAnswer.java
│   │   │                           │       ├── JRegistrationTerminationRequest.java
│   │   │                           │       ├── JServerAssignmentAnswer.java
│   │   │                           │       ├── JServerAssignmentRequest.java
│   │   │                           │       ├── JUserAuthorizationAnswer.java
│   │   │                           │       └── JUserAuthorizationRequest.java
│   │   │                           ├── gq/
│   │   │                           │   ├── ClientGqSessionListener.java
│   │   │                           │   ├── GqClientSession.java
│   │   │                           │   ├── GqServerSession.java
│   │   │                           │   └── ServerGqSessionListener.java
│   │   │                           ├── gx/
│   │   │                           │   ├── ClientGxSession.java
│   │   │                           │   ├── ClientGxSessionListener.java
│   │   │                           │   ├── ServerGxSession.java
│   │   │                           │   ├── ServerGxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── GxCreditControlAnswer.java
│   │   │                           │       ├── GxCreditControlRequest.java
│   │   │                           │       ├── GxReAuthAnswer.java
│   │   │                           │       └── GxReAuthRequest.java
│   │   │                           ├── rf/
│   │   │                           │   ├── ClientRfSession.java
│   │   │                           │   ├── ClientRfSessionListener.java
│   │   │                           │   ├── ServerRfSession.java
│   │   │                           │   ├── ServerRfSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RfAccountingAnswer.java
│   │   │                           │       └── RfAccountingRequest.java
│   │   │                           ├── ro/
│   │   │                           │   ├── ClientRoSession.java
│   │   │                           │   ├── ClientRoSessionListener.java
│   │   │                           │   ├── ServerRoSession.java
│   │   │                           │   ├── ServerRoSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RoCreditControlAnswer.java
│   │   │                           │       └── RoCreditControlRequest.java
│   │   │                           ├── rx/
│   │   │                           │   ├── ClientRxSession.java
│   │   │                           │   ├── ClientRxSessionListener.java
│   │   │                           │   ├── ServerRxSession.java
│   │   │                           │   ├── ServerRxSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── RxAAAnswer.java
│   │   │                           │       ├── RxAARequest.java
│   │   │                           │       ├── RxAbortSessionAnswer.java
│   │   │                           │       ├── RxAbortSessionRequest.java
│   │   │                           │       ├── RxReAuthAnswer.java
│   │   │                           │       ├── RxReAuthRequest.java
│   │   │                           │       ├── RxSessionTermAnswer.java
│   │   │                           │       └── RxSessionTermRequest.java
│   │   │                           ├── s13/
│   │   │                           │   ├── ClientS13Session.java
│   │   │                           │   ├── ClientS13SessionListener.java
│   │   │                           │   ├── ServerS13Session.java
│   │   │                           │   ├── ServerS13SessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JMEIdentityCheckAnswer.java
│   │   │                           │       └── JMEIdentityCheckRequest.java
│   │   │                           ├── s6a/
│   │   │                           │   ├── ClientS6aSession.java
│   │   │                           │   ├── ClientS6aSessionListener.java
│   │   │                           │   ├── ServerS6aSession.java
│   │   │                           │   ├── ServerS6aSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── JAuthenticationInformationAnswer.java
│   │   │                           │       ├── JAuthenticationInformationRequest.java
│   │   │                           │       ├── JCancelLocationAnswer.java
│   │   │                           │       ├── JCancelLocationRequest.java
│   │   │                           │       ├── JDeleteSubscriberDataAnswer.java
│   │   │                           │       ├── JDeleteSubscriberDataRequest.java
│   │   │                           │       ├── JInsertSubscriberDataAnswer.java
│   │   │                           │       ├── JInsertSubscriberDataRequest.java
│   │   │                           │       ├── JNotifyAnswer.java
│   │   │                           │       ├── JNotifyRequest.java
│   │   │                           │       ├── JPurgeUEAnswer.java
│   │   │                           │       ├── JPurgeUERequest.java
│   │   │                           │       ├── JResetAnswer.java
│   │   │                           │       ├── JResetRequest.java
│   │   │                           │       ├── JUpdateLocationAnswer.java
│   │   │                           │       └── JUpdateLocationRequest.java
│   │   │                           ├── sh/
│   │   │                           │   ├── ClientShSession.java
│   │   │                           │   ├── ClientShSessionListener.java
│   │   │                           │   ├── ServerShSession.java
│   │   │                           │   ├── ServerShSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── ProfileUpdateAnswer.java
│   │   │                           │       ├── ProfileUpdateRequest.java
│   │   │                           │       ├── PushNotificationAnswer.java
│   │   │                           │       ├── PushNotificationRequest.java
│   │   │                           │       ├── SubscribeNotificationsAnswer.java
│   │   │                           │       ├── SubscribeNotificationsRequest.java
│   │   │                           │       ├── UserDataAnswer.java
│   │   │                           │       └── UserDataRequest.java
│   │   │                           ├── slg/
│   │   │                           │   ├── ClientSLgSession.java
│   │   │                           │   ├── ClientSLgSessionListener.java
│   │   │                           │   ├── ServerSLgSession.java
│   │   │                           │   ├── ServerSLgSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── LocationReportAnswer.java
│   │   │                           │       ├── LocationReportRequest.java
│   │   │                           │       ├── ProvideLocationAnswer.java
│   │   │                           │       └── ProvideLocationRequest.java
│   │   │                           ├── slh/
│   │   │                           │   ├── ClientSLhSession.java
│   │   │                           │   ├── ClientSLhSessionListener.java
│   │   │                           │   ├── ServerSLhSession.java
│   │   │                           │   ├── ServerSLhSessionListener.java
│   │   │                           │   └── events/
│   │   │                           │       ├── LCSRoutingInfoAnswer.java
│   │   │                           │       └── LCSRoutingInfoRequest.java
│   │   │                           └── validation/
│   │   │                               ├── AvpNotAllowedException.java
│   │   │                               ├── AvpRepresentation.java
│   │   │                               ├── Dictionary.java
│   │   │                               ├── MessageRepresentation.java
│   │   │                               └── ValidatorLevel.java
│   │   ├── impl/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       ├── main/
│   │   │       │   ├── java/
│   │   │       │   │   └── org/
│   │   │       │   │       └── jdiameter/
│   │   │       │   │           ├── client/
│   │   │       │   │           │   ├── api/
│   │   │       │   │           │   │   ├── IAnswer.java
│   │   │       │   │           │   │   ├── IAssembler.java
│   │   │       │   │           │   │   ├── IContainer.java
│   │   │       │   │           │   │   ├── IEventListener.java
│   │   │       │   │           │   │   ├── IMessage.java
│   │   │       │   │           │   │   ├── IMetaData.java
│   │   │       │   │           │   │   ├── IRequest.java
│   │   │       │   │           │   │   ├── ISession.java
│   │   │       │   │           │   │   ├── ISessionFactory.java
│   │   │       │   │           │   │   ├── StackState.java
│   │   │       │   │           │   │   ├── annotation/
│   │   │       │   │           │   │   │   ├── IRecoder.java
│   │   │       │   │           │   │   │   └── RecoderException.java
│   │   │       │   │           │   │   ├── controller/
│   │   │       │   │           │   │   │   ├── IPeer.java
│   │   │       │   │           │   │   │   ├── IPeerTable.java
│   │   │       │   │           │   │   │   ├── IRealm.java
│   │   │       │   │           │   │   │   └── IRealmTable.java
│   │   │       │   │           │   │   ├── fsm/
│   │   │       │   │           │   │   │   ├── EventTypes.java
│   │   │       │   │           │   │   │   ├── ExecutorFactory.java
│   │   │       │   │           │   │   │   ├── FsmEvent.java
│   │   │       │   │           │   │   │   ├── IContext.java
│   │   │       │   │           │   │   │   ├── IFsmFactory.java
│   │   │       │   │           │   │   │   └── IStateMachine.java
│   │   │       │   │           │   │   ├── io/
│   │   │       │   │           │   │   │   ├── IConnection.java
│   │   │       │   │           │   │   │   ├── IConnectionListener.java
│   │   │       │   │           │   │   │   ├── ITransportLayerFactory.java
│   │   │       │   │           │   │   │   ├── NotInitializedException.java
│   │   │       │   │           │   │   │   ├── TransportError.java
│   │   │       │   │           │   │   │   └── TransportException.java
│   │   │       │   │           │   │   ├── parser/
│   │   │       │   │           │   │   │   ├── IElementParser.java
│   │   │       │   │           │   │   │   ├── IMessageParser.java
│   │   │       │   │           │   │   │   └── ParseException.java
│   │   │       │   │           │   │   └── router/
│   │   │       │   │           │   │       └── IRouter.java
│   │   │       │   │           │   └── impl/
│   │   │       │   │           │       ├── AbstractStateChangeListener.java
│   │   │       │   │           │       ├── BaseSessionImpl.java
│   │   │       │   │           │       ├── DictionarySingleton.java
│   │   │       │   │           │       ├── MessageUtility.java
│   │   │       │   │           │       ├── MetaDataImpl.java
│   │   │       │   │           │       ├── RawSessionImpl.java
│   │   │       │   │           │       ├── SessionFactoryImpl.java
│   │   │       │   │           │       ├── SessionImpl.java
│   │   │       │   │           │       ├── StackImpl.java
│   │   │       │   │           │       ├── StackImplMBean.java
│   │   │       │   │           │       ├── VersionProperties.java
│   │   │       │   │           │       ├── annotation/
│   │   │       │   │           │       │   ├── Recoder.java
│   │   │       │   │           │       │   ├── UnknownAvp.java
│   │   │       │   │           │       │   ├── Value.java
│   │   │       │   │           │       │   └── internal/
│   │   │       │   │           │       │       ├── ClassInfo.java
│   │   │       │   │           │       │       ├── ConstructorInfo.java
│   │   │       │   │           │       │       ├── MethodInfo.java
│   │   │       │   │           │       │       └── Storage.java
│   │   │       │   │           │       ├── app/
│   │   │       │   │           │       │   ├── acc/
│   │   │       │   │           │       │   │   ├── ClientAccSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientAccSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientAccSessionData.java
│   │   │       │   │           │       │   ├── auth/
│   │   │       │   │           │       │   │   ├── ClientAuthSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientAuthSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientAuthSessionData.java
│   │   │       │   │           │       │   ├── cca/
│   │   │       │   │           │       │   │   ├── ClientCCASessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientCCASessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientCCASessionData.java
│   │   │       │   │           │       │   ├── cxdx/
│   │   │       │   │           │       │   │   ├── ClientCxDxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── CxDxClientSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientCxDxSessionData.java
│   │   │       │   │           │       │   ├── gq/
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── GqClientSessionImpl.java
│   │   │       │   │           │       │   ├── gx/
│   │   │       │   │           │       │   │   ├── ClientGxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientGxSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientGxSessionData.java
│   │   │       │   │           │       │   ├── rf/
│   │   │       │   │           │       │   │   ├── ClientRfSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRfSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRfSessionData.java
│   │   │       │   │           │       │   ├── ro/
│   │   │       │   │           │       │   │   ├── ClientRoSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRoSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRoSessionData.java
│   │   │       │   │           │       │   ├── rx/
│   │   │       │   │           │       │   │   ├── ClientRxSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── ClientRxSessionImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   └── IClientRxSessionData.java
│   │   │       │   │           │       │   ├── s13/
│   │   │       │   │           │       │   │   ├── ClientS13SessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientS13SessionData.java
│   │   │       │   │           │       │   │   └── S13ClientSessionImpl.java
│   │   │       │   │           │       │   ├── s6a/
│   │   │       │   │           │       │   │   ├── ClientS6aSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientS6aSessionData.java
│   │   │       │   │           │       │   │   └── S6aClientSessionImpl.java
│   │   │       │   │           │       │   ├── sh/
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IShClientSessionData.java
│   │   │       │   │           │       │   │   ├── ShClientSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   └── ShClientSessionImpl.java
│   │   │       │   │           │       │   ├── slg/
│   │   │       │   │           │       │   │   ├── ClientSLgSessionDataLocalImpl.java
│   │   │       │   │           │       │   │   ├── Event.java
│   │   │       │   │           │       │   │   ├── IClientSLgSessionData.java
│   │   │       │   │           │       │   │   └── SLgClientSessionImpl.java
│   │   │       │   │           │       │   └── slh/
│   │   │       │   │           │       │       ├── ClientSLhSessionDataLocalImpl.java
│   │   │       │   │           │       │       ├── Event.java
│   │   │       │   │           │       │       ├── IClientSLhSessionData.java
│   │   │       │   │           │       │       └── SLhClientSessionImpl.java
│   │   │       │   │           │       ├── controller/
│   │   │       │   │           │       │   ├── PeerImpl.java
│   │   │       │   │           │       │   ├── PeerTableImpl.java
│   │   │       │   │           │       │   ├── RealmImpl.java
│   │   │       │   │           │       │   └── RealmTableImpl.java
│   │   │       │   │           │       ├── fsm/
│   │   │       │   │           │       │   ├── FsmFactoryImpl.java
│   │   │       │   │           │       │   ├── FsmState.java
│   │   │       │   │           │       │   └── PeerFSMImpl.java
│   │   │       │   │           │       ├── helpers/
│   │   │       │   │           │       │   ├── AppConfiguration.java
│   │   │       │   │           │       │   ├── AssemblerImpl.java
│   │   │       │   │           │       │   ├── EmptyConfiguration.java
│   │   │       │   │           │       │   ├── ExtensionPoint.java
│   │   │       │   │           │       │   ├── IPConverter.java
│   │   │       │   │           │       │   ├── Loggers.java
│   │   │       │   │           │       │   ├── Ordinal.java
│   │   │       │   │           │       │   ├── Parameters.java
│   │   │       │   │           │       │   ├── UIDGenerator.java
│   │   │       │   │           │       │   └── XMLConfiguration.java
│   │   │       │   │           │       ├── parser/
│   │   │       │   │           │       │   ├── AvpImpl.java
│   │   │       │   │           │       │   ├── AvpSetImpl.java
│   │   │       │   │           │       │   ├── ElementParser.java
│   │   │       │   │           │       │   ├── MessageImpl.java
│   │   │       │   │           │       │   └── MessageParser.java
│   │   │       │   │           │       ├── router/
│   │   │       │   │           │       │   ├── RouterImpl.java
│   │   │       │   │           │       │   ├── WeightedLeastConnectionsRouter.java
│   │   │       │   │           │       │   └── WeightedRoundRobinRouter.java
│   │   │       │   │           │       └── transport/
│   │   │       │   │           │           ├── TransportLayerFactory.java
│   │   │       │   │           │           ├── tcp/
│   │   │       │   │           │           │   ├── TCPClientConnection.java
│   │   │       │   │           │           │   ├── TCPTransportClient.java
│   │   │       │   │           │           │   └── netty/
│   │   │       │   │           │           │       ├── DiameterMessageDecoder.java
│   │   │       │   │           │           │       ├── DiameterMessageEncoder.java
│   │   │       │   │           │           │       ├── DiameterMessageHandler.java
│   │   │       │   │           │           │       ├── TCPClientConnection.java
│   │   │       │   │           │           │       └── TCPTransportClient.java
│   │   │       │   │           │           └── tls/
│   │   │       │   │           │               ├── TLSClientConnection.java
│   │   │       │   │           │               ├── TLSTransportClient.java
│   │   │       │   │           │               ├── TLSUtils.java
│   │   │       │   │           │               └── netty/
│   │   │       │   │           │                   ├── DiameterMessageDecoder.java
│   │   │       │   │           │                   ├── DiameterMessageEncoder.java
│   │   │       │   │           │                   ├── DiameterMessageHandler.java
│   │   │       │   │           │                   ├── InbandSecurityHandler.java
│   │   │       │   │           │                   ├── SslContextFactory.java
│   │   │       │   │           │                   ├── StartTlsClientHandler.java
│   │   │       │   │           │                   ├── StartTlsInitiator.java
│   │   │       │   │           │                   ├── StartTlsServerHandler.java
│   │   │       │   │           │                   ├── TLSClientConnection.java
│   │   │       │   │           │                   └── TLSTransportClient.java
│   │   │       │   │           ├── common/
│   │   │       │   │           │   ├── api/
│   │   │       │   │           │   │   ├── app/
│   │   │       │   │           │   │   │   ├── AppSessionDataLocalImpl.java
│   │   │       │   │           │   │   │   ├── IAppSessionData.java
│   │   │       │   │           │   │   │   ├── IAppSessionDataFactory.java
│   │   │       │   │           │   │   │   ├── IAppSessionFactory.java
│   │   │       │   │           │   │   │   ├── IAppSessionState.java
│   │   │       │   │           │   │   │   ├── acc/
│   │   │       │   │           │   │   │   │   ├── ClientAccSessionState.java
│   │   │       │   │           │   │   │   │   ├── IAccMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IAccSessionData.java
│   │   │       │   │           │   │   │   │   ├── IAccSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientAccActionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerAccActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerAccSessionState.java
│   │   │       │   │           │   │   │   ├── auth/
│   │   │       │   │           │   │   │   │   ├── ClientAuthSessionState.java
│   │   │       │   │           │   │   │   │   ├── IAuthMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IAuthSessionData.java
│   │   │       │   │           │   │   │   │   ├── IAuthSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientAuthActionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerAuthActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerAuthSessionState.java
│   │   │       │   │           │   │   │   ├── cca/
│   │   │       │   │           │   │   │   │   ├── ClientCCASessionState.java
│   │   │       │   │           │   │   │   │   ├── ICCAMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ICCASessionData.java
│   │   │       │   │           │   │   │   │   ├── ICCASessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IClientCCASessionContext.java
│   │   │       │   │           │   │   │   │   ├── IServerCCASessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerCCASessionState.java
│   │   │       │   │           │   │   │   ├── cxdx/
│   │   │       │   │           │   │   │   │   ├── CxDxSessionState.java
│   │   │       │   │           │   │   │   │   ├── ICxDxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ICxDxSessionData.java
│   │   │       │   │           │   │   │   │   └── ICxDxSessionFactory.java
│   │   │       │   │           │   │   │   ├── gx/
│   │   │       │   │           │   │   │   │   ├── ClientGxSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientGxSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IGxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IGxSessionData.java
│   │   │       │   │           │   │   │   │   ├── IGxSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerGxSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerGxSessionState.java
│   │   │       │   │           │   │   │   ├── rf/
│   │   │       │   │           │   │   │   │   ├── ClientRfSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRfActionContext.java
│   │   │       │   │           │   │   │   │   ├── IRfSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRfSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRfActionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRfSessionState.java
│   │   │       │   │           │   │   │   ├── ro/
│   │   │       │   │           │   │   │   │   ├── ClientRoSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRoSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IRoMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IRoSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRoSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRoSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRoSessionState.java
│   │   │       │   │           │   │   │   ├── rx/
│   │   │       │   │           │   │   │   │   ├── ClientRxSessionState.java
│   │   │       │   │           │   │   │   │   ├── IClientRxSessionContext.java
│   │   │       │   │           │   │   │   │   ├── IRxMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IRxSessionData.java
│   │   │       │   │           │   │   │   │   ├── IRxSessionFactory.java
│   │   │       │   │           │   │   │   │   ├── IServerRxSessionContext.java
│   │   │       │   │           │   │   │   │   └── ServerRxSessionState.java
│   │   │       │   │           │   │   │   ├── s13/
│   │   │       │   │           │   │   │   │   ├── IS13MessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IS13SessionData.java
│   │   │       │   │           │   │   │   │   ├── IS13SessionFactory.java
│   │   │       │   │           │   │   │   │   └── S13SessionState.java
│   │   │       │   │           │   │   │   ├── s6a/
│   │   │       │   │           │   │   │   │   ├── IS6aMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IS6aSessionData.java
│   │   │       │   │           │   │   │   │   ├── IS6aSessionFactory.java
│   │   │       │   │           │   │   │   │   └── S6aSessionState.java
│   │   │       │   │           │   │   │   ├── sh/
│   │   │       │   │           │   │   │   │   ├── IShMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── IShSessionData.java
│   │   │       │   │           │   │   │   │   └── IShSessionFactory.java
│   │   │       │   │           │   │   │   ├── slg/
│   │   │       │   │           │   │   │   │   ├── ISLgMessageFactory.java
│   │   │       │   │           │   │   │   │   ├── ISLgSessionData.java
│   │   │       │   │           │   │   │   │   ├── ISLgSessionFactory.java
│   │   │       │   │           │   │   │   │   └── SLgSessionState.java
│   │   │       │   │           │   │   │   └── slh/
│   │   │       │   │           │   │   │       ├── ISLhMessageFactory.java
│   │   │       │   │           │   │   │       ├── ISLhSessionData.java
│   │   │       │   │           │   │   │       ├── ISLhSessionFactory.java
│   │   │       │   │           │   │   │       └── SLhSessionState.java
│   │   │       │   │           │   │   ├── concurrent/
│   │   │       │   │           │   │   │   ├── DummyConcurrentFactory.java
│   │   │       │   │           │   │   │   ├── IConcurrentEntityFactory.java
│   │   │       │   │           │   │   │   └── IConcurrentFactory.java
│   │   │       │   │           │   │   ├── data/
│   │   │       │   │           │   │   │   └── ISessionDatasource.java
│   │   │       │   │           │   │   ├── statistic/
│   │   │       │   │           │   │   │   ├── IStatistic.java
│   │   │       │   │           │   │   │   ├── IStatisticManager.java
│   │   │       │   │           │   │   │   ├── IStatisticProcessor.java
│   │   │       │   │           │   │   │   └── IStatisticRecord.java
│   │   │       │   │           │   │   └── timer/
│   │   │       │   │           │   │       └── ITimerFacility.java
│   │   │       │   │           │   └── impl/
│   │   │       │   │           │       ├── DiameterUtilities.java
│   │   │       │   │           │       ├── app/
│   │   │       │   │           │       │   ├── AppAnswerEventImpl.java
│   │   │       │   │           │       │   ├── AppEventImpl.java
│   │   │       │   │           │       │   ├── AppRequestEventImpl.java
│   │   │       │   │           │       │   ├── AppSessionImpl.java
│   │   │       │   │           │       │   ├── acc/
│   │   │       │   │           │       │   │   ├── AccLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── AccSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── AccountAnswerImpl.java
│   │   │       │   │           │       │   │   ├── AccountRequestImpl.java
│   │   │       │   │           │       │   │   └── AppAccSessionImpl.java
│   │   │       │   │           │       │   ├── auth/
│   │   │       │   │           │       │   │   ├── AbortSessionAnswerImpl.java
│   │   │       │   │           │       │   │   ├── AbortSessionRequestImpl.java
│   │   │       │   │           │       │   │   ├── AppAuthSessionImpl.java
│   │   │       │   │           │       │   │   ├── AuthLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── AuthSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── ReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ReAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── SessionTermAnswerImpl.java
│   │   │       │   │           │       │   │   └── SessionTermRequestImpl.java
│   │   │       │   │           │       │   ├── cca/
│   │   │       │   │           │       │   │   ├── AppCCASessionImpl.java
│   │   │       │   │           │       │   │   ├── CCALocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── CCASessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── JCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   └── JCreditControlRequestImpl.java
│   │   │       │   │           │       │   ├── cxdx/
│   │   │       │   │           │       │   │   ├── CxDxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── CxDxLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── CxDxSession.java
│   │   │       │   │           │       │   │   ├── CxDxSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── JLocationInfoAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JLocationInfoRequestImpl.java
│   │   │       │   │           │       │   │   ├── JMultimediaAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JMultimediaAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── JPushProfileAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JPushProfileRequestImpl.java
│   │   │       │   │           │       │   │   ├── JRegistrationTerminationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JRegistrationTerminationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JServerAssignmentAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JServerAssignmentRequestImpl.java
│   │   │       │   │           │       │   │   ├── JUserAuthorizationAnswerImpl.java
│   │   │       │   │           │       │   │   └── JUserAuthorizationRequestImpl.java
│   │   │       │   │           │       │   ├── gq/
│   │   │       │   │           │       │   │   └── GqSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── gx/
│   │   │       │   │           │       │   │   ├── AppGxSessionImpl.java
│   │   │       │   │           │       │   │   ├── GxCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   ├── GxCreditControlRequestImpl.java
│   │   │       │   │           │       │   │   ├── GxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── GxReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── GxReAuthRequestImpl.java
│   │   │       │   │           │       │   │   └── GxSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── rf/
│   │   │       │   │           │       │   │   ├── AppRfSessionImpl.java
│   │   │       │   │           │       │   │   ├── RfAccountingAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RfAccountingRequestImpl.java
│   │   │       │   │           │       │   │   ├── RfLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   └── RfSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── ro/
│   │   │       │   │           │       │   │   ├── AppRoSessionImpl.java
│   │   │       │   │           │       │   │   ├── RoCreditControlAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RoCreditControlRequestImpl.java
│   │   │       │   │           │       │   │   ├── RoLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   └── RoSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── rx/
│   │   │       │   │           │       │   │   ├── AppRxSessionImpl.java
│   │   │       │   │           │       │   │   ├── RxAAAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxAARequestImpl.java
│   │   │       │   │           │       │   │   ├── RxAbortSessionAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxAbortSessionRequestImpl.java
│   │   │       │   │           │       │   │   ├── RxLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── RxReAuthAnswerImpl.java
│   │   │       │   │           │       │   │   ├── RxReAuthRequestImpl.java
│   │   │       │   │           │       │   │   ├── RxSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── RxSessionTermAnswerImpl.java
│   │   │       │   │           │       │   │   └── RxSessionTermRequestImpl.java
│   │   │       │   │           │       │   ├── s13/
│   │   │       │   │           │       │   │   ├── JMEIdentityCheckAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JMEIdentityCheckRequestImpl.java
│   │   │       │   │           │       │   │   ├── S13LocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── S13LocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── S13Session.java
│   │   │       │   │           │       │   │   └── S13SessionFactoryImpl.java
│   │   │       │   │           │       │   ├── s6a/
│   │   │       │   │           │       │   │   ├── JAuthenticationInformationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JAuthenticationInformationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JCancelLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JCancelLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── JDeleteSubscriberDataAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JDeleteSubscriberDataRequestImpl.java
│   │   │       │   │           │       │   │   ├── JInsertSubscriberDataAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JInsertSubscriberDataRequestImpl.java
│   │   │       │   │           │       │   │   ├── JNotifyAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JNotifyRequestImpl.java
│   │   │       │   │           │       │   │   ├── JPurgeUEAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JPurgeUERequestImpl.java
│   │   │       │   │           │       │   │   ├── JResetAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JResetRequestImpl.java
│   │   │       │   │           │       │   │   ├── JUpdateLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── JUpdateLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── S6aLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── S6aLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── S6aSession.java
│   │   │       │   │           │       │   │   └── S6aSessionFactoryImpl.java
│   │   │       │   │           │       │   ├── sh/
│   │   │       │   │           │       │   │   ├── ProfileUpdateAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ProfileUpdateRequestImpl.java
│   │   │       │   │           │       │   │   ├── PushNotificationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── PushNotificationRequestImpl.java
│   │   │       │   │           │       │   │   ├── ShLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── ShSession.java
│   │   │       │   │           │       │   │   ├── ShSessionFactoryImpl.java
│   │   │       │   │           │       │   │   ├── SubscribeNotificationsAnswerImpl.java
│   │   │       │   │           │       │   │   ├── SubscribeNotificationsRequestImpl.java
│   │   │       │   │           │       │   │   ├── UserDataAnswerImpl.java
│   │   │       │   │           │       │   │   └── UserDataRequestImpl.java
│   │   │       │   │           │       │   ├── slg/
│   │   │       │   │           │       │   │   ├── LocationReportAnswerImpl.java
│   │   │       │   │           │       │   │   ├── LocationReportRequestImpl.java
│   │   │       │   │           │       │   │   ├── ProvideLocationAnswerImpl.java
│   │   │       │   │           │       │   │   ├── ProvideLocationRequestImpl.java
│   │   │       │   │           │       │   │   ├── SLgLocalSessionDataFactory.java
│   │   │       │   │           │       │   │   ├── SLgLocalSessionDataImpl.java
│   │   │       │   │           │       │   │   ├── SLgSession.java
│   │   │       │   │           │       │   │   └── SLgSessionFactoryImpl.java
│   │   │       │   │           │       │   └── slh/
│   │   │       │   │           │       │       ├── LCSRoutingInfoAnswerImpl.java
│   │   │       │   │           │       │       ├── LCSRoutingInfoRequestImpl.java
│   │   │       │   │           │       │       ├── SLhLocalSessionDataFactory.java
│   │   │       │   │           │       │       ├── SLhLocalSessionDataImpl.java
│   │   │       │   │           │       │       ├── SLhSession.java
│   │   │       │   │           │       │       └── SLhSessionFactoryImpl.java
│   │   │       │   │           │       ├── concurrent/
│   │   │       │   │           │       │   ├── AbstractTask.java
│   │   │       │   │           │       │   ├── BaseThreadFactory.java
│   │   │       │   │           │       │   ├── CommonScheduledExecutorService.java
│   │   │       │   │           │       │   ├── ConcurrentEntityFactory.java
│   │   │       │   │           │       │   ├── ConcurrentFactory.java
│   │   │       │   │           │       │   ├── DefaultCallable.java
│   │   │       │   │           │       │   ├── DefaultRejectedExecutionHandler.java
│   │   │       │   │           │       │   └── DefaultRunnable.java
│   │   │       │   │           │       ├── controller/
│   │   │       │   │           │       │   └── AbstractPeer.java
│   │   │       │   │           │       ├── data/
│   │   │       │   │           │       │   └── LocalDataSource.java
│   │   │       │   │           │       ├── statistic/
│   │   │       │   │           │       │   ├── StatisticImpl.java
│   │   │       │   │           │       │   ├── StatisticManagerImpl.java
│   │   │       │   │           │       │   ├── StatisticProcessorImpl.java
│   │   │       │   │           │       │   └── StatisticRecordImpl.java
│   │   │       │   │           │       ├── timer/
│   │   │       │   │           │       │   └── LocalTimerFacilityImpl.java
│   │   │       │   │           │       └── validation/
│   │   │       │   │           │           ├── AvpRepresentationImpl.java
│   │   │       │   │           │           ├── DictionaryImpl.java
│   │   │       │   │           │           └── MessageRepresentationImpl.java
│   │   │       │   │           └── server/
│   │   │       │   │               ├── api/
│   │   │       │   │               │   ├── IFsmFactory.java
│   │   │       │   │               │   ├── IMetaData.java
│   │   │       │   │               │   ├── IMutablePeerTable.java
│   │   │       │   │               │   ├── INetwork.java
│   │   │       │   │               │   ├── IOverloadManager.java
│   │   │       │   │               │   ├── IPeer.java
│   │   │       │   │               │   ├── IRouter.java
│   │   │       │   │               │   ├── IStateMachine.java
│   │   │       │   │               │   ├── agent/
│   │   │       │   │               │   │   ├── IAgent.java
│   │   │       │   │               │   │   ├── IAgentConfiguration.java
│   │   │       │   │               │   │   ├── IProxy.java
│   │   │       │   │               │   │   └── IRedirect.java
│   │   │       │   │               │   └── io/
│   │   │       │   │               │       ├── INetworkConnectionListener.java
│   │   │       │   │               │       ├── INetworkGuard.java
│   │   │       │   │               │       └── ITransportLayerFactory.java
│   │   │       │   │               └── impl/
│   │   │       │   │                   ├── MessageValidator.java
│   │   │       │   │                   ├── MetaDataImpl.java
│   │   │       │   │                   ├── MutablePeerTableImpl.java
│   │   │       │   │                   ├── NetworkImpl.java
│   │   │       │   │                   ├── OverloadManagerImpl.java
│   │   │       │   │                   ├── PeerImpl.java
│   │   │       │   │                   ├── RouterImpl.java
│   │   │       │   │                   ├── StackImpl.java
│   │   │       │   │                   ├── StackImplMBean.java
│   │   │       │   │                   ├── agent/
│   │   │       │   │                   │   ├── AgentConfigurationImpl.java
│   │   │       │   │                   │   ├── AgentImpl.java
│   │   │       │   │                   │   ├── ProxyAgentImpl.java
│   │   │       │   │                   │   └── RedirectAgentImpl.java
│   │   │       │   │                   ├── app/
│   │   │       │   │                   │   ├── acc/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerAccSessionData.java
│   │   │       │   │                   │   │   ├── ServerAccSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerAccSessionImpl.java
│   │   │       │   │                   │   ├── auth/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerAuthSessionData.java
│   │   │       │   │                   │   │   ├── ServerAuthSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerAuthSessionImpl.java
│   │   │       │   │                   │   ├── cca/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerCCASessionData.java
│   │   │       │   │                   │   │   ├── ServerCCASessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerCCASessionImpl.java
│   │   │       │   │                   │   ├── cxdx/
│   │   │       │   │                   │   │   ├── CxDxServerSessionImpl.java
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerCxDxSessionData.java
│   │   │       │   │                   │   │   └── ServerCxDxSessionDataLocalImpl.java
│   │   │       │   │                   │   ├── gq/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   └── GqServerSessionImpl.java
│   │   │       │   │                   │   ├── gx/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerGxSessionData.java
│   │   │       │   │                   │   │   ├── ServerGxSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerGxSessionImpl.java
│   │   │       │   │                   │   ├── rf/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRfSessionData.java
│   │   │       │   │                   │   │   ├── ServerRfSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRfSessionImpl.java
│   │   │       │   │                   │   ├── ro/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRoSessionData.java
│   │   │       │   │                   │   │   ├── ServerRoSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRoSessionImpl.java
│   │   │       │   │                   │   ├── rx/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerRxSessionData.java
│   │   │       │   │                   │   │   ├── ServerRxSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ServerRxSessionImpl.java
│   │   │       │   │                   │   ├── s13/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerS13SessionData.java
│   │   │       │   │                   │   │   ├── S13ServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerS13SessionDataLocalImpl.java
│   │   │       │   │                   │   ├── s6a/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerS6aSessionData.java
│   │   │       │   │                   │   │   ├── S6aServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerS6aSessionDataLocalImpl.java
│   │   │       │   │                   │   ├── sh/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IShServerSessionData.java
│   │   │       │   │                   │   │   ├── ShServerSessionDataLocalImpl.java
│   │   │       │   │                   │   │   └── ShServerSessionImpl.java
│   │   │       │   │                   │   ├── slg/
│   │   │       │   │                   │   │   ├── Event.java
│   │   │       │   │                   │   │   ├── IServerSLgSessionData.java
│   │   │       │   │                   │   │   ├── SLgServerSessionImpl.java
│   │   │       │   │                   │   │   └── ServerSLgSessionDataLocalImpl.java
│   │   │       │   │                   │   └── slh/
│   │   │       │   │                   │       ├── Event.java
│   │   │       │   │                   │       ├── IServerSLhSessionData.java
│   │   │       │   │                   │       ├── SLhServerSessionImpl.java
│   │   │       │   │                   │       └── ServerSLhSessionDataLocalImpl.java
│   │   │       │   │                   ├── fsm/
│   │   │       │   │                   │   ├── FsmFactoryImpl.java
│   │   │       │   │                   │   └── PeerFSMImpl.java
│   │   │       │   │                   ├── helpers/
│   │   │       │   │                   │   ├── ApplicationIdSelector.java
│   │   │       │   │                   │   ├── EmptyConfiguration.java
│   │   │       │   │                   │   ├── ExtensionPoint.java
│   │   │       │   │                   │   ├── Loggers.java
│   │   │       │   │                   │   ├── Parameters.java
│   │   │       │   │                   │   └── XMLConfiguration.java
│   │   │       │   │                   └── io/
│   │   │       │   │                       ├── TransportLayerFactory.java
│   │   │       │   │                       ├── tcp/
│   │   │       │   │                       │   ├── NetworkGuard.java
│   │   │       │   │                       │   └── netty/
│   │   │       │   │                       │       └── NetworkGuard.java
│   │   │       │   │                       └── tls/
│   │   │       │   │                           ├── NetworkGuard.java
│   │   │       │   │                           └── netty/
│   │   │       │   │                               └── NetworkGuard.java
│   │   │       │   └── resources/
│   │   │       │       ├── META-INF/
│   │   │       │       │   ├── agpl-3.0.txt
│   │   │       │       │   ├── jdiameter-client.xsd
│   │   │       │       │   ├── jdiameter-server.xsd
│   │   │       │       │   └── version.properties
│   │   │       │       └── dictionary.xml
│   │   │       └── test/
│   │   │           ├── java/
│   │   │           │   └── org/
│   │   │           │       └── jdiameter/
│   │   │           │           └── client/
│   │   │           │               └── impl/
│   │   │           │                   └── router/
│   │   │           │                       └── TestRouter.java
│   │   │           └── resources/
│   │   │               ├── jdiameter-weightedleastconnections-config.xml
│   │   │               └── jdiameter-weightedroundrobin-config.xml
│   │   └── pom.xml
│   ├── jdiameter-ha/
│   │   ├── api/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── api/
│   │   │                           └── ha/
│   │   │                               └── data/
│   │   │                                   └── CachingException.java
│   │   ├── impl/
│   │   │   ├── pom.xml
│   │   │   └── src/
│   │   │       └── main/
│   │   │           └── java/
│   │   │               └── org/
│   │   │                   └── jdiameter/
│   │   │                       └── impl/
│   │   │                           └── ha/
│   │   │                               ├── client/
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── ClientAccSessionDataReplicatedImpl.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── ClientAuthSessionDataReplicatedImpl.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── ClientCCASessionDataReplicatedImpl.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   └── ClientCxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── ClientGxSessionDataReplicatedImpl.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── ClientRfSessionDataReplicatedImpl.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── ClientRoSessionDataReplicatedImpl.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── ClientRxSessionDataReplicatedImpl.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   └── ClientS13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShClientSessionDataReplicatedImpl.java
│   │   │                               ├── common/
│   │   │                               │   ├── AppSessionDataReplicatedImpl.java
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── AccReplicatedSessionDataFactory.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── AuthReplicatedSessionDataFactory.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── CCAReplicatedSessionDataFactory.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   ├── CxDxReplicatedSessionDataFactory.java
│   │   │                               │   │   └── CxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── GxReplicatedSessionDataFactory.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── RfReplicatedSessionDataFactory.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── RoReplicatedSessionDataFactory.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── RxReplicatedSessionDataFactory.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   ├── S13ReplicatedSessionDataFactory.java
│   │   │                               │   │   └── S13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShReplicatedSessionDataFactory.java
│   │   │                               ├── data/
│   │   │                               │   ├── CachedSessionDatasource.java
│   │   │                               │   └── CachedSessionDatasourceImpl.java
│   │   │                               ├── server/
│   │   │                               │   ├── acc/
│   │   │                               │   │   └── ServerAccSessionDataReplicatedImpl.java
│   │   │                               │   ├── auth/
│   │   │                               │   │   └── ServerAuthSessionDataReplicatedImpl.java
│   │   │                               │   ├── cca/
│   │   │                               │   │   └── ServerCCASessionDataReplicatedImpl.java
│   │   │                               │   ├── cxdx/
│   │   │                               │   │   └── ServerCxDxSessionDataReplicatedImpl.java
│   │   │                               │   ├── gx/
│   │   │                               │   │   └── ServerGxSessionDataReplicatedImpl.java
│   │   │                               │   ├── rf/
│   │   │                               │   │   └── ServerRfSessionDataReplicatedImpl.java
│   │   │                               │   ├── ro/
│   │   │                               │   │   └── ServerRoSessionDataReplicatedImpl.java
│   │   │                               │   ├── rx/
│   │   │                               │   │   └── ServerRxSessionDataReplicatedImpl.java
│   │   │                               │   ├── s13/
│   │   │                               │   │   └── ServerS13SessionDataReplicatedImpl.java
│   │   │                               │   └── sh/
│   │   │                               │       └── ShServerSessionDataReplicatedImpl.java
│   │   │                               └── timer/
│   │   │                                   └── ReplicatedTimerFacilityImpl.java
│   │   └── pom.xml
│   └── pom.xml
├── docs/
│   ├── antora-playbook.yml
│   ├── antora.yml
│   ├── modules/
│   │   └── ROOT/
│   │       ├── assets/
│   │       │   └── images/
│   │       │       └── .keepme
│   │       ├── examples/
│   │       │   └── .keepme
│   │       ├── nav.adoc
│   │       └── pages/
│   │           ├── Author_Group.adoc
│   │           ├── Book_Info.adoc
│   │           ├── Chapter-Introduction.adoc
│   │           ├── Chapter-JDiameter.adoc
│   │           ├── Conventions.adoc
│   │           ├── Diameter_User_Guide.adoc
│   │           ├── Implementing-Diameter-Service.adoc
│   │           ├── Java_Development_Kit-Installing_Configuring_and_Running.adoc
│   │           ├── Preface.adoc
│   │           ├── Revision_History.adoc
│   │           ├── Section-Conventions.adoc
│   │           ├── Section-Feedback.adoc
│   │           ├── Section-Introduction-Message_Format.adoc
│   │           ├── Section-JDiameter-Configuration.adoc
│   │           ├── Section-JDiameter-Design_Overview.adoc
│   │           ├── Section-JDiameter-Setup.adoc
│   │           ├── Section-JDiameter-Source_Overview.adoc
│   │           ├── Section-JDiameter-Validator-Configuration.adoc
│   │           ├── Section-JDiameter-Validator-Source_Overview.adoc
│   │           ├── Section-JDiameter-Validator.adoc
│   │           ├── Setting_the_JBOSS_HOME_Environment_Variable.adoc
│   │           ├── includes/
│   │           │   ├── attributes.adoc
│   │           │   ├── quarkus-jdiameter.adoc
│   │           │   └── quarkus-jdiameter_quarkus.diameter.adoc
│   │           └── index.adoc
│   ├── package.json
│   ├── pom.xml
│   └── templates/
│       └── includes/
│           └── attributes.adoc
├── examples/
│   ├── charging-server-simulator/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── assembly/
│   │           │   └── standalone.xml
│   │           ├── java/
│   │           │   └── org/
│   │           │       └── mobicents/
│   │           │           └── servers/
│   │           │               └── diameter/
│   │           │                   ├── charging/
│   │           │                   │   ├── ChargingServerSimulator.java
│   │           │                   │   └── listeners/
│   │           │                   │       └── RoClientListener.java
│   │           │                   └── utils/
│   │           │                       ├── DiameterUtilities.java
│   │           │                       └── StackCreator.java
│   │           └── resources/
│   │               ├── accounts.properties
│   │               ├── config-server.xml
│   │               ├── dictionary.xml
│   │               └── log4j.properties
│   └── guide1/
│       ├── bin/
│       │   ├── crun.sh
│       │   └── srun.sh
│       ├── pom.xml
│       └── src/
│           └── main/
│               ├── java/
│               │   └── org/
│               │       └── example/
│               │           ├── client/
│               │           │   └── ExampleClient.java
│               │           └── server/
│               │               └── ExampleServer.java
│               └── resources/
│                   ├── log4j.properties
│                   └── org/
│                       └── example/
│                           ├── client/
│                           │   ├── client-jdiameter-config.xml
│                           │   └── dictionary.xml
│                           └── server/
│                               ├── dictionary.xml
│                               └── server-jdiameter-config.xml
├── integration-tests/
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── io/
│       │   │       └── quarkiverse/
│       │   │           └── jdiameter/
│       │   │               └── it/
│       │   │                   └── JdiameterResource.java
│       │   └── resources/
│       │       └── application.properties
│       └── test/
│           └── java/
│               └── io/
│                   └── quarkiverse/
│                       └── jdiameter/
│                           └── it/
│                               ├── JdiameterResourceIT.java
│                               └── JdiameterResourceTest.java
├── lombok.config
├── pom.xml
└── quarkus-diameter/
    ├── deployment/
    │   ├── pom.xml
    │   └── src/
    │       ├── main/
    │       │   └── java/
    │       │       └── io/
    │       │           └── quarkiverse/
    │       │               └── diameter/
    │       │                   └── deployment/
    │       │                       ├── DiameterBuildItem.java
    │       │                       └── DiameterProcessor.java
    │       └── test/
    │           ├── java/
    │           │   └── io/
    │           │       └── quarkiverse/
    │           │           └── diameter/
    │           │               └── deployment/
    │           │                   ├── DiameterConfigTest.java
    │           │                   ├── DiameterInterceptorTest.java
    │           │                   ├── DiameterStackTest.java
    │           │                   └── DiameterValidatorTest.java
    │           └── resources/
    │               └── application.properties
    ├── pom.xml
    └── runtime/
        ├── pom.xml
        └── src/
            └── main/
                ├── java/
                │   └── io/
                │       └── quarkiverse/
                │           └── diameter/
                │               ├── ApplicationMode.java
                │               ├── DiameterApplication.java
                │               ├── DiameterConfig.java
                │               ├── DiameterService.java
                │               ├── DiameterServiceInterceptor.java
                │               ├── DiameterServiceOptions.java
                │               └── runtime/
                │                   ├── DiameterConfiguration.java
                │                   ├── DiameterDetailConfig.java
                │                   ├── DiameterRecorder.java
                │                   ├── DiameterRunTimeConfig.java
                │                   ├── DiameterSetupException.java
                │                   ├── JDiameterVersionRecorder.java
                │                   ├── config/
                │                   │   ├── Agent.java
                │                   │   ├── ApplicationId.java
                │                   │   ├── Concurrent.java
                │                   │   ├── Extension.java
                │                   │   ├── LocalPeer.java
                │                   │   ├── Network.java
                │                   │   ├── OverloadMonitor.java
                │                   │   ├── Parameter.java
                │                   │   ├── Peer.java
                │                   │   └── Realm.java
                │                   └── transport/
                │                       └── TLSClientConnection.java
                └── resources/
                    └── META-INF/
                        └── quarkus-extension.yaml
Download .txt
Showing preview only (539K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (6284 symbols across 731 files)

FILE: core/jdiameter-ha/api/src/main/java/org/jdiameter/api/ha/data/CachingException.java
  class CachingException (line 3) | public class CachingException extends RuntimeException
    method CachingException (line 6) | public CachingException(String message, Throwable cause)

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/acc/ClientAccSessionDataReplicatedImpl.java
  class ClientAccSessionDataReplicatedImpl (line 65) | public class ClientAccSessionDataReplicatedImpl extends AppSessionDataRe...
    method ClientAccSessionDataReplicatedImpl (line 78) | public ClientAccSessionDataReplicatedImpl(String sessionId, CachedSess...
    method setClientAccSessionState (line 93) | @Override
    method getClientAccSessionState (line 106) | @Override
    method setInterimTimerId (line 117) | @Override
    method getInterimTimerId (line 128) | @Override
    method setDestinationHost (line 139) | @Override
    method getDestinationHost (line 150) | @Override
    method setDestinationRealm (line 161) | @Override
    method getDestinationRealm (line 172) | @Override
    method getBuffer (line 178) | @Override
    method setBuffer (line 195) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/auth/ClientAuthSessionDataReplicatedImpl.java
  class ClientAuthSessionDataReplicatedImpl (line 57) | public class ClientAuthSessionDataReplicatedImpl extends AppSessionDataR...
    method ClientAuthSessionDataReplicatedImpl (line 66) | public ClientAuthSessionDataReplicatedImpl(String sessionId, CachedSes...
    method setClientAuthSessionState (line 78) | @Override
    method getClientAuthSessionState (line 91) | @Override
    method isStateless (line 102) | @Override
    method setStateless (line 113) | @Override
    method getDestinationHost (line 124) | @Override
    method setDestinationHost (line 135) | @Override
    method getDestinationRealm (line 146) | @Override
    method setDestinationRealm (line 157) | @Override
    method getTsTimerId (line 168) | @Override
    method setTsTimerId (line 179) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/cca/ClientCCASessionDataReplicatedImpl.java
  class ClientCCASessionDataReplicatedImpl (line 65) | public class ClientCCASessionDataReplicatedImpl extends AppSessionDataRe...
    method ClientCCASessionDataReplicatedImpl (line 82) | public ClientCCASessionDataReplicatedImpl(String sessionId, CachedSess...
    method isEventBased (line 92) | @Override
    method setEventBased (line 98) | @Override
    method isRequestTypeSet (line 104) | @Override
    method setRequestTypeSet (line 110) | @Override
    method getClientCCASessionState (line 116) | @Override
    method setClientCCASessionState (line 122) | @Override
    method getTxTimerId (line 130) | @Override
    method setTxTimerId (line 136) | @Override
    method getTxTimerRequest (line 142) | @Override
    method setTxTimerRequest (line 159) | @Override
    method getBuffer (line 175) | @Override
    method setBuffer (line 192) | @Override
    method getGatheredRequestedAction (line 208) | @Override
    method setGatheredRequestedAction (line 214) | @Override
    method getGatheredCCFH (line 220) | @Override
    method setGatheredCCFH (line 226) | @Override
    method getGatheredDDFH (line 232) | @Override
    method setGatheredDDFH (line 238) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/cxdx/ClientCxDxSessionDataReplicatedImpl.java
  class ClientCxDxSessionDataReplicatedImpl (line 54) | public class ClientCxDxSessionDataReplicatedImpl extends CxDxSessionData...
    method ClientCxDxSessionDataReplicatedImpl (line 57) | public ClientCxDxSessionDataReplicatedImpl(String sessionId, CachedSes...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/gx/ClientGxSessionDataReplicatedImpl.java
  class ClientGxSessionDataReplicatedImpl (line 66) | public class ClientGxSessionDataReplicatedImpl extends AppSessionDataRep...
    method ClientGxSessionDataReplicatedImpl (line 83) | public ClientGxSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isEventBased (line 92) | @Override
    method setEventBased (line 98) | @Override
    method isRequestTypeSet (line 104) | @Override
    method setRequestTypeSet (line 110) | @Override
    method getClientGxSessionState (line 116) | @Override
    method setClientGxSessionState (line 122) | @Override
    method getTxTimerId (line 130) | @Override
    method setTxTimerId (line 136) | @Override
    method getTxTimerRequest (line 142) | @Override
    method setTxTimerRequest (line 160) | @Override
    method getBuffer (line 177) | @Override
    method setBuffer (line 194) | @Override
    method getGatheredRequestedAction (line 210) | @Override
    method setGatheredRequestedAction (line 216) | @Override
    method getGatheredCCFH (line 222) | @Override
    method setGatheredCCFH (line 228) | @Override
    method getGatheredDDFH (line 234) | @Override
    method setGatheredDDFH (line 240) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/rf/ClientRfSessionDataReplicatedImpl.java
  class ClientRfSessionDataReplicatedImpl (line 65) | public class ClientRfSessionDataReplicatedImpl extends AppSessionDataRep...
    method ClientRfSessionDataReplicatedImpl (line 78) | public ClientRfSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method getClientRfSessionState (line 87) | @Override
    method setClientRfSessionState (line 93) | @Override
    method getBuffer (line 101) | @Override
    method setBuffer (line 118) | @Override
    method getTsTimerId (line 140) | @Override
    method setTsTimerId (line 151) | @Override
    method getDestinationHost (line 162) | @Override
    method setDestinationHost (line 173) | @Override
    method getDestinationRealm (line 184) | @Override
    method setDestinationRealm (line 195) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/ro/ClientRoSessionDataReplicatedImpl.java
  class ClientRoSessionDataReplicatedImpl (line 65) | public class ClientRoSessionDataReplicatedImpl extends AppSessionDataRep...
    method ClientRoSessionDataReplicatedImpl (line 82) | public ClientRoSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isEventBased (line 91) | @Override
    method setEventBased (line 97) | @Override
    method isRequestTypeSet (line 103) | @Override
    method setRequestTypeSet (line 109) | @Override
    method getClientRoSessionState (line 115) | @Override
    method setClientRoSessionState (line 121) | @Override
    method getTxTimerId (line 129) | @Override
    method setTxTimerId (line 135) | @Override
    method getTxTimerRequest (line 141) | @Override
    method setTxTimerRequest (line 158) | @Override
    method getBuffer (line 174) | @Override
    method setBuffer (line 191) | @Override
    method getGatheredRequestedAction (line 207) | @Override
    method setGatheredRequestedAction (line 213) | @Override
    method getGatheredCCFH (line 219) | @Override
    method setGatheredCCFH (line 225) | @Override
    method getGatheredDDFH (line 231) | @Override
    method setGatheredDDFH (line 237) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/rx/ClientRxSessionDataReplicatedImpl.java
  class ClientRxSessionDataReplicatedImpl (line 55) | public class ClientRxSessionDataReplicatedImpl extends AppSessionDataRep...
    method ClientRxSessionDataReplicatedImpl (line 62) | public ClientRxSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isEventBased (line 69) | @Override
    method setEventBased (line 75) | @Override
    method isRequestTypeSet (line 81) | @Override
    method setRequestTypeSet (line 87) | @Override
    method getClientRxSessionState (line 93) | @Override
    method setClientRxSessionState (line 99) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/s13/ClientS13SessionDataReplicatedImpl.java
  class ClientS13SessionDataReplicatedImpl (line 31) | public class ClientS13SessionDataReplicatedImpl extends S13SessionDataRe...
    method ClientS13SessionDataReplicatedImpl (line 34) | public ClientS13SessionDataReplicatedImpl(String sessionId, CachedSess...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/client/sh/ShClientSessionDataReplicatedImpl.java
  class ShClientSessionDataReplicatedImpl (line 54) | public class ShClientSessionDataReplicatedImpl extends AppSessionDataRep...
    method ShClientSessionDataReplicatedImpl (line 56) | public ShClientSessionDataReplicatedImpl(String sessionId, CachedSessi...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/AppSessionDataReplicatedImpl.java
  class AppSessionDataReplicatedImpl (line 56) | public class AppSessionDataReplicatedImpl implements IAppSessionData
    method AppSessionDataReplicatedImpl (line 65) | public AppSessionDataReplicatedImpl(String sessionId, CachedSessionDat...
    method setAppSessionIface (line 71) | public void setAppSessionIface(Class<? extends AppSession> iface)
    method getSessionId (line 78) | @Override
    method setApplicationId (line 84) | @Override
    method getApplicationId (line 90) | @Override
    method remove (line 111) | @Override
    method getFieldValue (line 118) | public <T> T getFieldValue(String fieldName, T defaultValue)
    method getFieldValue (line 127) | public <T> T getFieldValue(String fieldName)
    method getByteFieldValue (line 132) | public byte[] getByteFieldValue(String fieldName)
    method setFieldValue (line 142) | public void setFieldValue(String fieldName, byte[] value)
    method setFieldValue (line 147) | public void setFieldValue(String fieldName, Object value)
    method remove (line 153) | public void remove(String fieldName)
    method getDatasource (line 158) | public CachedSessionDatasource getDatasource()
    method toPrimitive (line 163) | protected boolean toPrimitive(Boolean b, boolean _default)
    method toPrimitive (line 168) | protected int toPrimitive(Integer i)
    method toPrimitive (line 173) | protected long toPrimitive(Long l)

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/acc/AccReplicatedSessionDataFactory.java
  class AccReplicatedSessionDataFactory (line 58) | public class AccReplicatedSessionDataFactory implements IAppSessionDataF...
    method AccReplicatedSessionDataFactory (line 63) | public AccReplicatedSessionDataFactory(CachedSessionDatasource replica...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/auth/AuthReplicatedSessionDataFactory.java
  class AuthReplicatedSessionDataFactory (line 58) | public class AuthReplicatedSessionDataFactory implements IAppSessionData...
    method AuthReplicatedSessionDataFactory (line 62) | public AuthReplicatedSessionDataFactory(CachedSessionDatasource replic...
    method getAppSessionData (line 73) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/cca/CCAReplicatedSessionDataFactory.java
  class CCAReplicatedSessionDataFactory (line 58) | public class CCAReplicatedSessionDataFactory implements IAppSessionDataF...
    method CCAReplicatedSessionDataFactory (line 63) | public CCAReplicatedSessionDataFactory(CachedSessionDatasource replica...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/cxdx/CxDxReplicatedSessionDataFactory.java
  class CxDxReplicatedSessionDataFactory (line 58) | public class CxDxReplicatedSessionDataFactory implements IAppSessionData...
    method CxDxReplicatedSessionDataFactory (line 63) | public CxDxReplicatedSessionDataFactory(CachedSessionDatasource replic...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/cxdx/CxDxSessionDataReplicatedImpl.java
  class CxDxSessionDataReplicatedImpl (line 64) | public abstract class CxDxSessionDataReplicatedImpl extends AppSessionDa...
    method CxDxSessionDataReplicatedImpl (line 75) | public CxDxSessionDataReplicatedImpl(String sessionId, CachedSessionDa...
    method setCxDxSessionState (line 86) | @Override
    method getCxDxSessionState (line 99) | @Override
    method getTsTimerId (line 110) | @Override
    method setTsTimerId (line 121) | @Override
    method getBuffer (line 127) | @Override
    method setBuffer (line 144) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/gx/GxReplicatedSessionDataFactory.java
  class GxReplicatedSessionDataFactory (line 58) | public class GxReplicatedSessionDataFactory implements IAppSessionDataFa...
    method GxReplicatedSessionDataFactory (line 63) | public GxReplicatedSessionDataFactory(CachedSessionDatasource replicat...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/rf/RfReplicatedSessionDataFactory.java
  class RfReplicatedSessionDataFactory (line 58) | public class RfReplicatedSessionDataFactory implements IAppSessionDataFa...
    method RfReplicatedSessionDataFactory (line 63) | public RfReplicatedSessionDataFactory(CachedSessionDatasource replicat...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/ro/RoReplicatedSessionDataFactory.java
  class RoReplicatedSessionDataFactory (line 58) | public class RoReplicatedSessionDataFactory implements IAppSessionDataFa...
    method RoReplicatedSessionDataFactory (line 63) | public RoReplicatedSessionDataFactory(CachedSessionDatasource replicat...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/rx/RxReplicatedSessionDataFactory.java
  class RxReplicatedSessionDataFactory (line 58) | public class RxReplicatedSessionDataFactory implements IAppSessionDataFa...
    method RxReplicatedSessionDataFactory (line 63) | public RxReplicatedSessionDataFactory(CachedSessionDatasource replicat...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/s13/S13ReplicatedSessionDataFactory.java
  class S13ReplicatedSessionDataFactory (line 35) | public class S13ReplicatedSessionDataFactory implements IAppSessionDataF...
    method S13ReplicatedSessionDataFactory (line 40) | public S13ReplicatedSessionDataFactory(CachedSessionDatasource replica...
    method getAppSessionData (line 51) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/s13/S13SessionDataReplicatedImpl.java
  class S13SessionDataReplicatedImpl (line 41) | public abstract class S13SessionDataReplicatedImpl extends AppSessionDat...
    method S13SessionDataReplicatedImpl (line 52) | public S13SessionDataReplicatedImpl(String sessionId, CachedSessionDat...
    method setS13SessionState (line 63) | @Override
    method getS13SessionState (line 76) | @Override
    method getTsTimerId (line 87) | @Override
    method setTsTimerId (line 98) | @Override
    method getBuffer (line 104) | @Override
    method setBuffer (line 121) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/common/sh/ShReplicatedSessionDataFactory.java
  class ShReplicatedSessionDataFactory (line 58) | public class ShReplicatedSessionDataFactory implements IAppSessionDataFa...
    method ShReplicatedSessionDataFactory (line 63) | public ShReplicatedSessionDataFactory(CachedSessionDatasource replicat...
    method getAppSessionData (line 74) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/data/CachedSessionDatasource.java
  type CachedSessionDatasource (line 6) | public interface CachedSessionDatasource
    method getDataCache (line 8) | RemoteCache<String, String> getDataCache();
    method getContainer (line 10) | IContainer getContainer();
    method getFieldValue (line 12) | <T> T getFieldValue(String sessionId, String fieldName);
    method setFieldValue (line 14) | void setFieldValue(String sessionId, String fieldName, Object value);
    method removeSession (line 16) | void removeSession(String sessionId);

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/data/CachedSessionDatasourceImpl.java
  class CachedSessionDatasourceImpl (line 102) | public class CachedSessionDatasourceImpl implements ISessionDatasource, ...
    class SessionEntry (line 104) | private static class SessionEntry
      method SessionEntry (line 109) | public SessionEntry(BaseSession session)
      method SessionEntry (line 115) | public SessionEntry(BaseSession session, NetworkReqListener listener)
      method getListener (line 121) | public NetworkReqListener getListener()
      method setListener (line 126) | public NetworkReqListener setListener(NetworkReqListener listener)
      method getSession (line 133) | public BaseSession getSession()
      method toString (line 138) | @Override
    method CachedSessionDatasourceImpl (line 157) | public CachedSessionDatasourceImpl(IContainer container)
    method getDataCache (line 192) | @Override
    method exists (line 198) | @Override
    method addSession (line 209) | @Override
    method getSession (line 223) | @Override
    method getSessionListener (line 243) | @Override
    method removeSession (line 259) | @Override
    method removeSessionListener (line 273) | @Override
    method setSessionListener (line 289) | @Override
    method start (line 302) | @Override
    method stop (line 308) | @Override
    method isClustered (line 319) | @Override
    method getDataFactory (line 330) | @Override
    method loadCachedSession (line 336) | @SuppressWarnings("unchecked")
    method getContainer (line 367) | @Override
    method getFieldValues (line 374) | @SuppressWarnings("unchecked")
    method setFieldValues (line 394) | private void setFieldValues(String sessionId, Map<String, Object> fiel...
    method getFieldValue (line 408) | @Override
    method setFieldValue (line 416) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/acc/ServerAccSessionDataReplicatedImpl.java
  class ServerAccSessionDataReplicatedImpl (line 57) | public class ServerAccSessionDataReplicatedImpl extends AppSessionDataRe...
    method ServerAccSessionDataReplicatedImpl (line 65) | public ServerAccSessionDataReplicatedImpl(String sessionId, CachedSess...
    method isStateless (line 78) | @Override
    method setStateless (line 89) | @Override
    method getServerAccSessionState (line 100) | @Override
    method setServerAccSessionState (line 112) | @Override
    method setTsTimeout (line 120) | @Override
    method getTsTimeout (line 126) | @Override
    method setTsTimerId (line 132) | @Override
    method getTsTimerId (line 138) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/auth/ServerAuthSessionDataReplicatedImpl.java
  class ServerAuthSessionDataReplicatedImpl (line 57) | public class ServerAuthSessionDataReplicatedImpl extends AppSessionDataR...
    method ServerAuthSessionDataReplicatedImpl (line 65) | public ServerAuthSessionDataReplicatedImpl(String sessionId, CachedSes...
    method isStateless (line 77) | @Override
    method setStateless (line 88) | @Override
    method getServerAuthSessionState (line 99) | @Override
    method setServerAuthSessionState (line 111) | @Override
    method setTsTimeout (line 119) | @Override
    method getTsTimeout (line 125) | @Override
    method setTsTimerId (line 131) | @Override
    method getTsTimerId (line 137) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/cca/ServerCCASessionDataReplicatedImpl.java
  class ServerCCASessionDataReplicatedImpl (line 57) | public class ServerCCASessionDataReplicatedImpl extends AppSessionDataRe...
    method ServerCCASessionDataReplicatedImpl (line 64) | public ServerCCASessionDataReplicatedImpl(String sessionId, CachedSess...
    method isStateless (line 76) | @Override
    method setStateless (line 87) | @Override
    method getServerCCASessionState (line 98) | @Override
    method setServerCCASessionState (line 111) | @Override
    method setTccTimerId (line 124) | @Override
    method getTccTimerId (line 135) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/cxdx/ServerCxDxSessionDataReplicatedImpl.java
  class ServerCxDxSessionDataReplicatedImpl (line 54) | public class ServerCxDxSessionDataReplicatedImpl extends CxDxSessionData...
    method ServerCxDxSessionDataReplicatedImpl (line 56) | public ServerCxDxSessionDataReplicatedImpl(String sessionId, CachedSes...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/gx/ServerGxSessionDataReplicatedImpl.java
  class ServerGxSessionDataReplicatedImpl (line 57) | public class ServerGxSessionDataReplicatedImpl extends AppSessionDataRep...
    method ServerGxSessionDataReplicatedImpl (line 64) | public ServerGxSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isStateless (line 76) | @Override
    method setStateless (line 87) | @Override
    method getServerGxSessionState (line 98) | @Override
    method setServerGxSessionState (line 110) | @Override
    method setTccTimerId (line 123) | @Override
    method getTccTimerId (line 134) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/rf/ServerRfSessionDataReplicatedImpl.java
  class ServerRfSessionDataReplicatedImpl (line 57) | public class ServerRfSessionDataReplicatedImpl extends AppSessionDataRep...
    method ServerRfSessionDataReplicatedImpl (line 65) | public ServerRfSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isStateless (line 77) | @Override
    method setStateless (line 88) | @Override
    method getServerRfSessionState (line 99) | @Override
    method setServerRfSessionState (line 111) | @Override
    method setTsTimerId (line 124) | @Override
    method getTsTimerId (line 135) | @Override
    method getTsTimeout (line 146) | @Override
    method setTsTimeout (line 157) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/ro/ServerRoSessionDataReplicatedImpl.java
  class ServerRoSessionDataReplicatedImpl (line 57) | public class ServerRoSessionDataReplicatedImpl extends AppSessionDataRep...
    method ServerRoSessionDataReplicatedImpl (line 64) | public ServerRoSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isStateless (line 76) | @Override
    method setStateless (line 87) | @Override
    method getServerRoSessionState (line 98) | @Override
    method setServerRoSessionState (line 110) | @Override
    method setTccTimerId (line 123) | @Override
    method getTccTimerId (line 134) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/rx/ServerRxSessionDataReplicatedImpl.java
  class ServerRxSessionDataReplicatedImpl (line 55) | public class ServerRxSessionDataReplicatedImpl extends AppSessionDataRep...
    method ServerRxSessionDataReplicatedImpl (line 61) | public ServerRxSessionDataReplicatedImpl(String sessionId, CachedSessi...
    method isStateless (line 73) | @Override
    method setStateless (line 84) | @Override
    method getServerRxSessionState (line 95) | @Override
    method setServerRxSessionState (line 107) | @Override

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/s13/ServerS13SessionDataReplicatedImpl.java
  class ServerS13SessionDataReplicatedImpl (line 31) | public class ServerS13SessionDataReplicatedImpl extends S13SessionDataRe...
    method ServerS13SessionDataReplicatedImpl (line 33) | public ServerS13SessionDataReplicatedImpl(String sessionId, CachedSess...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/server/sh/ShServerSessionDataReplicatedImpl.java
  class ShServerSessionDataReplicatedImpl (line 54) | public class ShServerSessionDataReplicatedImpl extends AppSessionDataRep...
    method ShServerSessionDataReplicatedImpl (line 56) | public ShServerSessionDataReplicatedImpl(String sessionId, CachedSessi...

FILE: core/jdiameter-ha/impl/src/main/java/org/jdiameter/impl/ha/timer/ReplicatedTimerFacilityImpl.java
  class ReplicatedTimerFacilityImpl (line 24) | @ClientListener
    method ReplicatedTimerFacilityImpl (line 34) | public ReplicatedTimerFacilityImpl(IContainer container)
    method cancel (line 50) | @Override
    method schedule (line 66) | @Override
    class TimerTaskRunner (line 82) | private class TimerTaskRunner extends TimerTask
      method TimerTaskRunner (line 89) | public TimerTaskRunner(String sessionId, String timerName, long mill...
      method getTimerId (line 97) | public String getTimerId()
      method run (line 102) | @Override

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Answer.java
  type Answer (line 52) | @SuppressWarnings("all") //3rd party lib
    method getResultCode (line 58) | Avp getResultCode();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ApplicationAlreadyUseException.java
  class ApplicationAlreadyUseException (line 52) | @SuppressWarnings("all") //3rd party lib
    method ApplicationAlreadyUseException (line 62) | public ApplicationAlreadyUseException(String message) {
    method ApplicationAlreadyUseException (line 72) | public ApplicationAlreadyUseException(String message, Throwable cause) {
    method ApplicationAlreadyUseException (line 81) | public ApplicationAlreadyUseException(Throwable cause) {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ApplicationId.java
  class ApplicationId (line 55) | public final class ApplicationId implements Serializable {
    type Standard (line 68) | @SuppressWarnings("all") //3rd party lib
    type Ranges (line 84) | @SuppressWarnings("all") //3rd party lib
    method createByAuthAppId (line 104) | public static ApplicationId createByAuthAppId(long authAppId) {
    method createByAccAppId (line 114) | public static ApplicationId createByAccAppId(long acchAppId) {
    method createByAuthAppId (line 125) | public static ApplicationId createByAuthAppId(long vendorId, long auth...
    method createByAccAppId (line 136) | public static ApplicationId createByAccAppId(long vendorId, long acchA...
    method ApplicationId (line 147) | private ApplicationId(long vendorId, long authAppId, long acctAppId) {
    method getVendorId (line 156) | public long getVendorId() {
    method getAuthAppId (line 163) | public long getAuthAppId() {
    method getAcctAppId (line 171) | public long getAcctAppId() {
    method equals (line 180) | @Override
    method hashCode (line 195) | @Override
    method toString (line 207) | @Override

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Avp.java
  type Avp (line 60) | @SuppressWarnings("all") //3rd party lib
    method getCode (line 2769) | int getCode();
    method isVendorId (line 2774) | boolean isVendorId();
    method isMandatory (line 2779) | boolean isMandatory();
    method isEncrypted (line 2784) | boolean isEncrypted();
    method getVendorId (line 2789) | long getVendorId();
    method getRaw (line 2796) | byte[] getRaw() throws AvpDataException;
    method getOctetString (line 2803) | byte[] getOctetString() throws AvpDataException;
    method getInteger32 (line 2810) | int getInteger32() throws AvpDataException;
    method getInteger64 (line 2817) | long getInteger64() throws AvpDataException;
    method getUnsigned32 (line 2824) | long getUnsigned32() throws AvpDataException;
    method getUnsigned64 (line 2831) | long getUnsigned64() throws AvpDataException;
    method getFloat32 (line 2838) | float getFloat32() throws AvpDataException;
    method getFloat64 (line 2845) | double getFloat64() throws AvpDataException;
    method getAddress (line 2852) | InetAddress getAddress() throws AvpDataException;
    method getTime (line 2859) | Date getTime() throws AvpDataException;
    method getUTF8String (line 2866) | String getUTF8String() throws AvpDataException;
    method getDiameterIdentity (line 2873) | String getDiameterIdentity() throws AvpDataException;
    method getDiameterURI (line 2880) | URI getDiameterURI() throws AvpDataException;
    method getGrouped (line 2887) | AvpSet getGrouped() throws AvpDataException;
    method getRawData (line 2889) | byte[] getRawData();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/AvpDataException.java
  class AvpDataException (line 52) | @SuppressWarnings("all") //3rd party lib
    method AvpDataException (line 62) | public AvpDataException(Avp avp) {
    method AvpDataException (line 72) | public AvpDataException(String message, Avp avp) {
    method AvpDataException (line 83) | public AvpDataException(String message, Throwable cause, Avp avp) {
    method AvpDataException (line 93) | public AvpDataException(Throwable cause, Avp avp) {
    method AvpDataException (line 101) | public AvpDataException() {
    method AvpDataException (line 110) | public AvpDataException(String message) {
    method AvpDataException (line 120) | public AvpDataException(String message, Throwable cause) {
    method AvpDataException (line 129) | public AvpDataException(Throwable cause) {
    method getAvp (line 133) | public Avp getAvp() {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/AvpSet.java
  type AvpSet (line 59) | @SuppressWarnings("all") //3rd party lib
    method getAvp (line 69) | Avp getAvp(int avpCode);
    method getAvpByIndex (line 78) | Avp getAvpByIndex(int index);
    method getAvp (line 88) | Avp getAvp(int avpCode, long vendorId);
    method getAvps (line 97) | AvpSet getAvps(int avpCode);
    method getAvps (line 107) | AvpSet getAvps(int avpCode, long vendorId);
    method getAvpIndex (line 116) | int getAvpIndex(int avpCode);
    method getAvpIndex (line 126) | int getAvpIndex(int avpCode, long vendorId);
    method removeAvp (line 135) | AvpSet removeAvp(int avpCode);
    method removeAvp (line 145) | AvpSet removeAvp(int avpCode, long vendorId);
    method removeAvpByIndex (line 154) | Avp removeAvpByIndex(int index);
    method size (line 161) | int size();
    method asArray (line 168) | Avp[] asArray();
    method addAvp (line 175) | void addAvp(Avp... value);
    method addAvp (line 182) | void addAvp(AvpSet value);
    method addAvp (line 192) | Avp addAvp(int avpCode, byte[] value);
    method addAvp (line 204) | Avp addAvp(int avpCode, byte[] value, boolean mFlag, boolean pFlag);
    method addAvp (line 217) | Avp addAvp(int avpCode, byte[] value, long vendorId, boolean mFlag, bo...
    method addAvp (line 227) | Avp addAvp(int avpCode, int value);
    method addAvp (line 239) | Avp addAvp(int avpCode, int value, boolean mFlag, boolean pFlag);
    method addAvp (line 252) | Avp addAvp(int avpCode, int value, long vendorId, boolean mFlag, boole...
    method addAvp (line 262) | Avp addAvp(int avpCode, long value);
    method addAvp (line 274) | Avp addAvp(int avpCode, long value, boolean mFlag, boolean pFlag);
    method addAvp (line 287) | Avp addAvp(int avpCode, long value, long vendorId, boolean mFlag, bool...
    method addAvp (line 298) | Avp addAvp(int avpCode, long value, boolean asUnsignedInt32);
    method addAvp (line 311) | Avp addAvp(int avpCode, long value, boolean mFlag, boolean pFlag, bool...
    method addAvp (line 325) | Avp addAvp(int avpCode, long value, long vendorId, boolean mFlag, bool...
    method addAvp (line 335) | Avp addAvp(int avpCode, float value);
    method addAvp (line 347) | Avp addAvp(int avpCode, float value, boolean mFlag, boolean pFlag);
    method addAvp (line 360) | Avp addAvp(int avpCode, float value, long vendorId, boolean mFlag, boo...
    method addAvp (line 370) | Avp addAvp(int avpCode, double value);
    method addAvp (line 382) | Avp addAvp(int avpCode, double value, boolean mFlag, boolean pFlag);
    method addAvp (line 395) | Avp addAvp(int avpCode, double value, long vendorId, boolean mFlag, bo...
    method addAvp (line 406) | Avp addAvp(int avpCode, String value, boolean asOctetString);
    method addAvp (line 419) | Avp addAvp(int avpCode, String value, boolean mFlag, boolean pFlag, bo...
    method addAvp (line 433) | Avp addAvp(int avpCode, String value, long vendorId, boolean mFlag, bo...
    method addAvp (line 443) | Avp addAvp(int avpCode, URI value);
    method addAvp (line 455) | Avp addAvp(int avpCode, URI value, boolean mFlag, boolean pFlag);
    method addAvp (line 468) | Avp addAvp(int avpCode, URI value, long vendorId, boolean mFlag, boole...
    method addAvp (line 478) | Avp addAvp(int avpCode, InetAddress value);
    method addAvp (line 490) | Avp addAvp(int avpCode, InetAddress value, boolean mFlag, boolean pFlag);
    method addAvp (line 503) | Avp addAvp(int avpCode, InetAddress value, long vendorId, boolean mFla...
    method addAvp (line 513) | Avp addAvp(int avpCode, Date date);
    method addAvp (line 525) | Avp addAvp(int avpCode, Date date, boolean mFlag, boolean pFlag);
    method addAvp (line 538) | Avp addAvp(int avpCode, Date date, long vendorId, boolean mFlag, boole...
    method addGroupedAvp (line 547) | AvpSet addGroupedAvp(int avpCode);
    method addGroupedAvp (line 558) | AvpSet addGroupedAvp(int avpCode, boolean mFlag, boolean pFlag);
    method addGroupedAvp (line 570) | AvpSet addGroupedAvp(int avpCode, long vendorId, boolean mFlag, boolea...
    method insertAvp (line 578) | void insertAvp(int index, Avp... value);
    method insertAvp (line 586) | void insertAvp(int index, AvpSet value);
    method insertAvp (line 597) | Avp insertAvp(int index, int avpCode, byte[] value);
    method insertAvp (line 610) | Avp insertAvp(int index, int avpCode, byte[] value, boolean mFlag, boo...
    method insertAvp (line 624) | Avp insertAvp(int index, int avpCode, byte[] value, long vendorId, boo...
    method insertAvp (line 635) | Avp insertAvp(int index, int avpCode, int value);
    method insertAvp (line 648) | Avp insertAvp(int index, int avpCode, int value, boolean mFlag, boolea...
    method insertAvp (line 662) | Avp insertAvp(int index, int avpCode, int value, long vendorId, boolea...
    method insertAvp (line 673) | Avp insertAvp(int index, int avpCode, long value);
    method insertAvp (line 686) | Avp insertAvp(int index, int avpCode, long value, boolean mFlag, boole...
    method insertAvp (line 700) | Avp insertAvp(int index, int avpCode, long value, long vendorId, boole...
    method insertAvp (line 712) | Avp insertAvp(int index, int avpCode, long value, boolean asUnsignedIn...
    method insertAvp (line 726) | Avp insertAvp(int index, int avpCode, long value, boolean mFlag, boole...
    method insertAvp (line 741) | Avp insertAvp(int index, int avpCode, long value, long vendorId, boole...
    method insertAvp (line 752) | Avp insertAvp(int index, int avpCode, float value);
    method insertAvp (line 765) | Avp insertAvp(int index, int avpCode, float value, boolean mFlag, bool...
    method insertAvp (line 779) | Avp insertAvp(int index, int avpCode, float value, long vendorId, bool...
    method insertAvp (line 790) | Avp insertAvp(int index, int avpCode, double value);
    method insertAvp (line 803) | Avp insertAvp(int index, int avpCode, double value, boolean mFlag, boo...
    method insertAvp (line 817) | Avp insertAvp(int index, int avpCode, double value, long vendorId, boo...
    method insertAvp (line 829) | Avp insertAvp(int index, int avpCode, String value, boolean asOctetStr...
    method insertAvp (line 843) | Avp insertAvp(int index, int avpCode, String value, boolean mFlag, boo...
    method insertAvp (line 858) | Avp insertAvp(int index, int avpCode, String value, long vendorId, boo...
    method insertAvp (line 869) | Avp insertAvp(int index, int avpCode, URI value);
    method insertAvp (line 882) | Avp insertAvp(int index, int avpCode, URI value, boolean mFlag, boolea...
    method insertAvp (line 896) | Avp insertAvp(int index, int avpCode, URI value, long vendorId, boolea...
    method insertAvp (line 907) | Avp insertAvp(int index, int avpCode, InetAddress value);
    method insertAvp (line 920) | Avp insertAvp(int index, int avpCode, InetAddress value, boolean mFlag...
    method insertAvp (line 934) | Avp insertAvp(int index, int avpCode, InetAddress value, long vendorId...
    method insertAvp (line 945) | Avp insertAvp(int index, int avpCode, Date date);
    method insertAvp (line 958) | Avp insertAvp(int index, int avpCode, Date date, boolean mFlag, boolea...
    method insertAvp (line 972) | Avp insertAvp(int index, int avpCode, Date date, long vendorId, boolea...
    method insertGroupedAvp (line 982) | AvpSet insertGroupedAvp(int index, int avpCode);
    method insertGroupedAvp (line 994) | AvpSet insertGroupedAvp(int index, int avpCode, boolean mFlag, boolean...
    method insertGroupedAvp (line 1007) | AvpSet insertGroupedAvp(int index, int avpCode, long vendorId, boolean...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/BaseSession.java
  type BaseSession (line 61) | @SuppressWarnings("all") //3rd party lib
    method getCreationTime (line 69) | long getCreationTime();
    method getLastAccessedTime (line 76) | long getLastAccessedTime();
    method isValid (line 83) | boolean isValid();
    method release (line 88) | void release();
    method isAppSession (line 95) | boolean isAppSession();
    method isReplicable (line 102) | boolean isReplicable();
    method getSessionId (line 107) | String getSessionId();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Configuration.java
  type Configuration (line 55) | @SuppressWarnings("all") //3rd party lib
    method getByteValue (line 65) | byte getByteValue(int key, byte defaultValue);
    method getIntValue (line 75) | int getIntValue(int key, int defaultValue);
    method getLongValue (line 85) | long getLongValue(int key, long defaultValue);
    method getDoubleValue (line 95) | double getDoubleValue(int key, double defaultValue);
    method getByteArrayValue (line 105) | byte[] getByteArrayValue(int key, byte[] defaultValue);
    method getBooleanValue (line 115) | boolean getBooleanValue(int key, boolean defaultValue);
    method getStringValue (line 125) | String getStringValue(int key, String defaultValue);
    method isAttributeExist (line 131) | boolean isAttributeExist(int key);
    method getChildren (line 139) | Configuration[] getChildren(int key);
    method getValue (line 147) | Object getValue(int key);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ConfigurationListener.java
  type ConfigurationListener (line 51) | @SuppressWarnings("all") //3rd party lib
    method elementChanged (line 62) | boolean elementChanged(int key, Object newValue);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/DisconnectCause.java
  type DisconnectCause (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/EventListener.java
  type EventListener (line 51) | @SuppressWarnings("all") //3rd party lib
    method receivedSuccessMessage (line 61) | void receivedSuccessMessage(R request, A answer);
    method timeoutExpired (line 68) | void timeoutExpired(R request);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/IllegalDiameterStateException.java
  class IllegalDiameterStateException (line 51) | @SuppressWarnings("all") //3rd party lib
    method IllegalDiameterStateException (line 56) | public IllegalDiameterStateException() {
    method IllegalDiameterStateException (line 59) | public IllegalDiameterStateException(String message) {
    method IllegalDiameterStateException (line 63) | public IllegalDiameterStateException(String message, Throwable cause) {
    method IllegalDiameterStateException (line 67) | public IllegalDiameterStateException(Throwable cause) {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/InternalException.java
  class InternalException (line 51) | @SuppressWarnings("all") //3rd party lib
    method InternalException (line 59) | public InternalException() {
    method InternalException (line 68) | public InternalException(String message) {
    method InternalException (line 78) | public InternalException(String message, Throwable cause) {
    method InternalException (line 87) | public InternalException(Throwable cause) {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/LocalAction.java
  type LocalAction (line 51) | public enum LocalAction {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Message.java
  type Message (line 58) | @SuppressWarnings("all") //3rd party lib
    method getVersion (line 134) | byte getVersion();
    method isRequest (line 139) | boolean isRequest();
    method setRequest (line 146) | void setRequest(boolean value);
    method isProxiable (line 151) | boolean isProxiable();
    method setProxiable (line 158) | void setProxiable(boolean value);
    method isError (line 163) | boolean isError();
    method setError (line 170) | void setError(boolean value);
    method isReTransmitted (line 175) | boolean isReTransmitted();
    method setReTransmitted (line 182) | void setReTransmitted(boolean value);
    method getCommandCode (line 187) | int getCommandCode();
    method getSessionId (line 194) | String getSessionId();
    method getApplicationId (line 201) | long getApplicationId();
    method getApplicationIdAvps (line 209) | List<ApplicationId> getApplicationIdAvps();
    method getHopByHopIdentifier (line 218) | long getHopByHopIdentifier();
    method getEndToEndIdentifier (line 228) | long getEndToEndIdentifier();
    method getAvps (line 233) | AvpSet getAvps();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/MetaData.java
  type MetaData (line 53) | @SuppressWarnings("all") //3rd party lib
    method getMajorVersion (line 59) | int getMajorVersion();
    method getMinorVersion (line 64) | int getMinorVersion();
    method getStackType (line 69) | StackType getStackType();
    method getLocalPeer (line 74) | Peer getLocalPeer();
    method getConfiguration (line 81) | Configuration getConfiguration();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Mode.java
  type Mode (line 51) | public enum Mode {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/MutableConfiguration.java
  type MutableConfiguration (line 52) | @SuppressWarnings("all") //3rd party lib
    method setByteValue (line 61) | void setByteValue(int key, byte value);
    method setIntValue (line 69) | void setIntValue(int key, int value);
    method setLongValue (line 77) | void setLongValue(int key, long value);
    method setDoubleValue (line 85) | void setDoubleValue(int key, double value);
    method setByteArrayValue (line 93) | void setByteArrayValue(int key, byte[] value);
    method setBooleanValue (line 101) | void setBooleanValue(int key, boolean value);
    method setStringValue (line 109) | void setStringValue(int key, String value);
    method setChildren (line 117) | void setChildren(int key, Configuration... value);
    method removeValue (line 124) | void removeValue(int... key);
    method addChangeListener (line 133) | void addChangeListener(ConfigurationListener listener, int... keys);
    method removeChangeListener (line 141) | void removeChangeListener(ConfigurationListener listener, int... keys);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/MutablePeerTable.java
  type MutablePeerTable (line 51) | @SuppressWarnings("all") //3rd party lib
    method getStatistic (line 61) | Statistic getStatistic(String peerHost);
    method setPeerTableListener (line 68) | void setPeerTableListener(PeerTableListener listener);
    method addPeer (line 80) | Peer addPeer(URI peer, String realmName, boolean connecting);
    method removePeer (line 89) | Peer removePeer(String peerHost);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Network.java
  type Network (line 57) | @SuppressWarnings("all") //3rd party lib
    method getStatistic (line 65) | Statistic getStatistic();
    method addNetworkReqListener (line 75) | void addNetworkReqListener(NetworkReqListener listener, ApplicationId....
    method addNetworkReqListener (line 84) | void addNetworkReqListener(NetworkReqListener listener, Selector<Messa...
    method removeNetworkReqListener (line 91) | void removeNetworkReqListener(ApplicationId... applicationId);
    method removeNetworkReqListener (line 98) | void removeNetworkReqListener(Selector<Message, ApplicationId>... sele...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/NetworkReqListener.java
  type NetworkReqListener (line 32) | @SuppressWarnings("all") //3rd party lib
    method processRequest (line 42) | Answer processRequest(Request request);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadException.java
  class OverloadException (line 51) | @SuppressWarnings("all") //3rd party lib
    method OverloadException (line 61) | public OverloadException() {
    method OverloadException (line 72) | public OverloadException(double lowThreshold, double highThreshold, do...
    method OverloadException (line 83) | public OverloadException(String message) {
    method OverloadException (line 93) | public OverloadException(String message, Throwable cause) {
    method OverloadException (line 102) | public OverloadException(Throwable cause) {
    method getLowThreshold (line 109) | public double getLowThreshold() {
    method getHighThreshold (line 116) | public double getHighThreshold() {
    method getValue (line 123) | public double getValue() {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadListener.java
  type OverloadListener (line 51) | @SuppressWarnings("all") //3rd party lib
    method overloadDetected (line 60) | void overloadDetected(URI peer, double value);
    method overloadCeased (line 67) | void overloadCeased(URI peer);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadManager.java
  type OverloadManager (line 51) | @SuppressWarnings("all") //3rd party lib
    method parentAppOverloadDetected (line 61) | void parentAppOverloadDetected(ApplicationId id, int type, double value);
    method parentAppOverloadCeased (line 69) | void parentAppOverloadCeased(ApplicationId id, int type);
    method addOverloadListener (line 79) | void addOverloadListener(OverloadListener listener, double lowThreshol...
    method removeOverloadListener (line 87) | void removeOverloadListener(OverloadListener listener, int qIndex);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Peer.java
  type Peer (line 56) | @SuppressWarnings("all") //3rd party lib
    method connect (line 64) | void connect() throws InternalException, IOException, IllegalDiameterS...
    method disconnect (line 71) | void disconnect(int disconnectCause) throws InternalException, Illegal...
    method getState (line 78) | <E> E getState(Class<E> enumc);
    method getUri (line 83) | URI getUri();
    method getIPAddresses (line 88) | InetAddress[] getIPAddresses();
    method getRealmName (line 93) | String getRealmName();
    method getVendorId (line 98) | long getVendorId();
    method getProductName (line 103) | String getProductName();
    method getFirmware (line 108) | long getFirmware();
    method getCommonApplications (line 113) | Set<ApplicationId> getCommonApplications();
    method addPeerStateListener (line 120) | void addPeerStateListener(PeerStateListener listener);
    method removePeerStateListener (line 127) | void removePeerStateListener(PeerStateListener listener);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/PeerState.java
  type PeerState (line 52) | public enum PeerState {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/PeerStateListener.java
  type PeerStateListener (line 51) | @SuppressWarnings("all") //3rd party lib
    method stateChanged (line 60) | void stateChanged(PeerState oldState, PeerState newState);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/PeerTable.java
  type PeerTable (line 55) | @SuppressWarnings("all") //3rd party lib
    method getPeer (line 65) | Peer getPeer(String peerHost);
    method getPeerTable (line 72) | List<Peer> getPeerTable();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/PeerTableListener.java
  type PeerTableListener (line 51) | @SuppressWarnings("all") //3rd party lib
    method peerAccepted (line 59) | void peerAccepted(Peer peer);
    method peerRemoved (line 66) | void peerRemoved(Peer peer);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/RawSession.java
  type RawSession (line 57) | @SuppressWarnings("all") //3rd party lib
    method createMessage (line 69) | Message createMessage(int commandCode, ApplicationId applicationId, Av...
    method createMessage (line 83) | Message createMessage(int commandCode, ApplicationId applicationId, lo...
    method createMessage (line 94) | Message createMessage(Message message, boolean copyAvps);
    method send (line 111) | void send(Message message, EventListener<Message, Message> listener)
    method send (line 131) | void send(Message message, EventListener<Message, Message> listener, l...
    method send (line 150) | Future<Message> send(Message message)
    method send (line 171) | Future<Message> send(Message message, long timeOut, TimeUnit timeUnit)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Realm.java
  type Realm (line 52) | @SuppressWarnings("all") //3rd party lib
    method getName (line 60) | String getName();
    method getApplicationId (line 67) | ApplicationId getApplicationId();
    method getLocalAction (line 74) | LocalAction getLocalAction();
    method isDynamic (line 81) | boolean isDynamic();
    method getExpirationTime (line 88) | long getExpirationTime();
    method isLocal (line 95) | boolean isLocal();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/RealmTable.java
  type RealmTable (line 56) | @SuppressWarnings("all") //3rd party lib
    method getStatistic (line 66) | Statistic getStatistic(String realmName);
    method addRealm (line 83) | Realm addRealm(String realmName, ApplicationId applicationId, LocalAct...
    method realmExists (line 94) | boolean realmExists(String realmName);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Request.java
  type Request (line 53) | @SuppressWarnings("all") //3rd party lib
    method isNetworkRequest (line 59) | boolean isNetworkRequest();
    method createAnswer (line 69) | Answer createAnswer(long resultCode);
    method createAnswer (line 80) | Answer createAnswer(long vendorId, long experementalResultCode);
    method createAnswer (line 87) | Answer createAnswer();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ResultCode.java
  type ResultCode (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/RouteException.java
  class RouteException (line 51) | @SuppressWarnings("all") //3rd party lib
    method RouteException (line 61) | public RouteException(String message) {
    method RouteException (line 71) | public RouteException(String message, Throwable cause) {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Selector.java
  type Selector (line 48) | @SuppressWarnings("all") //3rd party lib
    method checkRule (line 58) | boolean checkRule(T object);
    method getMetaData (line 65) | A getMetaData();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Session.java
  type Session (line 57) | @SuppressWarnings("all") //3rd party lib
    method setRequestListener (line 65) | void setRequestListener(NetworkReqListener listener);
    method createRequest (line 76) | Request createRequest(int commandCode, ApplicationId appId, String des...
    method createRequest (line 89) | Request createRequest(int commandCode, ApplicationId appId, String des...
    method createRequest (line 98) | Request createRequest(Request prevRequest);
    method send (line 115) | void send(Message message, EventListener<Request, Answer> listener)
    method send (line 135) | void send(Message message, EventListener<Request, Answer> listener, lo...
    method send (line 154) | Future<Message> send(Message message)
    method send (line 175) | Future<Message> send(Message message, long timeOut, TimeUnit timeUnit)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/SessionFactory.java
  type SessionFactory (line 53) | @SuppressWarnings("all") //3rd party lib
    method getSessionId (line 64) | String getSessionId();
    method getSessionId (line 75) | String getSessionId(String customPart);
    method getNewRawSession (line 84) | RawSession getNewRawSession() throws InternalException;
    method getNewSession (line 93) | Session getNewSession() throws InternalException;
    method getNewSession (line 104) | Session getNewSession(String sessionId) throws InternalException;
    method getNewAppSession (line 118) | <T extends AppSession> T getNewAppSession(ApplicationId applicationId,...
    method getNewAppSession (line 135) | <T extends AppSession> T getNewAppSession(String sessionId, Applicatio...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Stack.java
  type Stack (line 71) | @SuppressWarnings("all") //3rd party lib
    method init (line 84) | SessionFactory init(Configuration config) throws IllegalDiameterStateE...
    method start (line 92) | void start() throws IllegalDiameterStateException, InternalException;
    method start (line 105) | void start(Mode mode, long timeout, TimeUnit unit) throws IllegalDiame...
    method stop (line 118) | void stop(long timeout, TimeUnit unit, int disconnectCause) throws Ill...
    method destroy (line 123) | void destroy();
    method isActive (line 128) | boolean isActive();
    method getLogger (line 135) | Logger getLogger();
    method getSessionFactory (line 144) | SessionFactory getSessionFactory() throws IllegalDiameterStateException;
    method getDictionary (line 153) | Dictionary getDictionary() throws IllegalDiameterStateException;
    method getMetaData (line 158) | MetaData getMetaData();
    method getSession (line 170) | <T extends BaseSession> T getSession(String sessionId, Class<T> clazz)...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/StackManager.java
  class StackManager (line 81) | @SuppressWarnings("all") //3rd party lib
    method initialize (line 90) | static void initialize() {
    method StackManager (line 99) | private StackManager() {
    method getLogWriter (line 112) | public static PrintWriter getLogWriter() {
    method setLogWriter (line 133) | public static void setLogWriter(java.io.PrintWriter out) {
    method getStack (line 149) | public static synchronized Stack getStack(String className) throws Int...
    method registerStack (line 184) | public static synchronized void registerStack(Stack stack) throws Inte...
    method deregisterStack (line 204) | public static synchronized void deregisterStack(Stack stack) throws In...
    method getStacks (line 240) | public static synchronized Enumeration<Stack> getStacks() {
    method println (line 260) | public static void println(String message) {
    method getCallerClass (line 270) | @SuppressWarnings("all") //3rd party lib
    method loadInitialStacks (line 281) | private static void loadInitialStacks() {
  class GetPropertyAction (line 315) | class GetPropertyAction implements PrivilegedAction<String> {
    method GetPropertyAction (line 320) | GetPropertyAction(String s) {
    method GetPropertyAction (line 324) | GetPropertyAction(String s, String s1) {
    method run (line 329) | @Override
  class StackInfo (line 336) | @SuppressWarnings("all") //3rd party lib
    method toString (line 342) | @Override

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/StackType.java
  type StackType (line 51) | public enum StackType {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Statistic.java
  type Statistic (line 51) | @SuppressWarnings("all") //3rd party lib
    method getName (line 59) | String getName();
    method getDescription (line 66) | String getDescription();
    method enable (line 73) | void enable(boolean value);
    method isEnabled (line 80) | boolean isEnabled();
    method reset (line 85) | void reset();
    method getRecords (line 92) | StatisticRecord[] getRecords();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/StatisticRecord.java
  type StatisticRecord (line 51) | @SuppressWarnings("all") //3rd party lib
    method getName (line 59) | String getName();
    method getDescription (line 66) | String getDescription();
    method getValueAsInt (line 73) | int getValueAsInt();
    method getValueAsDouble (line 80) | double getValueAsDouble();
    method getValueAsLong (line 87) | long getValueAsLong();
    method getChilds (line 94) | StatisticRecord[] getChilds();
    method reset (line 99) | void reset();
    method enable (line 106) | void enable(boolean e);
    method isEnabled (line 108) | boolean isEnabled();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/URI.java
  class URI (line 58) | @SuppressWarnings("all") //3rd party lib
    method URI (line 84) | public URI(String uri) throws URISyntaxException, UnknownServiceExcept...
    method getScheme (line 98) | public String getScheme() {
    method getFQDN (line 105) | public String getFQDN() {
    method getPort (line 114) | public int getPort() {
    method isSecure (line 121) | public boolean isSecure() {
    method getPath (line 128) | public String getPath() {
    method getProtocolParam (line 135) | public String getProtocolParam() {
    method getTransportParam (line 149) | public String getTransportParam() {
    method toString (line 163) | @Override
    method parse (line 176) | private void parse(String uri) throws URISyntaxException {
    method equals (line 254) | @Override
    method hashCode (line 307) | @Override
    method compareTo (line 354) | @Override

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/Wrapper.java
  type Wrapper (line 57) | @SuppressWarnings("all") //3rd party lib
    method isWrapperFor (line 74) | boolean isWrapperFor(java.lang.Class<?> iface) throws InternalException;
    method unwrap (line 90) | <T> T unwrap(java.lang.Class<T> iface) throws InternalException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ClientAccSession.java
  type ClientAccSession (line 61) | @SuppressWarnings("all") //3rd party lib
    method sendAccountRequest (line 74) | void sendAccountRequest(AccountRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ClientAccSessionListener.java
  type ClientAccSessionListener (line 63) | @SuppressWarnings("all") //3rd party lib
    method doAccAnswerEvent (line 79) | void doAccAnswerEvent(ClientAccSession appSession, AccountRequest requ...
    method doOtherEvent (line 95) | void doOtherEvent(AppSession appSession, AppRequestEvent request, AppA...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ServerAccSession.java
  type ServerAccSession (line 61) | @SuppressWarnings("all") //3rd party lib
    method sendAccountAnswer (line 74) | void sendAccountAnswer(AccountAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ServerAccSessionListener.java
  type ServerAccSessionListener (line 62) | @SuppressWarnings("all") //3rd party lib
    method doAccRequestEvent (line 77) | void doAccRequestEvent(ServerAccSession appSession, AccountRequest req...
    method doOtherEvent (line 93) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/events/AccountAnswer.java
  type AccountAnswer (line 56) | @SuppressWarnings("all") //3rd party lib
    method getAccountingRecordType (line 69) | int getAccountingRecordType() throws AvpDataException;
    method getAccountingRecordNumber (line 76) | long getAccountingRecordNumber() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/acc/events/AccountRequest.java
  type AccountRequest (line 56) | @SuppressWarnings("all") //3rd party lib
    method getAccountingRecordType (line 69) | int getAccountingRecordType() throws AvpDataException;
    method getAccountingRecordNumber (line 76) | long getAccountingRecordNumber() throws AvpDataException;
    method setAccountingRecordType (line 83) | void setAccountingRecordType(int recordType) throws AvpDataException;
    method setAccountingRecordNumber (line 90) | void setAccountingRecordNumber(long number) throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/AvpFlag.java
  type AvpFlag (line 52) | public enum AvpFlag {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/AvpType.java
  type AvpType (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/CommandFlag.java
  type CommandFlag (line 52) | public enum CommandFlag {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/Setter.java
  type Type (line 63) | enum Type {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppAnswerEvent.java
  type AppAnswerEvent (line 56) | @SuppressWarnings("all") //3rd party lib
    method getResultCodeAvp (line 66) | Avp getResultCodeAvp() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppEvent.java
  type AppEvent (line 59) | @SuppressWarnings("all") //3rd party lib
    method getCommandCode (line 65) | int getCommandCode();
    method getMessage (line 72) | Message getMessage() throws InternalException;
    method getOriginHost (line 81) | String getOriginHost() throws AvpDataException;
    method getOriginRealm (line 90) | String getOriginRealm() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppRequestEvent.java
  type AppRequestEvent (line 55) | @SuppressWarnings("all") //3rd party lib
    method getDestinationHost (line 65) | String getDestinationHost() throws AvpDataException;
    method getDestinationRealm (line 74) | String getDestinationRealm() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppSession.java
  type AppSession (line 59) | @SuppressWarnings("all") //3rd party lib
    method isStateless (line 67) | boolean isStateless();
    method getSessionAppId (line 74) | ApplicationId getSessionAppId();
    method getSessions (line 81) | List<Session> getSessions();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/State.java
  type State (line 53) | @SuppressWarnings("all") //3rd party lib
    method entryAction (line 59) | void entryAction();
    method exitAction (line 64) | void exitAction();
    method processEvent (line 73) | boolean processEvent(StateEvent event);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateChangeListener.java
  type StateChangeListener (line 52) | @SuppressWarnings("all") //3rd party lib
    method stateChanged (line 61) | @Deprecated
    method stateChanged (line 72) | @SuppressWarnings("unchecked")

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateEvent.java
  type StateEvent (line 55) | @SuppressWarnings("all") //3rd party lib
    method encodeType (line 63) | <E> E encodeType(Class<E> enumType);
    method getType (line 70) | Enum getType();
    method setData (line 85) | void setData(Object data);
    method getData (line 92) | Object getData();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateMachine.java
  type StateMachine (line 56) | @SuppressWarnings("all") //3rd party lib
    method addStateChangeNotification (line 64) | void addStateChangeNotification(StateChangeListener listener);
    method removeStateChangeNotification (line 71) | void removeStateChangeNotification(StateChangeListener listener);
    method handleEvent (line 83) | boolean handleEvent(StateEvent event) throws InternalException, Overlo...
    method getState (line 92) | <E> E getState(Class<E> stateType);

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ClientAuthSession.java
  type ClientAuthSession (line 65) | @SuppressWarnings("all") //3rd party lib
    method sendAuthRequest (line 79) | void sendAuthRequest(AppRequestEvent request)
    method sendReAuthAnswer (line 93) | void sendReAuthAnswer(ReAuthAnswer answer)
    method sendAbortSessionAnswer (line 107) | void sendAbortSessionAnswer(AbortSessionAnswer answer)
    method sendSessionTerminationRequest (line 121) | void sendSessionTerminationRequest(SessionTermRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ClientAuthSessionListener.java
  type ClientAuthSessionListener (line 64) | @SuppressWarnings("all") //3rd party lib
    method doAuthAnswerEvent (line 80) | void doAuthAnswerEvent(ClientAuthSession session, AppRequestEvent requ...
    method doReAuthRequestEvent (line 95) | void doReAuthRequestEvent(ClientAuthSession session, ReAuthRequest req...
    method doAbortSessionRequestEvent (line 110) | void doAbortSessionRequestEvent(ClientAuthSession session, AbortSessio...
    method doSessionTerminationAnswerEvent (line 125) | void doSessionTerminationAnswerEvent(ClientAuthSession session, Sessio...
    method doOtherEvent (line 141) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ServerAuthSession.java
  type ServerAuthSession (line 65) | @SuppressWarnings("all") //3rd party lib
    method sendAuthAnswer (line 79) | void sendAuthAnswer(AppAnswerEvent answer)
    method sendReAuthRequest (line 93) | void sendReAuthRequest(ReAuthRequest request)
    method sendAbortSessionRequest (line 107) | void sendAbortSessionRequest(AbortSessionRequest request)
    method sendSessionTerminationAnswer (line 121) | void sendSessionTerminationAnswer(SessionTermAnswer request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ServerAuthSessionListener.java
  type ServerAuthSessionListener (line 65) | @SuppressWarnings("all") //3rd party lib
    method doAuthRequestEvent (line 80) | void doAuthRequestEvent(ServerAuthSession session, AppRequestEvent req...
    method doReAuthAnswerEvent (line 96) | void doReAuthAnswerEvent(ServerAuthSession session, ReAuthRequest requ...
    method doAbortSessionAnswerEvent (line 111) | void doAbortSessionAnswerEvent(ServerAuthSession session, AbortSession...
    method doSessionTerminationRequestEvent (line 127) | void doSessionTerminationRequestEvent(ServerAuthSession session, Sessi...
    method doOtherEvent (line 143) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/AbortSessionAnswer.java
  type AbortSessionAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/AbortSessionRequest.java
  type AbortSessionRequest (line 56) | @SuppressWarnings("all") //3rd party lib
    method getAuthApplicationId (line 71) | long getAuthApplicationId() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/ReAuthAnswer.java
  type ReAuthAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/ReAuthRequest.java
  type ReAuthRequest (line 56) | @SuppressWarnings("all") //3rd party lib
    method getReAuthRequestType (line 71) | int getReAuthRequestType() throws AvpDataException;
    method getAuthApplicationId (line 80) | long getAuthApplicationId() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/SessionTermAnswer.java
  type SessionTermAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/SessionTermRequest.java
  type SessionTermRequest (line 56) | @SuppressWarnings("all") //3rd party lib
    method getAuthApplicationId (line 69) | long getAuthApplicationId() throws AvpDataException;
    method getTerminationCause (line 76) | int getTerminationCause() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/CCASession.java
  type CCASession (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ClientCCASession.java
  type ClientCCASession (line 59) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlRequest (line 73) | void sendCreditControlRequest(JCreditControlRequest request)
    method sendReAuthAnswer (line 87) | void sendReAuthAnswer(ReAuthAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ClientCCASessionListener.java
  type ClientCCASessionListener (line 63) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlAnswer (line 78) | void doCreditControlAnswer(ClientCCASession session, JCreditControlReq...
    method doReAuthRequest (line 92) | default void doReAuthRequest(ClientCCASession session, ReAuthRequest r...
    method doOtherEvent (line 109) | default void doOtherEvent(AppSession session, AppRequestEvent request,...
    method getDefaultDDFHValue (line 120) | default int getDefaultDDFHValue() {
    method getDefaultCCFHValue (line 131) | default int getDefaultCCFHValue() {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ServerCCASession.java
  type ServerCCASession (line 59) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlAnswer (line 73) | void sendCreditControlAnswer(JCreditControlAnswer answer)
    method sendReAuthRequest (line 87) | void sendReAuthRequest(ReAuthRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ServerCCASessionListener.java
  type ServerCCASessionListener (line 63) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlRequest (line 77) | void doCreditControlRequest(ServerCCASession session, JCreditControlRe...
    method doReAuthAnswer (line 92) | default void doReAuthAnswer(ServerCCASession session, ReAuthRequest re...
    method doOtherEvent (line 109) | default void doOtherEvent(AppSession session, AppRequestEvent request,...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/events/JCreditControlAnswer.java
  type JCreditControlAnswer (line 56) | @SuppressWarnings("all") //3rd party lib
    method isCreditControlFailureHandlingAVPPresent (line 64) | boolean isCreditControlFailureHandlingAVPPresent();
    method getCredidControlFailureHandlingAVPValue (line 66) | int getCredidControlFailureHandlingAVPValue();
    method isDirectDebitingFailureHandlingAVPPresent (line 68) | boolean isDirectDebitingFailureHandlingAVPPresent();
    method getDirectDebitingFailureHandlingAVPValue (line 70) | int getDirectDebitingFailureHandlingAVPValue();
    method isRequestTypeAVPPresent (line 72) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 74) | int getRequestTypeAVPValue();
    method getValidityTimeAvp (line 76) | Avp getValidityTimeAvp();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cca/events/JCreditControlRequest.java
  type JCreditControlRequest (line 57) | @SuppressWarnings("all") //3rd party lib
    method isRequestedActionAVPPresent (line 65) | boolean isRequestedActionAVPPresent();
    method getRequestedActionAVPValue (line 67) | int getRequestedActionAVPValue();
    method isRequestTypeAVPPresent (line 69) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 71) | int getRequestTypeAVPValue();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ClientCxDxSession.java
  type ClientCxDxSession (line 62) | @SuppressWarnings("all") //3rd party lib
    method sendUserAuthorizationRequest (line 65) | void sendUserAuthorizationRequest(JUserAuthorizationRequest request)
    method sendServerAssignmentRequest (line 68) | void sendServerAssignmentRequest(JServerAssignmentRequest request)
    method sendLocationInformationRequest (line 71) | void sendLocationInformationRequest(JLocationInfoRequest request)
    method sendMultimediaAuthRequest (line 74) | void sendMultimediaAuthRequest(JMultimediaAuthRequest request)
    method sendRegistrationTerminationAnswer (line 77) | void sendRegistrationTerminationAnswer(JRegistrationTerminationAnswer ...
    method sendPushProfileAnswer (line 80) | void sendPushProfileAnswer(JPushProfileAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ClientCxDxSessionListener.java
  type ClientCxDxSessionListener (line 67) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 84) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doUserAuthorizationAnswer (line 87) | void doUserAuthorizationAnswer(ClientCxDxSession session, JUserAuthori...
    method doServerAssignmentAnswer (line 91) | void doServerAssignmentAnswer(ClientCxDxSession session, JServerAssign...
    method doRegistrationTerminationRequest (line 94) | void doRegistrationTerminationRequest(ClientCxDxSession session, JRegi...
    method doLocationInformationAnswer (line 97) | void doLocationInformationAnswer(ClientCxDxSession session, JLocationI...
    method doPushProfileRequest (line 100) | void doPushProfileRequest(ClientCxDxSession session, JPushProfileReque...
    method doMultimediaAuthAnswer (line 103) | void doMultimediaAuthAnswer(ClientCxDxSession session, JMultimediaAuth...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ServerCxDxSession.java
  type ServerCxDxSession (line 62) | @SuppressWarnings("all") //3rd party lib
    method sendUserAuthorizationAnswer (line 65) | void sendUserAuthorizationAnswer(JUserAuthorizationAnswer answer)
    method sendServerAssignmentAnswer (line 68) | void sendServerAssignmentAnswer(JServerAssignmentAnswer answer)
    method sendLocationInformationAnswer (line 71) | void sendLocationInformationAnswer(JLocationInfoAnswer answer)
    method sendMultimediaAuthAnswer (line 74) | void sendMultimediaAuthAnswer(JMultimediaAuthAnswer answer)
    method sendRegistrationTerminationRequest (line 77) | void sendRegistrationTerminationRequest(JRegistrationTerminationReques...
    method sendPushProfileRequest (line 80) | void sendPushProfileRequest(JPushProfileRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ServerCxDxSessionListener.java
  type ServerCxDxSessionListener (line 65) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 82) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doUserAuthorizationRequest (line 85) | void doUserAuthorizationRequest(ServerCxDxSession session, JUserAuthor...
    method doServerAssignmentRequest (line 88) | void doServerAssignmentRequest(ServerCxDxSession session, JServerAssig...
    method doRegistrationTerminationAnswer (line 91) | void doRegistrationTerminationAnswer(ServerCxDxSession session, JRegis...
    method doLocationInformationRequest (line 95) | void doLocationInformationRequest(ServerCxDxSession session, JLocation...
    method doPushProfileAnswer (line 98) | void doPushProfileAnswer(ServerCxDxSession session, JPushProfileReques...
    method doMultimediaAuthRequest (line 101) | void doMultimediaAuthRequest(ServerCxDxSession session, JMultimediaAut...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JLocationInfoAnswer.java
  type JLocationInfoAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JLocationInfoRequest.java
  type JLocationInfoRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JMultimediaAuthAnswer.java
  type JMultimediaAuthAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JMultimediaAuthRequest.java
  type JMultimediaAuthRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JPushProfileAnswer.java
  type JPushProfileAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JPushProfileRequest.java
  type JPushProfileRequest (line 57) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JRegistrationTerminationAnswer.java
  type JRegistrationTerminationAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JRegistrationTerminationRequest.java
  type JRegistrationTerminationRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JServerAssignmentAnswer.java
  type JServerAssignmentAnswer (line 56) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JServerAssignmentRequest.java
  type JServerAssignmentRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JUserAuthorizationAnswer.java
  type JUserAuthorizationAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JUserAuthorizationRequest.java
  type JUserAuthorizationRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gq/ClientGqSessionListener.java
  type ClientGqSessionListener (line 5) | public interface ClientGqSessionListener extends ClientAuthSessionListen...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gq/GqClientSession.java
  type GqClientSession (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gq/GqServerSession.java
  type GqServerSession (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gq/ServerGqSessionListener.java
  type ServerGqSessionListener (line 5) | public interface ServerGqSessionListener extends ServerAuthSessionListen...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ClientGxSession.java
  type ClientGxSession (line 60) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlRequest (line 74) | void sendCreditControlRequest(final GxCreditControlRequest request)
    method sendGxReAuthAnswer (line 89) | void sendGxReAuthAnswer(final GxReAuthAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ClientGxSessionListener.java
  type ClientGxSessionListener (line 62) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlAnswer (line 77) | void doCreditControlAnswer(ClientGxSession session, GxCreditControlReq...
    method doGxReAuthRequest (line 91) | default void doGxReAuthRequest(ClientGxSession session, GxReAuthReques...
    method doOtherEvent (line 108) | default void doOtherEvent(AppSession session, AppRequestEvent request,...
    method getDefaultDDFHValue (line 119) | default int getDefaultDDFHValue() {
    method getDefaultCCFHValue (line 130) | default int getDefaultCCFHValue() {

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ServerGxSession.java
  type ServerGxSession (line 60) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlAnswer (line 74) | void sendCreditControlAnswer(GxCreditControlAnswer answer)
    method sendGxReAuthRequest (line 88) | void sendGxReAuthRequest(GxReAuthRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ServerGxSessionListener.java
  type ServerGxSessionListener (line 62) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlRequest (line 77) | void doCreditControlRequest(ServerGxSession session, GxCreditControlRe...
    method doGxReAuthAnswer (line 94) | void doGxReAuthAnswer(ServerGxSession session, GxReAuthRequest request...
    method doOtherEvent (line 112) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxCreditControlAnswer.java
  type GxCreditControlAnswer (line 54) | @SuppressWarnings("all") //3rd party lib
    method isCreditControlFailureHandlingAVPPresent (line 61) | boolean isCreditControlFailureHandlingAVPPresent();
    method getCredidControlFailureHandlingAVPValue (line 63) | int getCredidControlFailureHandlingAVPValue();
    method isDirectDebitingFailureHandlingAVPPresent (line 65) | boolean isDirectDebitingFailureHandlingAVPPresent();
    method getDirectDebitingFailureHandlingAVPValue (line 67) | int getDirectDebitingFailureHandlingAVPValue();
    method isRequestTypeAVPPresent (line 69) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 71) | int getRequestTypeAVPValue();
    method getValidityTimeAvp (line 73) | Avp getValidityTimeAvp();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxCreditControlRequest.java
  type GxCreditControlRequest (line 53) | @SuppressWarnings("all") //3rd party lib
    method isRequestedActionAVPPresent (line 60) | boolean isRequestedActionAVPPresent();
    method getRequestedActionAVPValue (line 62) | int getRequestedActionAVPValue();
    method isRequestTypeAVPPresent (line 64) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 66) | int getRequestTypeAVPValue();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxReAuthAnswer.java
  type GxReAuthAnswer (line 53) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxReAuthRequest.java
  type GxReAuthRequest (line 53) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ClientRfSession.java
  type ClientRfSession (line 59) | @SuppressWarnings("all") //3rd party lib
    method sendAccountRequest (line 72) | void sendAccountRequest(RfAccountingRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ClientRfSessionListener.java
  type ClientRfSessionListener (line 61) | @SuppressWarnings("all") //3rd party lib
    method doRfAccountingAnswerEvent (line 77) | void doRfAccountingAnswerEvent(ClientRfSession appSession, RfAccountin...
    method doOtherEvent (line 93) | void doOtherEvent(AppSession appSession, AppRequestEvent request, AppA...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ServerRfSession.java
  type ServerRfSession (line 59) | @SuppressWarnings("all") //3rd party lib
    method sendAccountAnswer (line 72) | void sendAccountAnswer(RfAccountingAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ServerRfSessionListener.java
  type ServerRfSessionListener (line 60) | @SuppressWarnings("all") //3rd party lib
    method doRfAccountingRequestEvent (line 75) | void doRfAccountingRequestEvent(ServerRfSession appSession, RfAccounti...
    method doOtherEvent (line 91) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/events/RfAccountingAnswer.java
  type RfAccountingAnswer (line 55) | @SuppressWarnings("all") //3rd party lib
    method getAccountingRecordType (line 68) | int getAccountingRecordType() throws AvpDataException;
    method getAccountingRecordNumber (line 75) | long getAccountingRecordNumber() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rf/events/RfAccountingRequest.java
  type RfAccountingRequest (line 55) | @SuppressWarnings("all") //3rd party lib
    method getAccountingRecordType (line 68) | int getAccountingRecordType() throws AvpDataException;
    method getAccountingRecordNumber (line 75) | long getAccountingRecordNumber() throws AvpDataException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ClientRoSession.java
  type ClientRoSession (line 61) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlRequest (line 75) | void sendCreditControlRequest(RoCreditControlRequest request)
    method sendReAuthAnswer (line 89) | void sendReAuthAnswer(ReAuthAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ClientRoSessionListener.java
  type ClientRoSessionListener (line 63) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlAnswer (line 79) | void doCreditControlAnswer(ClientRoSession session, RoCreditControlReq...
    method doReAuthRequest (line 94) | void doReAuthRequest(ClientRoSession session, ReAuthRequest request)
    method doOtherEvent (line 111) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method getDefaultDDFHValue (line 121) | int getDefaultDDFHValue();
    method getDefaultCCFHValue (line 130) | int getDefaultCCFHValue();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ServerRoSession.java
  type ServerRoSession (line 61) | @SuppressWarnings("all") //3rd party lib
    method sendCreditControlAnswer (line 75) | void sendCreditControlAnswer(RoCreditControlAnswer answer)
    method sendReAuthRequest (line 89) | void sendReAuthRequest(ReAuthRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ServerRoSessionListener.java
  type ServerRoSessionListener (line 63) | @SuppressWarnings("all") //3rd party lib
    method doCreditControlRequest (line 78) | void doCreditControlRequest(ServerRoSession session, RoCreditControlRe...
    method doReAuthAnswer (line 94) | void doReAuthAnswer(ServerRoSession session, ReAuthRequest request, Re...
    method doOtherEvent (line 111) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/events/RoCreditControlAnswer.java
  type RoCreditControlAnswer (line 55) | @SuppressWarnings("all") //3rd party lib
    method isCreditControlFailureHandlingAVPPresent (line 63) | boolean isCreditControlFailureHandlingAVPPresent();
    method getCredidControlFailureHandlingAVPValue (line 65) | int getCredidControlFailureHandlingAVPValue();
    method isDirectDebitingFailureHandlingAVPPresent (line 67) | boolean isDirectDebitingFailureHandlingAVPPresent();
    method getDirectDebitingFailureHandlingAVPValue (line 69) | int getDirectDebitingFailureHandlingAVPValue();
    method isRequestTypeAVPPresent (line 71) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 73) | int getRequestTypeAVPValue();
    method getValidityTimeAvp (line 75) | Avp getValidityTimeAvp();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/ro/events/RoCreditControlRequest.java
  type RoCreditControlRequest (line 54) | @SuppressWarnings("all") //3rd party lib
    method isRequestedActionAVPPresent (line 62) | boolean isRequestedActionAVPPresent();
    method getRequestedActionAVPValue (line 64) | int getRequestedActionAVPValue();
    method isRequestTypeAVPPresent (line 66) | boolean isRequestTypeAVPPresent();
    method getRequestTypeAVPValue (line 68) | int getRequestTypeAVPValue();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ClientRxSession.java
  type ClientRxSession (line 64) | @SuppressWarnings("all") //3rd party lib
    method sendAARequest (line 67) | void sendAARequest(final RxAARequest request) throws InternalException...
    method sendSessionTermRequest (line 70) | void sendSessionTermRequest(final RxSessionTermRequest request)
    method sendReAuthAnswer (line 74) | void sendReAuthAnswer(final RxReAuthAnswer answer)
    method sendAbortSessionAnswer (line 77) | void sendAbortSessionAnswer(final RxAbortSessionAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ClientRxSessionListener.java
  type ClientRxSessionListener (line 61) | @SuppressWarnings("all") //3rd party lib
    method doAAAnswer (line 64) | void doAAAnswer(ClientRxSession session, RxAARequest request, RxAAAnsw...
    method doReAuthRequest (line 67) | default void doReAuthRequest(ClientRxSession session, RxReAuthRequest ...
    method doSessionTermAnswer (line 71) | default void doSessionTermAnswer(ClientRxSession session, RxSessionTer...
    method doAbortSessionRequest (line 75) | default void doAbortSessionRequest(ClientRxSession session, RxAbortSes...
    method doOtherEvent (line 79) | default void doOtherEvent(AppSession session, AppRequestEvent request,...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ServerRxSession.java
  type ServerRxSession (line 64) | @SuppressWarnings("all") //3rd party lib
    method sendAAAnswer (line 67) | void sendAAAnswer(RxAAAnswer answer)
    method sendSessionTermAnswer (line 70) | void sendSessionTermAnswer(RxSessionTermAnswer answer)
    method sendReAuthRequest (line 73) | void sendReAuthRequest(RxReAuthRequest request)
    method sendAbortSessionRequest (line 76) | void sendAbortSessionRequest(RxAbortSessionRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ServerRxSessionListener.java
  type ServerRxSessionListener (line 61) | @SuppressWarnings("all") //3rd party lib
    method doAARequest (line 64) | void doAARequest(ServerRxSession session, RxAARequest request)
    method doSessionTermRequest (line 67) | default void doSessionTermRequest(ServerRxSession session, RxSessionTe...
    method doReAuthAnswer (line 71) | default void doReAuthAnswer(ServerRxSession session, RxReAuthRequest r...
    method doAbortSessionAnswer (line 75) | default void doAbortSessionAnswer(ServerRxSession session, RxAbortSess...
    method doOtherEvent (line 79) | default void doOtherEvent(AppSession session, AppRequestEvent request,...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAAAnswer.java
  type RxAAAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAARequest.java
  type RxAARequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAbortSessionAnswer.java
  type RxAbortSessionAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAbortSessionRequest.java
  type RxAbortSessionRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxReAuthAnswer.java
  type RxReAuthAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxReAuthRequest.java
  type RxReAuthRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxSessionTermAnswer.java
  type RxSessionTermAnswer (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxSessionTermRequest.java
  type RxSessionTermRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ClientS13Session.java
  type ClientS13Session (line 30) | @SuppressWarnings("all") //3rd party lib
    method sendMEIdentityCheckRequest (line 43) | void sendMEIdentityCheckRequest(JMEIdentityCheckRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ClientS13SessionListener.java
  type ClientS13SessionListener (line 32) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 35) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doMEIdentityCheckAnswerEvent (line 38) | void doMEIdentityCheckAnswerEvent(ClientS13Session session, JMEIdentit...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ServerS13Session.java
  type ServerS13Session (line 30) | @SuppressWarnings("all") //3rd party lib
    method sendMEIdentityCheckAnswer (line 43) | void sendMEIdentityCheckAnswer(JMEIdentityCheckAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ServerS13SessionListener.java
  type ServerS13SessionListener (line 31) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 33) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doMEIdentityCheckRequestEvent (line 36) | void doMEIdentityCheckRequestEvent(ServerS13Session session, JMEIdenti...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/events/JMEIdentityCheckAnswer.java
  type JMEIdentityCheckAnswer (line 24) | @SuppressWarnings("all") //3rd party lib
    method isEquipmentStatusAVPPresent (line 32) | boolean isEquipmentStatusAVPPresent();
    method getEquipmentStatus (line 34) | int getEquipmentStatus();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s13/events/JMEIdentityCheckRequest.java
  type JMEIdentityCheckRequest (line 30) | @SuppressWarnings("all") //3rd party lib
    method getTerminalInformationAvp (line 37) | Avp getTerminalInformationAvp();
    method hasIMEI (line 39) | boolean hasIMEI();
    method getIMEI (line 41) | String getIMEI();
    method hasTgpp2MEID (line 43) | boolean hasTgpp2MEID();
    method getTgpp2MEID (line 45) | byte[] getTgpp2MEID();
    method hasSoftwareVersion (line 47) | boolean hasSoftwareVersion();
    method getSoftwareVersion (line 49) | String getSoftwareVersion();
    method isUserNameAVPPresent (line 51) | boolean isUserNameAVPPresent();
    method getUserName (line 53) | String getUserName();

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ClientS6aSession.java
  type ClientS6aSession (line 63) | @SuppressWarnings("all") //3rd party lib
    method sendAuthenticationInformationRequest (line 77) | void sendAuthenticationInformationRequest(JAuthenticationInformationRe...
    method sendPurgeUERequest (line 91) | void sendPurgeUERequest(JPurgeUERequest request)
    method sendNotifyRequest (line 105) | void sendNotifyRequest(JNotifyRequest request)
    method sendUpdateLocationRequest (line 119) | void sendUpdateLocationRequest(JUpdateLocationRequest request)
    method sendCancelLocationAnswer (line 133) | void sendCancelLocationAnswer(JCancelLocationAnswer answer)
    method sendInsertSubscriberDataAnswer (line 147) | void sendInsertSubscriberDataAnswer(JInsertSubscriberDataAnswer answer)
    method sendDeleteSubscriberDataAnswer (line 161) | void sendDeleteSubscriberDataAnswer(JDeleteSubscriberDataAnswer answer)
    method sendResetAnswer (line 175) | void sendResetAnswer(JResetAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ClientS6aSessionListener.java
  type ClientS6aSessionListener (line 68) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 71) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doCancelLocationRequestEvent (line 74) | void doCancelLocationRequestEvent(ClientS6aSession session, JCancelLoc...
    method doInsertSubscriberDataRequestEvent (line 77) | void doInsertSubscriberDataRequestEvent(ClientS6aSession session, JIns...
    method doDeleteSubscriberDataRequestEvent (line 80) | void doDeleteSubscriberDataRequestEvent(ClientS6aSession session, JDel...
    method doResetRequestEvent (line 83) | void doResetRequestEvent(ClientS6aSession session, JResetRequest request)
    method doAuthenticationInformationAnswerEvent (line 86) | void doAuthenticationInformationAnswerEvent(ClientS6aSession session, ...
    method doPurgeUEAnswerEvent (line 90) | void doPurgeUEAnswerEvent(ClientS6aSession session, JPurgeUERequest re...
    method doUpdateLocationAnswerEvent (line 93) | void doUpdateLocationAnswerEvent(ClientS6aSession session, JUpdateLoca...
    method doNotifyAnswerEvent (line 96) | void doNotifyAnswerEvent(ClientS6aSession session, JNotifyRequest requ...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ServerS6aSession.java
  type ServerS6aSession (line 65) | @SuppressWarnings("all") //3rd party lib
    method sendCancelLocationRequest (line 79) | void sendCancelLocationRequest(JCancelLocationRequest request)
    method sendInsertSubscriberDataRequest (line 93) | void sendInsertSubscriberDataRequest(JInsertSubscriberDataRequest requ...
    method sendDeleteSubscriberDataRequest (line 107) | void sendDeleteSubscriberDataRequest(JDeleteSubscriberDataRequest requ...
    method sendResetRequest (line 121) | void sendResetRequest(JResetRequest request)
    method sendAuthenticationInformationAnswer (line 135) | void sendAuthenticationInformationAnswer(JAuthenticationInformationAns...
    method sendPurgeUEAnswer (line 149) | void sendPurgeUEAnswer(JPurgeUEAnswer answer)
    method sendNotifyAnswer (line 163) | void sendNotifyAnswer(JNotifyAnswer answer)
    method sendUpdateLocationAnswer (line 177) | void sendUpdateLocationAnswer(JUpdateLocationAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ServerS6aSessionListener.java
  type ServerS6aSessionListener (line 70) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 73) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doAuthenticationInformationRequestEvent (line 76) | void doAuthenticationInformationRequestEvent(ServerS6aSession session,...
    method doPurgeUERequestEvent (line 79) | void doPurgeUERequestEvent(ServerS6aSession session, JPurgeUERequest r...
    method doUpdateLocationRequestEvent (line 82) | void doUpdateLocationRequestEvent(ServerS6aSession session, JUpdateLoc...
    method doNotifyRequestEvent (line 85) | void doNotifyRequestEvent(ServerS6aSession session, JNotifyRequest req...
    method doCancelLocationAnswerEvent (line 88) | void doCancelLocationAnswerEvent(ServerS6aSession session, JCancelLoca...
    method doInsertSubscriberDataAnswerEvent (line 91) | void doInsertSubscriberDataAnswerEvent(ServerS6aSession session, JInse...
    method doDeleteSubscriberDataAnswerEvent (line 95) | void doDeleteSubscriberDataAnswerEvent(ServerS6aSession session, JDele...
    method doResetAnswerEvent (line 99) | void doResetAnswerEvent(ServerS6aSession session, JResetRequest reques...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JAuthenticationInformationAnswer.java
  type JAuthenticationInformationAnswer (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JAuthenticationInformationRequest.java
  type JAuthenticationInformationRequest (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JCancelLocationAnswer.java
  type JCancelLocationAnswer (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JCancelLocationRequest.java
  type JCancelLocationRequest (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JDeleteSubscriberDataAnswer.java
  type JDeleteSubscriberDataAnswer (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JDeleteSubscriberDataRequest.java
  type JDeleteSubscriberDataRequest (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JInsertSubscriberDataAnswer.java
  type JInsertSubscriberDataAnswer (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JInsertSubscriberDataRequest.java
  type JInsertSubscriberDataRequest (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JNotifyAnswer.java
  type JNotifyAnswer (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JNotifyRequest.java
  type JNotifyRequest (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JPurgeUEAnswer.java
  type JPurgeUEAnswer (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JPurgeUERequest.java
  type JPurgeUERequest (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JResetAnswer.java
  type JResetAnswer (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JResetRequest.java
  type JResetRequest (line 50) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JUpdateLocationAnswer.java
  type JUpdateLocationAnswer (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JUpdateLocationRequest.java
  type JUpdateLocationRequest (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ClientShSession.java
  type ClientShSession (line 60) | @SuppressWarnings("all") //3rd party lib
    method sendProfileUpdateRequest (line 74) | void sendProfileUpdateRequest(ProfileUpdateRequest request)
    method sendSubscribeNotificationsRequest (line 88) | void sendSubscribeNotificationsRequest(SubscribeNotificationsRequest r...
    method sendUserDataRequest (line 102) | void sendUserDataRequest(UserDataRequest request)
    method sendPushNotificationAnswer (line 105) | void sendPushNotificationAnswer(PushNotificationAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ClientShSessionListener.java
  type ClientShSessionListener (line 64) | @SuppressWarnings("all") //3rd party lib
    method doSubscribeNotificationsAnswerEvent (line 67) | void doSubscribeNotificationsAnswerEvent(ClientShSession session, Subs...
    method doProfileUpdateAnswerEvent (line 71) | void doProfileUpdateAnswerEvent(ClientShSession session, ProfileUpdate...
    method doPushNotificationRequestEvent (line 74) | void doPushNotificationRequestEvent(ClientShSession session, PushNotif...
    method doUserDataAnswerEvent (line 77) | void doUserDataAnswerEvent(ClientShSession session, UserDataRequest re...
    method doOtherEvent (line 93) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ServerShSession.java
  type ServerShSession (line 60) | @SuppressWarnings("all") //3rd party lib
    method sendPushNotificationRequest (line 74) | void sendPushNotificationRequest(PushNotificationRequest request)
    method sendProfileUpdateAnswer (line 88) | void sendProfileUpdateAnswer(ProfileUpdateAnswer answer)
    method sendSubscribeNotificationsAnswer (line 102) | void sendSubscribeNotificationsAnswer(SubscribeNotificationsAnswer ans...
    method sendUserDataAnswer (line 116) | void sendUserDataAnswer(UserDataAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ServerShSessionListener.java
  type ServerShSessionListener (line 62) | @SuppressWarnings("all") //3rd party lib
    method doSubscribeNotificationsRequestEvent (line 65) | void doSubscribeNotificationsRequestEvent(ServerShSession session, Sub...
    method doProfileUpdateRequestEvent (line 68) | void doProfileUpdateRequestEvent(ServerShSession session, ProfileUpdat...
    method doPushNotificationAnswerEvent (line 71) | void doPushNotificationAnswerEvent(ServerShSession session, PushNotifi...
    method doUserDataRequestEvent (line 74) | void doUserDataRequestEvent(ServerShSession session, UserDataRequest r...
    method doOtherEvent (line 90) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/ProfileUpdateAnswer.java
  type ProfileUpdateAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/ProfileUpdateRequest.java
  type ProfileUpdateRequest (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/PushNotificationAnswer.java
  type PushNotificationAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/PushNotificationRequest.java
  type PushNotificationRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/SubscribeNotificationsAnswer.java
  type SubscribeNotificationsAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/SubscribeNotificationsRequest.java
  type SubscribeNotificationsRequest (line 55) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/UserDataAnswer.java
  type UserDataAnswer (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/UserDataRequest.java
  type UserDataRequest (line 54) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/ClientSLgSession.java
  type ClientSLgSession (line 37) | @SuppressWarnings("all") //3rd party lib
    method sendProvideLocationRequest (line 51) | void sendProvideLocationRequest(ProvideLocationRequest request)
    method sendLocationReportAnswer (line 65) | void sendLocationReportAnswer(LocationReportAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/ClientSLgSessionListener.java
  type ClientSLgSessionListener (line 39) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 42) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doProvideLocationAnswerEvent (line 45) | void doProvideLocationAnswerEvent(ClientSLgSession session, ProvideLoc...
    method doLocationReportRequestEvent (line 48) | void doLocationReportRequestEvent(ClientSLgSession session, LocationRe...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/ServerSLgSession.java
  type ServerSLgSession (line 37) | @SuppressWarnings("all") //3rd party lib
    method sendProvideLocationAnswer (line 51) | void sendProvideLocationAnswer(ProvideLocationAnswer answer)
    method sendLocationReportRequest (line 65) | void sendLocationReportRequest(LocationReportRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/ServerSLgSessionListener.java
  type ServerSLgSessionListener (line 39) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 42) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doProvideLocationRequestEvent (line 45) | void doProvideLocationRequestEvent(ServerSLgSession session, ProvideLo...
    method doLocationReportAnswerEvent (line 48) | void doLocationReportAnswerEvent(ServerSLgSession session, LocationRep...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/events/LocationReportAnswer.java
  type LocationReportAnswer (line 40) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/events/LocationReportRequest.java
  type LocationReportRequest (line 40) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/events/ProvideLocationAnswer.java
  type ProvideLocationAnswer (line 43) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slg/events/ProvideLocationRequest.java
  type ProvideLocationRequest (line 43) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/ClientSLhSession.java
  type ClientSLhSession (line 36) | @SuppressWarnings("all") //3rd party lib
    method sendLCSRoutingInfoRequest (line 51) | void sendLCSRoutingInfoRequest(LCSRoutingInfoRequest request)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/ClientSLhSessionListener.java
  type ClientSLhSessionListener (line 38) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 41) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doLCSRoutingInfoAnswerEvent (line 44) | void doLCSRoutingInfoAnswerEvent(ClientSLhSession session, LCSRoutingI...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/ServerSLhSession.java
  type ServerSLhSession (line 36) | @SuppressWarnings("all") //3rd party lib
    method sendLCSRoutingInfoAnswer (line 50) | void sendLCSRoutingInfoAnswer(LCSRoutingInfoAnswer answer)

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/ServerSLhSessionListener.java
  type ServerSLhSessionListener (line 37) | @SuppressWarnings("all") //3rd party lib
    method doOtherEvent (line 40) | void doOtherEvent(AppSession session, AppRequestEvent request, AppAnsw...
    method doLCSRoutingInfoRequestEvent (line 43) | void doLCSRoutingInfoRequestEvent(ServerSLhSession session, LCSRouting...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/events/LCSRoutingInfoAnswer.java
  type LCSRoutingInfoAnswer (line 37) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/slh/events/LCSRoutingInfoRequest.java
  type LCSRoutingInfoRequest (line 36) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/validation/AvpNotAllowedException.java
  class AvpNotAllowedException (line 51) | @SuppressWarnings("all") //3rd party lib
    method AvpNotAllowedException (line 62) | public AvpNotAllowedException(int code, long vendor) {
    method AvpNotAllowedException (line 70) | public AvpNotAllowedException(String message, int code, long vendor) {
    method AvpNotAllowedException (line 79) | public AvpNotAllowedException(Throwable cause, int code, long vendor) {
    method AvpNotAllowedException (line 89) | public AvpNotAllowedException(String message, Throwable cause, int cod...
    method getAvpCode (line 95) | public int getAvpCode() {
    method getVendorId (line 99) | public long getVendorId() {
    method toString (line 103) | @Override

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/validation/AvpRepresentation.java
  type AvpRepresentation (line 57) | @SuppressWarnings("all") //3rd party lib
    type Rule (line 109) | enum Rule {
    type Type (line 118) | enum Type {
    method isPositionFixed (line 139) | boolean isPositionFixed();
    method isCountValidForMultiplicity (line 143) | boolean isCountValidForMultiplicity(int avpCount);
    method isCountValidForMultiplicity (line 145) | boolean isCountValidForMultiplicity(AvpSet destination, int numberToAdd);
    method isAllowed (line 147) | boolean isAllowed(int avpCode, long vendorId);
    method isAllowed (line 149) | boolean isAllowed(int avpCode);
    method getPositionIndex (line 151) | int getPositionIndex();
    method getCode (line 153) | int getCode();
    method getVendorId (line 155) | long getVendorId();
    method isAllowed (line 157) | boolean isAllowed();
    method getMultiplicityIndicator (line 159) | String getMultiplicityIndicator();
    method getName (line 161) | String getName();
    method isGrouped (line 163) | boolean isGrouped();
    method getChildren (line 167) | List<AvpRepresentation> getChildren();
    method isWeak (line 179) | boolean isWeak();
    method getDescription (line 183) | String getDescription();
    method isMayEncrypt (line 185) | boolean isMayEncrypt();
    method getRuleMandatory (line 187) | String getRuleMandatory();
    method getRuleMandatoryAsInt (line 189) | int getRuleMandatoryAsInt();
    method getRuleProtected (line 191) | String getRuleProtected();
    method getRuleProtectedAsInt (line 193) | int getRuleProtectedAsInt();
    method getRuleVendorBit (line 195) | String getRuleVendorBit();
    method getRuleVendorBitAsInt (line 197) | int getRuleVendorBitAsInt();
    method getOriginalType (line 199) | String getOriginalType();
    method getType (line 201) | String getType();
    method isProtected (line 203) | boolean isProtected();
    method isMandatory (line 205) | boolean isMandatory();
    method validate (line 212) | void validate(Avp avp) throws AvpNotAllowedException;
    method validate (line 219) | void validate(AvpSet avpSet) throws AvpNotAllowedException;
    method toString (line 221) | @Override
    method hashCode (line 224) | @Override
    method equals (line 227) | @Override
    method clone (line 230) | Object clone() throws CloneNotSupportedException;

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/validation/Dictionary.java
  type Dictionary (line 56) | @SuppressWarnings("all") //3rd party lib
    method getAvp (line 67) | AvpRepresentation getAvp(int code);
    method getAvp (line 77) | AvpRepresentation getAvp(int code, long vendorId);
    method getAvp (line 87) | AvpRepresentation getAvp(String avpName);
    method getMessage (line 96) | MessageRepresentation getMessage(int commandCode, boolean isRequest);
    method getMessage (line 105) | MessageRepresentation getMessage(int commandCode, long applicationId, ...
    method configure (line 112) | void configure(InputStream is);
    method isEnabled (line 125) | boolean isEnabled();
    method setEnabled (line 132) | void setEnabled(boolean enabled);
    method isConfigured (line 143) | boolean isConfigured();
    method getSendLevel (line 150) | ValidatorLevel getSendLevel();
    method setSendLevel (line 157) | void setSendLevel(ValidatorLevel sendLevel);
    method getReceiveLevel (line 164) | ValidatorLevel getReceiveLevel();
    method setReceiveLevel (line 171) | void setReceiveLevel(ValidatorLevel receiveLevel);
    method validate (line 182) | void validate(Message message, boolean incoming) throws AvpNotAllowedE...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/validation/MessageRepresentation.java
  type MessageRepresentation (line 58) | @SuppressWarnings("all") //3rd party lib
    method getMessageAvps (line 61) | Map<AvpRepresentation, AvpRepresentation> getMessageAvps();
    method getCommandCode (line 63) | int getCommandCode();
    method getApplicationId (line 65) | long getApplicationId();
    method isRequest (line 67) | boolean isRequest();
    method getName (line 69) | String getName();
    method getAvp (line 80) | AvpRepresentation getAvp(int code);
    method getAvp (line 91) | AvpRepresentation getAvp(int code, long vendorId);
    method isCountValidForMultiplicity (line 93) | boolean isCountValidForMultiplicity(int code, int avpCount);
    method isCountValidForMultiplicity (line 95) | boolean isCountValidForMultiplicity(int code, long vendorId, int avpCo...
    method isCountValidForMultiplicity (line 97) | boolean isCountValidForMultiplicity(AvpSet destination, int code, long...
    method isCountValidForMultiplicity (line 99) | boolean isCountValidForMultiplicity(AvpSet destination, int code, int ...
    method isCountValidForMultiplicity (line 101) | boolean isCountValidForMultiplicity(AvpSet destination, int code, long...
    method isCountValidForMultiplicity (line 103) | boolean isCountValidForMultiplicity(AvpSet destination, int code);
    method isAllowed (line 105) | boolean isAllowed(int avpCode, long vendorId);
    method isAllowed (line 107) | boolean isAllowed(int avpCode);
    method validate (line 109) | void validate(Message msg, ValidatorLevel validatorLevel) throws AvpNo...

FILE: core/jdiameter/api/src/main/java/org/jdiameter/api/validation/ValidatorLevel.java
  class ValidatorLevel (line 52) | @SuppressWarnings("all") //3rd party lib
    method ValidatorLevel (line 65) | private ValidatorLevel(String name) {
    method fromString (line 70) | public static ValidatorLevel fromString(String s) throws IllegalArgume...
    method toString (line 83) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IAnswer.java
  type IAnswer (line 56) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IAssembler.java
  type IAssembler (line 53) | @SuppressWarnings("all") //3rd party lib
    method getParent (line 60) | IAssembler getParent();
    method getChilds (line 67) | IAssembler[] getChilds();
    method getComponentInstance (line 76) | <T> T getComponentInstance(Class<T> aClass);
    method registerComponentInstance (line 83) | void registerComponentInstance(Object object);
    method registerComponentImplementation (line 91) | void registerComponentImplementation(Class<?> aClass, Object object);
    method destroy (line 96) | void destroy();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IContainer.java
  type IContainer (line 64) | @SuppressWarnings("all") //3rd party lib
    method getState (line 72) | StackState getState();
    method getConfiguration (line 79) | Configuration getConfiguration();
    method getAssemblerFacility (line 86) | IAssembler getAssemblerFacility();
    method getScheduledFacility (line 93) | ScheduledExecutorService getScheduledFacility();
    method getConcurrentFactory (line 100) | IConcurrentFactory getConcurrentFactory();
    method sendMessage (line 112) | void sendMessage(IMessage session) throws RouteException, AvpDataExcep...
    method addSessionListener (line 120) | void addSessionListener(String sessionId, NetworkReqListener listener);
    method removeSessionListener (line 127) | void removeSessionListener(String sessionId);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IEventListener.java
  type IEventListener (line 57) | @SuppressWarnings("all") //3rd party lib
    method setValid (line 65) | void setValid(boolean value);
    method isValid (line 72) | boolean isValid();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IMessage.java
  type IMessage (line 59) | @SuppressWarnings("all") //3rd party lib
    method getState (line 87) | int getState();
    method setState (line 94) | void setState(int newState);
    method getHeaderApplicationId (line 101) | long getHeaderApplicationId();
    method setHeaderApplicationId (line 108) | void setHeaderApplicationId(long applicationId);
    method getFlags (line 115) | int getFlags();
    method createTimer (line 124) | void createTimer(ScheduledExecutorService scheduledFacility, long time...
    method runTimer (line 129) | void runTimer();
    method clearTimer (line 134) | void clearTimer();
    method setHopByHopIdentifier (line 141) | void setHopByHopIdentifier(long hopByHopId);
    method setEndToEndIdentifier (line 148) | void setEndToEndIdentifier(long endByEndId);
    method getPeer (line 155) | IPeer getPeer();
    method setPeer (line 162) | void setPeer(IPeer peer);
    method getSingleApplicationId (line 169) | ApplicationId getSingleApplicationId();
    method getSingleApplicationId (line 176) | ApplicationId getSingleApplicationId(long id);
    method isTimeOut (line 183) | boolean isTimeOut();
    method setListener (line 190) | void setListener(IEventListener listener);
    method getEventListener (line 197) | IEventListener getEventListener();
    method getDuplicationKey (line 204) | String getDuplicationKey();
    method getDuplicationKey (line 214) | String getDuplicationKey(String host, long endToEndId);
    method clone (line 221) | Object clone();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IMetaData.java
  type IMetaData (line 55) | @SuppressWarnings("all") //3rd party lib
    method updateLocalHostStateId (line 61) | void updateLocalHostStateId();
    method getLocalHostStateId (line 68) | long getLocalHostStateId();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/IRequest.java
  type IRequest (line 55) | @SuppressWarnings("all") //3rd party lib
    method setNetworkRequest (line 62) | void setNetworkRequest(boolean isNetwork);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/ISession.java
  type ISession (line 56) | @SuppressWarnings("all") //3rd party lib
    method getReqListener (line 58) | NetworkReqListener getReqListener();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/ISessionFactory.java
  type ISessionFactory (line 59) | @SuppressWarnings("all") //3rd party lib
    method getNewAppSession (line 75) | <T extends AppSession> T getNewAppSession(String sessionId, Applicatio...
    method registerAppFacory (line 84) | void registerAppFacory(Class<? extends AppSession> sessionClass, IAppS...
    method unRegisterAppFacory (line 91) | void unRegisterAppFacory(Class<? extends AppSession> sessionClass);
    method getAppSessionFactory (line 100) | IAppSessionFactory getAppSessionFactory(Class<? extends AppSession> se...
    method getContainer (line 105) | IContainer getContainer();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/StackState.java
  type StackState (line 53) | public enum StackState {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/annotation/IRecoder.java
  type IRecoder (line 57) | @SuppressWarnings("all") //3rd party lib
    method encodeToRequest (line 70) | Message encodeToRequest(Object yourDomainMessageObject, Avp... additio...
    method encodeToAnswer (line 83) | Message encodeToAnswer(Object yourDomainMessageObject, Request request...
    method decode (line 95) | <T> T decode(Message message, java.lang.Class<T> yourDomainMessageObje...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/annotation/RecoderException.java
  class RecoderException (line 50) | @SuppressWarnings("all") //3rd party lib
    method RecoderException (line 55) | public RecoderException(Throwable cause) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/controller/IPeer.java
  type IPeer (line 62) | @SuppressWarnings("all") //3rd party lib
    method getRating (line 70) | int getRating();
    method getHopByHopIdentifier (line 77) | long getHopByHopIdentifier();
    method addMessage (line 84) | void addMessage(IMessage message);
    method remMessage (line 91) | void remMessage(IMessage message);
    method remAllMessage (line 96) | IMessage[] remAllMessage();
    method handleMessage (line 108) | boolean handleMessage(EventTypes type, IMessage message, String key)
    method sendMessage (line 121) | boolean sendMessage(IMessage message) throws TransportException, Overl...
    method hasValidConnection (line 128) | boolean hasValidConnection();
    method setRealm (line 135) | void setRealm(String realm);
    method addStateChangeListener (line 142) | void addStateChangeListener(StateChangeListener listener);
    method remStateChangeListener (line 149) | void remStateChangeListener(StateChangeListener listener);
    method addConnectionListener (line 156) | void addConnectionListener(IConnectionListener listener);
    method remConnectionListener (line 163) | void remConnectionListener(IConnectionListener listener);
    method getStatistic (line 170) | IStatistic getStatistic();
    method isConnected (line 177) | boolean isConnected();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/controller/IPeerTable.java
  type IPeerTable (line 63) | @SuppressWarnings("all") //3rd party lib
    method start (line 72) | void start() throws IllegalDiameterStateException, IOException;
    method stopping (line 77) | void stopping(int disconnectCause);
    method stopped (line 82) | void stopped();
    method destroy (line 87) | void destroy();
    method sendMessage (line 99) | void sendMessage(IMessage message) throws IllegalDiameterStateExceptio...
    method addSessionReqListener (line 107) | void addSessionReqListener(String sessionId, NetworkReqListener listen...
    method getPeer (line 116) | @Override
    method getSessionReqListeners (line 124) | Map<String, NetworkReqListener> getSessionReqListeners();
    method removeSessionListener (line 131) | void removeSessionListener(String sessionId);
    method setAssembler (line 138) | void setAssembler(IAssembler assembler);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/controller/IRealm.java
  type IRealm (line 53) | @SuppressWarnings("all") //3rd party lib
    method getPeerNames (line 61) | String[] getPeerNames();
    method addPeerName (line 68) | void addPeerName(String name);
    method removePeerName (line 75) | void removePeerName(String name);
    method hasPeerName (line 84) | boolean hasPeerName(String name);
    method getAgent (line 91) | IAgent getAgent();
    method getAgentConfiguration (line 98) | IAgentConfiguration getAgentConfiguration();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/controller/IRealmTable.java
  type IRealmTable (line 61) | @SuppressWarnings("all") //3rd party lib
    method matchRealm (line 64) | Realm matchRealm(IRequest request);
    method matchRealm (line 66) | Realm matchRealm(IAnswer message, String destRealm);
    method getRealm (line 68) | Realm getRealm(String realmName, ApplicationId applicationId);
    method removeRealmApplicationId (line 70) | Realm removeRealmApplicationId(String realmName, ApplicationId appId);
    method removeRealm (line 72) | Collection<Realm> removeRealm(String realmName);
    method getRealms (line 74) | Collection<Realm> getRealms(String realm);
    method getRealms (line 76) | Collection<Realm> getRealms();
    method getRealmForPeer (line 78) | String getRealmForPeer(String fqdn);
    method addLocalApplicationId (line 80) | void addLocalApplicationId(ApplicationId ap);
    method removeLocalApplicationId (line 82) | void removeLocalApplicationId(ApplicationId a);
    method addLocalRealm (line 84) | void addLocalRealm(String localRealm, String fqdn);
    method addRealm (line 101) | Realm addRealm(String name, ApplicationId appId, LocalAction locAction...
    method getAllRealmSet (line 105) | List<String> getAllRealmSet();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/EventTypes.java
  type EventTypes (line 52) | public enum EventTypes {
    method EventTypes (line 120) | EventTypes() {
    method EventTypes (line 124) | EventTypes(boolean highPriority) {
    method isHighPriority (line 128) | public boolean isHighPriority() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/ExecutorFactory.java
  type ExecutorFactory (line 52) | @SuppressWarnings("all") //3rd party lib
    method getExecutor (line 55) | ExecutorService getExecutor();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/FsmEvent.java
  class FsmEvent (line 55) | @SuppressWarnings("all") //3rd party lib
    method FsmEvent (line 68) | public FsmEvent(EventTypes type) {
    method FsmEvent (line 78) | public FsmEvent(EventTypes type, String key) {
    method FsmEvent (line 89) | public FsmEvent(EventTypes type, IMessage value) {
    method FsmEvent (line 101) | public FsmEvent(EventTypes type, IMessage value, String key) {
    method getKey (line 111) | public String getKey() {
    method getMessage (line 120) | public IMessage getMessage() {
    method getCreatedTime (line 129) | public long getCreatedTime() {
    method encodeType (line 133) | @Override
    method getType (line 138) | @Override
    method setData (line 143) | @Override
    method getData (line 148) | @Override
    method compareTo (line 153) | @Override
    method toString (line 163) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/IContext.java
  type IContext (line 61) | @SuppressWarnings("all") //3rd party lib
    method connect (line 71) | void connect() throws InternalException, IOException, IllegalDiameterS...
    method disconnect (line 79) | void disconnect() throws InternalException, IllegalDiameterStateExcept...
    method sendMessage (line 89) | boolean sendMessage(IMessage message) throws TransportException, Overl...
    method sendCerMessage (line 97) | void sendCerMessage() throws TransportException, OverloadException;
    method sendCeaMessage (line 108) | void sendCeaMessage(int resultCode, Message cer, String errMessage) th...
    method sendDwrMessage (line 116) | void sendDwrMessage() throws TransportException, OverloadException;
    method sendDwaMessage (line 128) | void sendDwaMessage(IMessage dwr, int resultCode, String errorMessage)...
    method sendDprMessage (line 138) | void sendDprMessage(int disconnectCause) throws TransportException, Ov...
    method sendDpaMessage (line 150) | void sendDpaMessage(IMessage dpr, int resultCode, String errorMessage)...
    method receiveMessage (line 159) | boolean receiveMessage(IMessage iMessage);
    method processDwrMessage (line 168) | int processDwrMessage(IMessage iMessage);
    method processDprMessage (line 177) | int processDprMessage(IMessage iMessage);
    method processCeaMessage (line 187) | boolean processCeaMessage(String key, IMessage message);
    method processCerMessage (line 197) | int processCerMessage(String key, IMessage message);
    method isRestoreConnection (line 204) | boolean isRestoreConnection();
    method isConnected (line 211) | boolean isConnected();
    method getPeerDescription (line 218) | String getPeerDescription();
    method removeStatistics (line 223) | void removeStatistics();
    method createStatistics (line 228) | void createStatistics();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/IFsmFactory.java
  type IFsmFactory (line 56) | @SuppressWarnings("all") //3rd party lib
    method createInstanceFsm (line 70) | IStateMachine createInstanceFsm(IContext context, IConcurrentFactory c...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/fsm/IStateMachine.java
  type IStateMachine (line 56) | @SuppressWarnings("all") //3rd party lib
    method getQueueInfo (line 64) | double getQueueInfo();
    method remStateChangeNotification (line 66) | void remStateChangeNotification(StateChangeListener listener);
    method getStatistic (line 68) | IStatistic getStatistic();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/IConnection.java
  type IConnection (line 59) | @SuppressWarnings("all") //3rd party lib
    method getCreatedTime (line 67) | long getCreatedTime();
    method getKey (line 74) | String getKey();
    method connect (line 81) | void connect() throws TransportException;
    method disconnect (line 88) | void disconnect() throws InternalError;
    method sendMessage (line 98) | void sendMessage(IMessage message) throws TransportException, Overload...
    method release (line 105) | void release() throws IOException;
    method isNetworkInitiated (line 112) | boolean isNetworkInitiated();
    method isConnected (line 119) | boolean isConnected();
    method getRemoteAddress (line 126) | InetAddress getRemoteAddress();
    method getRemotePort (line 133) | int getRemotePort();
    method addConnectionListener (line 140) | void addConnectionListener(IConnectionListener connectionListener);
    method remAllConnectionListener (line 145) | void remAllConnectionListener();
    method remConnectionListener (line 152) | void remConnectionListener(IConnectionListener connectionListener);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/IConnectionListener.java
  type IConnectionListener (line 60) | @SuppressWarnings("all") //3rd party lib
    method connectionOpened (line 68) | void connectionOpened(String connKey);
    method connectionClosed (line 76) | void connectionClosed(String connKey, List notSended);
    method messageReceived (line 84) | void messageReceived(String connKey, IMessage message);
    method internalError (line 93) | void internalError(String connKey, IMessage message, TransportExceptio...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/ITransportLayerFactory.java
  type ITransportLayerFactory (line 57) | @SuppressWarnings("all") //3rd party lib
    method createConnection (line 74) | IConnection createConnection(InetAddress remoteAddress, IConcurrentFac...
    method createConnection (line 93) | IConnection createConnection(InetAddress remoteAddress, IConcurrentFac...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/NotInitializedException.java
  class NotInitializedException (line 53) | @SuppressWarnings("all") //3rd party lib
    method NotInitializedException (line 59) | public NotInitializedException() {
    method NotInitializedException (line 68) | public NotInitializedException(String message) {
    method NotInitializedException (line 78) | public NotInitializedException(String message, Throwable cause) {
    method NotInitializedException (line 87) | public NotInitializedException(Throwable cause) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/TransportError.java
  type TransportError (line 52) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/io/TransportException.java
  class TransportException (line 52) | @SuppressWarnings("all") //3rd party lib
    method TransportException (line 66) | public TransportException(String message, TransportError code) {
    method TransportException (line 78) | public TransportException(String message, TransportError code, Throwab...
    method TransportException (line 89) | public TransportException(TransportError code, Throwable cause) {
    method getCode (line 99) | public TransportError getCode() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/parser/IElementParser.java
  type IElementParser (line 57) | @SuppressWarnings("all") //3rd party lib
    method bytesToInt (line 69) | int bytesToInt(byte[] rawData) throws AvpDataException;
    method bytesToLong (line 80) | long bytesToLong(byte[] rawData) throws AvpDataException;
    method bytesToFloat (line 91) | float bytesToFloat(byte[] rawData) throws AvpDataException;
    method bytesToDouble (line 102) | double bytesToDouble(byte[] rawData) throws AvpDataException;
    method bytesToOctetString (line 113) | String bytesToOctetString(byte[] rawData) throws AvpDataException;
    method bytesToUtf8String (line 124) | String bytesToUtf8String(byte[] rawData) throws AvpDataException;
    method bytesToDate (line 135) | Date bytesToDate(byte[] rawData) throws AvpDataException;
    method bytesToAddress (line 146) | InetAddress bytesToAddress(byte[] rawData) throws AvpDataException;
    method int32ToBytes (line 155) | byte[] int32ToBytes(int value);
    method intU32ToBytes (line 164) | byte[] intU32ToBytes(long value);
    method int64ToBytes (line 173) | byte[] int64ToBytes(long value);
    method float32ToBytes (line 182) | byte[] float32ToBytes(float value);
    method float64ToBytes (line 191) | byte[] float64ToBytes(double value);
    method octetStringToBytes (line 202) | byte[] octetStringToBytes(String value) throws ParseException;
    method utf8StringToBytes (line 213) | byte[] utf8StringToBytes(String value) throws ParseException;
    method addressToBytes (line 222) | byte[] addressToBytes(InetAddress value);
    method dateToBytes (line 231) | byte[] dateToBytes(Date value);
    method bytesToObject (line 243) | <T> T bytesToObject(java.lang.Class<?> iface, byte[] rawData) throws A...
    method objectToBytes (line 254) | byte[] objectToBytes(Object value) throws ParseException;

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/parser/IMessageParser.java
  type IMessageParser (line 57) | @SuppressWarnings("all") //3rd party lib
    method createMessage (line 69) | IMessage createMessage(ByteBuffer data) throws AvpDataException;
    method createMessage (line 80) | IMessage createMessage(byte[] message) throws AvpDataException;
    method createMessage (line 92) | <T> T createMessage(java.lang.Class<?> iface, ByteBuffer data) throws ...
    method createEmptyMessage (line 102) | IMessage createEmptyMessage(int commandCode, long headerAppId);
    method createEmptyMessage (line 113) | <T> T createEmptyMessage(Class<?> iface, int commandCode, long headerA...
    method createEmptyMessage (line 122) | IMessage createEmptyMessage(IMessage parentMessage);
    method createEmptyMessage (line 132) | IMessage createEmptyMessage(IMessage parentMessage, int commandCode);
    method createEmptyMessage (line 142) | <T> T createEmptyMessage(Class<?> iface, IMessage parentMessage);
    method encodeMessage (line 153) | ByteBuffer encodeMessage(IMessage message) throws ParseException;

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/parser/ParseException.java
  class ParseException (line 52) | @SuppressWarnings("all") //3rd party lib
    method ParseException (line 60) | public ParseException() {
    method ParseException (line 68) | public ParseException(String message) {
    method ParseException (line 78) | public ParseException(String message, Throwable cause) {
    method ParseException (line 87) | public ParseException(Throwable cause) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/api/router/IRouter.java
  type IRouter (line 62) | @SuppressWarnings("all") //3rd party lib
    method getPeer (line 78) | IPeer getPeer(IMessage message, IPeerTable manager) throws RouteExcept...
    method getRealmTable (line 85) | IRealmTable getRealmTable();
    method registerRequestRouteInfo (line 92) | void registerRequestRouteInfo(IRequest request);
    method getRequestRouteInfo (line 103) | String[] getRequestRouteInfo(IMessage message);
    method garbageCollectRequestRouteInfo (line 106) | void garbageCollectRequestRouteInfo(IMessage message);
    method start (line 111) | void start();
    method stop (line 116) | void stop();
    method destroy (line 121) | void destroy();
    method processRedirectAnswer (line 131) | void processRedirectAnswer(IRequest request, IAnswer answer, IPeerTabl...
    method updateRoute (line 143) | boolean updateRoute(IRequest message) throws RouteException, AvpDataEx...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/AbstractStateChangeListener.java
  class AbstractStateChangeListener (line 53) | @SuppressWarnings("all") //3rd party lib
    method stateChanged (line 61) | @Override
    method stateChanged (line 72) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/BaseSessionImpl.java
  class BaseSessionImpl (line 74) | @SuppressWarnings("all") //3rd party lib
    method getCreationTime (line 92) | @Override
    method getLastAccessedTime (line 97) | @Override
    method setLastAccessTime (line 102) | protected long setLastAccessTime() {
    method onTimer (line 118) | public void onTimer(String timerName) {
    method isValid (line 127) | @Override
    method getSessionId (line 132) | @Override
    method isAppSession (line 142) | @Override
    method isReplicable (line 152) | @Override
    method genericSend (line 157) | protected void genericSend(Message message, EventListener listener)
    method genericSend (line 168) | protected void genericSend(Message aMessage, EventListener listener, l...
    method createListenerWrapper (line 208) | @SuppressWarnings("unchecked")
    method send (line 213) | public Future<Message> send(final Message message)
    method send (line 220) | public Future<Message> send(Message message, long timeOut, TimeUnit ti...
    class MyFuture (line 227) | private class MyFuture implements Future<Message> {
      method cancel (line 236) | @Override
      method isCancelled (line 250) | @Override
      method isDone (line 255) | @Override
      method get (line 260) | @Override
      method get (line 273) | @Override
      method createListener (line 290) | private IEventListener createListener() {
      method send (line 333) | public void send(Message message)
      method send (line 338) | public void send(Message message, long timeOut, TimeUnit timeUnit)
    method appendAppId (line 350) | protected void appendAppId(ApplicationId appId, Message m) {
    method getAppId (line 384) | protected long getAppId(ApplicationId appId) {
  class MyEventListener (line 400) | @SuppressWarnings("all") //3rd party lib
    method MyEventListener (line 407) | MyEventListener(BaseSessionImpl session, EventListener listener) {
    method setValid (line 412) | @Override
    method isValid (line 421) | @Override
    method receivedSuccessMessage (line 426) | @Override
    method timeoutExpired (line 435) | @Override
    method hashCode (line 444) | @Override
    method equals (line 449) | @Override
    method toString (line 454) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/DictionarySingleton.java
  class DictionarySingleton (line 39) | @SuppressWarnings("all") //3rd party lib
    method DictionarySingleton (line 43) | private DictionarySingleton()
    method getDictionary (line 48) | public static Dictionary getDictionary()
    method getDictionary (line 53) | public static Dictionary getDictionary(String confFile)
    method getDictionary (line 58) | public static Dictionary getDictionary(InputStream is)
    method init (line 63) | static void init(String clazz, boolean validatorEnabled, ValidatorLeve...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/MessageUtility.java
  class MessageUtility (line 55) | @SuppressWarnings("all") //3rd party lib
    method MessageUtility (line 58) | private MessageUtility() {
    method addOriginAvps (line 67) | public static void addOriginAvps(Message m, MetaData md) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/MetaDataImpl.java
  class MetaDataImpl (line 95) | @SuppressWarnings("all") //3rd party lib
    method MetaDataImpl (line 107) | public MetaDataImpl(IContainer s) {
    method MetaDataImpl (line 112) | public MetaDataImpl(IContainer s, IStatisticManager statisticFactory) {
    method newLocalPeer (line 158) | protected IPeer newLocalPeer(IStatisticManager statisticFactory) {
    method getLocalPeer (line 162) | @Override
    method getMajorVersion (line 167) | @Override
    method getMinorVersion (line 172) | @Override
    method getStackType (line 177) | @Override
    method getConfiguration (line 182) | @Override
    method updateLocalHostStateId (line 187) | @Override
    method getLocalHostStateId (line 192) | @Override
    method isWrapperFor (line 197) | @Override
    method unwrap (line 202) | @Override
    class ClientLocalPeer (line 212) | protected class ClientLocalPeer extends AbstractPeer implements IPeer {
      method resetAddresses (line 217) | public void resetAddresses() {
      method connect (line 221) | @Override
      method disconnect (line 226) | @Override
      method ClientLocalPeer (line 231) | public ClientLocalPeer(IStatisticManager statisticFactory) {
      method getState (line 237) | @Override
      method getUri (line 253) | @Override
      method getRealmName (line 265) | @Override
      method getVendorId (line 270) | @Override
      method getProductName (line 275) | @Override
      method getFirmware (line 280) | @Override
      method getCommonApplications (line 285) | @Override
      method getIPAddresses (line 317) | @Override
      method getStatistic (line 351) | @Override
      method toString (line 356) | @Override
      method getRating (line 365) | @Override
      method addPeerStateListener (line 370) | @Override
      method removePeerStateListener (line 374) | @Override
      method getHopByHopIdentifier (line 378) | @Override
      method addMessage (line 383) | @Override
      method remMessage (line 387) | @Override
      method remAllMessage (line 391) | @Override
      method handleMessage (line 396) | @Override
      method sendMessage (line 402) | @Override
      method hasValidConnection (line 407) | @Override
      method setRealm (line 412) | @Override
      method addStateChangeListener (line 416) | @Override
      method remStateChangeListener (line 420) | @Override
      method addConnectionListener (line 424) | @Override
      method remConnectionListener (line 428) | @Override
      method isConnected (line 437) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/RawSessionImpl.java
  class RawSessionImpl (line 66) | @SuppressWarnings("all") //3rd party lib
    method RawSessionImpl (line 69) | RawSessionImpl(IContainer stack) {
    method createMessage (line 74) | @Override
    method createMessage (line 87) | @Override
    method createMessage (line 107) | @Override
    method send (line 134) | @Override
    method send (line 140) | @Override
    method release (line 146) | @Override
    method isWrapperFor (line 153) | @Override
    method unwrap (line 158) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/SessionFactoryImpl.java
  class SessionFactoryImpl (line 67) | @SuppressWarnings("all") //3rd party lib
    method SessionFactoryImpl (line 78) | public SessionFactoryImpl(IContainer stack) {
    method getSessionId (line 83) | @Override
    method getSessionId (line 97) | @Override
    method getNewRawSession (line 102) | @Override
    method getNewSession (line 110) | @Override
    method getNewSession (line 122) | @Override
    method getNewAppSession (line 136) | @Override
    method getNewAppSession (line 143) | @Override
    method getNewAppSession (line 150) | @Override
    method registerAppFacory (line 167) | @Override
    method unRegisterAppFacory (line 172) | @Override
    method getAppSessionFactory (line 182) | @Override
    method getContainer (line 187) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/SessionImpl.java
  class SessionImpl (line 77) | @SuppressWarnings("all") //3rd party lib
    method SessionImpl (line 84) | SessionImpl(IContainer container) {
    method setContainer (line 93) | void setContainer(IContainer container) {
    method send (line 105) | @Override
    method send (line 111) | @Override
    method setRequestListener (line 117) | @Override
    method getReqListener (line 125) | @Override
    method createRequest (line 130) | @Override
    method createRequest (line 149) | @Override
    method createRequest (line 171) | @Override
    method release (line 185) | @Override
    method isWrapperFor (line 209) | @Override
    method unwrap (line 214) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/StackImpl.java
  class StackImpl (line 98) | @SuppressWarnings("all") //3rd party lib
    method init (line 115) | @Override
    method createDictionary (line 180) | private void createDictionary(String clazz, boolean validatorEnabled, ...
    method getSessionFactory (line 186) | @Override
    method getDictionary (line 196) | @Override
    method start (line 201) | @Override
    method start (line 220) | @Override
    method startPeerManager (line 274) | private void startPeerManager() throws InternalException {
    method stop (line 285) | @Override
    method destroy (line 357) | @Override
    method isActive (line 385) | @Override
    method getLogger (line 390) | @Override
    method getMetaData (line 395) | @Override
    method getSession (line 403) | @Override
    method isWrapperFor (line 413) | @Override
    method unwrap (line 428) | @Override
    method getState (line 450) | @Override
    method getConfiguration (line 455) | @Override
    method getAssemblerFacility (line 460) | @Override
    method sendMessage (line 465) | @Override
    method addSessionListener (line 471) | @Override
    method removeSessionListener (line 476) | @Override
    method getScheduledFacility (line 481) | @Override
    method getConcurrentFactory (line 486) | @Override
    method configuration (line 491) | @Override
    method metaData (line 496) | @Override
    method peerDescription (line 505) | @Override
    method peerList (line 520) | @Override
    method stop (line 529) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/StackImplMBean.java
  type StackImplMBean (line 54) | @SuppressWarnings("all") //3rd party lib
    method configuration (line 62) | String configuration();
    method metaData (line 69) | String metaData();
    method peerDescription (line 78) | String peerDescription(String name);
    method peerList (line 85) | String peerList();
    method isActive (line 92) | boolean isActive();
    method stop (line 97) | void stop(int disconnectCause);
    method start (line 105) | void start() throws org.jdiameter.api.IllegalDiameterStateException, I...

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/VersionProperties.java
  class VersionProperties (line 54) | @SuppressWarnings("all") //3rd party lib
    method VersionProperties (line 70) | private VersionProperties() {
    method getProperties (line 79) | public Map getProperties() {
    method getProperty (line 90) | public String getProperty(final String name) {
    method toString (line 99) | @Override
    method loadProperties (line 117) | private Properties loadProperties() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/Recoder.java
  class Recoder (line 87) | @SuppressWarnings("all") //3rd party lib
    method Recoder (line 98) | public Recoder(SessionFactory factory, MetaData metaData) {
    method encodeToRequest (line 109) | @Override
    method encodeToAnswer (line 115) | @Override
    method encode (line 120) | public Message encode(Object yourDomainMessageObject, Request request,...
    method getChildInstance (line 180) | private Map<String, Object> getChildInstance(Object yourDomainMessageO...
    method fillChild (line 206) | private void fillChild(AvpSet as, Child ci, Map<String, Object> childs...
    method getValue (line 350) | private <T> Collection<T> getValue(Object ic, Class<T> type) throws Re...
    method decode (line 376) | @Override
    method setUndefinedAvp (line 482) | private void setUndefinedAvp(AvpSet set, Object rc, ClassInfo c, Map<S...
    method findChildDscr (line 511) | private Child findChildDscr(Child[] childs, Class<?> m) {
    method createChildByAvp (line 530) | private Object createChildByAvp(Child mInfo, Class<?> m, AvpSet parent...
    method newInstanceGroupedAvp (line 590) | private Object newInstanceGroupedAvp(Class<?> m, AvpDscr ad, Avp avp) ...
    method newInstanceSimpleAvp (line 663) | private Object newInstanceSimpleAvp(Class<?> m, AvpDscr ad, Avp avp) {
    method getValue (line 707) | private Object getValue(AvpType type, Avp avp) throws AvpDataException {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/UnknownAvp.java
  class UnknownAvp (line 50) | @SuppressWarnings("all") //3rd party lib
    method UnknownAvp (line 57) | public UnknownAvp(int code, boolean m, boolean v, boolean p, long vend...
    method getCode (line 66) | public int getCode() {
    method isMandatory (line 70) | public boolean isMandatory() {
    method isVendorSpecific (line 74) | public boolean isVendorSpecific() {
    method getVendorId (line 78) | public long getVendorId() {
    method isProxiable (line 82) | public boolean isProxiable() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/Value.java
  class Value (line 53) | @SuppressWarnings("all") //3rd party lib
    method Value (line 58) | @Setter
    method get (line 63) | @Getter
    method toString (line 68) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/internal/ClassInfo.java
  class ClassInfo (line 57) | @SuppressWarnings("all")
    method ClassInfo (line 70) | public ClassInfo(Storage storage, Class<?> _class) {
    method getAttachedClass (line 75) | public Class<?> getAttachedClass() {
    method getAnnotations (line 79) | public Collection<Annotation> getAnnotations() {
    method getAnnotation (line 99) | public <T> T getAnnotation(Class<?> annotation) {
    method addAnnotations (line 109) | private void addAnnotations(Class<?> _class) {
    method getMethodInfo (line 119) | public MethodInfo getMethodInfo(String methodName, Class<?>... args) {
    method getConstructorInfo (line 127) | public ConstructorInfo getConstructorInfo(Class<?>... args) {
    method getMethodInfo (line 140) | public MethodInfo getMethodInfo(Method method) {
    method getConstructorInfo (line 144) | public ConstructorInfo getConstructorInfo(Constructor constr) {
    method getMethodsInfo (line 148) | public Collection<MethodInfo> getMethodsInfo() {
    method getConstructorsInfo (line 152) | public Collection<ConstructorInfo> getConstructorsInfo() {
    method getMethodMap (line 156) | private Map<Method, MethodInfo> getMethodMap() {
    method getConstructorMap (line 166) | private Map<Constructor, ConstructorInfo> getConstructorMap() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/internal/ConstructorInfo.java
  class ConstructorInfo (line 56) | @SuppressWarnings("all") //3rd party lib
    method ConstructorInfo (line 65) | public ConstructorInfo(Storage storage, ClassInfo classInfo, Construct...
    method getConstructor (line 71) | public Constructor getConstructor() {
    method getClassInfo (line 75) | public ClassInfo getClassInfo() {
    method getAnnotations (line 79) | public Collection<Annotation> getAnnotations() {
    method getAnnotationStorage (line 83) | private Map<Class<?>, Annotation> getAnnotationStorage() {
    method addAnnotations (line 100) | private void addAnnotations(ConstructorInfo constr) {
    method getAnnotation (line 112) | public <T> T getAnnotation(Class<?> annotation) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/internal/MethodInfo.java
  class MethodInfo (line 56) | @SuppressWarnings("all")
    method MethodInfo (line 65) | public MethodInfo(Storage storage, ClassInfo classInfo, Method method) {
    method getMethod (line 71) | public Method getMethod() {
    method getClassInfo (line 75) | public ClassInfo getClassInfo() {
    method getAnnotations (line 79) | public Collection<Annotation> getAnnotations() {
    method getAnnotation (line 83) | public <T> T getAnnotation(Class<?> annotation) {
    method getAnnotationStorage (line 92) | private Map<Class<?>, Annotation> getAnnotationStorage() {
    method addAnnotations (line 110) | private void addAnnotations(MethodInfo method) {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/annotation/internal/Storage.java
  class Storage (line 53) | @SuppressWarnings("all") //3rd party lib
    method getClassInfo (line 58) | public final synchronized ClassInfo getClassInfo(Class<?> _class) {
    method clear (line 67) | public final synchronized void clear() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/acc/ClientAccSessionDataLocalImpl.java
  class ClientAccSessionDataLocalImpl (line 55) | @SuppressWarnings("all") //3rd party lib
    method ClientAccSessionDataLocalImpl (line 67) | public ClientAccSessionDataLocalImpl() {
    method setClientAccSessionState (line 70) | @Override
    method getClientAccSessionState (line 75) | @Override
    method setInterimTimerId (line 80) | @Override
    method getInterimTimerId (line 85) | @Override
    method setDestinationHost (line 90) | @Override
    method getDestinationHost (line 95) | @Override
    method setDestinationRealm (line 100) | @Override
    method getDestinationRealm (line 105) | @Override
    method setBuffer (line 110) | @Override
    method getBuffer (line 115) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/acc/ClientAccSessionImpl.java
  class ClientAccSessionImpl (line 74) | @SuppressWarnings("all") //3rd party lib
    method ClientAccSessionImpl (line 98) | public ClientAccSessionImpl(IClientAccSessionData sessionData, ISessio...
    method setListener (line 110) | public void setListener(ClientAccSessionListener listener)
    method sendAccountRequest (line 115) | @Override
    method storeToBuffer (line 145) | protected synchronized void storeToBuffer(Request accountRequest)
    method checkBufferSpace (line 151) | protected synchronized boolean checkBufferSpace()
    method setState (line 157) | @SuppressWarnings("unchecked")
    method isStateless (line 168) | @Override
    method handleEvent (line 174) | @Override
    method processInterimIntervalAvp (line 579) | protected void processInterimIntervalAvp(StateEvent event) throws Inte...
    method onTimer (line 624) | @Override
    method startInterimTimer (line 651) | private Serializable startInterimTimer(long v)
    method cancelInterimTimer (line 665) | private void cancelInterimTimer()
    method getState (line 680) | @Override
    method receivedSuccessMessage (line 687) | @Override
    method timeoutExpired (line 718) | @Override
    method processRequest (line 733) | @Override
    method isReplicable (line 745) | @Override
    method createInterimRecord (line 751) | protected Request createInterimRecord()
    method createSessionTermRequest (line 760) | protected Request createSessionTermRequest()
    method hashCode (line 767) | @Override
    method equals (line 776) | @Override
    method release (line 799) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/acc/Event.java
  class Event (line 57) | @SuppressWarnings("all") //3rd party lib
    type Type (line 60) | enum Type {
    method Event (line 73) | Event(Type type) {
    method Event (line 77) | Event(AccountAnswer accountAnswer) throws Exception {
    method Event (line 87) | Event(AccountRequest accountRequest) throws Exception {
    method Event (line 108) | Event(Type type, AccountRequest accountRequest) throws Exception {
    method encodeType (line 113) | @Override
    method getType (line 118) | @Override
    method setData (line 123) | @Override
    method getData (line 128) | @Override
    method compareTo (line 133) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/acc/IClientAccSessionData.java
  type IClientAccSessionData (line 56) | @SuppressWarnings("all") //3rd party lib
    method setClientAccSessionState (line 59) | void setClientAccSessionState(ClientAccSessionState state);
    method getClientAccSessionState (line 61) | ClientAccSessionState getClientAccSessionState();
    method setInterimTimerId (line 63) | void setInterimTimerId(Serializable tid);
    method getInterimTimerId (line 65) | Serializable getInterimTimerId();
    method setDestinationHost (line 67) | void setDestinationHost(String destHost);
    method getDestinationHost (line 69) | String getDestinationHost();
    method setDestinationRealm (line 71) | void setDestinationRealm(String destRealm);
    method getDestinationRealm (line 73) | String getDestinationRealm();
    method setBuffer (line 75) | void setBuffer(Request event);
    method getBuffer (line 77) | Request getBuffer();
    method setApplicationId (line 79) | void setApplicationId(ApplicationId aid);
    method getApplicationId (line 81) | ApplicationId getApplicationId();

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/ClientAuthSessionDataLocalImpl.java
  class ClientAuthSessionDataLocalImpl (line 54) | @SuppressWarnings("all") //3rd party lib
    method setClientAuthSessionState (line 70) | @Override
    method getClientAuthSessionState (line 80) | @Override
    method isStateless (line 90) | @Override
    method setStateless (line 100) | @Override
    method getDestinationHost (line 110) | @Override
    method setDestinationHost (line 120) | @Override
    method getDestinationRealm (line 130) | @Override
    method setDestinationRealm (line 140) | @Override
    method getTsTimerId (line 150) | @Override
    method setTsTimerId (line 160) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/ClientAuthSessionImpl.java
  class ClientAuthSessionImpl (line 75) | @SuppressWarnings("all") //3rd party lib
    method ClientAuthSessionImpl (line 100) | public ClientAuthSessionImpl(IClientAuthSessionData sessionData, ISess...
    method setListener (line 120) | public void setListener(ClientAuthSessionListener listener)
    method sendAbortSessionAnswer (line 126) | @Override
    method sendAuthRequest (line 133) | @Override
    method sendReAuthAnswer (line 140) | @Override
    method sendSessionTerminationRequest (line 147) | @Override
    method send (line 154) | protected void send(Event.Type type, AppEvent event) throws InternalEx...
    method isStateless (line 183) | @Override
    method setState (line 189) | @SuppressWarnings("unchecked")
    method getState (line 199) | @Override
    method handleEvent (line 206) | @Override
    method handleEventForStatelessSession (line 212) | public boolean handleEventForStatelessSession(StateEvent event) throws...
    method handleEventForStatefulSession (line 321) | public boolean handleEventForStatefulSession(StateEvent event) throws ...
    method receivedSuccessMessage (line 520) | @Override
    method timeoutExpired (line 530) | @Override
    method processRequest (line 546) | @Override
    method isReplicable (line 562) | @Override
    method startTsTimer (line 568) | protected void startTsTimer() throws IllegalArgumentException, Interna...
    method cancelTsTimer (line 580) | protected void cancelTsTimer()
    method onTimer (line 600) | @Override
    method createAbortSessionAnswer (line 626) | protected AbortSessionAnswer createAbortSessionAnswer(Answer answer)
    method createAbortSessionRequest (line 631) | protected AbortSessionRequest createAbortSessionRequest(Request request)
    method createReAuthAnswer (line 636) | protected ReAuthAnswer createReAuthAnswer(Answer answer)
    method createReAuthRequest (line 641) | protected ReAuthRequest createReAuthRequest(Request request)
    method createSessionTermAnswer (line 646) | protected SessionTermAnswer createSessionTermAnswer(Answer answer)
    method createSessionTermRequest (line 651) | protected SessionTermRequest createSessionTermRequest(Request request)
    method createSessionTermRequest (line 656) | protected Request createSessionTermRequest()
    method hashCode (line 662) | @Override
    method equals (line 671) | @Override
    method release (line 694) | @Override
    class RequestDelivery (line 713) | private class RequestDelivery implements Runnable
      method run (line 718) | @Override
    class AnswerDelivery (line 736) | private class AnswerDelivery implements Runnable
      method run (line 742) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/Event.java
  class Event (line 53) | @SuppressWarnings("all") //3rd party lib
    type Type (line 56) | enum Type {
    method Event (line 71) | Event(Type type, AppEvent data) {
    method encodeType (line 76) | @Override
    method getType (line 81) | @Override
    method setData (line 86) | @Override
    method getData (line 91) | @Override
    method compareTo (line 96) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/auth/IClientAuthSessionData.java
  type IClientAuthSessionData (line 54) | @SuppressWarnings("all") //3rd party lib
    method setClientAuthSessionState (line 57) | void setClientAuthSessionState(ClientAuthSessionState state);
    method getClientAuthSessionState (line 59) | ClientAuthSessionState getClientAuthSessionState();
    method isStateless (line 61) | boolean isStateless();
    method setStateless (line 63) | void setStateless(boolean b);
    method getDestinationHost (line 65) | String getDestinationHost();
    method setDestinationHost (line 67) | void setDestinationHost(String host);
    method getDestinationRealm (line 69) | String getDestinationRealm();
    method setDestinationRealm (line 71) | void setDestinationRealm(String realm);
    method getTsTimerId (line 73) | Serializable getTsTimerId();
    method setTsTimerId (line 75) | void setTsTimerId(Serializable realm);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionDataLocalImpl.java
  class ClientCCASessionDataLocalImpl (line 55) | @SuppressWarnings("all") //3rd party lib
    method ClientCCASessionDataLocalImpl (line 77) | public ClientCCASessionDataLocalImpl() {
    method isEventBased (line 80) | @Override
    method setEventBased (line 85) | @Override
    method isRequestTypeSet (line 90) | @Override
    method setRequestTypeSet (line 95) | @Override
    method getClientCCASessionState (line 100) | @Override
    method setClientCCASessionState (line 105) | @Override
    method getTxTimerId (line 110) | @Override
    method setTxTimerId (line 115) | @Override
    method getTxTimerRequest (line 120) | @Override
    method setTxTimerRequest (line 125) | @Override
    method getBuffer (line 130) | @Override
    method setBuffer (line 135) | @Override
    method getGatheredRequestedAction (line 140) | @Override
    method setGatheredRequestedAction (line 145) | @Override
    method getGatheredCCFH (line 150) | @Override
    method setGatheredCCFH (line 155) | @Override
    method getGatheredDDFH (line 160) | @Override
    method setGatheredDDFH (line 165) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/ClientCCASessionImpl.java
  class ClientCCASessionImpl (line 80) | @SuppressWarnings("all") //3rd party lib
    method ClientCCASessionImpl (line 138) | public ClientCCASessionImpl(IClientCCASessionData data, ICCAMessageFac...
    method setListener (line 163) | public void setListener(ClientCCASessionListener listener)
    method getLocalCCFH (line 168) | protected int getLocalCCFH()
    method getLocalDDFH (line 173) | protected int getLocalDDFH()
    method sendCreditControlRequest (line 178) | @Override
    method sendReAuthAnswer (line 186) | @Override
    method isStateless (line 193) | @Override
    method isEventBased (line 199) | public boolean isEventBased()
    method getState (line 204) | @Override
    method handleEvent (line 211) | @Override
    method handleEventForEventBased (line 217) | protected boolean handleEventForEventBased(StateEvent event) throws In...
    method handleEventForSessionBased (line 318) | protected boolean handleEventForSessionBased(StateEvent event) throws ...
    method processRequest (line 574) | @Override
    method receivedSuccessMessage (line 584) | @Override
    method timeoutExpired (line 595) | @Override
    method startTx (line 608) | protected void startTx(JCreditControlRequest request)
    method stopTx (line 627) | protected void stopTx()
    method onTimer (line 642) | @Override
    method setState (line 654) | protected void setState(ClientCCASessionState newState)
    method setState (line 659) | @SuppressWarnings("unchecked")
    method release (line 685) | @Override
    method handleSendFailure (line 704) | protected void handleSendFailure(Exception e, Event.Type eventType, Me...
    method handleFailureMessage (line 809) | protected void handleFailureMessage(JCreditControlAnswer answer, JCred...
    method handleTxExpires (line 1042) | protected void handleTxExpires(Message message)
    method dispatch (line 1149) | protected void dispatch()
    method deliverCCAnswer (line 1186) | protected void deliverCCAnswer(JCreditControlRequest request, JCreditC...
    method extractFHAVPs (line 1196) | protected void extractFHAVPs(JCreditControlRequest request, JCreditCon...
    method deliverRAR (line 1238) | protected void deliverRAR(ReAuthRequest request)
    method dispatchEvent (line 1248) | protected void dispatchEvent(AppEvent event)
    method isProvisional (line 1254) | protected boolean isProvisional(long resultCode)
    method isSuccess (line 1259) | protected boolean isSuccess(long resultCode)
    method isTransient (line 1264) | protected boolean isTransient(long resultCode)
    method isFailure (line 1269) | protected boolean isFailure(long code)
    method isReplicable (line 1280) | @Override
    class TxTimerTask (line 1286) | private class TxTimerTask implements Runnable
      method TxTimerTask (line 1291) | private TxTimerTask(ClientCCASession session, Request request)
      method run (line 1298) | @Override
    class RequestDelivery (line 1329) | private class RequestDelivery implements Runnable
      method run (line 1334) | @Override
    class AnswerDelivery (line 1354) | private class AnswerDelivery implements Runnable
      method run (line 1360) | @Override
    method hashCode (line 1383) | @Override
    method equals (line 1392) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/Event.java
  class Event (line 56) | @SuppressWarnings("all") //3rd party lib
    type Type (line 59) | public enum Type {
    method Event (line 77) | Event(Type type) {
    method Event (line 81) | Event(Type type, AppRequestEvent request, AppAnswerEvent answer) {
    method Event (line 87) | Event(boolean isRequest, JCreditControlRequest request, JCreditControl...
    method getType (line 131) | @Override
    method compareTo (line 136) | @Override
    method getData (line 141) | @Override
    method setData (line 146) | @Override
    method getRequest (line 151) | public AppEvent getRequest() {
    method getAnswer (line 155) | public AppEvent getAnswer() {
    method encodeType (line 159) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cca/IClientCCASessionData.java
  type IClientCCASessionData (line 55) | @SuppressWarnings("all") //3rd party lib
    method isEventBased (line 58) | boolean isEventBased();
    method setEventBased (line 60) | void setEventBased(boolean b);
    method isRequestTypeSet (line 62) | boolean isRequestTypeSet();
    method setRequestTypeSet (line 64) | void setRequestTypeSet(boolean b);
    method getClientCCASessionState (line 66) | ClientCCASessionState getClientCCASessionState();
    method setClientCCASessionState (line 68) | void setClientCCASessionState(ClientCCASessionState state);
    method getTxTimerId (line 70) | Serializable getTxTimerId();
    method setTxTimerId (line 72) | void setTxTimerId(Serializable txTimerId);
    method getTxTimerRequest (line 74) | Request getTxTimerRequest();
    method setTxTimerRequest (line 76) | void setTxTimerRequest(Request txTimerRequest);
    method getBuffer (line 78) | Request getBuffer();
    method setBuffer (line 80) | void setBuffer(Request buffer);
    method getGatheredRequestedAction (line 82) | int getGatheredRequestedAction();
    method setGatheredRequestedAction (line 84) | void setGatheredRequestedAction(int gatheredRequestedAction);
    method getGatheredCCFH (line 86) | int getGatheredCCFH();
    method setGatheredCCFH (line 88) | void setGatheredCCFH(int gatheredCCFH);
    method getGatheredDDFH (line 90) | int getGatheredDDFH();
    method setGatheredDDFH (line 92) | void setGatheredDDFH(int gatheredDDFH);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cxdx/ClientCxDxSessionDataLocalImpl.java
  class ClientCxDxSessionDataLocalImpl (line 51) | @SuppressWarnings("all") //3rd party lib
    method ClientCxDxSessionDataLocalImpl (line 57) | public ClientCxDxSessionDataLocalImpl() {

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cxdx/CxDxClientSessionImpl.java
  class CxDxClientSessionImpl (line 68) | @SuppressWarnings("all") //3rd party lib
    method CxDxClientSessionImpl (line 81) | public CxDxClientSessionImpl(IClientCxDxSessionData sessionData, ICxDx...
    method setListener (line 98) | public void setListener(ClientCxDxSessionListener listener)
    method getState (line 108) | @Override
    method processRequest (line 120) | @Override
    method sendLocationInformationRequest (line 136) | @Override
    method sendMultimediaAuthRequest (line 149) | @Override
    method sendServerAssignmentRequest (line 162) | @Override
    method sendUserAuthorizationRequest (line 175) | @Override
    method sendPushProfileAnswer (line 187) | @Override
    method sendRegistrationTerminationAnswer (line 200) | @Override
    method receivedSuccessMessage (line 212) | @Override
    method timeoutExpired (line 228) | @Override
    method send (line 239) | protected void send(Event.Type type, AppEvent request, AppEvent answer...
    method handleEvent (line 251) | @Override
    method setState (line 370) | @SuppressWarnings("unchecked")
    method onTimer (line 394) | @Override
    method hashCode (line 425) | @Override
    method equals (line 439) | @Override
    method release (line 460) | @Override
    class RequestDelivery (line 479) | private class RequestDelivery implements Runnable
      method run (line 484) | @Override
    class AnswerDelivery (line 503) | private class AnswerDelivery implements Runnable
      method run (line 509) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cxdx/Event.java
  class Event (line 52) | @SuppressWarnings("all") //3rd party lib
    type Type (line 55) | enum Type {
    method Event (line 70) | Event(Type type, AppEvent request, AppEvent answer) {
    method encodeType (line 76) | @Override
    method getType (line 81) | @Override
    method getRequest (line 86) | public AppEvent getRequest() {
    method getAnswer (line 90) | public AppEvent getAnswer() {
    method compareTo (line 94) | @Override
    method getData (line 99) | @Override
    method setData (line 104) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/cxdx/IClientCxDxSessionData.java
  type IClientCxDxSessionData (line 51) | @SuppressWarnings("all") //3rd party lib

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gq/Event.java
  class Event (line 53) | @SuppressWarnings("all") //3rd party lib
    type Type (line 56) | enum Type {
    method Event (line 71) | Event(Type type, AppEvent data) {
    method encodeType (line 76) | @Override
    method getType (line 81) | @Override
    method setData (line 86) | @Override
    method getData (line 91) | @Override
    method compareTo (line 96) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gq/GqClientSessionImpl.java
  class GqClientSessionImpl (line 76) | @SuppressWarnings("all") //3rd party lib
    method GqClientSessionImpl (line 96) | public GqClientSessionImpl(IClientAuthSessionData sessionData, ISessio...
    method setListener (line 116) | public void setListener(ClientAuthSessionListener listener)
    method sendAbortSessionAnswer (line 123) | @Override
    method sendAuthRequest (line 130) | @Override
    method sendReAuthAnswer (line 137) | @Override
    method sendSessionTerminationRequest (line 144) | @Override
    method send (line 151) | protected void send(Event.Type type, AppEvent event) throws InternalEx...
    method isStateless (line 179) | @Override
    method setState (line 185) | @SuppressWarnings("unchecked")
    method getState (line 195) | @Override
    method handleEvent (line 202) | @Override
    method handleEventForStatelessSession (line 208) | public boolean handleEventForStatelessSession(StateEvent event) throws...
    method handleEventForStatefulSession (line 308) | public boolean handleEventForStatefulSession(StateEvent event) throws ...
    method receivedSuccessMessage (line 493) | @Override
    method timeoutExpired (line 503) | @Override
    method processRequest (line 515) | @Override
    method isReplicable (line 531) | @Override
    method startTsTimer (line 537) | protected void startTsTimer() throws IllegalArgumentException, Interna...
    method cancelTsTimer (line 549) | protected void cancelTsTimer()
    method onTimer (line 569) | @Override
    method createAbortSessionAnswer (line 595) | protected AbortSessionAnswer createAbortSessionAnswer(Answer answer)
    method createAbortSessionRequest (line 600) | protected AbortSessionRequest createAbortSessionRequest(Request request)
    method createReAuthAnswer (line 605) | protected ReAuthAnswer createReAuthAnswer(Answer answer)
    method createReAuthRequest (line 610) | protected ReAuthRequest createReAuthRequest(Request request)
    method createSessionTermAnswer (line 615) | protected SessionTermAnswer createSessionTermAnswer(Answer answer)
    method createSessionTermRequest (line 620) | protected SessionTermRequest createSessionTermRequest(Request request)
    method createSessionTermRequest (line 625) | protected Request createSessionTermRequest()
    method hashCode (line 631) | @Override
    method equals (line 640) | @Override
    class RequestDelivery (line 663) | private class RequestDelivery implements Runnable
      method run (line 668) | @Override
    class AnswerDelivery (line 686) | private class AnswerDelivery implements Runnable
      method run (line 692) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionDataLocalImpl.java
  class ClientGxSessionDataLocalImpl (line 55) | @SuppressWarnings("all") //3rd party lib
    method ClientGxSessionDataLocalImpl (line 77) | public ClientGxSessionDataLocalImpl() {
    method isEventBased (line 80) | @Override
    method setEventBased (line 85) | @Override
    method isRequestTypeSet (line 90) | @Override
    method setRequestTypeSet (line 95) | @Override
    method getClientGxSessionState (line 100) | @Override
    method setClientGxSessionState (line 105) | @Override
    method getTxTimerId (line 110) | @Override
    method setTxTimerId (line 115) | @Override
    method getTxTimerRequest (line 120) | @Override
    method setTxTimerRequest (line 125) | @Override
    method getBuffer (line 130) | @Override
    method setBuffer (line 135) | @Override
    method getGatheredRequestedAction (line 140) | @Override
    method setGatheredRequestedAction (line 145) | @Override
    method getGatheredCCFH (line 150) | @Override
    method setGatheredCCFH (line 155) | @Override
    method getGatheredDDFH (line 160) | @Override
    method setGatheredDDFH (line 165) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/ClientGxSessionImpl.java
  class ClientGxSessionImpl (line 82) | @SuppressWarnings("all") //3rd party lib
    method ClientGxSessionImpl (line 133) | public ClientGxSessionImpl(IClientGxSessionData sessionData, IGxMessag...
    method setListener (line 159) | public void setListener(ClientGxSessionListener listener)
    method getLocalCCFH (line 164) | protected int getLocalCCFH()
    method getLocalDDFH (line 169) | protected int getLocalDDFH()
    method sendCreditControlRequest (line 174) | @Override
    method sendGxReAuthAnswer (line 188) | @Override
    method isStateless (line 195) | @Override
    method isEventBased (line 201) | public boolean isEventBased()
    method getState (line 206) | @Override
    method handleEvent (line 213) | @Override
    method handleEventForEventBased (line 219) | protected boolean handleEventForEventBased(StateEvent event) throws In...
    method handleEventForSessionBased (line 321) | protected boolean handleEventForSessionBased(StateEvent event) throws ...
    method processRequest (line 577) | @Override
    method receivedSuccessMessage (line 587) | @Override
    method timeoutExpired (line 598) | @Override
    method startTx (line 615) | protected void startTx(GxCreditControlRequest request)
    method stopTx (line 634) | protected void stopTx()
    method onTimer (line 649) | @Override
    method setState (line 661) | protected void setState(ClientGxSessionState newState)
    method setState (line 666) | @SuppressWarnings("unchecked")
    method release (line 691) | @Override
    method handleSendFailure (line 711) | protected void handleSendFailure(Exception e, Event.Type eventType, Me...
    method handleFailureMessage (line 813) | protected void handleFailureMessage(final GxCreditControlAnswer event,...
    method handleTxExpires (line 1046) | protected void handleTxExpires(Message message)
    method dispatch (line 1151) | protected void dispatch()
    method deliverGxAnswer (line 1187) | protected void deliverGxAnswer(GxCreditControlRequest request, GxCredi...
    method extractFHAVPs (line 1197) | protected void extractFHAVPs(GxCreditControlRequest request, GxCreditC...
    method deliverRAR (line 1239) | protected void deliverRAR(GxReAuthRequest request)
    method dispatchEvent (line 1249) | protected void dispatchEvent(AppEvent event)
    method isProvisional (line 1255) | protected boolean isProvisional(long resultCode)
    method isSuccess (line 1260) | protected boolean isSuccess(long resultCode)
    method isFailure (line 1265) | protected boolean isFailure(long code)
    method isReplicable (line 1276) | @Override
    class TxTimerTask (line 1282) | private class TxTimerTask implements Runnable
      method TxTimerTask (line 1288) | private TxTimerTask(ClientGxSession session, Request request)
      method run (line 1295) | @Override
    method hashCode (line 1327) | @Override
    method equals (line 1336) | @Override
    class RequestDelivery (line 1359) | private class RequestDelivery implements Runnable
      method run (line 1365) | @Override
    class AnswerDelivery (line 1385) | private class AnswerDelivery implements Runnable
      method run (line 1392) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/Event.java
  class Event (line 56) | @SuppressWarnings("all") //3rd party lib
    type Type (line 59) | public enum Type {
    method Event (line 78) | Event(Type type) {
    method Event (line 82) | Event(Type type, AppRequestEvent request, AppAnswerEvent answer) {
    method Event (line 88) | Event(boolean isRequest, GxCreditControlRequest request, GxCreditContr...
    method getType (line 132) | @Override
    method compareTo (line 137) | @Override
    method getData (line 142) | @Override
    method setData (line 147) | @Override
    method getRequest (line 152) | public AppEvent getRequest() {
    method getAnswer (line 156) | public AppEvent getAnswer() {
    method encodeType (line 160) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/gx/IClientGxSessionData.java
  type IClientGxSessionData (line 55) | @SuppressWarnings("all") //3rd party lib
    method isEventBased (line 58) | boolean isEventBased();
    method setEventBased (line 60) | void setEventBased(boolean b);
    method isRequestTypeSet (line 62) | boolean isRequestTypeSet();
    method setRequestTypeSet (line 64) | void setRequestTypeSet(boolean b);
    method getClientGxSessionState (line 66) | ClientGxSessionState getClientGxSessionState();
    method setClientGxSessionState (line 68) | void setClientGxSessionState(ClientGxSessionState state);
    method getTxTimerId (line 70) | Serializable getTxTimerId();
    method setTxTimerId (line 72) | void setTxTimerId(Serializable txTimerId);
    method getTxTimerRequest (line 74) | Request getTxTimerRequest();
    method setTxTimerRequest (line 76) | void setTxTimerRequest(Request txTimerRequest);
    method getBuffer (line 78) | Request getBuffer();
    method setBuffer (line 80) | void setBuffer(Request buffer);
    method getGatheredRequestedAction (line 82) | int getGatheredRequestedAction();
    method setGatheredRequestedAction (line 84) | void setGatheredRequestedAction(int gatheredRequestedAction);
    method getGatheredCCFH (line 86) | int getGatheredCCFH();
    method setGatheredCCFH (line 88) | void setGatheredCCFH(int gatheredCCFH);
    method getGatheredDDFH (line 90) | int getGatheredDDFH();
    method setGatheredDDFH (line 92) | void setGatheredDDFH(int gatheredDDFH);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rf/ClientRfSessionDataLocalImpl.java
  class ClientRfSessionDataLocalImpl (line 55) | @SuppressWarnings("all") //3rd party lib
    method ClientRfSessionDataLocalImpl (line 70) | public ClientRfSessionDataLocalImpl() {
    method getClientRfSessionState (line 73) | @Override
    method setClientRfSessionState (line 78) | @Override
    method getTsTimerId (line 83) | @Override
    method setTsTimerId (line 88) | @Override
    method getBuffer (line 93) | @Override
    method setBuffer (line 98) | @Override
    method getDestinationHost (line 108) | @Override
    method setDestinationHost (line 118) | @Override
    method getDestinationRealm (line 128) | @Override
    method setDestinationRealm (line 138) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rf/ClientRfSessionImpl.java
  class ClientRfSessionImpl (line 71) | @SuppressWarnings("all") //3rd party lib
    method ClientRfSessionImpl (line 88) | public ClientRfSessionImpl(IClientRfSessionData sessionData, ISessionF...
    method setListener (line 101) | public void setListener(ClientRfSessionListener listener)
    method sendAccountRequest (line 106) | @Override
    method storeToBuffer (line 136) | protected synchronized void storeToBuffer(Request accountRequest)
    method checkBufferSpace (line 141) | protected synchronized boolean checkBufferSpace()
    method setState (line 146) | @SuppressWarnings("unchecked")
    method isStateless (line 156) | @Override
    method handleEvent (line 162) | @Override
    method processInterimIntervalAvp (line 562) | protected void processInterimIntervalAvp(StateEvent event) throws Inte...
    method onTimer (line 607) | @Override
    method startInterimTimer (line 634) | private void startInterimTimer(long v)
    method cancelInterimTimer (line 646) | private void cancelInterimTimer()
    method getState (line 661) | @Override
    method receivedSuccessMessage (line 668) | @Override
    method timeoutExpired (line 699) | @Override
    method processRequest (line 714) | @Override
    method isReplicable (line 741) | @Override
    method createInterimRecord (line 747) | protected Request createInterimRecord()
    method createSessionTermRequest (line 756) | protected Request createSessionTermRequest()
    method hashCode (line 762) | @Override
    method equals (line 771) | @Override
    method release (line 794) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rf/Event.java
  class Event (line 57) | @SuppressWarnings("all") //3rd party lib
    type Type (line 60) | enum Type {
    method Event (line 73) | Event(Type type) {
    method Event (line 77) | Event(RfAccountingAnswer accountAnswer) throws Exception {
    method Event (line 87) | Event(RfAccountingRequest accountRequest) throws Exception {
    method Event (line 108) | Event(Type type, RfAccountingRequest accountRequest) throws Exception {
    method encodeType (line 113) | @Override
    method getType (line 118) | @Override
    method setData (line 123) | @Override
    method getData (line 128) | @Override
    method compareTo (line 133) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rf/IClientRfSessionData.java
  type IClientRfSessionData (line 56) | @SuppressWarnings("all") //3rd party lib
    method setClientRfSessionState (line 59) | void setClientRfSessionState(ClientRfSessionState state);
    method getClientRfSessionState (line 61) | ClientRfSessionState getClientRfSessionState();
    method setBuffer (line 63) | void setBuffer(Request event);
    method getBuffer (line 65) | Request getBuffer();
    method getApplicationId (line 67) | @Override
    method setApplicationId (line 70) | @Override
    method getTsTimerId (line 73) | Serializable getTsTimerId();
    method setTsTimerId (line 75) | void setTsTimerId(Serializable tid);
    method getDestinationHost (line 77) | String getDestinationHost();
    method setDestinationHost (line 79) | void setDestinationHost(String destinationHost);
    method getDestinationRealm (line 81) | String getDestinationRealm();
    method setDestinationRealm (line 83) | void setDestinationRealm(String destinationRealm);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionDataLocalImpl.java
  class ClientRoSessionDataLocalImpl (line 55) | @SuppressWarnings("all") //3rd party lib
    method ClientRoSessionDataLocalImpl (line 77) | public ClientRoSessionDataLocalImpl() {
    method isEventBased (line 80) | @Override
    method setEventBased (line 85) | @Override
    method isRequestTypeSet (line 90) | @Override
    method setRequestTypeSet (line 95) | @Override
    method getClientRoSessionState (line 100) | @Override
    method setClientRoSessionState (line 105) | @Override
    method getTxTimerId (line 110) | @Override
    method setTxTimerId (line 115) | @Override
    method getTxTimerRequest (line 120) | @Override
    method setTxTimerRequest (line 125) | @Override
    method getBuffer (line 130) | @Override
    method setBuffer (line 135) | @Override
    method getGatheredRequestedAction (line 140) | @Override
    method setGatheredRequestedAction (line 145) | @Override
    method getGatheredCCFH (line 150) | @Override
    method setGatheredCCFH (line 155) | @Override
    method getGatheredDDFH (line 160) | @Override
    method setGatheredDDFH (line 165) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/ClientRoSessionImpl.java
  class ClientRoSessionImpl (line 84) | @SuppressWarnings("all") //3rd party lib
    method ClientRoSessionImpl (line 145) | public ClientRoSessionImpl(IClientRoSessionData sessionData, IRoMessag...
    method setListener (line 172) | public void setListener(ClientRoSessionListener listener)
    method getLocalCCFH (line 177) | protected int getLocalCCFH()
    method getLocalDDFH (line 182) | protected int getLocalDDFH()
    method sendCreditControlRequest (line 187) | @Override
    method sendReAuthAnswer (line 200) | @Override
    method isStateless (line 207) | @Override
    method isEventBased (line 213) | public boolean isEventBased()
    method getState (line 218) | @Override
    method handleEvent (line 225) | @Override
    method handleEventForEventBased (line 231) | protected boolean handleEventForEventBased(StateEvent event) throws In...
    method handleEventForSessionBased (line 333) | protected boolean handleEventForSessionBased(StateEvent event) throws ...
    method processRequest (line 589) | @Override
    method receivedSuccessMessage (line 599) | @Override
    method timeoutExpired (line 610) | @Override
    method startTx (line 627) | protected void startTx(RoCreditControlRequest request)
    method stopTx (line 647) | protected void stopTx()
    method onTimer (line 662) | @Override
    method setState (line 674) | protected void setState(ClientRoSessionState newState)
    method setState (line 679) | @SuppressWarnings("unchecked")
    method release (line 706) | @Override
    method handleSendFailure (line 726) | protected void handleSendFailure(Exception e, Event.Type eventType, Me...
    method handleFailureMessage (line 829) | protected void handleFailureMessage(RoCreditControlAnswer event, RoCre...
    method handleTxExpires (line 1062) | protected void handleTxExpires(Message message)
    method dispatch (line 1168) | protected void dispatch()
    method deliverRoAnswer (line 1205) | protected void deliverRoAnswer(RoCreditControlRequest request, RoCredi...
    method extractFHAVPs (line 1217) | protected void extractFHAVPs(RoCreditControlRequest request, RoCreditC...
    method deliverRAR (line 1259) | protected void deliverRAR(ReAuthRequest request)
    method dispatchEvent (line 1269) | protected void dispatchEvent(AppEvent event)
    method isProvisional (line 1275) | protected boolean isProvisional(long resultCode)
    method isSuccess (line 1280) | protected boolean isSuccess(long resultCode)
    method isFailure (line 1285) | protected boolean isFailure(long code)
    method isReplicable (line 1296) | @Override
    class TxTimerTask (line 1302) | private class TxTimerTask implements Runnable
      method TxTimerTask (line 1307) | private TxTimerTask(ClientRoSession session, Request request)
      method run (line 1314) | @Override
    method messageFromBuffer (line 1346) | private Message messageFromBuffer(ByteBuffer request) throws InternalE...
    method messageToBuffer (line 1361) | private ByteBuffer messageToBuffer(IMessage msg) throws InternalException
    class RequestDelivery (line 1371) | private class RequestDelivery implements Runnable
      method run (line 1376) | @Override
    class AnswerDelivery (line 1396) | private class AnswerDelivery implements Runnable
      method run (line 1402) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/Event.java
  class Event (line 57) | @SuppressWarnings("all") //3rd party lib
    type Type (line 60) | public enum Type {
    method Event (line 78) | Event(Type type) {
    method Event (line 82) | Event(Type type, AppRequestEvent request, AppAnswerEvent answer) {
    method Event (line 88) | Event(boolean isRequest, RoCreditControlRequest request, RoCreditContr...
    method getType (line 132) | @Override
    method compareTo (line 137) | @Override
    method getData (line 142) | @Override
    method setData (line 147) | @Override
    method getRequest (line 152) | public AppEvent getRequest() {
    method getAnswer (line 156) | public AppEvent getAnswer() {
    method encodeType (line 160) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/ro/IClientRoSessionData.java
  type IClientRoSessionData (line 55) | @SuppressWarnings("all") //3rd party lib
    method isEventBased (line 58) | boolean isEventBased();
    method setEventBased (line 60) | void setEventBased(boolean b);
    method isRequestTypeSet (line 62) | boolean isRequestTypeSet();
    method setRequestTypeSet (line 64) | void setRequestTypeSet(boolean b);
    method getClientRoSessionState (line 66) | ClientRoSessionState getClientRoSessionState();
    method setClientRoSessionState (line 68) | void setClientRoSessionState(ClientRoSessionState state);
    method getTxTimerId (line 70) | Serializable getTxTimerId();
    method setTxTimerId (line 72) | void setTxTimerId(Serializable txTimerId);
    method getTxTimerRequest (line 74) | Request getTxTimerRequest();
    method setTxTimerRequest (line 76) | void setTxTimerRequest(Request txTimerRequest);
    method getBuffer (line 78) | Request getBuffer();
    method setBuffer (line 80) | void setBuffer(Request buffer);
    method getGatheredRequestedAction (line 82) | int getGatheredRequestedAction();
    method setGatheredRequestedAction (line 84) | void setGatheredRequestedAction(int gatheredRequestedAction);
    method getGatheredCCFH (line 86) | int getGatheredCCFH();
    method setGatheredCCFH (line 88) | void setGatheredCCFH(int gatheredCCFH);
    method getGatheredDDFH (line 90) | int getGatheredDDFH();
    method setGatheredDDFH (line 92) | void setGatheredDDFH(int gatheredDDFH);

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rx/ClientRxSessionDataLocalImpl.java
  class ClientRxSessionDataLocalImpl (line 53) | @SuppressWarnings("all") //3rd party lib
    method ClientRxSessionDataLocalImpl (line 63) | public ClientRxSessionDataLocalImpl() {
    method isEventBased (line 66) | @Override
    method setEventBased (line 71) | @Override
    method isRequestTypeSet (line 76) | @Override
    method setRequestTypeSet (line 81) | @Override
    method getClientRxSessionState (line 86) | @Override
    method setClientRxSessionState (line 91) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rx/ClientRxSessionImpl.java
  class ClientRxSessionImpl (line 79) | @SuppressWarnings("all") //3rd party lib
    method ClientRxSessionImpl (line 138) | public ClientRxSessionImpl(IClientRxSessionData sessionData, IRxMessag...
    method setListener (line 162) | public void setListener(ClientRxSessionListener listener)
    method sendAARequest (line 167) | @Override
    method sendSessionTermRequest (line 179) | @Override
    method sendReAuthAnswer (line 191) | @Override
    method sendAbortSessionAnswer (line 198) | @Override
    method isStateless (line 205) | @Override
    method isEventBased (line 211) | public boolean isEventBased()
    method getState (line 216) | @Override
    method handleEvent (line 223) | @Override
    method handleEventForEventBased (line 229) | protected boolean handleEventForEventBased(StateEvent event) throws In...
    method handleEventForSessionBased (line 325) | protected boolean handleEventForSessionBased(StateEvent event) throws ...
    method processRequest (line 540) | @Override
    method receivedSuccessMessage (line 550) | @Override
    method timeoutExpired (line 561) | @Override
    method setState (line 574) | protected void setState(ClientRxSessionState newState)
    method setState (line 579) | @SuppressWarnings("unchecked")
    method release (line 604) | @Override
    method handleSendFailure (line 623) | protected void handleSendFailure(Exception e, Event.Type eventType, Me...
    method handleFailureMessage (line 635) | protected void handleFailureMessage(final AppAnswerEvent event, final ...
    method dispatch (line 652) | protected void dispatch()
    method deliverRxAAAnswer (line 687) | protected void deliverRxAAAnswer(RxAARequest request, RxAAAnswer answer)
    method deliverRxSessionTermAnswer (line 697) | protected void deliverRxSessionTermAnswer(RxSessionTermRequest request...
    method deliverReAuthRequest (line 707) | protected void deliverReAuthRequest(RxReAuthRequest request)
    method deliverAbortSessionRequest (line 717) | protected void deliverAbortSessionRequest(RxAbortSessionRequest request)
    method dispatchEvent (line 727) | protected void dispatchEvent(AppEvent event)
    method isProvisional (line 733) | protected boolean isProvisional(long resultCode)
    method isSuccess (line 738) | protected boolean isSuccess(long resultCode)
    method isFailure (line 743) | protected boolean isFailure(long code)
    method isReplicable (line 754) | @Override
    method messageFromBuffer (line 765) | private Message messageFromBuffer(ByteBuffer request) throws InternalE...
    method messageToBuffer (line 780) | private ByteBuffer messageToBuffer(IMessage msg) throws InternalException
    class RequestDelivery (line 790) | private class RequestDelivery implements Runnable
      method run (line 795) | @Override
    class AnswerDelivery (line 817) | private class AnswerDelivery implements Runnable
      method run (line 824) | @Override
    method hashCode (line 855) | @Override
    method equals (line 874) | @Override
    method onTimer (line 923) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rx/Event.java
  class Event (line 64) | @SuppressWarnings("all") //3rd party lib
    type Type (line 67) | public enum Type {
    method Event (line 84) | Event(Type type) {
    method Event (line 88) | Event(Type type, AppRequestEvent request, AppAnswerEvent answer) {
    method Event (line 94) | Event(boolean isRequest, AppRequestEvent request, AppAnswerEvent answe...
    method getType (line 141) | @Override
    method compareTo (line 146) | @Override
    method getData (line 151) | @Override
    method setData (line 156) | @Override
    method getRequest (line 161) | public AppEvent getRequest() {
    method getAnswer (line 165) | public AppEvent getAnswer() {
    method encodeType (line 169) | @Override

FILE: core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/app/rx/IClientRxSessionData.java
  type IClientRxSessionData (line 53) | @SuppressWarnings("all") //3rd party lib
    method isEventBased (line 56) | boolean isEventBased();
    method setEventBased (line 58) | void setEventBased(boolean b);
    method isRequestTypeSet (line 60) | boolean isRequestTypeSet();
    method setRequestTypeSet (line 62) | void setRequ
Condensed preview — 835 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,852K chars).
[
  {
    "path": ".github/CODEOWNERS",
    "chars": 606,
    "preview": "# Lines starting with '#' are comments.\n# Each line is a file pattern followed by one or more owners.\n\n# More details ar"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 597,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/project.yml",
    "chars": 69,
    "preview": "release:\n  current-version: \"2.5.0\"\n  next-version: \"2.5.1-SNAPSHOT\"\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 1201,
    "preview": "name: Build\n\non:\n  push:\n    branches:\n      - \"main\"\n    paths-ignore:\n      - '.gitignore'\n      - 'CODEOWNERS'\n      "
  },
  {
    "path": ".github/workflows/deploy-snapshots.yml.disabled",
    "chars": 1090,
    "preview": "# This workflow will build and deploy a snapshot of your artifact to Sonatype Snapshots repository\nname: Deploy Snapshot"
  },
  {
    "path": ".github/workflows/pre-release.yml",
    "chars": 370,
    "preview": "name: Quarkiverse Pre Release\n\non:\n  pull_request:\n    paths:\n      - '.github/project.yml'\n\npermissions:\n  contents: re"
  },
  {
    "path": ".github/workflows/quarkus-snapshot.yaml",
    "chars": 406,
    "preview": "name: \"Quarkus ecosystem CI\"\non:\n  workflow_dispatch:\n  watch:\n    types: [started]\n\npermissions:\n  contents: read\n\nconc"
  },
  {
    "path": ".github/workflows/release-perform.yml",
    "chars": 651,
    "preview": "name: Quarkiverse Perform Release\nrun-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release\non:\n  push:\n"
  },
  {
    "path": ".github/workflows/release-prepare.yml",
    "chars": 522,
    "preview": "name: Quarkiverse Prepare Release\n\non:\n  pull_request:\n    types: [ closed ]\n    paths:\n      - '.github/project.yml'\n  "
  },
  {
    "path": ".github/workflows/release.yml.disabled",
    "chars": 2467,
    "preview": "name: Quarkiverse Release\n\non:\n  pull_request:\n    types: [ closed ]\n    paths:\n      - '.github/project.yml'\n      - '."
  },
  {
    "path": ".gitignore",
    "chars": 384,
    "preview": "# Java compiled #\n#################\n*.class\n\n# Eclipse #\n###########\n.classpath\n.project\n.settings\n\n# IntelliJ IDEA #\n##"
  },
  {
    "path": "LICENSE",
    "chars": 34523,
    "preview": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C)"
  },
  {
    "path": "README.md",
    "chars": 1765,
    "preview": "# Quarkus Diameter Stack\n\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributo"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Chapter-Introduction.adoc~",
    "chars": 2217,
    "preview": "[[_introduction]]\n= Introduction to &THIS.PLATFORM; Diameter\n\nDiameter is a computer networking protocol for Authenticat"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Chapter-JDiameter.adoc~",
    "chars": 921,
    "preview": "[[_jdiameter]]\n= {this-platform}  Diameter Stack\n\nThe Diameter Stack is the core component of the presented Diameter sol"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Chapter-MUX.adoc~",
    "chars": 915,
    "preview": "[[_mux]]\n= Multiplexer (MUX)\n\nThe Multiplexer (MUX) is designed as a stack wrapper.\nIt serves two purposes:\n\nExpose Stac"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Diameter_User_Guide.adoc~",
    "chars": 548,
    "preview": "= User Guide to {this-platform} {this-application} {project-version} \n:doctype: book\n:sectnums:\n:toc: left\n:icons: font\n"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-Introduction-Message_Format.adoc~",
    "chars": 3780,
    "preview": "\n[[_mf_message_format]]\n= Message Format\n\nDiameter is a byte based protocol.\nEach message has a fixed structure, which c"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Configuration.adoc~",
    "chars": 15836,
    "preview": "\n[[_jdiameter_configuration]]\n= Diameter Stack Configuration\n\nThe stack is initially configured by parsing an XML file.\n"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Setup.adoc~",
    "chars": 1887,
    "preview": "\n[[_jdiameter_setup]]\n= {this-platform}  Diameter Stack Setup\n\n[[_jdiameter_preinstall_requirements_and_prerequisites]]\n"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Source_Overview.adoc~",
    "chars": 11745,
    "preview": "\n[[_jdiameter_source_overview]]\n= Diameter Stack Source overview\n\nDiameter stack is built with the following basic compo"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator-Configuration.adoc~",
    "chars": 10538,
    "preview": "\n[[_jdiameter_validator_configuration]]\n= Validator Configuration\n\nThe Validator is configured with a single XML file.\nT"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator-Source_Overview.adoc~",
    "chars": 2258,
    "preview": "\n[[_jdiameter_validator_source_overview]]\n= Validator Source Overview\n\nThe Validator\tAPI defines methods to access its d"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-JDiameter-Validator.adoc~",
    "chars": 1315,
    "preview": "\n[[_jdiameter_validator]]\n= Diameter Stack Validator\n\nValidator is one of the Stack features.\nThe primary purpose of the"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-MUX-Setup.adoc~",
    "chars": 2056,
    "preview": "\n[[_mux_setup]]\n= Diameter Multiplexer (MUX) Setup\n\n[[_mux_preinstall_requirements_and_prerequisites]]\n== Pre-Install Re"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/Section-MUX-Source_Overview.adoc~",
    "chars": 2948,
    "preview": "\n[[_mux_source_overview]]\n= Diameter MUX Source Overview\n\nThe Diameter MUX capabilities are defined by the `MBean` inter"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/js/default.js~",
    "chars": 242661,
    "preview": "var $j = jQuery.noConflict();\nvar $scroll = 0;\nvar $window_width = $j(window).width();\nvar $window_height = $j(window).h"
  },
  {
    "path": "core/docs/sources-asciidoc/src/main/asciidoc/stylesheets/telestax.css~",
    "chars": 570841,
    "preview": "@import url(https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,600italic,400,600|Ubuntu+Mono:400);"
  },
  {
    "path": "core/jdiameter/api/pom.xml",
    "chars": 589,
    "preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocat"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Answer.java",
    "chars": 2384,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ApplicationAlreadyUseException.java",
    "chars": 2985,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ApplicationId.java",
    "chars": 6836,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Avp.java",
    "chars": 64097,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/AvpDataException.java",
    "chars": 4026,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/AvpSet.java",
    "chars": 29480,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/BaseSession.java",
    "chars": 4305,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Configuration.java",
    "chars": 5400,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ConfigurationListener.java",
    "chars": 2449,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/DisconnectCause.java",
    "chars": 2659,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/EventListener.java",
    "chars": 2653,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/IllegalDiameterStateException.java",
    "chars": 2623,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/InternalException.java",
    "chars": 2982,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/LocalAction.java",
    "chars": 2174,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Message.java",
    "chars": 6850,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/MetaData.java",
    "chars": 2817,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Mode.java",
    "chars": 2150,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/MutableConfiguration.java",
    "chars": 4385,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/MutablePeerTable.java",
    "chars": 3153,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Network.java",
    "chars": 3704,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/NetworkReqListener.java",
    "chars": 1605,
    "preview": "/*\n * JBoss, Home of Professional Open Source\n * Copyright 2006, Red Hat, Inc. and individual contributors\n * by the @au"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadException.java",
    "chars": 3868,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadListener.java",
    "chars": 2558,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/OverloadManager.java",
    "chars": 3454,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Peer.java",
    "chars": 3949,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/PeerState.java",
    "chars": 2283,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/PeerStateListener.java",
    "chars": 2420,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/PeerTable.java",
    "chars": 2691,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/PeerTableListener.java",
    "chars": 2501,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/RawSession.java",
    "chars": 7820,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Realm.java",
    "chars": 3108,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/RealmTable.java",
    "chars": 3665,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Request.java",
    "chars": 3334,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ResultCode.java",
    "chars": 9906,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/RouteException.java",
    "chars": 2689,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Selector.java",
    "chars": 2378,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Session.java",
    "chars": 7710,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/SessionFactory.java",
    "chars": 4990,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Stack.java",
    "chars": 6798,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/StackManager.java",
    "chars": 12856,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/StackType.java",
    "chars": 2155,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Statistic.java",
    "chars": 2948,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/StatisticRecord.java",
    "chars": 3118,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/URI.java",
    "chars": 14166,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/Wrapper.java",
    "chars": 4869,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ClientAccSession.java",
    "chars": 3357,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ClientAccSessionListener.java",
    "chars": 4620,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ServerAccSession.java",
    "chars": 3360,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/ServerAccSessionListener.java",
    "chars": 4506,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/events/AccountAnswer.java",
    "chars": 2973,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/acc/events/AccountRequest.java",
    "chars": 3221,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/AvpDscr.java",
    "chars": 3782,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/AvpFlag.java",
    "chars": 2388,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/AvpType.java",
    "chars": 2571,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/Child.java",
    "chars": 3152,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/CommandDscr.java",
    "chars": 3124,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/CommandFlag.java",
    "chars": 2433,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/Getter.java",
    "chars": 2553,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/annotation/Setter.java",
    "chars": 2922,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppAnswerEvent.java",
    "chars": 2719,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppEvent.java",
    "chars": 3259,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppRequestEvent.java",
    "chars": 2896,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/AppSession.java",
    "chars": 2955,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/State.java",
    "chars": 2782,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateChangeListener.java",
    "chars": 2899,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateEvent.java",
    "chars": 3390,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/app/StateMachine.java",
    "chars": 3450,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ClientAuthSession.java",
    "chars": 5846,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ClientAuthSessionListener.java",
    "chars": 7332,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ServerAuthSession.java",
    "chars": 5847,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/ServerAuthSessionListener.java",
    "chars": 7431,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/AbortSessionAnswer.java",
    "chars": 2553,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/AbortSessionRequest.java",
    "chars": 2824,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/ReAuthAnswer.java",
    "chars": 2541,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/ReAuthRequest.java",
    "chars": 3048,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/SessionTermAnswer.java",
    "chars": 2558,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/auth/events/SessionTermRequest.java",
    "chars": 2950,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/CCASession.java",
    "chars": 2349,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ClientCCASession.java",
    "chars": 4114,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ClientCCASessionListener.java",
    "chars": 6076,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ServerCCASession.java",
    "chars": 4115,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/ServerCCASessionListener.java",
    "chars": 5490,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/events/JCreditControlAnswer.java",
    "chars": 3044,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cca/events/JCreditControlRequest.java",
    "chars": 2965,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ClientCxDxSession.java",
    "chars": 3934,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ClientCxDxSessionListener.java",
    "chars": 5407,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ServerCxDxSession.java",
    "chars": 3926,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/ServerCxDxSessionListener.java",
    "chars": 5235,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JLocationInfoAnswer.java",
    "chars": 2602,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JLocationInfoRequest.java",
    "chars": 2683,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JMultimediaAuthAnswer.java",
    "chars": 2610,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JMultimediaAuthRequest.java",
    "chars": 2656,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JPushProfileAnswer.java",
    "chars": 2598,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JPushProfileRequest.java",
    "chars": 2892,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JRegistrationTerminationAnswer.java",
    "chars": 2646,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JRegistrationTerminationRequest.java",
    "chars": 2692,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JServerAssignmentAnswer.java",
    "chars": 2793,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JServerAssignmentRequest.java",
    "chars": 2711,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JUserAuthorizationAnswer.java",
    "chars": 2622,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/cxdx/events/JUserAuthorizationRequest.java",
    "chars": 2703,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gq/ClientGqSessionListener.java",
    "chars": 168,
    "preview": "package org.jdiameter.api.gq;\n\nimport org.jdiameter.api.auth.ClientAuthSessionListener;\n\npublic interface ClientGqSessio"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gq/GqClientSession.java",
    "chars": 2481,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gq/GqServerSession.java",
    "chars": 2481,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gq/ServerGqSessionListener.java",
    "chars": 168,
    "preview": "package org.jdiameter.api.gq;\n\nimport org.jdiameter.api.auth.ServerAuthSessionListener;\n\npublic interface ServerGqSessio"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ClientGxSession.java",
    "chars": 4189,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ClientGxSessionListener.java",
    "chars": 6013,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ServerGxSession.java",
    "chars": 4160,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/ServerGxSessionListener.java",
    "chars": 5456,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxCreditControlAnswer.java",
    "chars": 2845,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxCreditControlRequest.java",
    "chars": 2671,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxReAuthAnswer.java",
    "chars": 2475,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/gx/events/GxReAuthRequest.java",
    "chars": 2499,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ClientRfSession.java",
    "chars": 3308,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ClientRfSessionListener.java",
    "chars": 4588,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ServerRfSession.java",
    "chars": 3311,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/ServerRfSessionListener.java",
    "chars": 4462,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/events/RfAccountingAnswer.java",
    "chars": 2964,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rf/events/RfAccountingRequest.java",
    "chars": 2985,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ClientRoSession.java",
    "chars": 4214,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ClientRoSessionListener.java",
    "chars": 5991,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ServerRoSession.java",
    "chars": 4212,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/ServerRoSessionListener.java",
    "chars": 5471,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/events/RoCreditControlAnswer.java",
    "chars": 2903,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/ro/events/RoCreditControlRequest.java",
    "chars": 2729,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ClientRxSession.java",
    "chars": 3597,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ClientRxSessionListener.java",
    "chars": 3792,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ServerRxSession.java",
    "chars": 3560,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/ServerRxSessionListener.java",
    "chars": 3797,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAAAnswer.java",
    "chars": 2626,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAARequest.java",
    "chars": 2647,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAbortSessionAnswer.java",
    "chars": 2647,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxAbortSessionRequest.java",
    "chars": 2643,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxReAuthAnswer.java",
    "chars": 2635,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxReAuthRequest.java",
    "chars": 2656,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxSessionTermAnswer.java",
    "chars": 2652,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/rx/events/RxSessionTermRequest.java",
    "chars": 2653,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ClientS13Session.java",
    "chars": 2031,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ClientS13SessionListener.java",
    "chars": 1797,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ServerS13Session.java",
    "chars": 2024,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/ServerS13SessionListener.java",
    "chars": 1705,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/events/JMEIdentityCheckAnswer.java",
    "chars": 1184,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s13/events/JMEIdentityCheckRequest.java",
    "chars": 1713,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ClientS6aSession.java",
    "chars": 8812,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ClientS6aSessionListener.java",
    "chars": 5096,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ServerS6aSession.java",
    "chars": 8970,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/ServerS6aSessionListener.java",
    "chars": 5280,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JAuthenticationInformationAnswer.java",
    "chars": 2499,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JAuthenticationInformationRequest.java",
    "chars": 2503,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JCancelLocationAnswer.java",
    "chars": 2319,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JCancelLocationRequest.java",
    "chars": 2323,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JDeleteSubscriberDataAnswer.java",
    "chars": 2332,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JDeleteSubscriberDataRequest.java",
    "chars": 2336,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JInsertSubscriberDataAnswer.java",
    "chars": 2332,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JInsertSubscriberDataRequest.java",
    "chars": 2336,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JNotifyAnswer.java",
    "chars": 2302,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JNotifyRequest.java",
    "chars": 2306,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JPurgeUEAnswer.java",
    "chars": 2463,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JPurgeUERequest.java",
    "chars": 2467,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JResetAnswer.java",
    "chars": 2300,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JResetRequest.java",
    "chars": 2304,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JUpdateLocationAnswer.java",
    "chars": 2477,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/s6a/events/JUpdateLocationRequest.java",
    "chars": 2481,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ClientShSession.java",
    "chars": 5124,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ClientShSessionListener.java",
    "chars": 4718,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ServerShSession.java",
    "chars": 5704,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/ServerShSessionListener.java",
    "chars": 4538,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/ProfileUpdateAnswer.java",
    "chars": 2603,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/ProfileUpdateRequest.java",
    "chars": 2626,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/PushNotificationAnswer.java",
    "chars": 2616,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/PushNotificationRequest.java",
    "chars": 2654,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  },
  {
    "path": "core/jdiameter/api/src/main/java/org/jdiameter/api/sh/events/SubscribeNotificationsAnswer.java",
    "chars": 2633,
    "preview": "/*\n * TeleStax, Open Source Cloud Communications\n * Copyright 2011-2016, TeleStax Inc. and individual contributors\n * by"
  }
]

// ... and 635 more files (download for full content)

About this extraction

This page contains the full source code of the quarkiverse/quarkus-jdiameter GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 835 files (7.0 MB), approximately 1.9M tokens, and a symbol index with 6284 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!